收藏 分销(赏)

学生成绩信息标准管理系统.doc

上传人:快乐****生活 文档编号:2827390 上传时间:2024-06-06 格式:DOC 页数:33 大小:240.04KB
下载 相关 举报
学生成绩信息标准管理系统.doc_第1页
第1页 / 共33页
学生成绩信息标准管理系统.doc_第2页
第2页 / 共33页
学生成绩信息标准管理系统.doc_第3页
第3页 / 共33页
学生成绩信息标准管理系统.doc_第4页
第4页 / 共33页
学生成绩信息标准管理系统.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、1 问题描述学生成绩管理系统学生成绩管理系统 学生信息涉及学期、学号、班级、姓名,和语文、数学、英语、计算机四门课成绩。并按班级、学期查询学生成绩,并能录入、修改,求学生平均成绩和总成绩,输出不及格科目,按班级输出成绩单,按班级对学生成绩进行排序。2 系统分析2.1 问题定义学生成绩管理系统设计学生成绩信息涉及:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。重要功能:(1) 能按学期、按班级完毕对学生成绩录入、修改(2) 能按班级记录学生成绩,求学生总分及平均分,设计并输出记录报表(3) 能查询学生成绩,不及格科目及学生名单(4) 能按班级输出学生成绩单(5) 能按班级,按

2、课程,对学生成绩进行排序。规定:使用二进制文献方式存储数据,系统以菜单方式工作2.2开发工具 VC+6.02.3数据构造 typedef struct studentMark int term; int classes; char name10; int number; char sex7; float chinese;float math;float english;float computer; struct studentMark *next; MARK;这是定义一种构造体,重要涉及学期,班级,姓名,学号,性别,语文成绩,数学成绩,英语成绩,计算机成绩,以及涉及一种构造体指针。此外还用了

3、typedef这个核心字。因而,在程序背面也可以用MARK来定义构造体变量或构造体指针变量。int term; 定义学期,学期只能是第一学期或者第二学期。 例如int 1;则表达第一学期。 int classes; 定义班级,班级只能是一班或者二班。 例如 int 2;则是表达定义为二班。 char name10; 定义姓名,在数组中存储字符串。 例如 char name=“yang”;则该学生姓名为yang int number; 定义学号,例如int 1;则该学生学号为1号。 char sex7; 定义姓别,其性别最大长度为7. 例如 char sex=“man”;阐明该学生为男生。同样可

4、以这样定义女生。 float chinese; 定义语文成绩。float math; 定义数学成绩。float english; 定义英语成绩。float computer; 定义计算机成绩。 struct studentMark *next; 定义一种构造体指针。int main(); 主函数,程序入口。void m(MARK *head); 主菜单函数原型,在函数m(head)中重要有选取创立学生成绩信息,查询学生成绩信息,修改学生成绩信息,记录学生成绩信息,输出学生成绩信息,存储学生成绩信息于文献,以及退出体统等选项可供顾客选取。 MARK *creat(void ); 创立函数函数原型

5、,在函数creat()中顾客可以输入初始学生信息:其中涉及学生学期、班级、姓名、学号和性别以及学生语文、数学、英语和计算机等有关信息。void searchMark(MARK *head); 查询菜单函数原型,在函数searchMark(head)中顾客可以自由选取是查询某一种学生成绩还是查询不及格学生成绩。而这通过调用函数searchMarkStusentone(head)和函数searchMarkFail(head)完毕操作。void searchMarkStusentone(MARK *head); 查询某个学生成绩函数原型,在函数searchMarkStusentone(head)中顾

6、客可以按学号或班级或者是按学期来查找某个学生成绩。通过函数searchnumber(head)和函数 searchclasses(head)以及函数searchterm(head)完毕操作。void searchnumber(MARK *head) 按学号查找学生函数原型,;void searchclasses(MARK *head); 按班级查找学生函数原型,void searchterm(MARK *head); 按学期查找学生函数原型,void searchMarkFail(MARK *head); 查询没有及格学生函数原型,通过这个函数可以查找学生不及格科目及学生名单。MARK *ch

