C 语言的课程设计学生成绩管理_第1页
C 语言的课程设计学生成绩管理_第2页
C 语言的课程设计学生成绩管理_第3页
C 语言的课程设计学生成绩管理_第4页
C 语言的课程设计学生成绩管理_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 一、课程设计的目的与要求3二、题目说明4三、总体设计6四、详细说明9五、遇到的问题与解决方案15六、课程设计总结16七、参考文献18附录(源代码程序)19一、课程设计的目的与要求1.1课程设计目的(1)为培养学生严谨的工作态度,锻炼学生编写文档的能力。进一步掌握和利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图或N-S图表示算法;掌握书写程设计开发文档的能力(书写课程设计报告);(2)熟练掌握C语言课程中所学的理论知识; C语言是在国内外广泛使用的一种计算机语言。它既有高级语言的特

2、点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛。学习使用C语言程序的目的是掌握程序设计的思路,学会用计算机语言编写程序正确处理算法和语法的关系算法是程序的核心、是灵魂,语法是外壳、是工具。通过课程设计,我们要熟练的掌握C语言的算法、语言、函数的调用、循环的使用、数组的运用等。(3)通过综合C语言的基本知识来解决实际问题; C语言中与许多的东西,像:数据类型、运算符、表达式、程序设计结构、数组与函数调用。其中C语言最难和最经典的地方就是循环,(while和for的嵌套)运用while,fo

3、r,switch和if的循环嵌套,我们可以实现现实中课程信息管理、图书信息管理、学生信息管理、商品信息管理等。C语言还具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。(4)加强分析和解决问题的能力。通过这次的课程设计,能加强我们对程序设计的思考、设计、分析、理解和解决问题的能力。对于我们初学者来说,主要是学习设计的方法,进行程序设计的基本训练为将来进一步学习打下基础。课程设计不能之掌握概念,还要动手编程、上机调试运行。只有自己动手,才能学的更多。1.2课程设计要求(1)对系统进行功能需求分析;(2)设计合理的数据结构和系统

4、框架;(3)编程简练,程序功能齐全,能正确运行;(4)说明书、流程图要清楚;(5)课题完成后必须按要求提交课程设计说明书;二、题目说明 题目:对学生成绩进行管理,通过编程,实现学生成绩的输入输出,进一步处理等功能。功能要求:该程序用字符界面输入10名学生的分数,学号,姓名,实现求其各科目的平均分,最值,根据总平均分排序进行降序输出,并且能够通过输入学生姓名查询学生有关信息。 界面用字符实现。2.1程序开发背景通过C语言,我们可以开发许多新的项目,实现智能操作化,科技化,实现低投入,高产出的良好现象。现在我国许多事物操作还停留在纸介质层面上,这样的机制已经不能适应时代的发展,因为他浪费许多人力物

5、力资源,在信息时代这种操作方法必然将被计算机为基础的信息管操作方法所取代。简单的说,学生成绩管理的功能主要是应用于教育系统,完成对日常的教学以及学生的计算机化得管理。为了使教学变得轻松,高效率,我们需要实现学生成绩的信息化管理。通过学生的各科成绩,我们能够得出其他方面的信息,如学生成绩的平均分,最高分,最低分,实现学生成绩的排序等等。2.2开发工具介绍C语言是Combined Language(组合语言)的中英混合简称。是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序

6、。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。C语言发展如此迅速,而且成为最受欢迎的语言之一,主要因为它具有强大的功能。C语言具有以下特点:、C语言是结构式语言 结构式语言的显著特点是代码级数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。C语言功能齐全 C语言具有各种各样的数据类型,并引入了指针概念,可是

