学生信息管理系统- 综合设计大作业.doc
文本预览下载声明
综合设计概述
综合设计名称
不同排序方法的比较和交换次数的统计
任务要求
学生信息管理系统的设计
学生信息包括学号、姓名、年龄、性别、电话等。试设计一学生的信息管理系统,使之能提供以下功能:
系统以菜单方式工作。
学生信息录入功能(学生信息用文件保存)------输入。
学生信息浏览功能------输出。
查询排序功能:
按学号查询。
按姓名查询。
学生信息的删除与修改(可选项)。
开发环境
开发工具为Microsoft Visual C++ 6.0.
应用平台
Windows XP32位。
总体设计
系统功能需求分析
(1)建立学生信息,每个学生的信息包括:学号、姓名、年龄、性别、电话等。
(2)求出每个学生的总分和平均分。
(3)查找:根据学号、姓名中任一项查询该生的基本信息。
(4)排序:根据学号、各科分数或总分将学生的信息按照一定的顺序进行排序。
(5)根据需要修改学生的基本信息。
(6)根据实际情况注销某生的信息。
(7)根据实际情况插入某生的信息。
(8)将学生信息输出至文本文件中。
系统总体设计框架
1)算法设计
(1)利用switch语句设计如图所示的主菜单。
请输入选项编号
1——输入学生信息
2——修改学生信息
3——注销学生信息
4——查询学生信息
5——录 入 成 绩
6——修 改 成 绩
7—— 浏 览
8—— 输 出
0—— 退 出
图1 学生信息管理系统主菜单
(2)选择1后,调用录入函数student_new,进入录入函数后利用输入学生基本信息。
(3)选项2后,调用修改信息函数student_edit,先进入查找函数后查找到学生信息并进行修改。
(4)选择3后,调用查找函数student_del,查找某个学生的信息。
(5)选择4后,调用删除函数search_num,根据需要删除某个学生的信息。
(6)选择5后,调用浏览函数score_input,浏览所有学生的信息。
(7)选择6后,调用修改成绩函数score_edit,将每个学生的信息排序并全部输出。
(6)选择7后,调用浏览函数student_browser,浏览所有学生的信息。
(7)选择8后,调用输出函数save,将每个学生的信息全部输出。
(8)选择0后,退出学生信息管理系统。
(9)根据所选菜单编号编写相应代码。
排序菜单
输入选项编号
1——按学号排序
2——按语文分数查找
3——按高数分数查找
4——按外语分数查找
5——按总分查找
0——退 出
图3 排序子菜单
系统功能模块图及各功能模块的目的与意义
按学号查找显示欢迎界 面
按学号查找
显示欢迎界 面
主模块
主
模块
按姓名查找显示程序介 绍
按姓名查找
显示程序介 绍
按C语言不及格者查 找
按C语言不及格者查 找
按成绩查找输 入
按成绩查找
输 入
成 绩
按高数不及格者查 找按总分查找查 找
按高数不及格者查 找
按总分查找
查 找
排 序
按平均分查 找修改学生信 息
按平均分查 找
修改学生信 息
按英语不及格者查 找
按英语不及格者查 找
按前三名查 找 删除学生信 息
按前三名查 找
删除学生信 息
按不及格查 找 插入学生信 息
按不及格查 找
插入学生信 息
按不及格者查 找
按不及格者查 找
按学号排序 输出学生信 息
按学号排序
输出学生信 息
按全不及格者查 找按总分排序 显示结束界 面
按全不及格者查 找
按总分排序
显示结束界 面
详细设计
N-S流程图
主函数main( )
主函数主要通过switch()循环语句,实现菜单界面的操作控制,并且发挥了界面友好,模块化等特点,追求语句简洁,调用简单函数,通俗易懂。但是,由于switch语句的局限性,因而在菜单操作过程中使用了goto语句,这与结构化程序设计理念相悖,也是主函数中的最大缺陷。
主函数的N-S流程图如下:
录入学生基本信息函数student_new( )
在编写student_new( )函数时,主要设计思路就是通过判断语句进行递归嵌套,以此达到循环连续输入的效果,减少了操作复杂性。
录入学生基本信息函数N-S流程图如下:
当N32且学号为0时
当N32且学号为0时
输入32名学生基本信息
N=0
N++
输入
输入S0
非0
重新执行成绩录入
0
退出
修改学生档案函数student_ed
显示全部