学生成绩信息管理系统

上传人:dg****3 文档编号:70612793 上传时间:2022-04-06 格式:DOC 页数:31 大小:89.50KB
收藏 版权申诉 举报 下载
学生成绩信息管理系统_第1页
第1页 / 共31页
学生成绩信息管理系统_第2页
第2页 / 共31页
学生成绩信息管理系统_第3页
第3页 / 共31页
资源描述:

《学生成绩信息管理系统》由会员分享,可在线阅读,更多相关《学生成绩信息管理系统(31页珍藏版)》请在装配图网上搜索。

1、-*文理学院 信息工程学院软件编程课程设计报告设计题目:学生成绩管理系统课程设计 学生*: 0204140137 专业班级: 物联网工程一班 学生*: *旺阳 学生成绩:指导教师职称:课题工作时间: 2015-11-25 至 2015-12-9 信息工程学院软件编程课程设计任务书学生*旺阳*0204140137专业班级物联网工程一班设计题目学生成绩管理系统设计学生成绩信息包括:学期,*,班别,四门课程成绩(语文、数学、英语和计算机)。主要功能:1 能按学期、按班级完成对学生成绩的录入、修改2 能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表3 能查询学生成绩,不及格科目及学生4

2、 能按班级输出学生的成绩单5 能按班级,按课程,对学生成绩进展排序。指导教师: 日 期:2015年11月25日成绩评定表学生*: *旺阳 *: 0204140137 专业/班级: 物联网工程一班 类别合计分值各项分值评分标准实际得分合计得分备注平时表现1010按时参加设计指导,无违反纪律情况。完成情况3020按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。10能对其设计内容进展详细、完整的介绍,并能就指导教师提出的问题进展正确的答复。报告质量3515报告文字通顺,内容翔实,论述充分、完整,立论正确,构造严谨合理;报告字数符合相关要求,工整规*,整齐划一。5课题背景介绍清楚,综

3、述分析充分。5设计方案合理、可行,论证严谨,逻辑性强,具有说服力。5符号统一;图表完备、符合规*要求。5能对整个设计过程进展全面的总结,得出有价值的结论或结果。辩论情况2510在规定时间内能就所设计的内容进展阐述,言简意明,重点突出,论点正确,条理清晰。15在规定时间内能准确、完整、流利地答复教师所提出的问题。总评成绩: 分 指导教师:签字日 期:年月日. z.-目 录1. 概述11.1课题背景11.2系统功能3 1.3设计要求 42. 概要设计 52.1系统功能模块52.2各模块流程图63. 详细设计83.1 程序中使用的数据构造83.2 函数列表104. 设计结果与分析 125. 总结与体

4、会15参考文献*附录 主要程序代码*. z.-1.1课题背景 随着计算机的普及,计算机在生活中得到越来越多的应用,其中在计算机上运行的各种软件在解决生活中的实际问题中起到重大的作用,而目前在编写应用程序时,c+以其高效及灵活性成为大多数程序设计者的首选,其次对于普通用户者,利用c+语言设计出适用的小型软件对解决生活中的繁琐问题有很大的作用。 在学校或班级,教师经常会对*次考试中的所有学生的成绩进展统计和管理,由于学生数目经常繁多,所以在处理统计学生总成绩和平均成绩时工作会相对繁琐,所以针对这种情况,同时我分析了成绩管理所需要的功能,在利用C+语言及VC+6.0程序运行平台之下,设计一种小型的学

5、生成绩管理系统。1.2系统功能1. 录入2. 修改3. 求总分4. 求平均分5. 查询6. 排序1.3设计要求学生成绩信息包括:学期,*,班别,四门课程成绩(语文、数学、英语和计算机)。主要功能:1 能按学期、按班级完成对学生成绩的录入、修改2 能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表3 能查询学生成绩,不及格科目及学生4 能按班级输出学生的成绩单5 能按班级,按课程,对学生成绩进展排序。要求:使用二进制文件方式存储数据,系统以菜单方式工作第二章概要设计2.1系统功能模块1创立主菜单2实现学生成绩信息录入3实现学生成绩信息查询4实现学生成绩信息修改 一修改*个学生的成绩