7、程序效率更高,另外C语言具有强大的图形功能,支持多种显示器和驱动。C语言适用范围大 C语言还有一个突出的特点就是适合于多种操作系统。在C语言中main是主函数的函数名,表示这是一个主函数。每一个C源程序都必须有,且只能有一个主函数(main函数)。函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。printf函数是一个由系统定义的标准函数,可在程序中直接调用。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。C语言的优点 (1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。 (2)微软的MFC库博大精深,

8、学会它可以让随心所欲地进行编程。 C语言的缺点C语言的缺点主要表现在其语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。三、总体设计3.1 系统结构图学生成绩管理系统是为了方便用户根据需要对学生的各科成绩信息进行管理的系统。在如今的现代化信息理念下,一个学生管理系统在国际各大高校的教育机构中是一个必不可少的应用程序,他可以方便的对学生信息进行查询,排序等功能,以及多功能处理等。大大提高工作效率。学生成绩管理系统包括人员信息的输入,信息查询,排序,求平均分,最值等操作。内容比较庞大复杂。通过以上说明,我们可以总结得到

9、如下的系统结构图;进入系统功能选择 查询成绩成绩平均分成绩最值成绩排序退出系统 图3-1程序基本框架结构图3.2软件流程图;查看成绩输入姓名是否相等输出相关信息结束YN 图3-2平均成绩输入学生成绩输出平均成绩学生成绩累加做商得平均成绩结束 图3-3 求最值输入学生成绩 与中间量比较输出最值结束 图3-4排序成绩输出排好的信息结束N按平均分高低排序输入学生成绩 图3-2-4四、详细说明 4.1系统实施1.考虑到学生成绩的输入,我们需要实现学生成绩的界面化,我们随机输入几组学生成绩,来实现学生成绩的输入功能:功能实现:switch(ch) case1:printf(Enter add stdud

10、ents scores.n); for(i=0;ix;i+) printf(input name Number score(Math,English,Java,Computer).n); scanf(%s,); scanf(%d,&stui.Num); for(j=0;jy;j+) scanf(%d,&stui.scorej); 有关截图: 图4-12.学生成绩输入后,我们需要将其进行具体的功能处理,下面我们就以实现学生成绩的平均成绩的统计进行编程:功能实现:case2:printf(Enter display students average.n); for(i=0;ix;

11、i+) Scorei=0; for(j=0;jy;j+) Scorei=Scorei+stui.scorej; stui.avel=(Scorei/y); for(i=0;ix;i+) m=i; for(j=i+1;jx;j+) if(stum.avelstuj.avel) m=j; if(i!=m) temp=stui.avel; stui.avel=stum.avel; stum.avel=temp; for(N=0;Nx;N+) printf(name:%s,stuN.name); printf(Number:%d,stuN.Num); printf(Math:%d,stuN.score

12、0); printf(English:%d,stuN.score1); printf(Java:%d,stuN.score2); printf(Computer:%d,stuN.score3); printf(ave:%6.2fn,stuN.avel); break;相关截图; 图4-23.学生成绩统计后,我们需要对其进行具体的排序,找出学生成绩中的不同等级,下面我们实现找最值的功能:功能实现: case3:printf(Enter subjects aver.max.min.n); for(i=0;iy;i+) f1i=0; for(j=0;jx;j+) f1i=f1i+stuj.score

13、i; f2i=f1i/x; printf(Subjects:%6.2f,f2i); n=0; for(i=1;if2i) n=i; printf(min.:%-6.2f,f2n); j=0; for(i=1;i4;i+) if(f2jf2i) j=i; printf(Max.:%-6.2f,f2j); break;有关截图: 图4-34.学生成绩统计好后,我们也要对其进行查询,此时,我们只要输入学生姓名就可以对其信息进行查询:功能实现:case4:printf(Enter demand students scores.n); printf(Input name:); scanf(%s,nam)

14、; for(i=0;i10;i+) N= strcmp(,nam); if(N=0) printf(nname:%s,Number:%d,Math:%d,English:%d,Java:%d,Computer:%d,ave:%-6.2fn,,stui.Num,stui.score0,stui.score1,stui.score2,stui.score3,stui.avel); break; printf(Name Error!); break; case0:printf(Exit system.n); exit(0); defualat:printf(Err

15、or!); 有关截图: 图4-4五、遇到的问题与解决方案1、一开始不清楚应该把姓名和成绩定义为一维数组还是二维数组,导致在运行过程中出现很多语法错误。解决方法:经过咨询老师,问题得以解决。2、for(i=0;in;i+)经常写成for(i=0,in,i+),导致运行错误。解决方法:编程时候需要仔细和耐心。并记住易错的地方,输入时不应该太快 然后仔细检查。3、对一些课本中的知识不熟悉,导致刚开始编程的时候很难下手。解决方法:重新掌握不熟悉的知识并收集相关资料,通过课程设计,我们要熟练的掌握C语言的算法、语言、函数的调用、循环的使用、数组的运用等。4、由于马虎经常漏掉、;等等。解决方法:时刻提醒自

16、己认真仔细一点,病记住易错、易漏的地方,而且要仔细认真检查。5、在应用switch语句时经常会出现遗漏现象,而且表达式的类型不明确,导致出现错误。解决方法:经过翻阅书本,发现错误。 六、课程设计总结我觉得,这次课程设计让我对C语言产生了一定的兴趣。通过这个课设,我才知道自己其实也可以完成一些编程。课程设计刚开始的时候,我们都不知道该如何从何入手, 编的错误很多很多,不过在一次又一次的调试后,慢慢的一些明白了,心里也有一点小小的成就感。通过这次的课程,我学了不少东西,也让我对编程更有兴趣,对自已一开始不好好学感到有点遗憾,但以后一定会好好努力。课程设计是培养学生综合运用所学知识,发现,提出,分析

17、和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术的发展,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。虽然课程设计只有短短的几天,但是我发现我学到了很多的知识。理论和实践的相结合是学习最有效的方法。虽然理论我学的不怎么样,但我觉得实践可以弥补一些不足。在设计的过程中发现自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,掌握了一些“新”的知识。此次课程设计,我感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东

18、西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。本次C 语言的课程设计让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。本次课程设计中遇到了很多以前没有遇到过的问

19、题,也曾想要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。在同学的帮助下,我顺利的结束了本次课程设计,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。此次课程设计涉及到的相关基础知识:if-else条件结构、switch选择结构、for循环结构、自定义函数、结构体等,此次课程设计体会:综合实验的难度比较大,要求在掌握C语言知识的基础上,能够编写程序,并且能够根据编译提示修改程序中的错误,调试运行程序,最终还要检验是否能够实现实验任务中的功能要求。此次课程设计不足:在模块化程序设计方面所学到的知识还很浅薄,比如模块的划分、模块的组建等,今后还要继续

20、努力。七、参考文献【1】 实用C语言程序设计教程 李金祥等编 中国电力出版社 2010【2】 C语言程序开发范例宝典 作者:王娣,安剑,孙秀梅【3】 C语言范例开发大全 作者: 刘艳飞,迟剑,房健等网址1: /f?kz=网址2: 附录(源代码程序)#include#include#include#includeint Num;char name10;int score10;float avel;typedef struct studentchar name10;int score10; int Num;float

21、avel;STUDENT;void PrintMenu()printf(n#=#n); printf(#=System of mannaging students scores=#n);printf(#-#n);printf(#=#n); printf(# 1.Add students scores #n);printf(# 2.Disply the average of scores #n); printf(# 3.The aver.max.min of the subjects #n); printf(# 4.Demand students scores #n);printf(# 0.Ex

22、it #n); printf(please switch 0-4 to enter.);main()int m,n,i,j,x,y,N; float f110,f210,temp,f310;char ch,nam10; float Score10; STUDENT stu10; clrscr();printf(input PeopleNumber , SbujectNumber, 1:n);scanf(%dn%dn,&x,&y); while(1) PrintMenu(); scanf( %c,&ch); switch(ch) case1:printf(Enter add stdudents

23、scores.n); for(i=0;ix;i+) printf(input name Number score(Math,English,Java,Computer).n); scanf(%s,); scanf(%d,&stui.Num); for(j=0;jy;j+) scanf(%d,&stui.scorej); case2:printf(Enter display students average.n); for(i=0;ix;i+) Scorei=0; for(j=0;jy;j+) Scorei=Scorei+stui.scorej; stui.avel=(Scorei/y); for(i=0;ix;i+) m=i; for(j=i+1;jx;j+) if(stum.avelstuj.avel) m=j; if(i!=m) temp=stui.avel; stui.avel=stum.avel; stum.avel=temp; for(N=0;Nx;N+) printf(name:%s,stuN.name); printf(Number:%d,stuN.Num); printf(Math

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论