C 语言课程设计报告-------学生成绩简单管理程序
一、系统菜单的主要功能
(1)输入若干条记录
(2)显示所有记录
(3)按学号排序
(4)插入一条记录
(5)按姓名查找,删除一条记录
(6)查找并显示一条记录
(7)输出统计信息 (新增)
(8)从正文中添加数据到结构体数组中
(9)将所有数据写入文件中
(0)退出程序
二、题目分析
该题主要考察学生对结构体,指针,文件的操作,以及 C 语言算法的掌握,所以完成此道题
目要求较强的设计能力,尤其是要有一种大局观的意识。如何调程序也非常重要,通过这
个程序可以学习到以前调试短程序没有的的经验。
菜单中的每一个选项都对应一个子程序,子程序的算法几乎囊获了所有 C 语言学过的技巧,
下面就各个子程序中的功能进行说明:
功能 1 和 4 的算法相似,输入一条记录到结构体中去,其中有一部很关键,就是通过 gets
将所有的多余的字符,回车读去,否则就会出错。
功能 2 是显示所有的记录,通过循环输出,格式也比较重要。
功能 3 为按学号排序,因为学号定义成了字符数组的形式,因此在运用冒泡法进行排序的
时候,要用到 strcmp,strcpy 等函数。
功能 5 为按姓名删除记录,先输入姓名,再一一比较,如果没有则返回失败信息,如果找
到就将此记录都向前移一位,返回 n-1。
功能 6 的算法在 5 中就已经体现了,输入姓名,一一比较。
功能 7 为新增的功能,因为考虑到原来给出的函数中竟然没有对学生成绩的统计功能,因
此新增此功能,可以得出所有的记录个数,最高、最低、平均分,并输出相关的学生信息
等。
功能 8 和 9 是对文件的操作,提前准备好数据。
总体设计
一、 仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)
1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语
和计算机等相关信息;可用函数 cin(stu *p1)来实现此操作。
2、查询模块:可用 stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的
语文、数学、英语和计算机等的成绩。
3、插入模块:可用 insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。
4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等