您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > c语言班级成绩管理系统
课程设计报告课程名称C语言程序设计课题名称班级成绩管理系统专业网络工程班级1001学号姓名张剑指导教师唐北平、陈淑红、谭小兰2011年6月20日湖南工程学院课程设计任务书课程名称C语言程序设计课题班级成绩管理系统专业班级网络工程学生姓名张剑学号指导老师唐北平、陈淑红、谭小兰审批任务书下达日期2011年6月20日任务完成日期2011年7月03日一、设计内容与设计要求1.设计内容:对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。1、本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。2、本系统显示这样的菜单:请选择系统功能项:a、成绩录入、显示b、成绩修改c、成绩查询d、成绩排序、统计e、退出系统3、执行一个具体的功能之后,程序将重新显示菜单。2.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。1.设计正确,方案合理。2.界面友好,使用方便。3.程序精炼,结构清晰。4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。5.上机演示。6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。源程序及编译生成各文件均保存在软盘中;7.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。并用A4的复印纸打印并装订;二、进度安排第十八周星期18时00分——11时30分星期214时30分——18时00分星期38时00分——11时30分星期48时00分——11时30分第十九周星期18时00分——11时30分星期二14时30分——18时00分目录主要功能介二、概要设计程序的模块程序流程三、详细设计系统总体结构学生信息录入成绩查询系统成绩删除模块排序统计系统退出系统四、课程设计总结课程设计心得在程序设计中的问题和解决附录源程序清单(带注释)计算机与通信学院课程设计评分表一、功能简介主要功能介绍1、本系统采用一个结构体数组,每个数据的结构包括:学号、姓名、M门课程名称。2、本程序具有:(1)成绩录入(2)成绩显示(3)成绩删除(4)成绩排序、统计(5)退出系统二、概要设计程序的模块统模块图如下:程序流程主函数主界面显示功能删除功能查询功能排序功能统计功能录入功能退出功能开始NY判断密码NY根据选项选择录入据选项选择修改查询排序退出输出界面1输入帐号输入密码判断帐号输出界面2输入选项判断选项结束总流程开始输出界面3输入学号判断学号YN输出姓名输入姓名输出英语成绩:输入英语成绩输入数学成绩输出数学成绩:输出c语言成绩输入c语言成绩输出界面4输入字符串判断匹配YN输出界面1结束修改流程开始输出界面5输入学号输出界面6输入选项根据选项选择输出新的英语输出新的数学输出新的c语言输入英语成绩输入数学成绩输入c语言成绩输出界面1结束开始输出界面7查询流程输入学号输出各项成绩输出界面1结束开始输出界面8输入字符串判断匹配NY结束结束流程开始输出界面9结束三、详细设计系统总体结构学生信息录入成绩查询系统成绩删除模块排序统计系统退出系统六、课程设计总结课程设计心得:课程设计给我一个学以致用的机会,刚开始的时候还以为学这黑黑的东西没用,只是一些简单的计算。经过了这次的练习我才发现原来的黑屏有它自己的好处,通过学习也发现原来这种黑屏就是那些应用程序的原型,不论你以后学程序开发还是网页的制作都有很好大好处,这些基础是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。通过这次的学习我发现以后不管是哪一科我们尽量要把它拿过来使用,只有把知识应用到实际生活中才能说这知识是自己的啦。在以后找工作中这些作品就会是我的学习凭证,是我的能力的体现,不难想象一个公司要的是一些实际的东西不需要太多的理论。在程序设计中的问题和解决:在调试过程中我们也遇到过不少的错误,警告等,有些错误多达二十多个,改得头都是晕的,有时就想放弃了,但是在老师的帮助下,我慢慢的将程序调好,这都归功于老师的帮助。有时我们在调试的时候无意间多打了一个空格或者是无意间删了一个字符,导致程序很多的错误,还有就是在建库的时候不能出错,一但出了一点错就得重新输入。所以,希望以后程序设计者一定要注意这点,一定要小心,三思而后行。还有就是程序本身存在很多不足,有待改进。比如修改模块,一次只能改一项数据。附录源程序清单(带注释)#include#include#include#includevoidhomepage();;Sleep(100);}system(cls);homepage();break;}elseprintf(\n用户名或密码无效请重新输入:\n);continue;}if(k==0)printf(\n连续输入错误3次将退出程序\n);Sleep(2000);quit();}voidhomepage(){charn;printf(\n\n);printf(\t┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n);printf(\t┃************************************************************┃\n);printf(\t┃***┃\n);printf(\t┃*1.录入成绩*2.显示成绩*┃\n);printf(\t┃***┃\n);printf(\t┃************************************************************┃\n);printf(\t┃***┃\n);printf(\t┃*3.删除记录*4.排序成绩*┃\n);printf(\t┃***┃\n);printf(\t┃************************************************************┃\n);printf(\t┃**┃\n);printf(\t┃*0.退出程序*┃\n);printf(\t┃**┃\n);printf(\t┃************************************************************┃\n);printf(\t┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n);while((n!='1')&&(n!='2')&&(n!='3')&&(n!='4')&&(n!='0')){printf(\n请选择:);fflush(stdin);scanf(%c,&n);switch(n){case'1':input();break;case'2':if(count10)display();else{printf(记录数已满\n);Sleep(2000);system(cls);homepage();}break;case'3':del();break;case'4':sort();case'0':quit();break;default:printf(\n选项错误\n);}}}voiddisplay(){inti;charc;system(cls);switch(sort_type){case0:printf(\t\t未排序:\n\n);break;case1:printf(\t\t按学号排序:\n\n);break;case2:printf(\t\t按c语言成绩排序:\n\n);break;case3:printf(\t\t按数学成绩排序:\n\n);break;case4:printf(\t\t按英语成绩排序:\n\n);break;case5:printf(\t\t按平均成绩排序:\n\n);break;}printf(\t学号\t姓名\tc语言\t数学\t英语\t平均成绩\n);for(i=0;icount;i++){printf(\t%d\t%s\t%\t%\t%\t%\n,stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].avg);}printf(\n\n按任意键返回\n);c=getch();system(cls);homepage();}voidinput(){inti,numcheck;charc;system(cls);do{printf(学号:\n);scanf(%d,&stu[count].num);numcheck=1;if(stu[count].num0)printf(请输入正整数:\n);for(i=0;icount;i++){if(stu[count].num==stu[i].num){numcheck=0;printf(学号重复,重新输入:\n);}}}while(!numcheck);printf(姓名:\n);fflush(stdin);gets(stu[count].name);for(i=0;i3;i++){printf(第%d门课成绩:\n,i+1);scanf(%f,&stu[count].score[i]);}stu[count].avg=(stu[count].score[0]+stu[count].score[1]+stu[count].score[2])/3;printf(是否继续输入(y/n):\n);do{c=getchar();if(c=='y'||c=='Y'){count++;if(count10)input();else{printf(记录数已满\n);Sleep(2000);system(cls);homepage();}}elseif(c=='n'||c=='N'){count++;system(cls);homepage();}else;}while((c!='y')&&(c!='n')&&(c!='Y')&&(c!='N'));}voiddel(){inti,j,del_num,match=0;charc;system(cls);printf(请输入要删除的学生学号:\n);scanf(%d,&del_num);waiting();for(i=0;icount;i++){if(stu[i].num==del_num){match=1;for(j=i;jcount;j++)/*{stu[j].num=stu[j+1].num;strcpy(stu[j].name,stu[j+1].name);stu[j].score[0]=stu[j+1].score[0];stu[j].score[1]=stu[j+1].score[1];stu[j].score[2]=stu[j+1].score[2];stu[j].avg=stu[j+1].avg;}*/stu[j]=stu[j+1];}}if(!match)printf(没有要找的学号.\n);printf(是否继续删除?(y/n));fflush(stdin);do{c=getchar();if(c=='y'||c=='Y'){count--;del();}elseif(c=='n'||c=='N'){count--;syst
本文标题:c语言班级成绩管理系统
链接地址:https://www.777doc.com/doc-8560566 .html