《c语言课程学生成绩管理 .docx》由会员分享,可在线阅读,更多相关《c语言课程学生成绩管理 .docx(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结目录目录 1一、课程设计的目的与要求11.1 课程设计目的: 11.2 课程设计要求2二、题目说明 32.1 程序开发背景32.2 开发工具介绍3三、总体设计 43.1 系统结构图 43.2 模块流程图 53.2 模块流程图 5四、详细说明 74.1 成果添加模块74.2 成果显示模块84.3 按姓名查找模块94.4 成果排序模块104.5 成果比较模块10五、遇到的问题和解决方法11六、课程设计总结12七、参考文献 12附录(源程序代码) 12一、课程设计的目的与要求1.1 课程设计目的 :1. 为培养同学严谨的工作态度,锤炼同学编写文档的才能。进一步把握和利用C 语言进行程
2、设计的才能。进一步懂得和运用结构化程设计的思想和方法。初步把握开发一个小型有用系统的基本方法。学会调试一个较长程序的基本方法。学会利用流 程图或 N-S 图表示算法。把握书写程设计开发文档的才能(书写课程设计报告)。2、娴熟把握 C语言课程中所学的理论学问。C语言是在国内外广泛使用的一种运算机语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依靠运算机硬件的应用程序。因此,它的应用范畴广泛。学习使用C 语言程序的目的是把握程序可编辑资料 - - - 欢迎下载精品名师归纳总结设计的思路,学会用运算机语言编写程序正确处
3、理算法和语法的关系算法是程序的核心、是灵魂,语法是外壳、是工具。通过课程设计,我们要娴熟的把握C 语言的算法、语言、函数的调用、循环的使用、数组的运用等。3、通过综合 C 语言的基本学问来解决实际问题。C 语言中与许多的东西,像:数据类型、运算符、表达式、程序设计结构、数组与函数调用。其中 C 语言最难和最经典的的方就是循环,( while 和 for 的嵌套)运用 WHILE,FOR, SWITCH和 if 的循环嵌套,我们可以实现现实中课程信息治理、图书信息治理、同学信息治理、商品信息治理等。 C 语言仍具有绘图才能强,可移植性,并具备很强的数据处理才能,因此适于编写系统软件,三维,二维图
4、形和动画。它是数值运算的高级语言。4 、加强分析和解决问题的才能。通过这次的课程设计,能加强我们对程序设计的摸索、设计、分析、懂得和解决问题的才能。对于我们初学者来说,主要是学习成长设计的方法,进行程序设计的基本训练为将来进一步学习打下基础。课程设计不能之把握概念,仍要动手编程、上机调试运行。只有自己动手,才能学的更多。1.2 课程设计要求1. 课程设计步骤:( 1)对系统进行功能需求分析。( 2)设计合理的数据结构和系统框架。( 3)编程简练,程序功能齐全,能正确运行。( 4)说明书、流程图要清楚。( 5)课题完成后必需按要求提交课程设计说明书。在课程设计过程中要求同学:重视课程设计环节,用
5、严谨、科学和踏实的工作态度对待课程设计的每一项任务。依据课程设计的题目要求,独立的完成各项任务,不答应相互抄袭。按时到机房上机,并接受老师的检查。仔细编写课程设计报告。课程设计可以由2 4 名同学合作完成一个课题。全体成员应共同协作完成选题,确定设计思想,进行功能模块划分,然后由组长为各成员支配任务。整个设计期间,组长负责和谐工作。各小 组成员明确自己的任务后,应独立完成各自模块的设计、编码和调试,独立完成课程设计说明书。 小组成员要懂得同组其他成员设计的模块,娴熟操作本组设计。2. 考核方式和成果评定 考核分为两个部分:( 1)程序运行情形:按规定时间到机房运行程序,由老师检查运行情形可编辑
6、资料 - - - 欢迎下载精品名师归纳总结( 2)课程设计报告:是否按规定书写课程设计要求的各项内容课程设计成果接受百分制:100%= 平常( 20)上机检查(30%) +课程设计报告( 50%)二、题目说明2.1 程序开发背景运算机已经成为我们学习和工作的得力助手,它被应用于许多领域,之所以如此,主要有以下几个方面的缘由:第一,运算机可以替代人工进行许多纷杂的劳动。其次,运算机可以节省许多资源。第三运算机可以大大提高人们的工作效率。第四,运算机可以保证文档的安全通过 C 语言,我们可以开发许多新的工程,实现智能操作化,科技化,实现低投入,高产出的良好现象。现在我国同学成果治理仍停留在纸介质层
7、面上,这样的机制已经不能适应时代的进展,由于他铺张许多人力物力资源,在信息时代这种治理方法必定将被运算机为基础的信息治理方法所取 代。2.2 开发工具介绍C 语言是Combined Language (组合语言)的中英混合简称。是一种运算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程 序,也可以作为应用程序设计语言,编写不依靠运算机硬件的应用程序。因此,它的应用范畴广泛,不仅仅是在软件开发上,而且各类科研都需要用到C 语言,详细应用比如单片机以及嵌入式系统开发。早期的 C 语言主要是用于 UNIX 系统。由于 C 语言的强大功能和各方面
8、的优点逐步为人们熟识,到了八十岁月,C 语言开头进入其它操作系统,并很快在各类大、中、小和微型运算机上得到了广泛的使用。成为当代最优秀的程序设计语言之一。C 语言的特点:C语言是一种结构化语言。它层次清楚,便于按模块化方式组织程序,易于调试和爱护。C 语言的表现才能和处理才能极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它仍可以直接拜望内存的物理的址,进行位bit一级的操作。由于C 语言实现了对硬件的编程操作,因此 C 语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。C 语言中 :可编辑资料 - - - 欢迎下载精品名师归纳总结mai
9、n 是主函数的函数名,表示这是一个主函数。每一个C 源程序都必需有,且只能有一个主函数 main函数 。函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。 printf函数是一个由系统定义的标准函数,可在程序中直接调用。此外, C 语言仍具有效率高,可移植性强等特点。因此广泛的移植到了各类各型运算机上, 从而形成了多种版本的C语言。优点 :( 1) C 语言灵敏性好,效率高,可以接触到软件开发比较底层的东西。( 2)微软的 MFC库博大精深,学会它可以让随心所欲的进行编程。( 3) VC是微软制作的产品,与操作系统的结合更加紧密。缺点 :对使用者的要求比较高,既要具备丰富的
10、C 语言编程体会,又要具有确定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。三、总体设计3.1 系统结构图同学成果治理系统是为了便利用户依据需要对同学的各科成果信息进行治理的系统。在如今的现代化信息理念下,一个同学治理系统在国际各大高校的训练机构中是一个必不行少的应用程序, 它可以便利的对同学信息进行查询,比较,排序等功能,大大提高工作效率。同学成果治理系统包括人员信息的录入,信息查询,比较,排序等操作。内容比较庞大复杂。通过以上说明,我们可以总结得到如下的系统结构图。可编辑资料 - - - 欢迎下载精品名师归纳总结增显查学学加示询生生学学学成成生生生绩绩成
11、成成统比绩绩绩计与较排序按学学各各各姓生生科科科名总平平最最查分均均高低找分分分分同学成果治理平均分降序排序图 3-13.2 模块流程图可编辑资料 - - - 欢迎下载精品名师归纳总结3.2.1 成果添加和打印模块开头输输输入入入学姓成号名绩可编辑资料 - - - 欢迎下载精品名师归纳总结图 3-2打印同学信息可编辑资料 - - - 欢迎下载精品名师归纳总结3.2.2 查看成果模块查看成果输入姓名是否相等YN输出相关信息终止图 3-33.2.3 成果排序模块可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结同学成果利 用 For 循i=0 。 in
12、-1 。i+j=i 。 javeragehead+k-averageifk.=itemp=*head+k*head+k=*head+i*head+i=temp可编辑资料 - - - 欢迎下载精品名师归纳总结图 3-4可编辑资料 - - - 欢迎下载精品名师归纳总结3.2.4 成果比较模块开头p-max=p-scorei可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结forp=head。phead+m。p+ fori=0。 iscoreip-p-scoreiscorek可编辑资料 - - - 欢迎下载精品名师归纳总结p-min=p-scoreiAp
13、pendScore 函数:功能简介:向链表的末尾添加从键盘输入同学的学号、姓名和成果等信息。函数参数:结构体指针head,指向储备同学信息的结构体数组的首的址。可编辑资料 - - - 欢迎下载精品名师归纳总结整形变量 n,表示同学人数。 整形变量 m,表示考试科目。图 4-1int AppendScoreSTU *head,int n,int mint j 。STU *p 。char ch。forp=head+n 。pnumber。printfInput name:。scanf%s,p-name 。forj=0 。jscore+j 。n+ 。printfDo you want to appen
14、d a new nodeY/N.。scanf%c,&ch 。ifch=n|ch=N return n。定义结构体指针 head,储备同学信息。利用for 循环依次输入同学的学号、姓名和成果等信息。4.2 成果显示模块PrintScore 函数:功能简介:打印同学的学号、姓名和成果等信息。函数参数:结构体指针head,指向储备同学信息的结构体数组的首的址。整形变量 n,表示同学人数。整形变量 m, 表示考试科目。图 4-2void PrintScoreSTU *head,int n,int mSTU *p 。int i 。char str100=0,temp4。可编辑资料 - - - 欢迎下载精
15、品名师归纳总结strcatstr,Number name 。fori=1 。i=m 。 i+strcatstr,Score 。itoai,temp,10 。strcatstr, 。strcatstr,average 。printf%s,str 。forp=head 。pnumber,p-name。fori=0 。iscorei。printf%9.2fn,p-average。定义结构体变量 head,储存同学信息,利用for 循环依次输出同学的学好、姓名和成果等信息。4.3 按姓名查找模块SearchScort 函数:功能简介:按学号查找同学成果并显示查找结果。函数参数:结构体指针head,指向
16、储备同学信息的结构体数组的首的址。整形变量 n,表示同学人数。整形变量 m, 表示考试科目。图 4-3void SearchScoreSTU *head,int n,int mint name,findNo 。printfplease Input the name you want to search: 。scanf%c,&name 。findNo=SearchNamehead,name,n 。iffindNo=-1printfnNot found.n。elsePrintScorehead+findNo,1,m 。可编辑资料 - - - 欢迎下载精品名师归纳总结输 入 要 查 找 的 学 生
17、的 姓 名 , 进 入 系 统 , 定 义 findNo,findNo=SearchNamehead,name,n , 如 果findNo=-1, 那么这显示没有找到,假如findNo不等于 -1,就说明有,调用PrintScore 函数,输出要查找的同学的成果。4.4 成果排序模块SortScore 函数:功能简介:用选择法按平均成果由高到低排序。函数参数:结构体指针head,指向储备同学信息的结构体数组的首的址。整形变量 n,表示同学人数。图 4-4void SortScoreSTU *head,int nint i,j,k 。STU temp 。fori=0 。in-1 。i+k=i 。
18、forj=i 。javeragehead+k-averagek=j 。ifk.=itemp=*head+k 。*head+k=*head+i 。*head+i=temp 。定义 i 、 j 、k, i是指向同学人数的外循环,k、 j是指向同学人数的内循环。k=i时,假如 j指向的数比 k 指向的那个数大,那么k=j. 而 k.=i时, i指向的外循环的数与k 指向的内循环的数相等。实现排序。4.5 成果比较模块ReadScore 函数:功能简介:结合同学的各科成果,运算每科的平均成果、最高分和最低分。函数参数:结构体指针head,指向储备同学信息的结构体数组的首的址。整形变量 n,表示同学人数
19、。 整形变量 m, 表示考试科目。可编辑资料 - - - 欢迎下载精品名师归纳总结图 4-5void ReadScoreSTU *head,int n,int mSTU *p 。int i,k。forp=head。psum1=0 。fori=0。 isum1=p-sum1+p-scorei。p-average1=floatp-sum1/n。k=0 。i=1。ifp-scoreip-scorek k=i。p-max=p-scorei。定义结构体指针p,p 是指向考试科目的外循环,定义i,i 是指向同学人数的内循环。利用这两个循环,对各科成果进行统计与比较,运算出各科成果的总分,继而运算出各科成果
20、的平均分,以及各科成果的最高分和最低分。五、遇到的问题和解决方法1、 Fori=0。in 。 i+ 经常写成 Fori=0,in,i+,导致运行错误。解决方法:编程时候需要仔细和耐心。并记住易错的的方,输入时不应当太快然后仔细检查。2.对一些课本中的学问不熟识,导致刚开头编程的时候很难下手。解决方法:重新把握不熟识的学问并收集相关资料,通过课程设计,我们要娴熟的把握C语言的算法、语言、函数的调用、循环的使用、数组的运用等。3、由于马虎经常漏掉、。等等。解决方法:时刻提示自己仔细仔细一点,病记住易错、易漏的的方,而且要仔细仔细检查。4、有些程序太过复杂,违反了kiss 规章。解决方法:要深刻懂得
21、程序的意义,化繁为简,化难为易5、运算机应用不娴熟,截图是我遇到的最大的问题。解决方法:提高运算机的操作技术,使快而有效的完成任务。可编辑资料 - - - 欢迎下载精品名师归纳总结六、课程设计总结一周的课程设计很快终止了,一开头拿起题目时什么都不懂,真不知道从何下手到后来觉得它很好玩,很想去做并期望能把它做得更好。刚开头错误实在太多,改错误真的很头疼,不过当经过一次又一次的调试后,最终弄好了,那时却是特别的兴奋。总的来说就是这次的课程让我学了不少东西,也让我对编程更有爱好,虽然学的不是很好,不过以后会努力的。课程设计是培养同学综合运用所学学问, 发觉 , 提出 , 分析和解决实际问题 , 锤炼
22、实践才能的重要环节 , 是对同学实际工作才能的详细训练和考察过程. 随着科学技术进展的日新日异,当今运算机应用在生活中可以说得是无处不在。因此作为二十一世纪的高校来说把握运算机开发技术是特别重要的。总的来说,本次课程设计,实在是受益匪浅。虽然课程设计只有短短的几天,但是我发觉我学到的学问比整整一个学期学到的都多。理论和实践的相结合是学习最有效的方法。在设计的过程中发觉了自己的不足之处,对以前所学过的学问懂得得不够深刻,把握得不够牢固,通过这次课程设计之后,确定把以前所学过的学问重新温故。回忆起此次课程设计,至今我仍感叹颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里
23、,可以学到许多许多的的东西,同时不仅可以巩固了以前所学过的学问,而且学到了许多在书本上所没有学到过的学问。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论学问是远远不够的,只有把所学的理论学问与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手才能和独立摸索的才能。本次 C 语言的课程设计让我对 C 语言的学习又有了更深化的明白,也让我更深刻的领悟到了“实践出真理”这个道理,在上机实践过程中学到的学问远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践学问匮乏的高校生增加了许多社会体会,为我们将来走上工作岗位其了不小的铺垫作用。本次课程设计中
24、遇到了许多以前没有遇到过的问题,也曾想要舍弃,但看到那些同学都在那仔细的写程序,给了我连续的信心。在同学的帮忙下,我顺当的终止了本次课程设计,让我知道原先凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友情和团结的重要性。七、参考文献1. Visual C+ 课程设计案例精编作者:夏崇镨、任海军、余健2. C 语言程序设计作者谭浩强3. 有用 C 语言程序设计教程李金祥等编 中国电力出版社2021 4. 网址 1:5. 网址 2: 附录(源程序代码)#include #include #include #include #define STU_NUM 10可编辑资料 - - - 欢迎下载精
25、品名师归纳总结#define COURSE_NUM 4 struct studentint number。char name10。int score4。int sum。int sum1。int max。int min。float average。float average1。 。typedef struct student STU。int AppendScoreSTU *head,int n,int mint j。STU *p 。char ch。forp=head+n。pnumber。printfInput name:。scanf%s,p-name。 forj=0。 jscore+j。n+ 。
26、printfDo you want to append a new nodeY/N.。scanf%c,&ch。ifch=n|ch=N return n。void PrintScoreSTU *head,int n,int mSTU *p 。int i。char str100=0,temp4。strcatstr,Number name。fori=1。i=m。i+可编辑资料 - - - 欢迎下载精品名师归纳总结strcatstr,Score。itoai,temp,10。strcatstr, 。strcatstr,average。printf%s,str。forp=head。pnumber,p-na
27、me。fori=0。 iscorei。printf%9.2fn,p-average。void TotalScoreSTU *head,int n,int mSTU *p 。int i。forp=head。psum=0 。fori=0。 isum=p-sum+p-scorei。p-average=floatp-sum/m。void SortScoreSTU *head,int nint i,j,k。STU temp 。fori=0。in-1 。i+k=i。forj=i。 javeragehead+k-averagek=j。可编辑资料 - - - 欢迎下载精品名师归纳总结ifk.=itemp=*h
28、ead+k。*head+k=*head+i。*head+i=temp。void ReadScoreSTU *head,int n,int mSTU *p 。int i,k。forp=head。psum1=0 。fori=0。 isum1=p-sum1+p-scorei。p-average1=floatp-sum1/n。k=0 。i=1。ifp-scoreip-scorek k=i。p-max=p-scorei。int SearchNameSTU *head,char name,int nint i。fori=0。inumber=name return i。return -1。void Sear
29、chScoreSTU *head,int n,int mint name,findNo。printfplease Input the name you want to search:。scanf%c,&name。findNo=SearchNamehead,name,n。可编辑资料 - - - 欢迎下载精品名师归纳总结iffindNo=-1printfnNot found.n。elsePrintScorehead+findNo,1,m。char Menuvoidchar ch。printf#=#n。printf#n。printf#n。printf# copyright 2021-1-12#n。p
30、rintf#=#n。printf#1.Zeng jia xue sheng cheng ji#n。printf#2.Xian shi xue sheng cheng ji#n。printf#3.Cha xun xue sheng cheng ji#n。printf#4.Xue sheng cheng ji pai xu#n。printf#5.Xue sheng cheng ji bi jiao#n。printf#0.Tui chu xi tong#n。printf#=#nprintfqing an 0-5 xuanzhe cai dan xiang:。scanf %c, &ch。return
31、ch。mainchar ch。int n=0,m=4。 STU stuSTU_NUM 。while1ch=Menu。switchchcase1:n=AppendScorestu,n,m。TotalScorestu,n,m。 break。case2:PrintScorestu,n,m。break。case3:SearchScorestu,n,m。可编辑资料 - - - 欢迎下载精品名师归纳总结break。case4:SortScorestu,n。printfnSorted resultn。PrintScorestu,n,m。break。case5:ReadScorestu,n,m。break。case0:exit0。printfEnd of program.。break。default:printfInput error.。break。可编辑资料 - - - 欢迎下载