《C语言课程研究设计报告学生成绩管理系统 .docx》由会员分享,可在线阅读,更多相关《C语言课程研究设计报告学生成绩管理系统 .docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习河南理工高校本科生课程设计报告可编辑资料 - - - 欢迎下载精品名师归纳总结题 目:同学成果治理系统同学姓名: *学 号: *专 业:信管班 级: 12-1指导老师:安葳鹏2021 年 7 月 10 日目录C 语言课程设计任务书4同学成果治理系统5【摘要】 51. 论文题目:同学成果治理系统52. 技术参数、设计步骤: 53. 设计理论分析方法: 54. 设计结论及分析 64.1 各个函数功能简洁分析 64.1.1 主菜单函数 main:64.1.2 输入函数 input:64.1
2、.3 输出函数 display:64.1.4 查找 find:64.1.5 修改 change:64.1.6 删除 del:74.1.7 添加 add:74.1.8 读入 read:74.1.9 储存 save:74.1.10 排序 sort:74.1.11 学号排序 sortx:74.1.12 不及格输出 no_pass:74.1.13 输出 shuchu:7 5参考文献 :76. 附录: 86.1 程序部分 :8可编辑资料 - - - 欢迎下载精品名师归纳总结C 语言课程设计任务书课程名称C 语言课程设计设计题目同学成果治理系统一、教案要求1. 巩固和加深同学对C 语言课程的基本学问的懂得
3、和把握2. 把握 C 语言编程和程序调试的基本技能3. 利用 C 语言进行基本的软件设计4. 把握书写程序设计说明文档的才能5. 提高运用 C 语言解决实际问题的才能二、设计资料及参数每个同学在老师供应的课程设计题目中任意选择一题,独立完成,题目选定后不行更换。某班同学成果治理,包括以下功能:1、从键盘输入包括学号、姓名、各门课程成果不少于 2 门,并将其储存在磁盘文件student 里2、打开文件后,运算每个人的总分和平均分,排序并储存3、具有在文件中进行单项查询或多项查询的功能(即能够依据给定的关键字, 如姓名等找出中意条件的纪录)4、具有输出文件数据信息的功能三、设计要求及成果1. 分析
4、课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告四、进度支配1、选择课程设计题目,分析课题的要求2、编程3、编程及调试4、写课程设计报告5、提交课程设计报告(打印稿及电子稿)五、评分标准1. 依据课程设计完成情形,必需有可运行的程序。2. 依据课程设计报告的质量评定。六、建议参考资料C 语言程序设计,贾宗璞,电子工业出版社可编辑资料 - - - 欢迎下载精品名师归纳总结同学成果治理系统【摘要】通过课程设计,让我对C 语言有了更深的懂得,让我们把学到的理论应用于详细实践中,锤炼了我们各方面的才能
5、,从而让我们更快提高。通过一些简洁函数的叠加构成了功能比较完备的 同学成果治理系统,从输入到处理再到输出,你将体会到完善的真正含义。同学成果治理系统具有以下简洁功能:1. 从键盘输入包括学号、姓名、各门课程成果 不少于 2 门 ,并将其储存在磁盘文件里2. 打开文件后,运算每个人的总分,排序并储存3. 具有在文件中进行单项查询或多项查询的功能(即能够依据给定的关键字, 如姓名等找出中意条件的纪录)4. 具有输出文件数据信息的功能1. 论文题目:同学成果治理系统2. 技术参数、设计步骤:本程序包含输入input 、输出 display、查找 find 、修改 change、删除del、添加 ad
6、d、读入 read、储存 save等基本功能。先分别定义各种全局函数和全局变量 now,同时定义结构体及结构体数组(本程序为实现简洁操作暂定义长度为 3)。其中 now 作为现有同学信息的一个标记作用尤为重要。每次执 行 完 函 数 就 返 回 主 菜 单 。 共 含 有 四 个 开 关 语 句 , 依 次 在main,display,find,change 中,使界面更友好,用户操作更简洁。设计共分四步完成,依次为简洁设计,添加细节,上机调试,先改错再修改。遇到的问题可以查资料或向老师提问。3. 设计理论分析方法:应有全局的概念,拿到题目第一进行总体功能分析,只有对整体功能有了全局把握才能去
7、里自己用那部分学问进行编写。这个阶段好比盖房子,假如这个阶段做好了,说明房子已改好了。剩下任务就是怎么去装修了。确定了大体方向接下来就是功能实现阶段了,即所谓装修阶段。同样需要逐一的先写出能实现此功能的简洁程序。比犹如学成果治理系统,先写出最简洁的输入、输 出、排序等功能函数。然后通过简洁函数的相互调用、嵌套构成一个新功能的复杂函数。淡然这中间要加很多其他东西,这就需要我们多看书,多问老师同可编辑资料 - - - 欢迎下载精品名师归纳总结学啦。等到全部功能都能“正常”(按提示正确输入)实现,再考虑一些细节问 题,例如:假如全部都能简洁运行,可是有些时候有些输入错误或正确它都运 行,这就需要我们
8、通过改写程序使之在正确输入时运行,在错误输入时给出出 错提示。就像性别问题,输入M/W 时运行,输入其他就不让它运行,同时给出正确输入的提示。这样就好很多了。后面的一一修改就可以了。同时仍要考虑到见名知意,如 : 输入input 、输出 display、查找 find 、修改 change、删除del、添加 add、读入 read、储存 save、排序 sort、按学号排序 sortx 、不及格 no_pass、输出 shuchu。当然仍有其他问题需要留意,在这里不一一细说。4. 设计结论及分析 :4.1 各个函数功能简洁分析 :4.1.1 主菜单函数 main:主函数为一个死循环,前几个是功
9、能实现函数,只有 9 是退出。也就是说每执行完一个函数,他就自动返回主菜单。只有选择 9退出时才跳出循环。当然每选择一次它就自动清空屏幕,所以运行结果更直观。4.1.2 输入函数 input:先输入要添加的同学数量 n,同时 now 标记现有同学的数量。执行 n 次循环,输入 n 个同学的信息。其中输入性别时只有为 M/WM 为男, W 为女,均大写时才跳出循环。假如出错,有提示信息。最终自动求和并储存。4.1.3 输出函数 display:三部分 1.按总分名次输出 2.按学号次序输出 3.输出有不及格课程的同学4.1.4 查找find:查找分为按学号查找和按姓名查找,查找成功就输出,查找失
10、败就返回, 输出提示信息连续输入。4.1.5 修改change:输入学号,然后选择修改项,修改完后,提示用户“是否连续修改”,只有输入 N/n 时退出,输入其它字符都是连续。可编辑资料 - - - 欢迎下载精品名师归纳总结4.1.6 删除del:输入要删除同学的学号,假如找到就删除其信息,并提示用户删除成功, 假如没找到就提示用户删除失败。4.1.7 添加add:依据信息总容量 结构体数组的长度 和第一次输入的信息量判定是否能连续添加。假如添加后信息已满,就提示用户不能连续添加,同时屏蔽了添加选 项。4.1.8 读入read:从文件读入,防止了用户多次大量输入数据。4.1.9 储存save:每
11、次执行完修改信息包括添加、录入、修改、删除等都需要储存信息。当然在每个修改函数最终都需要调用一下储存函数。4.1.10 排序 sort:按总成果名次排序 冒泡法排序 。n 为要排序的同学数量,为形参。4.1.11 学号排序 sortx:按学号先后次序进行排序 冒泡法排序 。n 为要排序的同学数量,为形参。4.1.12 不及格输出 no_pass:输出不及格的同学信息。4.1.13 输出 shuchu:输出第 n 个同学信息。5. 参考文献 :C 语言程序设计,贾宗璞,电子工业出版社可编辑资料 - - - 欢迎下载精品名师归纳总结6. 附录:6.1 程序部分 :#include #include
12、 #include #include #define max 3 void input 。void display 。void find 。void change。void del。 void read。void save。void add。void sortint n 。void sortxint n 。void shuchuint n。void no_pass。int now=0。/* 标记位 */struct studentint num。char name20。char sex。int NO 。float score1。float score2。float sum。 。struct s
13、tudent stumax+1。void main/* 主函数菜单*/int as。doprintfnttt 欢迎使用同学成果治理系统 nn。printfntttt1. 录入学员信息 ntttt2. 显示学员信息 ntttt3. 查找学员信息 ntttt4. 修改学员信息 ntttt5. 删除学员信息 ntttt6. 添加学员信息ntttt7. 读入学员信息 ntttt8. 储存学员信息 ntttt9. 退出。printfnnntttt 请选择 。可编辑资料 - - - 欢迎下载精品名师归纳总结scanf%d,&as。switchascase 1:systemcls。input 。break。
14、case 2:systemcls。display。break。case 3:systemcls。find 。break。case 4:systemcls。change。break。case 5:systemcls。del。break。case 6:systemcls。add。break。case 7:systemcls。read。break。case 8:systemcls。save。break。case 9:systemcls。exit0 。while1 。void input/* 输入函数 */int i,n,j 。fori=0。 i+printfn 请输入添加的同学数量 在%d 以内:,
15、max-now 。scanf%d,&n。ifnmaxprintfn 请确保添加的数量在 %d 以内t.,max 。ifn=maxbreak。可编辑资料 - - - 欢迎下载精品名师归纳总结now=n。fori=0 。in。i+可编辑资料 - - - 欢迎下载精品名师归纳总结printfntttt 输入第 %d 个同学的信息 n,i+1 。printfn 输入同学的学号 : 。scanf%d,&stui.num 。getchar。printfn 输入同学的姓名 : 。getsstui.name。printfn 请输入同学的性别 M/W: 。forj=0 。j+可编辑资料 - - - 欢迎下载精品
16、名师归纳总结小写. 。stui.sex=getchar。ifstui.sex=M|stui.sex=Wbreak 。else printfnttt请确保输入性别的正确性 区分大getchar。可编辑资料 - - - 欢迎下载精品名师归纳总结printfn 请输入同学成果 1: 。scanf%f,&stui.score1 。printfn 请输入同学成果 2: 。scanf%f,&stui.score2 。stui.sum=stui.score1+stui.score2。sortn。save。systemcls。void display/* 整体输出函数 */int as,i。printfntt
17、t 班级同学成果列表 nnn。printfntttt请选择nnttt1. 按名次输出nttt2. 按学号输出nttt3.不及格的同学信息 nttt 。scanf%d,&as。switchascase 1:sortnow。fori=0 。inow 。i+shuchui 。break。case 2:sortnow。sortxnow 。fori=0 。inow 。i+shuchui 。break。可编辑资料 - - - 欢迎下载精品名师归纳总结case 3:no_pass。break。可编辑资料 - - - 欢迎下载精品名师归纳总结void find/* 查询函数 */int num,as,i。ch
18、ar name20。printfnttt 请选择 nnn。printfnttt1. 按学号查找 nttt2.按姓名查找 nttt 。scanf%d,&as。switchascase 1:systemcls。printf 请输入要查找的学号 :。doscanf%d,&num 。fori=0。i=nowprintfntt该生信息不存在 . 请重新输入whilei=now 。break。case 2:systemcls 。getchar。printf 请输入要查找的同学姓do可编辑资料 - - - 欢迎下载精品名师归纳总结getsname。 fori=0。i=nowshuchui。break。可编辑
19、资料 - - - 欢迎下载精品名师归纳总结名:。printfnnttt该生信息不存在 . 请重新输入姓whilei=now 。break。可编辑资料 - - - 欢迎下载精品名师归纳总结void change/*修改函数 */int num,as,j,i,m。char a。printfnttt 请输入要修改的同学的学号 :。scanf%d,&num 。fori=0 。inow 。i+ifstui.num=numforj=0 。j=nowprintfnntttt 学号输入有误 .nn 。void del/* 删除函数 */int num,i 。printfnttt 输入要删除的同学学号 。sca
20、nf%d,&num 。fori=0 。i=nowprintfnnnttt学 号 输 入 有 误 . 删 除 失可编辑资料 - - - 欢迎下载精品名师归纳总结败.nn 。break。可编辑资料 - - - 欢迎下载精品名师归纳总结ifstui.num=numifi=now-1now-=1。可编辑资料 - - - 欢迎下载精品名师归纳总结stui=stunow-1 。else可编辑资料 - - - 欢迎下载精品名师归纳总结now-=1。printfnnttt 删除成功 .nn 。sortnow。break。save。void add/* 添加函数 */char ch。int j。printfnt
21、ttt 仍能添加 %d 个同学信息 .nn,max-now 。ifnow=maxprintfnnntt存 储 空 间 已 满 无 法 继 续 添break。可编辑资料 - - - 欢迎下载精品名师归纳总结printfnttt 是否连续添加 .Y/N 。getchar。ch=getchar。whilech.=n|ch.=n 。void save/*文件储存函数 */FILE *fp 。/*fp 为文件指针 */ int i。iffp=fopenstu_infer,wb=NULLprintfnnttt 文件打开失败 . 。return。fori=0 。imax+1。i+iffwrite&stui,
22、sizeofstruct student,1,fp.=1 printfnnttt 文件储存错误 . 。fclosefp。void read/* 从磁盘读入函数 */int i。FILE *fp 。/*fp 为文件指针 */ fp=fopenstu_infer,rb 。fori=0 。imax+1 。i+fread&stui,sizeofstruct student,1,fp。fclosefp。void sortint n/* 按成果排序函数 n 为排序个数 */struct student temp。可编辑资料 - - - 欢迎下载精品名师归纳总结int i,j 。forj=0 。jn-1。j
23、+fori=0 。in-j-1 。i+ifstui.sumstui+1.sumtemp=stui。可编辑资料 - - - 欢迎下载精品名师归纳总结stui+1=temp。fori=0 。inow 。i+stui=stui+1 。可编辑资料 - - - 欢迎下载精品名师归纳总结stui.NO=i+1 。void sortxint n/* 按学号排序 n 为排序个数 */struct student temp。int i,j 。forj=0 。jn-1。j+fori=0 。istui+1.num可编辑资料 - - - 欢迎下载精品名师归纳总结stui+1=temp。stui=stui+1 。可编辑
24、资料 - - - 欢迎下载精品名师归纳总结void no_pass/*输出有不及格课程的同学的函数*/int i。printfnttt 显示有不及格课程的同学信息 :。fori=0 。inow 。i+ifstui.score160|stui.score260 shuchui。void shuchuint n/* 输出第 n 个同学信息的函数 */printfnt 学号t 姓名t 性别t 名次t 成果 1t 成果 2t 总成果n 。printft%dt%st%ct%dt%.2ft%.2ft%.2fn,stun.num,stun.name,stun.sex,stu n.NO,stun.score1
25、,stun.score2,stun.sum。可编辑资料 - - - 欢迎下载精品名师归纳总结版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人全部This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliangs personal ownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益。除此以 外,将本文任何内
26、容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳。Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not in
27、fringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.可编辑资料 - - - 欢迎下载精品名师归纳总结转载或引用本文内容
28、必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。Reproduction or quotation of the content of thisarticle must be reasonable and good-faith citation for theuse of news or informative public free information. Itshall not misinterpret or modify the original intention ofthe content of this article, and shall bear legal liabilitysuch as copyright.可编辑资料 - - - 欢迎下载