您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言学生成绩管理系统设计
-1-2009年C语言程序设计探究式自主设计报告系部:电子电气工程系专业:电气自动化班级:姓名:课题名称:学生成绩管理体统指导老师:**********学院2009年12月12日-2-说明1、设计的目的1)复习巩固C语言的基础知识,进一步加深对C语言编程的理解和掌握;2)利用所学知识,理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;3)培养学生在项目开发中团队合作精神、创新意识及实战能力。2、设计的任务根据学生的实际情况,进行分组选题。主要的课程设计题目如下(学生也可自主选题):1、图书管理系统2、学生信息管理系统3、学生成绩管理系统4、学生通讯录管理系统5、职工信息管理系统6、设计简单的计算器课程设计采用学生自主设计和指导老师辅导相结合的方式。3、设计要求与设计报告设计要求:1、任选上述题目之一,或自选题目。2、模块化的程序设计3、锯齿形的程序书写格式。4、必须通过编译连接运行设计报告:1、设计目的和任务2、总体设计:包括程序设计组成框图、流程图。3、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。4、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。5、源程序清单和执行结果:清单中应有足够的注释。-3-设计目的和任务(主要介绍设计的任务,为什么要设计,设计要达到什么样的目的。)设计目的:(1)基本掌握面向过程程序设计的基本思路和方法;(2)达到熟练掌握C语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题程序功能:(1).学生基本信息及成绩所选科目成绩的录入。(2).基本信息的查询(分系、班级;分科目)与修改。(3).对每系或每班各科成绩进行分析(即求单科平均成绩、及格率和优秀率);(4).对所开课程的成绩分析(求其平均成绩,最高分和最低分);(5).对学生考试成绩进行排名;目录一、总体设计··················································-4-二、详细设计··················································-4-三、调试与测试··············································-4-四、源程序清单和执行结果································-4-五、建议和体会···············································-4-六、参考文献··················································-5--4-一:总体设计设计流程图如下:二、详细设计1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu*p1)来实现此操作。2、查询模块:可用stu*lookdata(stu*p1)来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。3、插入模块:可用insert()函数来实现。其中通过学号的大小来比较的,并且以此来排序。4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage()、maverage()、eaverage()和comaverage()来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。-5-三:调试与测试问题一、学生初始信息模块:六、参考文献指导教师的评语及评分考核小组意见及评分综合评分-6-其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu*p1)来实现此操作。当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。解决办法及步骤:1、一个个输出所有的学生的学号,检查文件中是否有此学生,发现有。2、既然有此学生,那么检查循环判断是否有此学生的语句发现没有错3、输出用于循环检查语句中的学生信息,发现乱码4、仔细分析乱码的原因,最后发现是变量的类型错误,错将学生类型的结构体指针变量定义为了其他类型的指针变量。问题二、查询模块:可用stu*lookdata(stu*p1)来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。当正确输入查找信息时,系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。解决办法及步骤:1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入查找信息看能否得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。2、检查当我们在输入查找信息时,看是否我们输入的信息有误,若是这样的话,我们应当仔细输入查找信息。四:源程序清单和执行结果源程序如下:#includestdio.h#includemath.h#defineN30structstudent{longintnum;charname[10];charsex[3];intChinese,Math,English,total,average;}stu[N]={{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,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;intM=13;voidmodify(structstudentstu[]){intt;longnum;charz;t=search(stu)-400;printf(inputnum:);scanf(%ld,&stu[t].num);printf(inputname:);scanf(%s,stu[t].name);printf(inputsex:);-7-scanf(%s,stu[t].sex);printf(inputscoreofChinese:);scanf(%d,&stu[t].Chinese);printf(inputscoreofMath:);scanf(%d,&stu[t].Math);printf(inputscoreofEnglish:);scanf(%d,&stu[t].English);stu[t].average=(stu[t].English+stu[t].Math+stu[t].Chinese)/3;stu[t].total=stu[t].English+stu[t].Math+stu[t].Chinese;printf(\tNUM\tNAME\tSEX\tCHINESE\tMATH\tENGLISH\tTOTAL\tAVERAGE\n);printf(\t%4ld\t,stu[t].num);printf(%s\t,stu[t].name);printf(%s\t,stu[t].sex);printf(%4d\t%4d\t%4d\t%4d%8d\n,stu[t].Chinese,stu[t].Math,stu[t].English,stu[t].total,stu[t].average);printf(Next?y/n???);scanf(%s,&z);if(z=='y')modify(stu);}voidoutput(structstudentstu[]){inti;printf(\tNUM\tNAME\tSEX\tCHINESE\tMATH\tENGLISH\tTOTAL\tAVERAGE\n);for(i=0;iM;i++){printf(\t%4ld\t,stu[i].num);printf(%s\t,stu[i].name);printf(%s\t,stu[i].sex);printf(%4d\t%4d\t%4d\t%4d%8d\n,stu[i].Chinese,stu[i].Math,stu[i].English,stu[i].total,stu[i].average);}}voidsort(structstudentstu[]){inti,j,t;printf(1.anyingyuchengchejipaixu\n2.anyuwenchengjipaixu\n3.anshuxuechengjipaixu\n4.anpingjuechengjipaixu\n5.anzongfenpaixu\n);scanf(%d,&t);switch(t){case1:for(i=0;iM-1;i++)for(j=0;jM-i-1;j++){if(stu[j].Englishstu[j+1].English){s=stu[j];stu[j]=stu[j+1];stu[j+1]=s;}}output(stu);getch();break;case2:-8-for(i=0;iM-1;i++)for(j=0;jM-i-1;j++){if(stu[j].Chinesestu[j+1].Chinese){s=stu[j];stu[j]=stu[j+1];stu[j+1]=s;}}output(stu);getch();break;case3:for(i=0;iM-1;i++)for(j=0;jM-i-1;j++){if(stu[j].Mathstu[j+1].Math){s=stu[j];stu[j]=stu[j+1];stu[j+1]=s;}}output(stu);getch();break;case4:for(i=0;iM-1;i++)for(j=0;jM-i-1;j++){if(stu[j].averagestu[j+1].average){s=stu[j];stu[j]=stu[j+1];stu[j+1]=s;}}output(stu);getch();break;case5:for(i=0;iM-1;i++)for(j=0;jM-i-1;j++){if(stu[j].totalstu[j+1].total){s=stu[j];stu[j]=stu[j+1];stu[j+1]=s;}}output(stu);getch();break;}}-9-intsearch(structstudentstu[]){longt,i,z,K='y';charname[20];printf(1.anxuehaochazhao\n2.anxingmingchazhao\n);scanf(%d,&z);switch(z){case1:printf(qingshuruxuehao:\n);scanf(%ld,&t);for(i=0;iM;i++){if(stu[i].num==t){K='x';printf(\tNUM\tNAME\tSEX\tCHINESE\tMATH\tENGLISH\tTOTAL\tAVERAGE\n);printf(\t%4ld\t,stu[i].num);printf(%s\t,stu[i].name);printf(%s\t,stu[i].sex);printf(%4d\t%4d\t%4d\t%4d%6d\n,stu[i].Chinese,stu[i].Math,stu[i].English,stu[i].total,stu[i].a
本文标题:C语言学生成绩管理系统设计
链接地址:https://www.777doc.com/doc-7263763 .html