C语言学生成绩管理程序设计实践训练课程设计报告.docx
《C语言学生成绩管理程序设计实践训练课程设计报告.docx》由会员分享,可在线阅读,更多相关《C语言学生成绩管理程序设计实践训练课程设计报告.docx(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、23摘 要随着计算机技术的发展,特别是计算机网络技术与数据库技术的发展,人们的生活与工作方式已发生了很大的改观。网络技术的应用使得计算机之间通信、信息共享成为可能,而数据库技术的应用则为人们提供了数据存储、信息检索、信息分析等功能,从而使得工作更高效地进行。因此本次课程设计的课题是学生成绩管理系统,本文介绍课程设计课题的基本要求,详细介绍本次课程设计系统中的各种功能及流程图,以及对各种功能的有其详细的源程序代码,同时本文提供了完整的源程序代码,并展示了系统中各种功能的使用和运行效果。最后给出了在用c语言程序设计编程过程中的总结,其中包含作者对本程序的独特设计,作者的设计收获、设计中遇到的困难和
2、问题,以及作者对设计题目及功能的改进意见,英文摘要,查阅的参考文献等方面的内容。关键词:网络技术;数据库;c语言目 录1本课程的作用和目的2 课程的基本要求3设计整体规划及方案4功能分析及设计任务5流程图6各功能的运行过程及结果7讨论及进一步研究建议8课程设计心得9源程序Abstract参考文献1本课程的作用和目的为综合应用C语言程序设计理论知识、进一步提高学生综合解决问题、协调工作的能力和良好的软件开发习惯,特安排本实验内容。希望通过该实习能够进一步激发学生的学习热情,培养学生初步编程的能力,为后续的学习和发展奠定基础。2.课程基本要求基本要求:(1)能按学期、按班级完成对学生成绩的录入。(
3、2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单(5)能按学号删除学生纪录,成绩等。(6)将学生的学号、姓名及各门课程的成绩等信息保存于外部存储器的文件中。创新要求:在基本要求达到后,可进行创新设计。信息描述:录入学生成绩信息(包括学生学号、姓名、各门课程的成绩等)。3.设计整体规划及方案整个程序的设计是通过对每一个功能的设计,然后,再对每一个功能的程序进行模块化,从而形成一个完整的学生成绩管理系统。在对于给定问题进行透彻的了解和详细的分析的基础上,把问题分解成若干个按顺序执行的逻辑部分。每
4、个子任务如果仍很复杂,还可以再分解为若干个子任务,如此逐层分解。4.功能分析及设计任务能按学期、按班级完成对学生成绩的录入、修改。能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序。能查询学生成绩,不及格科目及学生名单。将学生的学号、姓名及各门课程的成绩等信息保存于外部存储器的文件中能按班级输出学生的成绩单。系统以菜单方式工作。5.流程图开始主界面显示所有学生信息修改学生记录删除学生记录按姓名查询学生记录按平均成绩排序按班级查询按学期查询增加学生记录显示不及格学生信息结束6. 各功能的运行过程及结果1号功能显示所有学生信息2号功能修改学生记录3号功能删除学生记录4号功
5、能按姓名查询学生记录5号功能按平均成绩排序6号功能按班级查询7号功能按学期查询8号功能增加学生记录9号功能显示不及格学生信息7. 讨论及进一步研究建议由于对C语言的系统编程还不是很熟悉,这个学生信息管理程序仍有不足之处和要改进的地方。在这里进行讨论。不足之处有:1.1、由于程序运行窗口尺寸不够大,输入的数据长度有要求,不能够输入的太长否则就会输出结果排列不整齐甚至无法输出数据。1.2、结构体中的班级只能输入整形变量。如果把班级定义为字符数组的话,暂时找不到办法不通过键盘输入,直接给结构体中的字符数组赋值。1.3、排序方法是采用冒泡排序法,对平均值进行排序。不过一旦选择排序,会把文件中的全部结构
6、体进行排序,然后根据用户输入选择,按班级或学期显示出来。如果只按班级或学期进行排序的话,要对文件中的结构体进行筛选,这样就不能使用冒泡排序法,暂时还想不出其他方法。8.课程设计心得大二时我们学习了C这一编程语言,但我们感觉学的很浅薄,平时都只能编一些比较小的程序,对一些比较大的程序都无从下手。这次课程设计花了三天,通过和同学的讨论要与不断地尝试,让我们学到了不少的知识,开拓了视野。回顾这次课程设计,至今我们收获慨颇多,自从拿到题目到完成整个编程,从理论到实践,在整整三天的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设
7、计使我懂得了理论与实际相结合是很重要的,只有理论和知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考能力。在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我们先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。通过这次课程设计,我们发现了自己
8、的不足之处,对以前所学的知识理解得不够深刻,掌握得不够牢固,比如说结构体、文件等等,这次课程设计,让我们重新温习了C语言的相关知识,并且也让我们对C语言编程的印象有了很大改观,发现C语言也可以完成这么实用的程序。这次课程设计让我们对C语言温故而知新,也大大提高我们小组对C语言编程的兴趣和信心。9.源程序#include #include #include /*定义学生结构体*/struct Studentchar ID20;char Name20;int Cla;int Term;float Mark1;float Mark2;float Mark3;float Average;float S
9、um;/*声明学生数组及学生数量*/struct Student students1000;int num=0;/*求平均值*/float Avg(struct Student stu)return (stu.Mark1+stu.Mark2+stu.Mark3)/3;/求总分float sum(struct Student stu)return (stu.Mark1+stu.Mark2+stu.Mark3);/找出不及格学生void NoPass()printf(-不及格学生信息-n);printf(%6s%10s%10s%8s%8s%8s%8s%10s%10sn,学号,姓名, 班级,学期,成
10、绩,成绩,成绩,总分,平均成绩);for (int i=0;inum;i+)if(studentsi.Mark160|studentsi.Mark260|studentsi.Mark360)printf(%6s%10s%10d%8.2d%8.2f%8.2f%8.2f%10.2f%10.2fn,studentsi.ID,studentsi.Name,studentsi.Cla,studentsi.Term,studentsi.Mark1,studentsi.Mark2,studentsi.Mark3,studentsi.Sum,studentsi.Average);/通过学期查询void ter
11、mserch()int term;printf(请输入要查询的学期:);scanf(%d,&term);getchar();printf(%6s%10s%10s%8s%8s%8s%8s%10s%10sn,学号,姓名, 班级,学期,成绩,成绩,成绩,总分,平均成绩);printf(-n);for (int i=0;inum;i+)if(studentsi.Term=term)printf(%6s%10s%10d%8.2d%8.2f%8.2f%8.2f%10.2f%10.2fn,studentsi.ID,studentsi.Name,studentsi.Cla,studentsi.Term,stu
12、dentsi.Mark1,studentsi.Mark2,studentsi.Mark3,studentsi.Sum,studentsi.Average);/*按平均值排序*/void Student_SortByAverage()int i,j;struct Student tmp;for (i=0;inum;i+)for (j=1;jnum-i;j+)if (studentsj-1.Averagestudentsj.Average)tmp=studentsj-1;studentsj-1=studentsj;studentsj=tmp;/通过班级查询void classserch() Stu
13、dent_SortByAverage();int cla;printf(请输入要查询的班级:);scanf(%d,&cla);getchar();printf(%6s%10s%10s%8s%8s%8s%8s%10s%10sn,学号,姓名, 班级,学期,成绩,成绩,成绩,总分,平均成绩);printf(-n);for (int i=0;inum;i+)if(studentsi.Cla=cla)printf(%6s%10s%10d%8.2d%8.2f%8.2f%8.2f%10.2f%10.2fn,studentsi.ID,studentsi.Name,studentsi.Cla,studentsi
14、.Term,studentsi.Mark1,studentsi.Mark2,studentsi.Mark3,studentsi.Sum,studentsi.Average);/*通过学号返回数组下标*/int Student_SearchByIndex(char id)int i;for (i=0;inum;i+)if (strcmp(studentsi.ID,id)=0)return i;return -1;/*通过姓名返回数组下标*/int Student_SearchByName(char name)int i;for (i=0;inum;i+)if (strcmp(studentsi.
15、Name,name)=0)return i;return -1;/*显示单条学生记录*/void Student_DisplaySingle(int index)printf(%6s%10s%10s%8s%8s%8s%8s%10s%10sn,学号,姓名, 班级,学期,成绩,成绩,成绩,总分,平均成绩);printf(-n);printf(%6s%10s%10d%8.2d%8.2f%8.2f%8.2f%10.2f%10.2fn,studentsindex.ID,studentsindex.Name,studentsindex.Cla,studentsindex.Term,studentsinde
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 学生 成绩 管理 程序设计 实践 训练 课程设计 报告
限制150内