7、angeMark(MARK *head); 修改学生成绩信息函数原型,可以修改学生学期、班级、姓名、学号和性别以及学生语文、数学、英语和计算机等有关信息。void conuntMark(MARK *head); 记录学生成绩函数原型,在函数conuntMark(head)中顾客可以记录学生总成绩以及平均成绩,通过调用函数totalMark(head)和函数aveMark(head)完毕操作。void totalMark(MARK *head); 记录学生总成绩函数原型,void aveMark(MARK *head); 记录学生平均成绩函数原型,void printClassMark(MARK

8、 *head); 输出学生成绩信息函数原型,通过此函数可以输出学生学期、班级、姓名、学号和性别以及学生语文、数学、英语和计算机等有关信息到屏幕上。void saveFileMark(MARK *head); 存储学生成绩信息于文献函数原型,通过此函数可以输出学生学期、班级、姓名、学号和性别以及学生语文、数学、英语和计算机等有关信息与文献中。2.4算法描述(1)创立主菜单(2)实现学生成绩信息录入(3)实现学生成绩信息查询(4)实现学生成绩信息修改 (一)修改某个学生成绩 (a)按学期查询学生成绩 (b)按班级查询学生成绩 (c)按学号查询学生成绩 (二)查询不及格科目和学生名单(5)实现学生成

9、绩记录 (a)按班级记录学生总分。(b)按班级记录学生平均分。(6)实现学生成绩信息输出(7)保存学生成绩信息于文献(8)流程图如下:2.5程序调试状况(1)源程序如下: #include#include#include#include#define MAR (struct studentMark *)malloc(sizeof(struct studentMark)typedef struct studentMark int term; int classes; char name10; int number; char sex7; float chinese;float math;floa

10、t english;float computer; struct studentMark *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(

11、MARK *head);void conuntMark(MARK *head);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 )

12、int choose;while(1) printf(*n); printf( 学生成绩信息管理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)s

13、earchMark(head);else if(3=choose)head=changeMark(head);else if(4=choose)conuntMark(head);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(

14、%c,&ch);head=p1=p2=MAR;while(p1!=NULL & ch=y) p1=MAR; printf(请输入要录入学生信息学期(学期只能为 1 或 2 ):); 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-cla

15、sses!=2) getchar(); printf(输入错误!请重新输入:); scanf(%d,&p1-classes); printf(请输入该班学生信息!n); printf(请输入学生学号:); fflush(stdin); scanf(%d,&p1-number); printf(请输入学生姓名:); fflush(stdin); scanf(%s,p1-name); printf(请输入学生姓别:); fflush(stdin); scanf(%s,p1-sex); fflush(stdin); printf(请输入语文成绩(0-100):); scanf(%f,&p1-chin

16、ese); fflush(stdin); printf(请输入数学成绩(0-100):); scanf(%f,&p1-math); fflush(stdin); printf(请输入英语成绩(0-100):); scanf(%f,&p1-english); fflush(stdin); printf(请输入计算机成绩(0-100):); scanf(%f,&p1-computer); p2-next=p1; p2=p1; printf(与否还要输入信息(y/n):); fflush(stdin); scanf(%c,&ch);p2-next = NULL; /链表结尾return(head);

