- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计--学生成绩简单管理程序
南京航空航天大学
2010-2011(二)C程序设计课程设计报告
课设题目: 学生成绩简单管理程序一
学生学号:
课设教师:
日 期: 2011.5.31
一.程序主要功能:(写出程序完成的主要功能)
用结构体数组结构实现简单的学生成绩管理功能,要求具有数据输入、数据输出、数组排序、元素插入、元素删除、查询等功能。
各菜单功能:
Input Records(输入若干条记录)
从键盘一次输入一个学生的姓名和成绩(一条记录),依次存放到结构体数组中。掺入一条记录后,显示提示信息:确认是否输入下一条记录,如确认,继续输入,否则,退出输入功能。
Display All Record(显示所有记录)
按顺序显示表中所有记录,每屏显示十条记录。每显示十条记录,按ENTER键继续显示下一屏。
3. Sort(排序)
以姓名为序排列数组。
4. Insert a Record(插入一条记录)
在以姓名为序排列的数组中插入一条记录,插入后数组仍有序。输出插入成功的信息。
5. Delete a Record(按姓名查找,删除一条记录)
输入待删除记录的姓名,显示提示信息,让用户再次确认是否要删除。确认后,将该姓名的记录删除。
6. Query(查找并显示一个记录)
输入姓名,查找该记录,并显示该同学的成绩。
7. Add Records from a Text File(从正文文件中添加数据到结构体数组中)
用户可事前建立一个正文文件data.txt,存放多个待加入的记录。提示输入正文文件的文件名,然后从该文件中一次性加入多条学生记录。文件data,txt格式如下:
2
Wang Xiao 95
LiuLin 87
8. Write to a Text file
将数组中的全部记录写入文件records.txt,要求文件格式和文件data.txt相同。
9. Quit(退出学生成绩管理程序)
二.说明:(写出对题目的分析,设计中遇到的主要问题及解决方法,对设计的感想和心得。如有新增加的功能,给出增加功能的设计说明)
1.题目分析
该题主要考察对结构体,指针,文件的操作,以及C语言算法的掌握,所以完成此道题目要求较强的设计能力,尤其是要有一种大局观的意识。如何调程序也非常重要,通过这个程序可以学习到以前调试短程序没有的的经验。
菜单中的每一个选项都对应一个子程序,子程序的算法几乎囊获了所有C语言学过的技巧,下面就各个子程序中的功能进行说明:
功能1和4的算法相似,输入一条记录到结构体中去,其中有一部很关键,就是通过gets将所有的多余的字符,回车读去,否则就会出错。
功能2是显示所有的记录,通过循环输出,格式也比较重要。
功能3为按学号排序,因为学号定义成了字符数组的形式,因此在运用冒泡法进行排序的时候,要用到strcmp,strcpy等函数。
功能5为按姓名删除记录,先输入姓名,再一一比较,如果没有则返回失败信息,如果找到就将此记录都向前移一位,返回n-1。
功能6的算法在5中就已经体现了,输入姓名,一一比较。
功能7为新增的功能,因为考虑到原来给出的函数中竟然没有对学生成绩的统计功能,因此新增此功能,可以得出所有的记录个数,最高、最低、平均分,并输出相关的学生信息等。
功能8和9是对文件的操作,提前准备好数据。
2. 在写程序中遇到的问题:
开始时无法正确完成“确认后再继续”我先是自己认真耐心地用很多方法调试修改,然后问了几个同学,解决了这个问题,还有有关文件读写的问题,因为是上课时没有听太明白,所以自己再次仔细看了一遍书,分析书中例题,然后再运用到该程序的编写中,在同学的帮助下解决了。面对遇到的其他很多或大或小的问题主要都是和同学交流探讨与问老师相结合的方式来达到彻底的解决的。
3. 心得体会:
编这样一个程序在之前看的时候总是觉得不可能做到,完全没有思路,不过当静下心坐在电脑前仔细看完要求和提示后,一步一步地编写,慢慢地发现其实只要肯想肯问就能积少成多,完成这样一个在我们之前看来很复杂的程序设计。两百多行的程序内容很多,有的地方也很复杂,尤其是一些细节问题,粗心地丢三落四,造成很多不必要的错误并且很难发现,因此的确是对我毅力的一种考验。完成之后程序运行到第一次输入数据总是会停止,不得不对300多行的程序进行单步调试,再次解决了之前没有发现的问题之后,发现编程需要非常严谨
文档评论(0)