《管理信息系统课程设计---学生成绩管理系统(1).doc》由会员分享,可在线阅读,更多相关《管理信息系统课程设计---学生成绩管理系统(1).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、?管理信息系统?课程设计报告选 题:学生成绩管理系统 班 级: 姓名学号:目录一、 前言2二、 系统分析3(一) 可行性分析3333(二) 组织构造图444(三) 业务流程图5(四) 数据流程图和数据字典668三、 系统设计10(一) 模块构造体系1010111112121数据库概要设计122数据库详细设计13二代码设计13三输入/输出设计 20四、体会和收获20五、课程设计小组分工21 学生成绩管理信息系统一、 前言学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要局部,它的内容对于学校的决策者和管理者来说都至关重要。目前各个高校的根本情况是:每
2、次考试完毕,教师们都要统计大量的学生成绩,这些数据的归档、统计工作任务重,统计完毕后往往错误百出。工作量之大,查阅,维护都有不同程度的问题存在。所以,学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生根本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。如果一个学校没有一个完善的成绩管理平台,计算机的使用就没有真正发挥有效的作用。随着计算机应用的普及与深入,利用计算机能够对所有考试成绩进展统一管理,进展分析,大大减少了工作量,提高了工作效率,为教学办公带来了极大的方便。本系统开发的总体任务是实现学生成绩管理的系统化、标准化、自动化。到达提
3、高学生成绩管理效率的目的。与传统管理方法相比有明显的优点:查找方便,可靠性高,保密性好,本钱低。彻底改变了以前繁杂的管理模式,实现全面的、相对集中的、职能化的信息综合管理。计算机被用到信息管理系统的环境正是适应了当今时代飞速开展的信息时代。人们深刻的认识到了计算机功能的强大,对于复杂的信息管理,计算机充分发挥着它的优越性。检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、本钱低,这些优点极大地减轻了学院教学人员的工作量,缩小开支,提高了学生档案管理的效率和准确性,能够合理的安排时间,学生能够尽快的知道自己的考试成绩。同时,学生管理系统的应用也为今天的教育在未来市场的竞争力有所提高。对于
4、一个学校而言,学生成绩管理是一项非常繁琐和复杂的工作,工作量大,不好管理。为了适应时代的开展,提高工作效率尤为重要。学生成绩管理系统的改良更好的利用了现代高科技,对学生负责,对本校未来的开展负责,对整个中国教育的负责,是真正朝向未来教育开展的顺应潮流的进步。二、 系统分析(一) 可行性性分析1.管理上的可行性:主要是教务处管理人员的大力支持,系领导认同,现有的管理制度和方法科学,规章制度齐全,原始数据正确等。规章制度和管理方法系统的建立提供了制度保障。2.技术上的可行性:技术的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户提出的要求。此外还要考虑开发人员的水平,在数据库方面要对管理模式
5、比拟熟悉。我们学习过数据库和管理信息系统课程设计的相关课程,有能力编写学生成绩管理系统这种不算太难的程序。使用VB作为系统开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。而且由于有指导教师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此几乎可以实现。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都是满足的,因此,它在技术上是可行的。3.经济上的可行性:现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开
6、发,也在一定程度上为学校的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。这是个超小的管理系统,从投入的人力,财力与物力来讲是非常之小的,只要一台电脑,一台打印机,这个系统就可以搞起来,考虑到学校里有电脑,现只要购置一台打印机就可以了。从节省人力方面,可以让管理人员从繁冗复杂的工作中解脱出来,做更多的工作,可以给教学管理提高一个层次。具体有以下几个方面:1本系统只需要一台计算机;2本系统的运行可以节省许多资源;3本系统的运行可以大大的提高学校的工作效率;4本系统可以敏感文档更加平安,等等。(二)
7、 组织构造图总控模块管理有三种不同的信息的处理模块,即管理员模块、教师模块、学生模块,各模块的主要功能有:1系统管理员进入学生成绩管理的主要功能:实现管理员用户的添加、修改和删除,以及对教师添加、教师修改、教师删除、教师查询、学生添加、学生修改、学生删除、学生查询等根本功能,并且参与开设课程、选择课程的管理,安排教师的任课和学生的选课工作。2教师进入学生成绩管理系统的主要功能:各科教师登录系统后查询和修改个人信息,修改自己的账号密码,查询自己的授课课程,实现对选修了自己课程的学生的成绩进展查询、录入和修改,各科教师可以对自己学生选修课程完毕后给予分数,同时可以对自己所带课程的成绩优秀人数、及格
8、人数、不及格人数的分布信息进展查询。3学生进入学生成绩管理系统的主要功能:每个学生登录后可以查询和修改个人信息、修改自己的账号密码,以及自己所选任课教师的个人信息,同时在课程完毕后可以查询在校期间各个时间段选修课程的成绩与学分,以及对单科成绩和总分的排名查询。2.具体的组织机构图如图1所示:图1 组织构造图(三) 业务流程图经调查之后,结合现行管理模式,为开发本系统而绘制出的学生成绩管理业务流程图。如图2所示:图2 业务流程图(四) 数据流程图和数据字典系统的数据流程图如图3、图4所示:图3 学生成绩管理数据流程图顶层图图4 学生成绩管理数据流程图展开图1数据流的描述数据流 表1 数据字典一
9、No:_编号: B01 名称:成绩单 简述:开出的成绩表单组成:成绩表编号+科目+成绩代码+学生人数+学生姓名+班级+学号+性别+成绩+教务处假设为数据流来源:教务处去向:成绩单审核模块峰值流量:约3050名/日填表人_ 年 月 日 2处理逻辑的描述处 理 表2 数据字典二 No:_编号:E01 名称:成绩单审核 输入信息:成绩单输出信息:成绩通过、补考 简要说明:审核成绩单是否全部输入出错处理:审查成绩单填写格式是否符合要求,姓名与成绩填写是否一致等。执行频率:30个/日 填表人_ 年 月 日 3数据存储数据存储 表3 数据字典三 No:_编号:G01 名称:学生成绩 简述:记录学生考试的成
10、绩表单组成:科目+成绩代码+学生姓名+学生人数+学号+性别关键字:科目+成绩代码相关处理:E01填表人_ 年 月 日4外部实体外部实体 表4 数据字典四 No:_编号:H01 名称:学院 简述:学生考试成绩输入的数据流:B03输出的数据流:B01 填表人_ 年 月 日5数据项数据项 表5 数据字典五 No:_编号:I0201 名称:学生编号 别名:学生编码简述:某学生代码连续值类型C,N:字符型宽度:4位取值范围:“0001“9999填表人_ 年 月 日6数据构造数据构造 表6 数据字典六 No:_编号:D0301 名称:学生成绩单 别名:简述:用户所填用户情况及成绩要求等信息组成:DSA03
11、02+DS0303+DS0304填表人_ 年 月 日三、 系统设计(一) 模块构造体系1. 功能模块图5 功能模块图1用户管理和班级管理:通过验证用户的使用权限及进展数据的导入、导出工作。对班级的管理。2学生信息设置对与学生相关信息的录入。3课程与成绩设置:各门课程所属学院及相关学分设置。学生成绩的录入。4成绩查询与统计:按要求查询成绩。进展图表的统计。成绩审核业务,就单据格式是否标准和填写数据是否与实务数量相符的审核在系统中仍由人工完成,对成绩单上填写的学生人数量大于实际学生成绩数量的情况可在成绩录入过程中自动审核,并拒绝该成绩单。数据录入模块用于录入学生名单和成绩单,它是高校学生成绩管理系
12、统的根本数据输入的模块,他根据各科教师送来的成绩单,记录各学生的每人成绩数据。为方便学校各级管理人员及时了解、掌握各学院的学生成绩,新系统特别设计了数据查询模块,并提供多种查询功能,每学期、各学院的查询等。报表输出模块可以完成系统所需的各种报表的计算和打印输出功能,可输出“学生成绩表等。为了统一产品的品种及其特性,方便数据输入。特设计了产品代码、产品名称及其特性对照表。系统中设计代码维护模块的目的是当产品代码或特性变动时及时修改代码表,可对代码表进展增加、删除和修改等处理。图6 系统维护内部模块图4.系统流程图图7 系统流程图1数据库概要设计 本系统的数据库主要有“学生、“班级、“课程、“教师
13、等。其中教师与课程系统存在授课联系,并且一个教师可以授N门课程,即教师与课程是一对多的关系。一个学生可以学习N们课程,一门课程可以有M个学生学习,即学生与课程是多对多的关系。整个数据库可以用一个E-R图表示。如图8所示:图8 系统E-R图2数据库详细设计 该系统子系统分为学生系统、班级系统、课程系统、学生-课程系统、用户信息系统。二代码设计新系统为每个学生设计了代码,一方面可统一学生的成绩管理,另一方面是为了方便数据输入。产品代码为两位数字字符,采用的是顺序码构造。在系统运行过程中,但凡需要输入某种产品时,只需输入产品代码即可,系统可根据学生代码、成绩表单、自动将相应的学生姓名和成绩等信息调出
14、来,而且代码表显示在输入/输出窗口中,用户不一定要记住学生的代码,可随时通过系统联机查询。 #include /*引用库函数*/ #include #include #include typedef struct /*定义构造体数组*/ char num10; /*学号*/ char name20; /*姓名*/ int score; /*成绩*/ Student; Student stu80; /*构造体数组变量*/ int menu_select() /*菜单函数*/ char c; do system(cls); /*运行前清屏*/ printf(tt*Students Grade Ma
15、nagement System*n); /*菜单项选择择*/ printf(tt | 1. Input Records |n); printf(tt | 2. Display All Records |n); printf(tt | 3. Sort |n); printf(tt | 4. Insert a Record |n); printf(tt | 5. Delete a Record |n); printf(tt | 6. Query |n); printf(tt | 7. Statistic |n); printf(tt | 8. Add Records from a Text Fil
16、e|n); printf(tt | 9. Write to a Text file |n); printf(tt | 0. Quit |n); printf(tt*n); printf(tttGive your Choice(0-9):); c=getchar();/*读入选择*/ while(c9); return(c-0); /*返回选择*/ int Input(Student stud,int n) /*输入假设干条记录*/ int i=0; char sign,x10; /*x10为去除多余的数据所用*/ while(sign!=n&sign!=N) /*判断*/ printf(ttt
17、students num:); /*交互输入*/ scanf(ttt%s,studn+i.num); printf(tttstudents name:); scanf(ttt%s,studn+i.name); printf(tttstudents score:); scanf(ttt%d,&studn+i.score); gets(x); /*去除多余的输入*/ printf(tttany more records?(Y/N); scanf(ttt%c,&sign); /*输入判断*/ i+; return(n+i); void Display(Student stud,int n) /*显示
18、所有记录*/ int i; printf(ttt-n); /*格式头*/ printf(tttnumber name scoren); printf(ttt-n); for(i=1;i1&i%10=0) /*每十个暂停*/ printf(ttt-n); /*格式*/ printf(ttt); system(pause); printf(ttt-n); printf(ttt); system(pause); void Sort_by_num(Student stud,int n) /*按学号排序*/ int i,j,*p,*q,s; char t10; for(i=0;in-1;i+) /*冒泡
19、法排序*/ for(j=0;j0) strcpy(t,studj+1.num); strcpy(studj+1.num,studj.num); strcpy(studj.num,t); strcpy(t,studj+1.name); strcpy(studj+1.name,studj.name); strcpy(studj.name,t); p=&studj+1.score; q=&studj.score; s=*p; *p=*q; *q=s; int Insert_a_record(Student stud,int n) /*插入一条记录*/ char x10; /*去除多余输入所用*/ p
20、rintf(tttstudents num:); /*交互式输入*/ scanf(ttt%s,studn.num); printf(tttstudents name:); scanf(ttt%s,studn.name); printf(tttstudents score:); scanf(ttt%d,&studn.score); gets(x); n+; Sort_by_num(stud,n); /*调用排序函数*/ printf(tttInsert Successed!n); /*返回成功信息*/ return(n); int Delete_a_record(Student stud,int
21、 n) /*按姓名查找,删除一条记录*/ char s20; int i=0,j; printf(ttttell me his(her) name:); /*交互式问寻*/ scanf(%s,s); while(strcmp(studi.name,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(tttnot find!n); /*返回失败信息*/ return(n); for(j=i;jn-1;j+) /*删除操作*/ strcpy(studj.num,studj+1.num); strcpy(studj.name,studj+1.name); studj.scor
22、e=studj+1.score; printf(tttDelete Successed!n); /*返回成功信息*/ return(n-1); void Query_a_record(Student stud,int n) /*查找并显示一个记录*/ char s20; int i=0; printf(tttinput his(her) name:); /*交互式输入*/ scanf(ttt%s,s); while(strcmp(studi.name,s)!=0&in) i+; /*查找判断*/ if(i=n) printf(tttnot find!n); /*输入失败信息*/ return;
23、 printf(ttthis(her) number:%sn,studi.num); /*输出该学生信息*/ printf(ttthis(her) score:%dn,studi.score); void Statistic(Student stud,int n) /*新增功能,输出统计信息*/ int i,j=0,k=0,sum=0; float aver; /*成绩平均值*/ for(i=0;istudi.score) j=i; if(studk.scorestudi.score) k=i; aver=1.0*sum/n; printf(tttthere are %d records.n,
24、n); /*总共记录数*/ printf(tttthe hignest score:n); /*最高分*/ printf(tttnumber:%s name:%s score:%dn,studj.num,studj.name,studj.score); printf(tttthe lowest score:n); /*最低分*/ printf(tttnumber:%s name:%s score:%dn,studk.num,studk.name,studk.score); printf(tttthe average score is %5.2fn,aver); /*平均分*/ int Addf
25、romText(Student stud,int n) /*从文件中读入数据*/ int i=0,num; FILE *fp; /*定义文件指针*/ char 20; /*定义文件名*/ printf(tttInput the :); scanf(ttt%s,); /*输入文件名*/ if(fp=fopen(,rb)=NULL) /*翻开文件*/ printf(tttcannt open the filen); /*翻开失败信息*/ printf(ttt); system(pause); return(n); fscanf(fp,%d,&num); /*读入总记录量*/ while(inum)
26、 /*循环读入数据*/ fscanf(fp,%s%s%d,studn+i.num,studn+i.name,&studn+i.score); i+; n+=num; fclose(fp); /*关闭文件*/ printf(tttSuccessed!n); printf(ttt); system(pause); return(n); void WritetoText(Student stud,int n) /*将所有记录写入文件*/ int i=0; FILE *fp; /*定义文件指针*/ char 20; /*定义文件名*/ printf(tttWrite Records to a Text
27、 Filen); /*输入文件名*/ printf(tttInput the :); scanf(ttt%s,); if(fp=fopen(,w)=NULL) /*翻开文件*/ printf(tttcannt open the filen); system(pause); return; fprintf(fp,%dn,n); /*循环写入数据*/ while(in) fprintf(fp,%-16s%-15s%dn,studi.num,studi.name,studi.score); i+; fclose(fp); /*关闭文件*/ printf(Successed!n); /*返回成功信息*
28、/ void main() /*主函数*/ int n=0; for(;) switch(menu_select() /*选择判断*/ case 1: printf(tttInput Recordsn); /*输入假设干条记录*/ n=Input(stu,n); break; case 2: printf(tttDisplay All Recordsn); /*显示所有记录*/ Display(stu,n); break; case 3: printf(tttSortn); Sort_by_num(stu,n); /*按学号排序*/ printf(tttSort Suceessed!n); p
29、rintf(ttt); system(pause); break; case 4: printf(tttInsert a Recordn); n=Insert_a_record(stu,n); /*插入一条记录*/ printf(ttt); system(pause); break; case 5: printf(tttDelete a Recordn); n=Delete_a_record(stu,n); /*按姓名查找,删除一条记录*/ printf(ttt); system(pause); break; case 6: printf(tttQueryn); Query_a_record(
30、stu,n); /*查找并显示一个记录*/ printf(ttt); system(pause); break; case 7: printf(tttStatisticn); Statistic(stu,n); /*新增功能,输出统计信息*/ printf(ttt); system(pause); break; case 8: printf(tttAdd Records from a Text Filen); n=AddfromText(stu,n); /*新增功能,输出统计信息*/ break; case 9: printf(tttWrite to a Text filen); Writet
31、oText(stu,n); /*循环写入数据*/ printf(ttt); system(pause); break; case 0: printf(tttHave a Good Luck,Bye-bye!n); /*完毕程序*/ printf(ttt); system(pause); exit(0); 三输入/输出设计在系统的输入/输出设计上遵循的是既满足用户需求又方便用户使用的原那么。输入/输出界面确实定都与用户反复沟通,直到用户满意为止。 输入界面的设计不仅考虑数据输入窗口的屏幕格式,而且考虑如何使输入数据的错误率可能的小,为此在程序中参加了对输入数据的校验和判断等功能,如输入数据上下限
32、的设置、与相关数据关系的判断、参考对照表等。例如,在输入和选择学生时,只输入学生代码即可,系统可根据成绩代码、科目及其学生姓名对照表,自动将相应的学生姓名和成绩等信息调出来。当用户输入的学生代码不对时,系统自动转入代码表查询窗口,让用户在窗口中浏览查询选择学生代码,因此用户可不必一定记住每个产品的代码,系统将代码表显示在输入输出窗口旁,用户可随时通过系统联机查询。四、 收获和体会通过这次的课程设计,我们对管理信息系统这门课有了更深入的认识,同时体会最深的是,软件的编写需要一丝不苟的精神和足够的耐心。软件编程工作是辛苦的,每一个细小的环节都是注意的重点,因为稍有不慎,所有的努力就会白费,就会前功
33、尽弃。出现的错误每次都是细微的,因为小小的疏忽,就要花费很长时间去查找,这个过程是痛苦的。由于我们的经历缺乏,只有理论知识而缺乏实践经历,在做的过程中总是反反复复。虽然我们做的速度不快,但是我们的体会逐渐深入,每一次尝试的小小成功都让我们兴奋不已。编写报告的过程,我们各展所长,积极讨论,分工合作,查阅资料,之后又一起画图,一起总结。这次课程设计首先要感谢教师的帮助,我们的成果也许不是最瞩目的,也许还会有缺陷,但每一个过程我们都是经过细心的研讨后不断的尝试。这只是一个简单的软件,只是对管理信息系统最简单的认识,但是应用的过程我们学到的是实际的东西。这是一个学习的过程,是一个总结与沉淀的过程,更是
34、一个团队合作磨练的过程。我们共同讨论,共同尝试。通过这次课程设计使我们深刻了解到管理信息系统的应用以及开发,同时也让我们熟练了各种小软件的应用,更扩展了我们的视野。五、课程设计小组分工:周秋:模块构造体系,其中包括:功能模块图、功能模块说明、系统维护模块图、系统流程图。吴楚、舒畅:前言、系统分析,其中包括:可行性分析、组织构造图、数据字典数据流的描述、处理逻辑的描述、数据存储、外部实体、数据项、数数据构造、体会和收获。罗星、王廷勇:业务流程图、数据流程图顶层图、展开图、数据库概要设计系统E-R图、数据库详细设计学生信息表、班级信息表、课程信息表、学生-课程表、用户信息表、代码设计、输入/输出设计