17、/查找学生成绩信息void searchMark(MARK *head)int choose1;while(1)printf(*n);printf( 查询学生成绩信息n);printf( 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(返回主菜单);br

18、eak;/修改学生成绩信息(按学期或按学号修改)MARK *changeMark(MARK *head)int choose2;MARK *p=head-next;char name10;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!=NUL

19、L)if(1=choose2) printf(你要修改信息是:学号!n); /按姓名修改学号 fflush(stdin); printf(请输入你要修改学生姓名:); scanf(%s,name); 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(std

20、in); printf(请输入你要修改学生学号:); scanf(%d,&number); if(number=p-number) /输入学号,判断条件 fflush(stdin); printf(请输入该学生姓名:); 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(nu

21、mber=p-number) fflush(stdin); printf(请输入该学生班级:); /输入要做修改班级 scanf(%d,&p-classes); printf(修改班级后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(请输入该学生性别:); /输入要做修改性别

22、scanf(%s,p-sex); printf(修改该学生性别后n); printf(该学生新性别为:%sn,p-sex); break;else if(5=choose2) printf(你要修改信息是:成绩!n); /按学号修改成绩fflush(stdin); printf(请输入你要修改学生学号:);scanf(%d,&number);if(number=p-number) /输入学号 fflush(stdin); printf(请输入该学生新语文成绩:n); scanf(%f,&p-chinese); fflush(stdin); printf(请输入该学生新数学成绩:n); scan

23、f(%f,&p-math); /输入新四门成绩 fflush(stdin); printf(请输入该学生新英语成绩:n); scanf(%f,&p-english); fflush(stdin); printf(请输入该学生新计算机成绩:n); scanf(%f,&p-computer); printf(修改后成绩n); printf(该学生新语文成绩:%fn,p-chinese); printf(该学生新数学成绩:%fn,p-math); printf(请该学生新英语成绩:%fn,p-english); printf(该学生新计算机成绩:%fn,p-computer); break;else

24、p=p-next; printf(与否还要继续修改信息(y/n):n); /判断,与否还要修改信息,跳出循环 fflush(stdin); if(ch=getchar()=n)break;return(head);/记录学生成绩总分和平均分void conuntMark(MARK *head) MARK *p=head-next;int classes;char ch1,ch2; fflush(stdin);printf(请输入要记录成绩班级(1或2):); scanf(%d,&classes);printf(正在记录该班级学生总分,请稍侯!n);while(1) totalMark(p);

25、printf(与否还要继续记录其她学生成绩(y/n):);fflush(stdin);if(ch1=getchar()=n)break; printf(与否记录该班级学生平均分?(y/n):);fflush(stdin); if(ch2=getchar()!=n)printf(正在记录该班学生平均分进行记录,请稍侯!n);aveMark(p); /调用平均分函数printf(n);/按班级输出学生信息void printClassMark(MARK *head) MARK *p;p=head-next;printf(*n);printf(学期t学号t班别t姓名t性别t语文tt数学tt英语tt计

26、算机ttn);printf(*n);while(p!=NULL) printf(%dt,p-term); printf(%dt,p-number); printf(%dt,p-classes); printf(%st,p-name); printf(%st,p-sex);printf(%ft,p-chinese); printf(%1ft,p-math);printf(%1ft,p-english);printf(%1ft,p-computer);p=p-next;printf(n);printf(*n);/保存学生成绩信息于文献void saveFileMark(MARK *head)cha

27、r *fileName;FILE *stu;MARK *p=head-next;if(p=NULL)printf(没有任何信息,请先存入信息!n);printf(请按任意键返回主菜单!n);getchar();else fileName=(char *)malloc(sizeof(char); fflush(stdin); printf(请输入你要保存文献名!n); gets(fileName); fileName=strcat(fileName,.txt); stu=fopen(fileName,wb+); while(p!=NULL) fprintf(stu,%d %d,p-term ,p

28、-classes ); fprintf(stu,%s %d,p-name,p-number); fprintf(stu,%s,p-sex ); fprintf(stu,%f %f %f %f,p-chinese ,p-math ,p-english ,p-computer ); p=p-next ; fclose(stu); printf(已经保存文献在%s中!n,fileName); printf(请按任意键返回主菜单!n); getchar();/查找某个学生成绩void searchMarkStusentone(MARK *head)char ch1,ch2; MARK *p=head-

29、next; if(p=NULL)printf(没有任何信息,请先存入信息!n);printf(请按任意键返回主菜单!n);getchar();elsewhile(1) printf( 你要选取何种方式查询成绩!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; cas

30、e c:searchterm(head);break; printf(n); printf(与否还要继续查询学生信息(y/n):); fflush(stdin); if(ch2=getchar()=n) break; /查询不及格学生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(%s %dn,p-name ,p-number );if(p-chinese name );if(p-math name );

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服