《C语言学生成绩管理系统设计.pdf》由会员分享,可在线阅读,更多相关《C语言学生成绩管理系统设计.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-1-2009 年 C语言程序设计探究式自主设计报告系部:电子电气工程系专业:电气自动化班级:姓名:课题名称:学生成绩管理体统指导老师:*学 院 2009年 12 月 12 日-2-说明1、设计的目的1)复习巩固 C 语言的基础知识,进一步加深对C 语言编程的理解和掌握;2)利用所学知识,理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;3)培养学生在项目开发中团队合作精神、创新意识及实战能力。2、设计的任务根据学生的实际情况,进行分组选题。主要的课程设计题目如下(学生也可自主选题):1、图书管理系统2、学生信息管理系统3、学
2、生成绩管理系统4、学生通讯录管理系统5、职工信息管理系统6、设计简单的计算器课程设计采用学生自主设计和指导老师辅导相结合的方式。3、设计要求与设计报告设计要求:1、任选上述题目之一,或自选题目。2、模块化的程序设计3、锯齿形的程序书写格式。4、必须通过编译连接运行设计报告:1、设计目的和任务2、总体设计:包括程序设计组成框图、流程图。3、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。4、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。5、源程序清单和执行结果:清单中应有足够的注释。-3-设计目的和任务(主要介绍设计的任务,
3、为什么要设计,设计要达到什么样的目的。)设计目的:(1)基本掌握面向过程程序设计的基本思路和方法;(2)达到熟练掌握 C 语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题程序功能:(1).学生基本信息及成绩所选科目成绩的录入。(2).基本信息的查询(分系、班级;分科目)与修改。(3).对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率);(4).对所开课程的成绩分析(求其平均成绩,最高分和最低分);(5).对学生考试成绩进行排名;目录一、总体设计 -4-二、详细设计 -4-三、调试与测试 -4-四、源程序清单和执行结果 -4-五、建议和体会 -4-六
4、、参考文献 -5-4-一:总体设计设计流程图如下:二、详细设计1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu*p1)来实现此操作。2、查询模块:可用stu*lookdata(stu*p1)来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。3、插入模块:可用insert()函数来实现。其中通过学号的大小来比较的,并且以此来排序。4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage(
5、)和comaverage()来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。-5-三:调试与测试问题一、学生初始信息模块:六、参考文献指导教师的评语及评分考核小组意见及评分综合评分-6-其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu*p1)来实现此操作。当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。解决办法及步骤:1、一个个输出所有的学生的学号,检查文件中是否有此学生,发现有。2、既然有此学生,那么检查循环
6、判断是否有此学生的语句发现没有错3、输出用于循环检查语句中的学生信息,发现乱码4、仔细分析乱码的原因,最后发现是变量的类型错误,错将学生类型的结构体指针变量定义为了其他类型的指针变量。问题二、查询模块:可用 stu*lookdata(stu*p1)来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。当正确输入查找信息时,系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。解决办法及步骤:1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入查找信息看能否得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。2、检查当我
7、们在输入查找信息时,看是否我们输入的信息有误,若是这样的话,我们应当仔细输入查找信息。四:源程序清单和执行结果源程序如下:#include stdio.h#include math.h#define N 30 struct student long int num;char name10;char sex3;int Chinese,Math,English,total,average;stuN=4001,lks,m,100,100,100,4002,lyt,w,99,63,89,4003,asd,w,60,70,80,4004,fgh,m,41,100,98,4005,asd,m,74,74,
8、87,4006,yt,m,85,58,78,4007,qwe,w,74,100,87,4008,dcs,w,74,85,96,4009,qfg,m,74,78,36,4010,gft,m,45,85,98,4011,mn,m,60,77,17,4012,yer,w,78,78,100,4013,lsd,m,100,89,85,s;int M=13;void modify(struct student stu)int t;long num;char z;t=search(stu)-400;printf(input num:);scanf(%ld,&stut.num);printf(input n
9、ame:);scanf(%s,stut.name);printf(input sex:);-7-scanf(%s,stut.sex);printf(input score of Chinese:);scanf(%d,&stut.Chinese);printf(input score of Math:);scanf(%d,&stut.Math);printf(input score of English:);scanf(%d,&stut.English);stut.average=(stut.English+stut.Math+stut.Chinese)/3;stut.total=stut.En
10、glish+stut.Math+stut.Chinese;printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn);printf(t%4ldt,stut.num);printf(%st,stut.name);printf(%st,stut.sex);printf(%4dt%4dt%4dt%4d%8dn,stut.Chinese,stut.Math,stut.English,stut.total,stut.average);printf(Next?y/n?);scanf(%s,&z);if(z=y)modify(stu);void out
11、put(struct student stu)int i;printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn);for(i=0;iM;i+)printf(t%4ldt,stui.num);printf(%st,stui.name);printf(%st,stui.sex);printf(%4dt%4dt%4dt%4d%8dn,stui.Chinese,stui.Math,stui.English,stui.total,stui.average);void sort(struct student stu)int i,j,t;print
12、f(1.an yingyu chengcheji paixun2.an yuwen chengji paixun3.an shuxue chengji paixun4.an pingjue chengji paixun5.an zongfen paixun);scanf(%d,&t);switch(t)case 1:for(i=0;iM-1;i+)for(j=0;jM-i-1;j+)if(stuj.Englishstuj+1.English)s=stuj;stuj=stuj+1;stuj+1=s;output(stu);getch();break;case 2:-8-for(i=0;iM-1;
13、i+)for(j=0;jM-i-1;j+)if(stuj.Chinesestuj+1.Chinese)s=stuj;stuj=stuj+1;stuj+1=s;output(stu);getch();break;case 3:for(i=0;iM-1;i+)for(j=0;jM-i-1;j+)if(stuj.Mathstuj+1.Math)s=stuj;stuj=stuj+1;stuj+1=s;output(stu);getch();break;case 4:for(i=0;iM-1;i+)for(j=0;jM-i-1;j+)if(stuj.averagestuj+1.average)s=stu
14、j;stuj=stuj+1;stuj+1=s;output(stu);getch();break;case 5:for(i=0;iM-1;i+)for(j=0;jM-i-1;j+)if(stuj.totalstuj+1.total)s=stuj;stuj=stuj+1;stuj+1=s;output(stu);getch();break;-9-int search(struct student stu)long t,i,z,K=y;char name20;printf(1.an xuehao chazhaon2.an xingming chazhaon);scanf(%d,&z);switch
15、(z)case 1:printf(qing shuru xuehao:n);scanf(%ld,&t);for(i=0;iM;i+)if(stui.num=t)K=x;printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn);printf(t%4ldt,stui.num);printf(%st,stui.name);printf(%st,stui.sex);printf(%4dt%4dt%4dt%4d%6dn,stui.Chinese,stui.Math,stui.English,stui.total,stui.average);ret
16、urn(stui.num);getche();break;if(K=y)printf(No find);getchar();break;case 2:printf(qing shuru xingming:);scanf(%s,name);for(i=0;iM;i+)if(strcmp(stui.name,name)=0)K=x;printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn);printf(t%4ldt,stui.num);printf(%st,stui.name);printf(%st,stui.sex);printf(%4d
17、t%4dt%4dt%4d%6dn,stui.Chinese,stui.Math,stui.English,stui.total,stui.average);getche();break;if(K=y)printf(No find);getchar();-10-break;void insert(struct student stu)int i;char z=y;for(i=M;i=N&z=y;i+)printf(input num:);scanf(%ld,&stui.num);printf(input name:);scanf(%s,stui.name);printf(input name:)
18、;scanf(%s,stui.sex);printf(input score of Chinese:);scanf(%d,&stui.Chinese);printf(input score of Math:);scanf(%d,&stui.Math);printf(input score of English:);scanf(%d,&stui.English);stui.average=(stui.English+stui.Math+stui.Chinese)/3;stui.total=stui.English+stui.Math+stui.Chinese;printf(Next?y/n?);
19、z=getche();if(z!=y)M=i+1;sort(stu);output(stu);void delete(struct student stu)long t,i,z;char l,name20;printf(1.an xuehao shanchu/n2.an xingming chanchu);scanf(%d,&z);switch(z)case 1:printf(qing shuru xuehao:);scanf(%ld,&t);for(i=0;iM;i+)if(stui.num=t)printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALt
20、AVERAGEn);printf(t%4ldt,stui.num);printf(%st,stui.name);printf(%st,stui.sex);printf(%4dt%4dt%4dt%4d%8dn,stui.Chinese,stui.Math,stui.English,stui.total,stui.average);break;-11-printf(Go on?y/n?);scanf(%s,&l);if(l=y)for(;iM;i+)stui=stui+1;stuM-1.num=0;output(stu);else break;case 2:printf(qing shuru xi
21、ngming:);scanf(%s,name);for(i=0;iM;i+)if(strcmp(stui.name,name)=0)printf(tNUMtNAMEtSEXtCHINESEtMATHtENGLISHtTOTALtAVERAGEn);printf(t%4ldt,stui.num);printf(%st,stui.name);printf(%st,stui.sex);printf(%4dt%4dt%4dt%4d%8dn,stui.Chinese,stui.Math,stui.English,stui.total,stui.average);break;printf(Go on?y/
22、n?);scanf(%s,&l);if(l=y)for(;iM;i+)stui=stui+1;stuM-1.num=0;output(stu);else break;main()int choice,i;clrscr();for(i=0;iM;i+)stui.average=(stui.English+stui.Math+stui.Chinese)/3;stui.total=stui.English+stui.Math+stui.Chinese;for(;)printf(n-xuesheng chengji guanli xitong-n);printf(1.modify xuesheng j
23、ilu n);-12-printf(2.output xuesheng jilun);printf(3.sort xuesheng jilun);printf(4.search xuesheng jilun);printf(5.insert xuesheng jilun);printf(6.delete xuesheng jilun);printf(7.exitn);printf(pllease input(1-7):n);scanf(%d,&choice);switch(choice)case 1:modify(stu);break;case 2:output(stu);break;case
24、 3:sort(stu);break;case 4:search(stu);break;case 5:insert(stu);break;case 6:delete(stu);break;case 7:exit();break;getch();五:建议和体会本学期我们的C 语言程序设计课程的考试题目是让学生自主设计。全班共分了6 个小组,我们3 组需要完成的题目是设计学生成绩管理系统。C 语言的实质就是以一定的语法规范为准,通过对数据量的复杂结构运算,完成一定功能的程序,是一门计算机基础语言,我们通过这一学期的学习,对于其特点和算法有了一定程度的了解。这两周的课程设计正是让我们巩固以前的知识并
25、在此基础上能够有所突破。在大家的共同努力下,忙碌了两个星期,我们顺利完成了对此程序的编译及试运行。在设计程序的过程中,我们了解到要设计一个完整的程序,其中最难的可能就属设计整个程序的框架,其中可能会需要经过很多次的修改与调试,所以必须要有耐心,直至最后设计出自己想要的程序。另外平时学习c 语言的基础也很关键,因为如果平时学得就不怎么样,那么你面对这么一个比较有难度的程序,可能会望而却步,看懂他人的程序都是个难点,更别说让自己去设计。为了解决此类问题,最好就是多向同学,老师请教,查找资料。设计一个程序的过程就是解决一个实际问题的过程,从解决实际问题的角度,我们可-13-以这样来看:首先要了解这个
26、问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;在次我们必须捋清思路,逐一的解决问题的各个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数,然后确定处理过程算法。感谢这次的课程设计,它使我更加深刻地体会到c 语言程序编写过程的严谨与细致,还有就是无论做任何事都要有耐心。当然团队合作也是非常重要的一个环节,这会使你在学习过程中倍感轻松,所以在此次课程设计过程中,通过我们小组全体成员共同努力,终于完成了这个学生管理系统的设计。总的来说,这次程序设计让我获益匪浅,对C 语言也有了进一步的认识:C 语言功能高、表达能力强、使用灵活方便、目标程序效率高等等。C 语言是在国内外广泛使用的一种计算机语言,相信除了以上优点,还有许多我们还未发现,希望能在以后的学习中有更深入的认识。六:参考文献教材:C 语言程序设计C 程序编程技术指导教师的评语及评分考核小组意见及评分综合评分