6、 (a)按学期查询学生的成绩 b按班级查询学生的成绩 (c)按*查询学生的成绩 (二)查询不及格的科目和学生5实现学生成绩统计 (a)按班级统计学生的总分。(b)按班级统计学生的平均分。6实现学生成绩信息输出7保存学生的成绩信息于文件2.2系统功能流程图第三章 详细设计3.1主要数据构造 typedef struct studentMark int term; int classes; char name10; int number; char se*7; float chinese;float math;float english;float puter; struct studentMar

7、k *ne*t; MARK;这是定义一个构造体,主要包括学期,班级,*,性别,语文成绩,数学成绩,英语成绩,计算机成绩,以及包括一个构造体指针。另外还用了typedef这个关键字。因此,在程序的后面也可以用MARK来定义构造体变量或构造体指针变量。int term; 定义学期,学期只能是第一学期或者第二学期。例如int 1;则表示第一学期。 int classes; 定义班级,班级只能是一班或者二班。 例如 int 2;则是表示定义为二班。 char name10; 定义*,在数组中存放字符串。 例如 char name=“yang;则该学生的*为yang int number; 定义*,例如

8、int 1;则该学生*为1号。 char se*7; 定义姓别,其性别最大长度为7. 例如 char se*=“man;说明该学生为男生。同样可以这样定义女生。 float chinese; 定义语文成绩。float math; 定义数学成绩。float english; 定义英语成绩。float puter; 定义计算机成绩。 struct studentMark *ne*t; 定义一个构造体指针。3.1.1 主函数int main(); 主函数,程序的入口。void m(MARK *head); 主菜单的函数原型,在函数mhead中主要有选择创立学生成绩信息,查询学生成绩信息,修改学生成绩

