《最新C语言课程设计报告学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《最新C语言课程设计报告学生成绩管理系统.doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言课程设计报告学生成绩管理系统C语言课程设计报告机电工程学院 中南大学本科生C语言课程设计题 目 学生成绩管理系统一、课程设计题目:学生成绩管理系统给出n个学生的4门考试的成绩表,每个学生的信息由学号、姓名以及各科成绩组成。对学生的考试成绩进行有关统计:按某一科分数或平均分数高低次序,列出名次表,分数相同的为同一名次;按名次打印出每个学生的学号、姓名、总分以及各科
2、成绩,并打印统计表。三、概要设计程序要有的功能:1. 输入学生成绩 2. 保存成绩 3. 学生成绩排序 4. 学生成绩查询 5. 学生成绩清单 6. 退出管理系统程序运行当中,通过选择对应的功能序号来实现所需功能。对输入的数据要有事先的分析,如果用户输入的数据与实际不相符如输入成绩的数值为负,则程序应输出相应的提示:“数据不存在”。再者就是,当再输入完相应的数据后,程序作出相应的提示,询问用户是否要继续输入。在排列学生成绩时候,如果出现成绩相同的情况,程序自动作出处理。四、设计任务将程序分为六个方面:1. 输入学生成绩 、2. 保存成绩 、3. 学生成绩排序 、4. 学生成绩查询 、5. 学生
3、成绩清单 、6. 退出管理系统。每个人负责两个方面的程序,其中侯蒙召负责1、2两个程序,杨天静负责3、4两个,张振陆负责5、6两个,最后交由组长侯蒙召组合整理,形成现在的总的程序。流程图:开始结束选择操作输入数据排序保存数据查询操作界面退出系统按学号按姓名显示清单吧选择7选择5选择3选择2选择1选择8四门成绩学号姓名四、详细设计源程序:#include#include#include#includestruct Studentchar name20;int no;int math;int program;int english;int chinese;int aver;stu100,t;int
4、 num=0;int menu()int a;char s20;system(cls);/*程序介绍*/printf( 欢迎使用学生成绩管理系统,该系统包括以下几项功能,请根据提示做相应操作n);printf( 1-输入学生成绩n);printf( 2-保存成绩n);printf( 3-学生成绩排序n);printf( 4-学生成绩查询n);printf( 5-学生成绩清单n);printf( 6-退出管理系统n);/*选择操作*/printf(n);printf( 请选择要进行操作的编号:n);doprintf(Enter you choice(06):); scanf(%s,s); a=a
5、toi(s); while (a6); return a;int enter()int i=0;printf(请输入学生信息n);printf(NO.:);scanf(%d,&stunum.no);printf(姓名:);scanf(%10s,stunum.name);printf(数学:);scanf(%4d,&stunum.math);printf(程序设计:);scanf(%4d,&stunum.program);printf(英语:);scanf(%4d,&stunum.english);printf(语文:);scanf(%4d,&stunum.chinese);stunum.ave
6、r=(stunum.math+stunum.program+stunum.english+stunum.chinese)/4;num=num+1;printf(是否继续输入?(y/n):n);if(getch()=y|getch()=Y)enter();else return(0);void save()FILE*fp;int i;if(fp=fopen(stu.dat,wb)=NULL)printf(The fire can not openn);return;for(i=0;inum;i+)if(fwrite(&stui,sizeof(struct Student),1,fp)!=1)pr
7、intf(The wirte errorn);return;printf(数据保存成功n);system(pause);fclose(fp);void sort()int i, j, k;int sort_no;printf(1-按数学成绩排n);printf(2-按程序设计成绩排n);printf(3-按英语成绩排n);printf(4-按语文成绩排n);printf(5-按平均分成绩排n);printf(6-返回主菜单n);scanf(%d,&sort_no);if(sort_no=1)/ 数学成绩排序for(i=0; inum-1; i+)k = i;for(j=i+1; jstuk.m
8、ath) k=j;t=stuk;stuk=stui;stui=t; printf(学号 姓名 数学 程序 英语 语文 平均分n);for(i=0; inum; i+)printf(%4d %5s %5d, stui.no, stui.name, stui.math);printf(%5d %5d %4d %4dn,stui.english, stui.chinese, stui.program, stui.aver);else if(sort_no = 2)/ 程序设计成绩排序for(i=0; inum-1; i+)k = i;for(j=i+1; jstuk.program) k=j;t=s
9、tuk;stuk=stui;stui=t; printf(学号 姓名 数学 程序 英语 语文 平均分n);for(i=0; inum; i+) printf(%4d %5s %5d, stui.no, stui.name, stui.math);printf(%5d %5d %4d %4dn,stui.english, stui.chinese, stui.program, stui.aver);else if(sort_no = 3)/ 英语成绩排序for(i=0; inum-1; i+)k = i;for(j=i+1; jstuk.english) k=j;t=stuk;stuk=stui
10、;stui=t; printf(学号 姓名 数学 程序 英语 语文 平均分n);for(i=0; inum; i+) printf(%4d %5s %5d, stui.no, stui.name, stui.math);printf(%5d %5d %4d %4dn,stui.english, stui.chinese, stui.program, stui.aver);else if(sort_no = 4)/ 语文绩排序for(i=0; inum-1; i+)k = i;for(j=i+1; jstuk.chinese) k=j;t=stuk;stuk=stui;stui=t; print
11、f(学号 姓名 数学 程序 英语 语文 平均分n);for(i=0; inum; i+) printf(%4d %5s %5d, stui.no, stui.name, stui.math);printf(%5d %5d %4d %4dn,stui.english, stui.chinese, stui.program, stui.aver);else if(sort_no=5) / 平均分排序for(i=0; inum-1; i+)k = i;for(j=i+1; jstuk.aver) k=j;t=stuk;stuk=stui;stui=t; printf(学号 姓名 数学 程序 英语 语
12、文 平均分n);for(i=0; inum; i+)printf(%4d %5s %5d, stui.no, stui.name, stui.math);printf(%5d %5d %4d %4dn,stui.english, stui.chinese, stui.program, stui.aver);else if(sort_no=6) / 返回上层return;elseprintf(错误的排序方式!n);return;void list()int i;printf(学生成绩清单n); printf(学号 姓名 数学 程序 英语 语文 平均分n);for(i=0; i学号查询n);pri
13、ntf( 2-姓名查询n);printf( 3-返回主菜单n);printf( 请选择要进行查询内容的编号:n);scanf( %d, &search_no);if(search_no=1)printf( 请输入要查询的学号n);scanf(%d, &no);for(i=0; inum; i+)if(no=stui.no) printf(学号 姓名 数学 程序 英语 语文 平均分n); printf(%4d %5s %5d, stui.no, stui.name, stui.math); printf(%5d %5d %4d %4dn,stui.english, stui.chinese, s
14、tui.program, stui.aver);else printf(数据不存在);return;else if(search_no=2)printf( 请输入要查询的姓名n);scanf(%s, NAME);for(i=0; i输入学生成绩2- 保存成绩3- 学生成绩排序4- 学生成绩查询5- 学生成绩清单6- 退出管理系统输入程序对应功能的相应序号,选择相应功能,然后根据提示继续。例如:想要输入学生的相关信息,输入1,然后根据提示输入学生相关信息,再输入2,保存学生信息。2、对应测试结果与分析:程序运行当中,通过选择对应的功能序号来实现所需功能。对输入的数据要有事先的分析,如果用户输入的
15、数据与实际不相符如输入成绩的数值为负,则程序应输出相应的提示:“数据不存在”。当再输入完相应的数据后,程序作出相应的提示,询问用户是否要保存数据。3、每个模块设计和调试时存在问题的思考输入完相应的数据后,程序不会自动作出相应的提示,询问用户是否要保存数据。在排列学生成绩时候,如果出现成绩相同的情况,程序自动作出处理。4、运行界面(截图)(图1)(图2)5、主界面设计如下:欢迎使用学生成绩管理系统,该系统包含以下几种功能,请根据提示做相关操作 1-输入学生成绩2-保存成绩3-学生成绩排序4-学生成绩查询5-学生成绩清单6-退出管理系统请选择要进行的编号:Enter your choice(16)
16、: 六、课程设计总结通过此次数据结构课程设计,我初步掌握了程序设计的基本方法,也学会了怎样去借鉴别人的方法和经验,知道如何怎样通过查找资料和整合处理这些资料来解决问题,这为以后的大学毕业设计论文打下了一个初步的基础。同时也享受了一种成功的喜悦,在这为期一周的课程设计当中,我从开始确定论文题目,然后是上网和上图书馆查找资料,编写C+语言原程序,然后是进行编译,这个环节是一个非常需要对问题认真的态度和足够的耐心,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之路中,但失败的越多,对人的考验就越多,在编译运行成功之后的享受成功的喜悦也就越多。另外在调试程序的过程中不断的思考和运用已经学到的知识,这对于自己是有很大的提高的。 由于所学的知识不多,自己的编程经验不足,仍存在一些错误按现有的知识水平有些东西暂时还无法解决,还有待于在以后的学习中不断提高和改进!-