第一篇:学生成绩管理系统设计学案
学生成绩管理系统设计学案
一、教学目标
1、能力目标
能够进行需求分析,设计要实现的功能,并能画出数据流图、设计数据字典、E-R图。
2、知识目标
(1)掌握需求分析的方法
(2)概念设计方法
(3)逻辑设计方法及相关概念
(4)物理设计方法及相关概念
二、预备知识
1、预习P182-P187,了解本次课的授课任务
2、理解以下概念:
数据流图、数据字典、E-R图、需求分析(可以借助互联网络搜集资料加深对概念的理解)
3、了解概念设计、逻辑设计方法
三、授课过程
1、回答老师根据预备知识的要求所提的问题
2、参照课本内容通过分小组进行任务分析,设计出本小组想要制作的演示文稿的风格及主题。
3、通过小组合作创建演示文稿并美化。
4、进行组内评价、组间评价,欣赏各小组评价出的优秀作品。
5、总结本节课所学到的知识,在实际操作过程中遇到的问题,解决的办法及心得体会。
四、课后作业
制作市场计划演示文稿
第二篇:oracle学生成绩管理系统设计
阶段1.1成绩管理系统实体关系设计
一、实验目的和要求
(1)熟练掌握实体关系设计的方法。(2)通过需求分析结果,掌握E-R图。
二、实验内容和原理
实体关系设计是在需求分析的一个环节过程,在这一过程中产生E-R图,该图由实体、属性和联系三个要素构成。逻辑结构设计的任务就是把概念设计阶段建立的基本E-R图按照选定的系统软件支持的数据模型,转换成相应的逻辑模型。这种转换要符合关系数据模型的原则。
E-R图向关系模型转换时要解决如何将实体和实体间的联系转换为关系,并确定这些关系的属性和码,这种转换一般按下面的原则进行。
(1)一个实体转换为一个关系,实体的属性就是关系的属性,实体的码就是关系的码。
(2)一个联系也转换为一个关系,联系的属性及联系所连接的实体的码都转换为关系的属性,但关系的码会根据联系的类型变化。
三、主要仪器设备
计算机一台、Powerdesinger运行环境
四、操作方法与实验步骤
在成绩管理系统中,需要管理学生、课程和成绩,以及它们之间的联系。因此在该系统的E-R图中,实体分别为学生、老师、课程。为了便于掌握,学生实体的属性分别有学号、姓名、性别;课程实体的属性有课程编号、课程名称、学期、课程学分;教师实体的属性有教师编号、姓名、性别。学生实体与课程实体有选课关系,而且一个学生可以选择多门课程,一门课程也可以被多个学生选择,因此学生和课程之间的联系是m:n联系。教师实体与课程实体有教授关系,一名教师可以教多门课程,一门课程也可以被多个教师教授,因此教师和课程之间的联系是m:n联系。学生在选课后会产生成绩,教师授课后会产生授课地点及授课学期。根据上述分析,绘出的E-R图如下图所示。
阶段1.2 成绩管理系统结构设计
一、实验目的和要求
1.了解数据库中列的属性以及各个属性的含义。2.掌握为不同的列选择不同的属性及范围。
二、实验内容和原理
在管理信息系统中,物理结构设计主要是指如何将通过逻辑结构设计所得的系统逻辑结构型转换为物理模型,并明确地指出系统的物理存储结构。本实验主要是利用CASE工具集PowerDesigner对成绩管理系统进行物理结构的设计。
三、主要仪器设备
计算机一台、Powerdesinger 运行环境、Oracle运行环境
四、操作方法与实验步骤
在物理结构设计中需要考虑为每列设计合适的数据类型。成绩管理系统中,学生(学号、姓名、性别)关系里,学号采用int来表示就可以了,而姓名设置成varchar2(20),性别只需要设置为char(2)。因为性别不是男就是女,因此只会占用两个字节。所以最终我们可以将其物理表结构设置为:t_student(stuid int,stuname varchar2(20),sex char(2)。依照上述,课程的物理表结构为:t_course(couid int,couname varchar2(20),term char(2),credit number(3,1))。教师的物理存储表结构为:t_teacher(teaid int,teaname varchar2(20),sex char(2))。选课的物理表结构为:t_selcour(sid int,cid int,score number.(4,2))。教课的物理表结构为:t_teacour(tid int,cid int,teaaddr varchar2(30),term char(2))。
(1)通过手动编写SQL语句方式建立数据库后台
上述创建了代表学生实体的表t_student,其中stuid设置为主键,唯一标识一个学生。
表t_course用来代表课程实体,其中采用couid来标识一门课程。当课程名称的长度大于20个字符时,varchar2可以自动扩展。
物理实体在物理结构中用t_teacher表来表示,teaid用来唯一标识一位教师,因此其不能空
选课表t_selcour中学生编号参考t_student表中的stuid,此时sid为外键,课程编号cid也作为外键参考t_course中的couid(2)通过PowerDesigner建立数据库后台。
第四步:到此,系统的概念模型就全部设计好了。接下来单击菜单“工具”→“生成物理属性模型”选项,就会弹出“物理数据模型生成选项”对话框,如下图:
在“常规”选项卡中选择“生成新的物理模型”单选钮,并选择DBMS为“OPACLE Version 10g”,“名称”文本“MyPhysicalDataModel”,并单击“确认”按钮,在弹出得到路径选择对话框中输入你想要放置生成的物理数据模型文件的位置,系统就会自动在指定的路径下生成一个名为“MyPhysicalDataModal.pdm”的文件,并生成系统的物理模型,如下图
CONGC
从菜单中选择 Database---Generate Database选项。PowerDesigner将会在指定的路径下生成一个名字为*.sql 的文本文件。里面存放可供Oracle 执行的用来建立数据库实体的SQL语句。
阶段1.3 成绩管路系统存储过程设计
一、实验目的和要求
(1)了解存储过程的设计目的以及方法。(2)掌握存储过程的创建。
二、实验内容和原理
存储过程是在数据中定义的程序块,它存放在数据库服务端数据字典里。采用存储过程可以提高过程代码程序的执行速度和代码共享度。具体有以下几个特点。(1)过程存放在服务器端,减少了网络传输的延时,提高了速度。(2)过程在执行一次之后,会驻留内存,后续的执行无需再经编译过程,提高了执行效率。
三、主要仪器设备
计算机一台,Oracle运行环境
四、操作方法与实验步骤
1、创建存储过程先向表t_student中插入数据,具体如下所示
2、每次向表t_student中插入数据时,只需要运行该过程就可以了。具体如下所示。表t_student中的列stuid被设置为主键,因此不可以存在重复值。在第二次运行时,因为输入的第一个参数id与表中已存在的数据相同,所以插入时出现错误。
3、继续向表中插入两条记录,其中当参数id不重复时,过程成功完成。
4、不仅可以通过存储过程向表中插入数据,也可以通过一般的SQL语句向表中插入数据,如下所示。
5、向表中插入数据时,需要注意数据类型以及长度都需要与表中定义的相符,否则会出现错误,具体如下所示。
6、t_course表中列term被定义为char且长度为2,因此在插入数据时该列最大长度为2,超过该值会出现错误。课程表中只有已经存在的课程编号才能被插入到选课表中,否则会出错,这样就保证了数据的一致性。
7、t_selcour表的另外一个外键为第一列sid,在插入时只有当该值存在于学生表中的学生编号时,才能被成功插入,否则也会出现错误,具体如下所示。
8、对于向表t_teacour中插入数据时,同样需要满足外键参考主键的约束条件,具体如下所示。
9、向表t_teacour中插入一行记录,其中tid存在于表t_teacher的列teaid中,cid存在于表t_course列couid中。如果插入的值不符合外键约束条件,会出现错误,具体如下所示。
10、在完成对表插入值后,可以关联表查询记录。比如:查询教师编号为1的教师所带的课程编号、教师姓名、课程名称、课程学分信息,具体如下所示。实现了查询编号为1的老师所带的课程编号、课程名称等信息。在查询时,为表命名别名时为了方便,各个表的连接通过主键外键约束来实现。
查看t_course及t_selcourse中的值
五、实验结果与分析
实验结果如上截图所示。
六、讨论、心得
grant select不支持对表中选定的几列授权,只能将整个表的select权限授权出去。所以实验中先建立了基于选课信息表的视图SelectiveInfo1,视图中包含成绩列,学号列以及班级列(不包含其他的列)再将对视图SelectiveInfo1的select权限授予角色teacher。
不同的用户可以创建相同的表格,teacher用户创建了table1,student用户也创建了table1,且这两个表格式完全相同的,那么其他用户需要用这两个表格时,可以用teacher.table1和student.table1加以区分。
实验中遇到的问题可以上网百度,网上资源很丰富。
第三篇:学生成绩管理系统
//*学生成绩管理系统*//
#include
#define N 3
struct student
{
int no;
char name[20];
float english;
float computer;
float math;
float average;
};
void getclass(struct student *class_gishui)
{
int i;
printf(“请输入%d个学生的学号 姓名 英语 计算机 数学n”,N);
for(i=0;i { printf(“第%d个学生”,i+1); scanf(“%d%s%f%f%f”,&class_gishui[i].no,&class_gishui[i].name,&class_gishui[i].english,&class_gishui[i].computer,&class_gishui[i].math); } } void print_class(struct student *class_gishui) { int i; for(i=0;i { class_gishui[i].average=(class_gishui[i].english+class_gishui[i].computer+class_gishui[i].math)/3; } printf(“学生信息表如下:n”); printf(“学号tt姓名tt英语tt计算机tt数学tt平均成绩n”); for(i=0;i printf(“%dtt%stt%ft%ft%ft%fn”,class_gishui[i].no,class_gishui[i].name,class_gishui[i].english,class_gishui[i].computer,class_gishui[i].math,class_gishui[i].average); } void paixu(struct student *class_gishui) { int i,j,flag; struct student t[1]; for(i=0;(i { flag=0; for(j=0;j if(class_gishui[j].average>class_gishui[j+1].average) { t[0]=class_gishui[j]; class_gishui[j]=class_gishui[j+1]; class_gishui[j+1]=t[0]; flag=1; } if(flag==0) break; } printf(“排序后学生成绩为:n”); printf(“学号t姓名t英语tt计算机tt数学tt平均成绩n”); for(i=0;i printf(“%dt%st%ft%ft%ft%fn”,class_gishui[i].no,class_gishui[i].name,class_gishui[i].english,class_gishui[i].computer,class_gishui[i].math,class_gishui[i].average); } void main() { struct student class_gishui[N]; getclass(class_gishui); print_class(class_gishui); paixu(class_gishui); } Option Explicit Option Base 1 Dim st()As String Dim grade()As chengji, str1$, str2$, prog()As kecheng Private Sub chengji_Click()' 输出序号、成绩及分数 Cls Dim i% Print str1 For i = LBound(grade)To UBound(grade)Print grade(i).xh;grade(i).xm;Space(4Len(Trim(grade(i).xm)));grade(i).score(1);grade(i).score(2);Spc(5);grade(i).score(3);Spc(8);grade(i).score(4);Spc(8);grade(i).score(5);Spc(4);grade(i).aver Next i End Sub Private Sub kecheng_Click()'在窗口输出课程的内容 Cls Dim i% Print str2 For i = LBound(prog)To UBound(prog)Print prog(i).bh;Spc(12);prog(i).name;Spc(12);prog(i).xf Next i End Sub Private Sub paiming_Click()'利用加权平均分排名 Dim i%, j%, m%, n%, p% Cls Print str1 & “ 加权平均分” & “ 排名” m = LBound(grade): n = UBound(grade)For i = m To n p = 1 For j = 1 To n If grade(i).aver < grade(j).aver Then p = p + 1 grade(i).rank = p Next j Next i For i = m To n Print grade(i).xh;grade(i).xm;Space(4-Len(Trim(grade(i).xm)));grade(i).score(1);grade(i).score(2);Spc(5);grade(i).score(3);Spc(8);grade(i).score(4);Spc(8);grade(i).score(5);Spc(2);grade(i).aver, grade(i).rank Next i End Sub Private Sub pjf_Click()Cls Dim i%, j%, n%, m%, sum% m = UBound(prog): n = UBound(grade)Print str2;Spc(4);“平均分” For i = 1 To 5 sum = 0 For j = 1 To n sum = sum + grade(j).score(i)prog(i).pjf = sum / n Next j Print prog(i).bh;Spc(10);prog(i).name;Spc(10);prog(i).xf;Spc(10);prog(i).pjf Next i End Sub Private Sub renshu_Click()Cls Dim bn(1 To 5, 5 To 9)As Integer, t As Integer, x As Integer, i%, j%, m%, n% n = UBound(prog): m = UBound(grade)Print “范围”;Spc(1);“<60”;Spc(7);“60~70”;Spc(7);“70~80”;Spc(7);“ 80~90”;Spc(7);“90~100” For j = 1 To n For i = 1 To m Select Case grade(i).score(j)Case 0 To 60 bn(j, 5)= bn(j, 5)+ 1 Case 60 To 70 bn(j, 6)= bn(j, 6)+ 1 Case 70 To 80 bn(j, 7)= bn(j, 7)+ 1 Case 80 To 90 bn(j, 8)= bn(j, 8)+ 1 Case 90 To 100 bn(j, 9)= bn(j, 9)+ 1 End Select Next i Print prog(j).name;bn(j, 5), bn(j, 6), bn(j, 7), bn(j, 8), bn(j, 9)Next j End Sub Private Sub bujige_Click()Cls Dim i%, j%, t% Print Spc(2);“学号”;Spc(5);“姓名”;Spc(5);“不及格课程”;Spc(6);“学分”;Spc(4);“成绩” For i = 1 To UBound(grade) t = 0 For j = 1 To UBound(prog) If grade(i).score(j)< 60 Then t = t + 1 End If If t > 1 And grade(i).score(j)< 60 Then Print Tab(25);prog(j).name;Tab(38);Format(prog(j).xf, “0.0”);Spc(2);grade(i).score(j) ElseIf t = 1 And grade(i).score(j)< 60 Then Print Spc(3);grade(i).xh;grade(i).xm;Tab(25);prog(j).name;Tab(38);Format(prog(j).xf, “0.0”);Spc(4);grade(i).score(j) End If Next j Next i End Sub Private Sub youdengsheng_Click()Cls Dim i%, j%, t% Print Tab(3);“学号”;Spc(6);“姓名”;Spc(4);“英语”;Spc(4);“数学”;Spc(4);“VB”;Spc(3);“物理”;Spc(3);“专业概论”;Spc(3);“平均成绩”;Spc(3);“名次” For i = 1 To UBound(grade) t = 0 For j = 1 To UBound(prog) If grade(i).score(j)>= 95 Then t = t + 1 End If Next j If grade(i).aver >= 90 Or grade(i).rank <= 3 Or(t = 2 And grade(i).aver >= 85)Then Print Tab(3);grade(i).xh;Tab(13);grade(i).xm;Tab(21);grade(i).score(1);Spc(3);grade(i).score(2);Spc(3);grade(i).score(3);Spc(3);grade(i).score(4);Spc(3);grade(i).score(5);Spc(8);Format(grade(i).aver, “0.00”);Spc(5);grade(i).rank End If Next i End Sub Private Sub chengjitiao_click()Cls Dim i% For i = LBound(grade)To UBound(grade)Print “学号”;Spc(6);“姓名”;Spc(8);“英语”;Spc(6);“数学”;Spc(4);“体育”;Spc(6);“物理”;Spc(5);“化学”;Spc(6);“加权平均分”;Spc(5);“平均分”;Spc(5);“名次” Print Spc(2);grade(i).xh;grade(i).xm;Spc(0);grade(i).score(1);Spc(5);grade(i).score(2);Spc(5);grade(i).score(3);Spc(5);grade(i).score(4);Spc(5);grade(i).score(5);Spc(9);grade(i).aver;Spc(7);grade(i).aver;Spc(5);grade(i).rank Next i End Sub 目录 目 录 摘要.......................................................................................错误!未定义书签。Abstract....................................................................................错误!未定义书签。目 录..........................................................................................................................Ⅲ 第一章 引言............................................................................错误!未定义书签。 1.1 课题的背景..................................................................错误!未定义书签。1.2 课题研究的内容.............................................................................................1 1.2.1 课题来源...............................................................................................1 1.2.2 课题的意义...........................................................................................2 1.2.3 系统开发的可行性分析和预期目标...................................................2 第二章 关键技术分析............................................................................................5 2.1 Microsoft Visual Studio 2005...........................................................................5 2.2 C#.NET简介....................................................................................................5 2.3 ADO.NET对象................................................................................................6 2.4 使用SQL Sever 2000 实现关系型数据库....................................................7 2.4.1 SQL Server 2000数据库.......................................................................7 2.4.2 SQL Server 2000的主要功能...............................................................8 2.4.3 客户端应用程序开发.........................................................................10 2.4.4 服务器应用程序开发.........................................................................11 第三章 系统设计与分析.....................................................................................13 3.1 需求分析.......................................................................................................13 3.2 系统总体设计原则.......................................................................................13 3.3 系统业务流程图...........................................................................................15 第四章 数据库设计..............................................................................................17 4.1 系统功能描述...............................................................................................17 4.2 功能模块划分...............................................................................................18 4.3 系统数据库的组成.......................................................................................19 4.3.1系统的实体关系模型..........................................................................19 4.3.2 数据库的具体设计.............................................................................20 4.4 系统安全性设计...........................................................................................22 4.4.1 系统安全性构成.................................................................................22 4.4.2 系统安全性设计.................................................................................23 III 目录 第五章 各功能模块的设计与实现....................................................................24 5.1 登陆界面。...................................................................................................24 5.2 主窗体页面。...............................................................................................27 5.3 管理员模块设计...........................................................................................28 5.3.1 管理员权限设计.................................................................................28 5.3.2 学生成绩管理.....................................................................................30 5.4 教师模块设计………………………………………………………………33 5.4.1 教师权限设计.....................................................................................33 5.4.2 学生成绩管理页面.............................................................................34 5.4.3 学生成绩查询页面.............................................................................38 5.5 学生模块设计..............................................................错误!未定义书签。 5.5.1学生权限设计.....................................................错误!未定义书签。5.5.2学生成绩查询.....................................................错误!未定义书签。5.6 系统管理.......................................................................................................39 5.7.1密码修改页面......................................................................................39 5.7.2密码修改代码......................................................................................40 结 论........................................................................................................................43 参考文献....................................................................................................................44 致 谢........................................................................................................................45 IV第四篇:简易学生成绩管理系统
第五篇:毕业设计 学生成绩管理系统