学生成绩管理系统课程设计报告_第1页
学生成绩管理系统课程设计报告_第2页
学生成绩管理系统课程设计报告_第3页
学生成绩管理系统课程设计报告_第4页
学生成绩管理系统课程设计报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1、 需求与功能分析 32、系统总体框架43、 模块设计与分析 4.4、 类的设计与分析 65、特色算法分析 76、 功能测试107、 存在的不足与对策 138、 程序源代码149、 使用说明23._._.10、 参考文献23121、需求与功能分析(1)需求分析学生成绩管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统 查阅与自己相关信息,查看留言、提交留言。教师可以通过成绩管理系统查阅学生成绩信息,教师信 息,查看教师留言、学生留言、提交留言、留言的管理等相关操作。系统管理员可以实现以上的所有 功能,还有对学生的添加、删除、修改、教师的添加、删除、修改,数据库的备份、

2、数据库的还原等 相关操作。根据开发要求,学生成绩管理系统 主要应用于教育系统,完成对日常的教学、教务、教师以及学 生的计算机化的管理。开发学生成绩管理系统可使学院教职员工减轻工作压力,比较系统地对教务、 教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及 国家各部门关于信息化的步伐,使各项管理更加规范化。目前,学校工作繁杂、资料重多。目前,管 理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系 统。因此,开发一套适和大众的、兼容性好的系统是很有必要的。(2)功能分析“学生成绩管理系统”包括九个模块:输入学生资料,输出学

3、生资料,学生姓名按顺序排列,添加学生资料,按姓名查找,删除该学生资料,查找并显示学生资料,按姓名 查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统。这九个模块既 相互联系乂相互独立。本系统根据学生成绩管理的需要,而建立一个 学生成绩管理系统”,以方便对成绩的 各项管理操作。本系统能对成绩进行输入和输出;能按姓名对学生进行排序,并显示学 生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能添加学生成绩资料;能 根据学生的姓名来查询该学生的成绩资料,并修改或是删除该学生信息;能够从文件中 读取学生信息,并且添加到系统中;能把对系统所进行的操作进行保存,以及时更新系 统中的数据。2

4、、系统总体框架3、模块设计与分析(1) 输入学生资料模块:主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以 对该学生的各科成绩进行录入。该学生各科成绩输入成功后,系统会提示是否继续进行 操作,如果想继续输入学生成绩就输入 y,不想再输入学生成绩的话就输入 n,再输入n 之后,系统返回到主菜单。(2) 输出学生资料模块:主要功能用来对学生的成绩进行输出。在系统已经录入了学生资料成绩的前提下, 使用该功能可以显示所有学生的信息,资料等等。具体包括学生的班级,学号,姓名和 各科成绩。在查看学生的资料,

5、成绩各方面的信息后,按任意键就可以返回到主菜单。(3) 按学生姓名进行排列模块主要功能是用来对学生的资料按姓名进行排序。在系统保存学生资料,成绩的前提下, 使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同 学的资料。(4) 添加学生资料模块主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下,想录 入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信息的话,就 要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。(5) 按姓名查找,删除该学生资料模块主要功能是用来删除学生资料。在系统保存学生资料的前提下,想删除某学生的资料,

6、可以输入学生姓名,系统查找该学生资料后,就可以删除了。由于学生辍学,毕业等原 因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化(6) 查找并显示学生资料模块主要功能是用来查找学生资料。在系统保存了某学生资料的前提下,想要查找该学生 资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息(7) 按姓名查找,修改学生资料模块主要功能是用来修改学生资料。在系统保存了某学生资料的前提下,想要查找该学生 资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以 修改该学生的资料,成绩等信息。(8) 从文件中读入数据模块主要功能是用来从文件中读入学生数据。由

