欢迎来到天天文库
浏览记录
ID:11045579
大小:52.43 KB
页数:11页
时间:2018-07-09
《c语言课程设计--学生成绩简单管理程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、南京航空航天大学2010-2011(二)C程序设计课程设计报告课设题目:学生成绩简单管理程序一学生学号:课设教师:日期:2011.5.31一.程序主要功能:(写出程序完成的主要功能)用结构体数组结构实现简单的学生成绩管理功能,要求具有数据输入、数据输出、数组排序、元素插入、元素删除、查询等功能。各菜单功能:1.InputRecords(输入若干条记录)从键盘一次输入一个学生的姓名和成绩(一条记录),依次存放到结构体数组中。掺入一条记录后,显示提示信息:确认是否输入下一条记录,如确认,继续输入,否则,退出输入功能。2.DisplayAllRecord
2、(显示所有记录)按顺序显示表中所有记录,每屏显示十条记录。每显示十条记录,按键继续显示下一屏。3.Sort(排序)以姓名为序排列数组。4.InsertaRecord(插入一条记录)在以姓名为序排列的数组中插入一条记录,插入后数组仍有序。输出插入成功的信息。5.DeleteaRecord(按姓名查找,删除一条记录)输入待删除记录的姓名,显示提示信息,让用户再次确认是否要删除。确认后,将该姓名的记录删除。6.Query(查找并显示一个记录)输入姓名,查找该记录,并显示该同学的成绩。7.AddRecordsfromaTextFile(从正文
3、文件中添加数据到结构体数组中)用户可事前建立一个正文文件data.txt,存放多个待加入的记录。提示输入正文文件的文件名,然后从该文件中一次性加入多条学生记录。文件data,txt格式如下:2WangXiao95LiuLin878.WritetoaTextfile将数组中的全部记录写入文件records.txt,要求文件格式和文件data.txt相同。9.Quit(退出学生成绩管理程序)二.说明:(写出对题目的分析,设计中遇到的主要问题及解决方法,对设计的感想和心得。如有新增加的功能,给出增加功能的设计说明)1.题目分析该题主要考察对结构体,指针,
4、文件的操作,以及C语言算法的掌握,所以完成此道题目要求较强的设计能力,尤其是要有一种大局观的意识。如何调程序也非常重要,通过这个程序可以学习到以前调试短程序没有的的经验。菜单中的每一个选项都对应一个子程序,子程序的算法几乎囊获了所有C语言学过的技巧,下面就各个子程序中的功能进行说明:功能1和4的算法相似,输入一条记录到结构体中去,其中有一部很关键,就是通过gets将所有的多余的字符,回车读去,否则就会出错。功能2是显示所有的记录,通过循环输出,格式也比较重要。功能3为按学号排序,因为学号定义成了字符数组的形式,因此在运用冒泡法进行排序的时候,要用到
5、strcmp,strcpy等函数。功能5为按姓名删除记录,先输入姓名,再一一比较,如果没有则返回失败信息,如果找到就将此记录都向前移一位,返回n-1。功能6的算法在5中就已经体现了,输入姓名,一一比较。功能7为新增的功能,因为考虑到原来给出的函数中竟然没有对学生成绩的统计功能,因此新增此功能,可以得出所有的记录个数,最高、最低、平均分,并输出相关的学生信息等。功能8和9是对文件的操作,提前准备好数据。2.在写程序中遇到的问题:开始时无法正确完成“确认后再继续”我先是自己认真耐心地用很多方法调试修改,然后问了几个同学,解决了这个问题,还有有关文件读写
6、的问题,因为是上课时没有听太明白,所以自己再次仔细看了一遍书,分析书中例题,然后再运用到该程序的编写中,在同学的帮助下解决了。面对遇到的其他很多或大或小的问题主要都是和同学交流探讨与问老师相结合的方式来达到彻底的解决的。3.心得体会:编这样一个程序在之前看的时候总是觉得不可能做到,完全没有思路,不过当静下心坐在电脑前仔细看完要求和提示后,一步一步地编写,慢慢地发现其实只要肯想肯问就能积少成多,完成这样一个在我们之前看来很复杂的程序设计。两百多行的程序内容很多,有的地方也很复杂,尤其是一些细节问题,粗心地丢三落四,造成很多不必要的错误并且很难发现,因
7、此的确是对我毅力的一种考验。完成之后程序运行到第一次输入数据总是会停止,不得不对300多行的程序进行单步调试,再次解决了之前没有发现的问题之后,发现编程需要非常严谨的态度和足够的耐心,否则就会因为一些问题而卡住甚至放弃。当然在整个过程中,同学帮助解决了许多自己没有意识到得错误,换一个角度,才能发现问题吧。三.源程序#include/*调用库函数*/#include#include#include#defineNULL0typedefstruct/*定义结构体数组*/{cha
8、rname[20];/*姓名*/floatscore;/*成绩*/}Student;intmenu_select();/*
此文档下载收益归作者所有