西安邮电大学
(计算机学院)
高级语言课程设计报告题目:学生成绩管理系统
专业名称:微电子科学与技术
班级:微电子1401
学生姓名:丁春溪
学号(8位):05149026
指导教师:贺炎
设计起止时间:2015年9月2日—2015年9月11日
一. 设计目的
本系统为学生成绩管理系统。分为增加,删除,修改,查询,排序这五大模块。通过这五大模块实现对学生成绩的迅速整理和输出。其中查询模块包含四个内容,一是按学号查询,二是按姓名查询,三是按学院查询,四是按班级查询。
二. 设计内容
1.增加学生信息,将数据保存在一个结构体数组中。学生结构体数组中的内容是学生的姓名,学号,学院,班级,成绩。
2.修改学生信息,通过输入学号查找到相应的信息后进行修改。
3.删除学生信息,通过输入学号查找到相应信息后进行删除。
4.查询学生信息,有四种查询方式。通过姓名,学号,学院或者班级进行相应的查询操作。
5.按平均成绩排序,先计算每个学生的平均成绩,然后用冒泡排序使学生排序,最后输出。
6.显示学生信息,此选择输出所有已经录入的学生的信息。
三.概要设计
1
2
1. 增加模块:录入学生信息,保存在结构体数组中。一次录入一个学生的信息,如果要继续录入,需要进行选择。如果选择结束录入,系统将会返回到主菜单。
2. 修改模块:进入修改选项后,系统会提示你输入学号进行修改,系统会把输入的数字与学生信息中的学号进行比对,如果没有查找到相应学号,屏幕上会闪现没有相关学生的提示。如果找到了相应的学号,就可以直接修改。
3.删除模块:删除模块与修改模块的运作基本相同,都是先输入学号找到需要被处理的信息,然后进行后续的操作。在这个模块中,将要被删除的信息将会被它后面的信息覆盖掉,实现删除功能。
4.查询模块:这个模块的实现方式和实现主菜单一样。首先让使用者选择查询方式,或者返回到主选单选择。按学号,姓名,学院,班级查询的算法基本相同,都是使用者提前输入学号,姓名,学院,班级,然后系统通过循环在所有的信息中查找,匹配的学生信息会通过Student_DisplaySingle这个函数一次输出。
5.排序模块:先用CalAver函数计算平均值,然后在sort函数中排序,最后调用output 函数进行输出。
6.输出模块:这个模块的实现很简单,其功能是一次性输出所有学生的所有资料。进入此模块后,系统会马上开始循环一次输出。所有的输出结束后,按下任意键返回主菜单。
四.详细设计
1.功能函数的调用关系图
2.各功能函数的数据流程图
1. output函数
2.append函数
3.Modify函数
4.Delete函数
5.inquire函数
6. sort 与output函数
3.重点设计及编码
见C语言源代码主程序五.测试数据及运行结果1.正常测试数据和运行结果添加学生信息
显示学生信息
修改学生信息
删除学生信息
查询学生信息
按学号查询
按姓名查询
按学院查询
按班级查询
按平均成绩排序
退出系统
2.异常测试数据及运行结果学生不存在
不按格式输入
六.调试情况,设计技巧及体会
1.改进方案
系统达到了设计指出的目的,可以增加,修改,删除,查询,排序,并列出学生的信息。但是不足之处就是没有设计统计学生人数,没有直接录入,不能保存信息,这三点是需要改进的。系统界面的不美观也是需要改进的地方。
2.体会
1.编程过程中应该时刻细心,避免不必要的符号和拼写的错误。
2.要熟练掌握调试技巧。
3.一篇好的源代码是作者智慧的结晶,出色的算法会使程序更加强大
4.在达到设计目的的同时也应考虑程序的美观
七.参考文献
C语言程序设计(第二版)