7、丁一些资料可以用Word文档或Excel表格输入,故在此模块中增加了导入数据的功能。这样就方便很多,不用把学生资料一个 一个添加,节省了很多时间精力。(9) 储存学生资料并退出系统模块主要功能是用来储存学生资料。在对系统进行一系列操作,比如添加、删除、修改 学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。4、类的设计与分析Student类类图typedef class(public:char num10;char cla10;char name20;char byyl10;char jsjzc20;char sjk10;char jsjyy20;Student;表1 St

8、udent类说明表名称属性说明num数据成员:说明学生学号cla数据成员说明学生班级name数据成员说明学生名字byyi数据成员说明学生编译原理成绩jsjzc数据成员说明学生计算机组成成绩sjk数据成员说明学生数据库成绩jsjyy数据成员说明学生计算机英语成绩5、特色算法分析功育E:定义菜单函数,通过输出函数显示系统功能。利用 switch语句实现多分支 选择结构。算法思路:switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个 case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇br

9、eak语句就 退出switch语句。流程图:yescase=1case=2nocase=3nocase=4case=5case=6case=7case=8case=0yesyesyesyes输入学生 资料输出学生 资料按学生姓名进行排列添加学生 资料按姓名查找,删除该学生资 料查找并显示 学生资料按姓名查找,修改学生资料yes从文件中读入数据储存学生资料并退出系统代码:void main()主函数调用。int n=0;for(;)switch(menu()case 1:cout«setw(15)«""«"输入学生资料"

10、71;endl;n=lnput(stu,n);break;case 2:cout«setw(15)«""«"输出所有学生资料"«endl;Display(stu,n);break;case 3:cout«setw(15)«""«"按姓名排序"«endl;Sort(stu,n);cout«setw(15)«"system("pause");break;case 4:cout«se

11、tw(15)«""«"插入学生资料"«endl;n=lnsert(stu,n);cout«setw(15)«"system("pause");break;case 5:cout«setw(15)«""«"删除学生资料"«endl;cout«setw(15)«""«"输入他(她)的姓名:"n=Delete(stu,n);cout&

12、#171;setw(15)«"system("pause");break;case 6:cout«setw(15)«""«"查找学生"«endl;Query(stu,n);cout«setw(15)«"system("pause");break;case 7:cout«setw(15)«""«"修改学生资料"«endl;cout<<se

13、tw(15)<<" "<<"输入你要修改的学生的姓名:" n=Xiugai(stu,n);system("pause");break;case 8:cout<<setw(15)<<" "<<"从文件中读入数据"<<endl;n=AddfromText(stu,n);break;case 0:cout<<setw(15)<<" "<<"将所有资料写入文件&quo

14、t;<<endl;WritetoText(stu,n);cout<<setw(15)<<""system("pause");break;6、功能测试欢迎使用本学生成绩管理系统I I:纪欣吉jCKNMXXXN X X K XK < K 牛 成壬甲 系兰开K* X N X M X X Ji X X Jt Jtj< j< X *123 4 56-780料料 资资 生生 学学 该料深 删生修数用 料,学,入料 暮名曷示找读资 生生姓生查显查是 忘荏学名并名件学 入出学加姓苞文存歹 br 行=请选择 <0

15、-10>:图1学生成绩管理系统主菜单页面-=1+1还有要输:语:1B 息吗?<9/n>_ii图二为输入学生资料模块=请选择 <0-10>=2=输出所有学生资料-班级 学号 姓名编译原理 计算机组成原理 数据库计算机英语1111111一请按任意键继续-.-_图三为输出学生资料模块3缉 此 > -O-H -8序,键 E驾意 择名成任 选姓黑图四按学生姓名进行排列模块4>:料*<0生择学:1:1:1原机库机成任 选入窖方名入按 矗班学姓编釜基请Jt-lr 续1 世 语*键 理组:1勤功意日二 理 原 :1成图五为添加学生资料模块请选择0-10:5删除学

16、生资料葡入他1她)的姓名“ 普前信息己删除成功? 请技任惹键继续-图六为按姓名查找,删除该学生资料模块30卖:1继 语键 <01理组:1英意 择他:1原机库枝 能找A1号:s 原 :1成图七为查找并显示学生资料模块AHH f生功生荡学:1:?物 理 t- 0>改删改 原:1助 T修己修:1成语明 <0要息要 理组:1英录成 择你信你:1:1:1原机库机记完 选受前入警可名算入改 蓦曹费学姓编美iW清按任意键继续图八为按姓名查找,修改学生资料模块图九 为从文件中读入数据模块件 绽 文 系 :0入件 出 跆写文:1退 T艾名fs是系 择肩文成定出回 选所资入入确退返图十为储存学生

17、资料并退出系统模块7、存在的不足与对策本学生成绩管理系统由九个模块组成,每个模块相互联系又相互独立。 这个学生成绩管理系统存在着很多不足之处,由于白己本身编程能力的问 题,这个系统可以实现的功能非常有限。只能实现学生管理系统最基本的功 能,可以进行简单的输入、输出学生资料,查询和修改学生信息,能直接从 文件中读入数据,能对系统所作的修改、操作进行保存等。而且在每个模块 也有不足的地方,比如在输入学生资料时,对每个信息项没有严格的规定, 可以输入任何的字符。同时有些模块还不能实现本应该有的功能,这有待以 后努力,争能够实现该有的功能。在21世纪的科技时代,科学技术突飞猛进,计算机已经不仅是在科技

18、 上应用,而且在生活中也是同样得到了广泛在应用。如今,不管是小学、初 中、高中、甚至是很多大学生的学生成绩管理基本上是靠人工进行管理,但 随着时间的变化,学校规模的扩大,有关学生成绩管理工作和所涉及到的数 据量越来越大越来越多,大多数学校不得不靠增加人力、物力、财力来进行 学生成绩管理。但是人工管理成绩档案具有效率低、查找麻烦、可靠性不高、 保密性低等因素。因此开发出一个不仅仅是适用于大中专院校以及其它高校 通用的学生成绩管理系统是必要的。开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步 提高了办学效益和现代化水平。为广大教师和学生提高工作效率,实现学生 成绩信息管理工作流程的系

19、统化、规范化和白动化。现在我国的大中专院校 的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础 上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量 的人力物力,也存在着许多不足的因素。在今天信息时代这种传统的管理方 法必然会被计算机为基础的信息管理系统所代替。一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录 入员即可操作系统,节省大量人力,可以迅速查到所需信息、高效、安全, 学生在能方便的查看白己的成绩。8、程序源代码#include<iostream>#include<stdio.h>#includ

20、e<ctype.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<iomanip>using namespace std;typedef classpublic: char num10; char cla10;char name20;char byyl10;char jsjzc20;char sjk10;char jsjyy20;Student;Student stu80; int menu() char c;for(;c<'0'|c

21、>'8') system("cls");欢迎使用本学生成绩管理系统! !cout<<" "<<endl;cout<<"编程人员:纪欣吉cout<<endl;cout<<">*cout<<setw(32)<<" "<<”1.cout<<setw(32)<<" "<<”2.cout<<setw(32)<<"

22、"<<"3.cout<<setw(32)<<" "<<"4.cout<<setw(32)<<" "<<"5.cout<<setw(32)<<" "<<"6.cout<<setw(32)<<" "<<"7.cout<<setw(32)<<" "<<&

23、quot;8.cout<<setw(32)<<" "<<"0.* "<<endl;输入学生资料"<<endl;输出学生资料"<<endl;按学生姓名进行排歹0 ”<<endl;添加学生资料"<<endl;按姓名查找,删除该学生资料"<<endl;查找并显示学生资料"<<endl;按姓名查找,修改该学生资料"<<endl;从文件中读入数据"<<e

24、ndl;储存学生资料并退出系统"<<endl;cout<<setfill('=')<<setw(48)<<"="<<endl;cout<<setw(15)<<""cout<<"请选择(0-8):”;c=getchar();return(c-'0');int Input(Student stud,int n) /输入数据。int i=0;char sign,x10;for(;sign != 'n'

25、; && sign != 'N')cout«setw(15)«""«" cin»studn+i.cla;cout«setw(15)«""«" cin»studn+i.num;cout«setw(15)«""«" cin»studn+;cout«setw(15)«""«" cin

26、7;studn+i.byyl;编译原理:"cout«setw(15)«""«" cin»studn+i.jsjzc;计算机组成原理:"cout«setw(15)«""«" cin»studn+i.sjk;cout«setw(15)«""«" cin»studn+i.jsjyy;计算机英语:"gets(x);cout«setw(10)«&q

27、uot;cout«"还有要输入的信息吗?(y/n)"cin»&sign;i+;return(n+i);void Display(Student stud, int n) /输出数据。inti;cout«setw(15)«" "«setfill('-,)«setw(65)«"-"«endl;cout«setw(15)«" ”vv”班级学号姓名编译原理计算机组成原理数据库计算机英 语"«endl

28、;cout«setw(15)«"cout«setfill(,-,)«setw(65)«"-"«endl;for(i=1;i<n+1;i+)(printf("tt%-9s%-9s%-9s%-9s%-9s%-9s%-9sn",studi-1.cla,studi-1.num,,studi-1.byyl,studi-1.jsjzc,studi-1.sjk,studi-1.jsjyy);if(i>1 && i%10=0)(cout<<

29、;setw(15)<<" "<<setfill('-')<<setw(35)<<"-"<<endl;cout<<setw(15)<<""system("pause");cout<<setw(15)<<" "<<setfill('-')<<setw(35)<<"-"<<endl;cout<

30、;<setw(15)<<""system("pause");void Sort(Student stud,int n) /按名字排序。(int i,j;char t20;for(i=0;i<n-1;i+)for(j=0;j<n-1-i;j+)if(strcmp(studj.num,studj+1.num)>0)(strcpy(t,studj+1.cla);strcpy(studj+1.cla,studj.cla);strcpy(studj.cla,t);strcpy(t,studj+1.num);strcpy(stud

31、j+1.num,studj.num);strcpy(studj.num,t);strcpy(t,studj+1.name);strcpy(studj+1.name,);strcpy(,t);strcpy(t,studj+1.byyl);strcpy(studj+1.name,studj.byyl);strcpy(studj.byyl,t);strcpy(t,studj+1.jsjzc);strcpy(studj+1.name,studj.jsjzc);strcpy (stud j .jsjzc,t);strcpy(t,studj+1.sjk);strcp

32、y(studj+1.name,studj.sjk);strcpy(studj.sjk,t);strcpy(t,studj+1.jsjyy);strcpy(studj+1 . name, stud j .jsjyy);strcpy(studj.jsjyy,t);cout«setw(15)«""«"排序成功!"«endl;插入一条学生信息int lnsert(Student stud,int n) / char x10;cout«setw(15)«""«"班级

33、:"cin»studn.cla;cout«setw(15)«""«"学号:"cin»studn.num;cout«setw(15)«""«" 姓名:"cin»;cout«setw(15)«""«" cin»studn.byyl;cout«setw(15)«""«" ci

34、n»studn.jsjzc;cout«setw(15)«""«" cin»studn.sjk;cout«setw(15)«""«" cin»studn jsjyy;gets(x);n+;编译原理:"计算机组成原理:"数据库:"计算机英语:"插入成功!"«endl;cout«setw(15)«""«" return (n);int

35、 Delete(Student stud,int n) /按名字查找信息,删除信息。(char s20;int i=0,j;cin>>s;while(strcmp(,s)!=0&&i<n) i+; /*查找判断 */if(i=n)(printf("ttt没有发现该学生资料!n"); /*返回失败信息*/return(n);for(j=i;j<n-1;j+) /* 删除操作 */(strcpy(studj.num,studj+1.num);strcpy(,studj+1.name);strcpy(

36、studj.cla,studj+1.cla);strcpy(studj.byyl,studj+1.byyl);strcpy(studj.jsjzc,studj+1.jsjzc);strcpy(studj.sjk,studj+1.sjk);strcpy(studj.jsjyy,studj+1.jsjyy);cout<<setw(15)<<" "<<"当前信息已删除成功!"<<endl; /* 返回成功信息*/return(n-1);void Query(Student stud,int n) /按名字查找信息

37、(char s20;int i=0;cout<<setw(15)<<" "<<"输入他(她)的姓名:";cin>>s;while(strcmp(,s)!=0&&i<n)i+; /* 查找判断*/if(i=n)(printf("ttt没有发现该学生资料!n"); /*输入失败信息*/return;cout<<setw(15)<<" "<<"学号:"<<studi

38、.num<<endl;cout<<setw(15)<<" "<<”编译原理:"<<studi.byyl<<endl;cout<<setw(15)<<" "<<" cout<<setw(15)<<" "<<" cout<<setw(15)<<" "<<" 计算机组成原理:"<<s

39、tudi.jsjzc<<endl;数据库:"<<studi.sjk<<endl;计算机英语:"<<studi.jsjyy<<endl;int Xiugai(Student stud,int n) /修改信息。n=Delete(stud,n);cout<<setw(15)<<" "<<"输入你要修改的学生资料"<<endl;n=Insert(stud,n);cout<<setw(15)<<" &q

40、uot;<<"修改完成"<<endl;return(n);int AddfromText(Student stud, int n) /从文件中读入数据。int i=0,num;FILE *fp;char filename20;cout<<setw(15)<<" "<<"输入文件名:"cin>>filename;if(fp=fopen(filename,"rb")=NULL)cout<<setw(15)<<" &

41、quot;<<"无法打开文件"<<endl;cout<<setw(15)<<""system("pause");return(n);fscanf(fp,"%d",&num);for(;i<num;)fscanf(fp,"%s%s%s%s%s%s%s",studn+i.cla,studn+i.num,studn+,studn+i.byyl,studn+i.jsjzc,studn+i.sjk,studn+i.jsjyy);i+

42、;n+=num;fclose(fp);cout<<setw(15)<<" "<<"读入成功!"<<endl;cout<<setw(15)<<""system("pause");return(n);void WritetoText(Student stud,int n) /将所有记录写入文件。(int i=0;FILE *fp;char filename20;cout<<setw(15)<<" "<

43、;<"将资料输入文件"<<endl;cout<<setw(15)<<" "<<"输入文件名:";cin>>filename;if(fp=fopen(filename,"w")=NULL)(cout<<setw(15)<<" "<<"无法打开文件"<<endl;system("pause");return;fprintf(fp,"%dn

44、",n);for(;i<n;)( fprintf(fp,"%-6s%-5s%-5s%-5s%-5s%-5s%-5sn",studi.cla,studi.num,,studi.byyl,studi.jsjzc,studi.sjk,studi.jsjyy);i+;fclose(fp);输入成功!"<<endl;cout<<setw(15)<<" "<<" int b;请确定是否退出系统:"<<endl;退出系统"<&l

45、t;endl;返回"<<endl;cout<<setw(15)<<" "<<"cout<<setw(15)<<" "<<"0.cout<<setw(15)<<" "<<"1.cin>>b;if(b=0)谢谢使用! "<<endl;(cout<<setw(15)<<" "<<"cout<<setw(15)<<""system("pause");exit(0);void main() /int n=0;for(;)switch(menu()(case 1: cout«setw(15)«n n=lnput(stu,n);break;case 2: cou

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论