1、学生的的成绩信息管理系统doc西安文理学院信息工程学院软件编程课程设计报告设计题目:学生成绩管理系统课程设计学生学号: 07专业班级: 物联网工程一班学生姓名: 张旺阳学生成绩:指导教师(职称) :课题工作时间:2015-11-25至 2015-12-9信息工程学院软件编程课程设计任务书学生姓名 张旺阳 学号 07 专业班级 物联网工程一班设计题目 学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩 ( 语文、数学、英语和计算机 ) 。主要功能:(1) 能按学期、按班级完成对学生成绩的录入、修改(2) 能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表(3
2、) 能查询学生成绩,不及格科目及学生名单(4) 能按班级输出学生的成绩单(5) 能按班级,按课程,对学生成绩进行排序。指导教师:日 期: 2015 年 11 月 25 日学生姓名:一班合计类别分值平时10表现完成30情况报告35质量答辩25情况总评成绩:成绩评定表张旺阳 学号: 07 专业 / 班级: 物联网工程各项实际合计评分标准得分备注分值得分按时参加设计指导, 无违反纪律情10况。按设计任务书的要求完成了全部20任务,能完整演示其设计内容,符合要求。能对其设计内容进行详细、 完整的10介绍,并能就指导教师提出的问题进行正确的回答。报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨
3、合15理;报告字数符合相关要求,工整规范,整齐划一。课题背景介绍清楚,综述分析充5分。设计方案合理、可行,论证严谨,5逻辑性强,具有说服力。符号统一;图表完备、符合规范要5求。能对整个设计过程进行全面的总5结,得出有价值的结论或结果。在规定时间内能就所设计的内容10进行阐述,言简意明,重点突出,论点正确,条理清晰。在规定时间内能准确、完整、流利15地回答教师所提出的问题。分指导教师: (签字)日 期: 年 月 日1. 概述 1课题背景 1系统功能 3设计要求 42.概要设计 5 系统功能模块 5 各模块流程图 63.详细设计 8 程序中使用的数据结构 8函数列表 104.设计结果与分析 125
4、.总结与体会 15参考文献 附录 主要程序代码 XX课题背景随着计算机的普及,计算机在生活中得到越来越多的应用,其中在计算机上运行的各种软件在解决生活中的实际问题中起到重大的作用, 而目前在编写应用程序时, c+以其高效及灵活性成为大多数程序设计者的首选,其次对于普通用户者,利用 c+语言设计出适用的小型软件对解决生活中的繁琐问题有很大的作用。在学校或班级,教师经常会对某次考试中的所有学生的成绩进行统计和管理,由于学生数目经常繁多, 所以在处理统计学生总成绩和平均成绩时工作会相对繁琐,所以针对这种情况,同时我分析了成绩管理所需要的功能,在利用 C+语言及 VC+程序运行平台之下,设计一种小型的
5、学生成绩管理系统。系统功能1.录入2.修改3.求总分4.求平均分5.查询6.排序设计要求学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩 ( 语文、数学、英语和计算机 ) 。主要功能:(1) 能按学期、按班级完成对学生成绩的录入、修改(2) 能按班级统计学生的成绩, 求学生的总分及平均分, 设计并输出统计报表(3) 能查询学生成绩,不及格科目及学生名单(4) 能按班级输出学生的成绩单(5) 能按班级,按课程,对学生成绩进行排序。要求:使用二进制文件方式存储数据,系统以菜单方式工作第二章 概要设计系统功能模块(1)创建主菜单(2)实现学生成绩信息录入(3)实现学生成绩信息查询(4)实现学生
6、成绩信息修改(一)修改某个学生的成绩(a) 按学期查询学生的成绩(b)按班级查询学生的成绩(c)按学号查询学生的成绩( 二) 查询不及格的科目和学生名单(5)实现学生成绩统计(a)按班级统计学生的总分。(b)按班级统计学生的平均分。(6)实现学生成绩信息输出(7)保存学生的成绩信息于文件系统功能流程图第三章 详细设计主要数据结构typedef struct studentMarkint term;int classes;char name10;int number;char sex7;float chinese;float math;float english;float computer;s
7、truct studentMark *next; MARK;这是定义一个结构体,主要包括学期,班级,姓名,学号,性别,语文成绩,数学成绩,英语成绩,计算机成绩,以及包括一个结构体指针。 另外还用了 typedef这个关键字。因此,在程序的后面也可以用 MARK来定义结构体变量或结构体指针变量。int term;定义学期,学期只能是第一学期或者第二学期。例如 int 1;则表示第一学期。int classes;定义班级,班级只能是一班或者二班。例如 int 2;则是表示定义为二班。char name10;定义姓名,在数组中存放字符串。例如 char name= “ yang”;则该学生的姓名为
8、yangint number;定义学号,例如 int 1 ;则该学生学号为1 号。char sex7;定义姓别,其性别最大长度为 7.例如 charsex= “man”;说明该学生为男生。同样可以这样定义女生。float chinese;定义语文成绩。float math;定义数学成绩。float english;定义英语成绩。float computer;定义计算机成绩。struct studentMark *next;定义一个结构体指针。主函数int main();主函数,程序的入口。void m(MARK *head);主菜单的函数原型,在函数 m(head)中主要有选择创建学生成绩信息
9、,查询学生成绩信息, 修改学生成绩信息, 统计学生成绩信息, 输出学生成绩信息,存储学生成绩信息于文件,以及退出体统等选项可供用户选择。MARK *creat(void );创建函数的函数原型,在函数 creat ()中用户可以输入初始的学生信息:其中包括学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息。查询函数void searchMark(MARK *head);查询菜单的函数原型,在函数 searchMark ( head)中用户可以自由选择是查询某一个学生的 成绩还是 查询不及 格学生的成 绩。而 这通过调用 函数 searchMarkStusentone
10、 ( head)和函数 searchMarkFail(head )完成操作。void searchMarkStusentone(MARK *head);查询某个学生成绩的函数原型,在函数 searchMarkStusentone ( head)中用户可以按学号或 班级或者 是按学期 来查找某个 学生的 成绩。通过 函数searchnumber(head )和函数 searchclasses (head)以及函数 searchterm(head)完成操作。void searchnumber(MARK *head)按学号查找学生的函数原型,;void searchclasses(MARK *hea
11、d);按班级查找学生的函数原型,void searchterm(MARK *head);按学期查找学生的函数原型,void searchMarkFail(MARK *head);查询没有及格的学生的函数原型,通过这个函数可以查找学生不及格科目及学生名单。修改函数MARK *changeMark(MARK *head);修改学生成绩信息的函数原型,可以修改学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息。统计函数void conuntMark(MARK *head);统计学生成绩的函数原型,在函数 conuntMark ( head)中用户可以统计学生的总成绩以及平
12、均成绩,通过调用函数 totalMark ( head)和函数 aveMark ( head)完成操作。输出函数void totalMark(MARK *head);统计学生总成绩的函数原型,void aveMark(MARK *head);统计学生平均成绩的函数原型,void printClassMark(MARK *head);输出学生成绩信息的函数原型,通过此函数可以输出学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息到屏幕上。void saveFileMark(MARK *head);存储学生成绩信息于文件的函数原型, 通过此函数可以输出学生的学期、 班级
13、、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息与文件中。第四章设计 结果及分析程序设计结果源程序如下:#include#include#include#include#define MAR (struct studentMark *)malloc(sizeof(struct studentMark)typedef struct studentMarkint term;int classes;char name10;int number;char sex7;float chinese;float math;float english;float computer;struct s
14、tudentMark *next; MARK;void m(MARK *head);MARK *creat(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 *h
15、ead);void totalMark(MARK *head);void aveMark(MARK *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( 学生成
16、绩信息管理 n);printf(*n);printf(1创建成绩信息 n);printf(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(
17、head);else if(4=choose)conuntMark(head);else if(5=choose)printClassMark(head);else if(6=choose)saveFileMark(head);elseprintf( 退出系统 );break;xt);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-sex );fprintf(stu,%f %f %f %f
18、,p-chinese ,p-math ,p-english ,p-comp uter );p=p-next ;fclose(stu);printf( 已经保存文件在 %s中! n,fileName);printf( 请按任意键返回主菜单! n);getchar();/查找某个学生的成绩void searchMarkStusentone(MARK *head)char ch1,ch2;MARK *p=head-next;if(p=NULL)printf( 没有任何信息,请先存入信息! n);printf( 请按任意键返回主菜单! n);getchar();elsewhile(1)printf(
19、你要选择何种方式查询成绩 !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(ch2=getchar()=n)break;/
20、查询不及格学生void searchMarkFail(MARK *head)MARK *p=head-next ;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( 姓名 学号 n);printf
21、(%s %dn,p-name ,p-number );if(p-chinese name );if(p-math name );if(p-english name );if(p-computer name ); flag+;printf(n);p=p-next;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
22、me ,p-number );if(p-chinese name ); if(p-math name ); if(p-english name ); if(p-computer name ); flag+;printf(n);p=p-next;if(flag=0)printf( 没有你要找的信息! n);break;case 3:printf( 请按任意键返回! n);getchar();break;default:printf( 你输入的有误!请重新选择 n);break;while(choose5!=1 & choose5!=2 & choose5!=3);printf( 按任意键返回!
23、n);getchar();/按学号查询void searchnumber(MARK *head)MARK *p=head-next;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(%s
24、t,p-name);printf(%st,p-sex);printf(%1ft,p-chinese);printf(%1ft,p-math);printf(%1ft,p-english);printf(%1ft,p-computer);i=2;p=p-next;if(i=0)printf( 没找到该学生的信息 !);/按班级查询成绩void searchclasses(MARK *head)int classes,i=0;MARK *p=head-next;printf( 请输入你要查询成绩的班级 :);scanf(%d,&classes);printf( 请输出 %d班所有同学的成绩 :n,classes);printf(-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1