9、信息,统计学生成绩信息,输出学生成绩信息,存储学生成绩信息于文件,以及退出体统等选项可供用户选择。 MARK *creat(void ); 创立函数的函数原型,在函数creat中用户可以输入初始的学生信息:其中包括学生的学期、班级、*和性别以及学生的语文、数学、英语和计算机等相关信息。3.1.2 查询函数void searchMark(MARK *head); 查询菜单的函数原型,在函数searchMarkhead中用户可以自由选择是查询*一个学生的成绩还是查询不及格学生的成绩。而这通过调用函数searchMarkStusentonehead和函数searchMarkFail(head完成操作

10、。void searchMarkStusentone(MARK *head); 查询*个学生成绩的函数原型,在函数searchMarkStusentonehead中用户可以按*或班级或者是按学期来查找*个学生的成绩。通过函数searchnumber(head和函数 searchclasseshead以及函数searchtermhead完成操作。void searchnumber(MARK *head) 按*查找学生的函数原型,;void searchclasses(MARK *head); 按班级查找学生的函数原型,void searchterm(MARK *head); 按学期查找学生的函数

11、原型,void searchMarkFail(MARK *head); 查询没有及格的学生的函数原型,通过这个函数可以查找学生不及格科目及学生。3.1.3 修改函数MARK *changeMark(MARK *head); 修改学生成绩信息的函数原型,可以修改学生的学期、班级、*和性别以及学生的语文、数学、英语和计算机等相关信息。3.1.4 统计函数void conuntMark(MARK *head); 统计学生成绩的函数原型,在函数conuntMarkhead中用户可以统计学生的总成绩以及平均成绩,通过调用函数totalMarkhead和函数aveMarkhead完成操作。3.1.5 输出

12、函数void totalMark(MARK *head); 统计学生总成绩的函数原型,void aveMark(MARK *head); 统计学生平均成绩的函数原型,void printClassMark(MARK *head); 输出学生成绩信息的函数原型,通过此函数可以输出学生的学期、班级、*和性别以及学生的语文、数学、英语和计算机等相关信息到屏幕上。void saveFileMark(MARK *head); 存储学生成绩信息于文件的函数原型,通过此函数可以输出学生的学期、班级、*和性别以及学生的语文、数学、英语和计算机等相关信息与文件中。第四章设计 结果及分析4.1程序设计结果源程序如

13、下:#include#include#include#include#define MAR (struct studentMark *)malloc(sizeof(struct studentMark)typedef struct studentMark int term; int classes; char name10; int number; char se*7; float chinese;float math;float english;float puter; struct studentMark *ne*t; MARK;void m(MARK *head); MARK *crea

14、t(void );void searchMark(MARK *head);void searchMarkStusentone(MARK *head);void searchnumber(MARK *head);void searchclasses(MARK *head);void searchterm(MARK *head);void searchMarkFail(MARK *head);MARK *changeMark(MARK *head);void conuntMark(MARK *head);void totalMark(MARK *head); void aveMark(MARK *

15、head);void printClassMark(MARK *head);void saveFileMark(MARK *head);int main(void)MARK *head=NULL; printf( *n); printf( # 欢送进入学生成绩信息管理系统#n); printf( *n);printf(n);head=creat();m(head);return(0);void m(MARK *head )int choose;while(1) printf(*n); printf( 学生成绩信息管理n); printf(*n); printf( 1创立成绩信息n); prin

16、tf( 2查询成绩信息n); printf( 3修改成绩信息n); printf( 4统计成绩信息n); printf( 5按班级输出学生信息n); printf( 6保存成绩信息于文件n); printf( 7退出系统n); printf(*n);fflush(stdin);printf(请选择:);scanf(%d,&choose);if(1=choose)head=creat();else if(2=choose)searchMark(head);else if(3=choose)head=changeMark(head);else if(4=choose)conuntMark(head

17、);else if(5=choose)printClassMark(head);else if(6=choose)saveFileMark(head);elseprintf(退出系统);break;/创立一个学生成绩信息系统MARK *creat() MARK *head=NULL,*p1=NULL,*p2=NULL;char ch;fflush(stdin);printf(请问是否输入信息?(y 或n)n);scanf(%c,&ch);head=p1=p2=MAR; while(p1!=NULL & ch=y) p1=MAR; printf(请输入要录入学生信息的学期(学期只能为 1 或 2

18、 ):); fflush(stdin); scanf(%d,&p1-term); while(p1-term!=1 & p1-term!=2) getchar(); printf(输入错误!请重新输入:); scanf(%d,&p1-term); printf(请输入要录入学生成绩信息的班级:); fflush(stdin); scanf(%d,&p1-classes); while(p1-classes!=1 & p1-classes!=2) getchar(); printf(输入错误!请重新输入:); scanf(%d,&p1-classes); printf(请输入该班的学生信息!n)

19、; printf(请输入学生*:); fflush(stdin); scanf(%d,&p1-number); printf(请输入学生*:); fflush(stdin); scanf(%s,p1-name); printf(请输入学生姓别:); fflush(stdin); scanf(%s,p1-se*); fflush(stdin); printf(请输入语文成绩(0-100):); scanf(%f,&p1-chinese); fflush(stdin); printf(请输入数学成绩(0-100):); scanf(%f,&p1-math); fflush(stdin); prin

20、tf(请输入英语成绩(0-100):); scanf(%f,&p1-english); fflush(stdin); printf(请输入计算机成绩(0-100):); scanf(%f,&p1-puter); p2-ne*t=p1; p2=p1; printf(是否还要输入信息(y/n):); fflush(stdin); scanf(%c,&ch);p2-ne*t = NULL; /链表结尾return(head);/查找学生成绩信息void searchMark(MARK *head)int choose1;while(1)printf(*n);printf( 查询学生成绩信息n);pr

21、intf( 1查询*个学生成绩n);printf( 2查询不及格学生成绩n);printf( 3返回主菜单n);printf(*n);fflush(stdin);printf(请选择:);scanf(%d,&choose1);if(1=choose1)searchMarkStusentone(head);else if(2=choose1)searchMarkFail(head);elseprintf(返回主菜单);break;/修改学生成绩信息按学期或按*修改MARK *changeMark(MARK *head)int choose2;MARK *p=head-ne*t;char name

22、10;char ch;int number; printf(*n);printf( 你所需要修改的n);printf( 1修改*n);printf( 2修改*n);printf( 3修改班级n); printf( 4修改性别n);printf( 5修改成绩n);printf(*n);fflush(stdin);printf(请选择:);scanf(%d,&choose2);while(1)while(p!=NULL)if(1=choose2) printf(你要修改的信息是:*!n); /按*修改* fflush(stdin); printf(请输入你要修改的学生*:); scanf(%s,n

23、ame); if (strcmp(name,p-name)=0) fflush(stdin); printf(请输入该学生新的*:); /输入新*scanf(%d,&p-number);printf(修改学生的*后:n);printf(%s学生的新*是%dn,p-name,p-number);break; else if(2=choose2) printf(你要修改的信息是:!n); fflush(stdin); printf(请输入你要修改的学生的*:); scanf(%d,&number); if(number=p-number) /输入*,判断条件 fflush(stdin); prin

24、tf(请输入该学生的*:); scanf(%s,p-name); /输入要做修改的学生* printf(修改学生的*后:n); printf(%s是该学生的新*n,p-name); break; else if(3=choose2)printf(你要修改的信息是:班级!n); /按*修改班级fflush(stdin);printf(请输入你要修改的学生的*:);scanf(%d,&number);if(number=p-number) fflush(stdin); printf(请输入该学生的班级:); /输入要做修改的班级 scanf(%d,&p-classes); printf(修改班级后

25、n); printf(该学生的新班级为:%dn,p-classes); break; else if(4=choose2)printf(你要修改的信息是:性别!n); /按*修改性别fflush(stdin);printf(请输入你要修改的学生的*:);scanf(%d,&number);if(number=p-number) fflush(stdin); printf(请输入该学生的性别:); /输入要做修改的性别 scanf(%s,p-se*); printf(修改该学生的性别后n); printf(该学生的新性别为:%sn,p-se*); break;else if(5=choose2)

26、printf(你要修改的信息是:成绩!n); /按*修改成绩fflush(stdin); printf(请输入你要修改的学生的*:);scanf(%d,&number);if(number=p-number) /输入* fflush(stdin); printf(请输入该学生新的语文成绩:n); scanf(%f,&p-chinese); fflush(stdin); printf(请输入该学生新的数学成绩:n); scanf(%f,&p-math); /输入新的四门成绩 fflush(stdin); printf(请输入该学生新的英语成绩:n); scanf(%f,&p-english);

27、fflush(stdin); printf(请输入该学生新的计算机成绩:n); scanf(%f,&p-puter); printf(修改后的成绩n); printf(该学生新的语文成绩:%fn,p-chinese); printf(该学生新的数学成绩:%fn,p-math); printf(请该学生新的英语成绩:%fn,p-english); printf(该学生新的计算机成绩:%fn,p-puter); break;elsep=p-ne*t; printf(是否还要继续修改信息(y/n):n); /判断,是否还要修改信息,跳出循环 fflush(stdin); if(ch=getchar(

28、)=n)break; return(head);/统计学生成绩总分和平均分void conuntMark(MARK *head) MARK *p=head-ne*t;int classes;char ch1,ch2; fflush(stdin);printf(请输入要统计成绩的班级(1或2):); scanf(%d,&classes);printf(正在统计该班级学生的总分,请稍侯!n);while(1) totalMark(p); printf(是否还要继续统计其他学生的成绩(y/n):);fflush(stdin);if(ch1=getchar()=n)break; printf(是否统计

29、该班级学生平均分?(y/n):);fflush(stdin); if(ch2=getchar()!=n)printf(正在统计该班学生平均分进展统计,请稍侯!n);aveMark(p); /调用平均分函数printf(n);/按班级输出学生信息void printClassMark(MARK *head) MARK *p;p=head-ne*t;printf(*n);printf(学期t*t班别t*t性别t语文tt数学tt英语tt计算机ttn);printf(*n);while(p!=NULL) printf(%dt,p-term); printf(%dt,p-number); printf(

30、%dt,p-classes); printf(%st,p-name); printf(%st,p-se*);printf(%ft,p-chinese); printf(%1ft,p-math);printf(%1ft,p-english);printf(%1ft,p-puter);p=p-ne*t;printf(n);printf(*n);/保存学生成绩信息于文件void saveFileMark(MARK *head)char *fileName;FILE *stu;MARK *p=head-ne*t;if(p=NULL)printf(没有任何信息,请先存入信息!n);printf(请按任意

31、键返回主菜单!n);getchar();else fileName=(char *)malloc(sizeof(char); fflush(stdin); printf(请输入你要保存的文件名!n); gets(fileName); fileName=strcat(fileName,.t*t); stu=fopen(fileName,wb+); while(p!=NULL) fprintf(stu,%d %d,p-term ,p-classes ); fprintf(stu,%s %d,p-name,p-number); fprintf(stu,%s,p-se* ); fprintf(stu,

32、%f %f %f %f,p-chinese ,p-math ,p-english ,p-puter ); p=p-ne*t ; fclose(stu); printf(已经保存文件在%s中!n,fileName); printf(请按任意键返回主菜单!n); getchar();/查找*个学生的成绩void searchMarkStusentone(MARK *head)char ch1,ch2; MARK *p=head-ne*t; if(p=NULL)printf(没有任何信息,请先存入信息!n);printf(请按任意键返回主菜单!n);getchar();elsewhile(1) pr

33、intf( 你要选择何种方式查询成绩!n); printf( n); printf( a、*: n); printf( b、班级: n); printf( c、学期: n); printf( n); fflush(stdin); scanf(%c,&ch1); switch(ch1) case a:searchnumber(head);break; case b:searchclasses(head);break; case c:searchterm(head);break; printf(n); printf(是否还要继续查询学生的信息(y/n):); fflush(stdin); if(c

34、h2=getchar()=n) break; /查询不及格学生void searchMarkFail(MARK *head)MARK *p=head-ne*t ;char name10;int number,flag=0;int choose5;dofflush(stdin);printf(请输入! 1按*查询 2按*查询 3 返回n);scanf(%d,&choose5);switch(choose5)case 1 :fflush(stdin);printf(请输入要查找的名字n);gets(name);while(p!=NULL)if(!strcmp(name,p-name)printf(

35、 *n);printf(%s %dn,p-name ,p-number );if(p-chinese name );if(p-math name );if(p-english name );if(p-puter name ); flag+;printf(n); p=p-ne*t;if(flag=0)printf(没有你要找的信息!n);break;case 2 :fflush(stdin);printf(请输入你想要查找的*:n);scanf(%d,&number); while(p!=NULL)if(number=p-number)printf( *n);printf(%s %dn,p-na

36、me ,p-number );if(p-chinese name );if(p-math name );if(p-english name );if(p-puter name ); flag+;printf(n); p=p-ne*t;if(flag=0)printf(没有你要找的信息!n);break;case 3:printf(请按任意键返回!n);getchar();break; default:printf(你输入的有误!请重新选择n);break;while(choose5!=1 & choose5!=2 & choose5!=3);printf(按任意键返回!n);getchar()

37、;/按*查询void searchnumber(MARK *head) MARK *p=head-ne*t; int number,i=0; printf(请输入你要查询的学生*:n); scanf(%d,&number); while(p!=NULL) if(number=p-number) printf(-n); printf(t学期t*t班别t*t性别t语文t数学t英语t计算机tn); printf(-n); printf(%dt,p-term); printf(%dt,p-number);printf(%dt,p-classes); printf(%st,p-name); printf

38、(%st,p-se*); printf(%1ft,p-chinese); printf(%1ft,p-math); printf(%1ft,p-english); printf(%1ft,p-puter); i=2; p=p-ne*t; if(i=0) printf(没找到该学生的信息!); /按班级查询成绩void searchclasses(MARK *head) int classes,i=0; MARK *p=head-ne*t; printf(请输入你要查询成绩的班级:); scanf(%d,&classes); printf(请输出%d班所有同学的成绩:n,classes); pr

39、intf(-n); printf(t学期t*t班别t*t性别t语文t数学t英语t计算机tn); printf(-n); while(p!=NULL) if(classes=p-classes) printf(%dt,p-term); printf(%dt,p-number); printf(%dt,p-classes); printf(%st,p-name); printf(%st,p-se*); printf(%1ft,p-chinese); printf(%1ft,p-math); printf(%1ft,p-english); printf(%1ft,p-puter); printf(n);printf

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!