|
|
|
@ -238,4 +238,53 @@ a: No such file or directory
|
|
|
|
|
数据(query_data)、添加数据(add_data)、更新数据(update_data)、删除数据
|
|
|
|
|
(delete_data)、数据排序(sort_data)和生成图表(make_chart)等子模块。其中查询、添加、更
|
|
|
|
|
新和删除数据还会用到根据编号查询数据的方法(find)。
|
|
|
|
|
上述各模块通过主程序(main)进行调用,系统模块图如下。
|
|
|
|
|
![](main.svg)
|
|
|
|
|
各模块的主要功能如下:
|
|
|
|
|
### main
|
|
|
|
|
系统主函数模块,显示菜单,根据用户选择的菜单命令,执行相关操作。
|
|
|
|
|
### init
|
|
|
|
|
系统初始化。
|
|
|
|
|
### display_menu
|
|
|
|
|
显示菜单命令。
|
|
|
|
|
## 详细设计
|
|
|
|
|
针对概要设计
|
|
|
|
|
### main
|
|
|
|
|
Step 1: 初始化
|
|
|
|
|
Step 2: 根据用户选择的命令执行对应的操作
|
|
|
|
|
Step 2.1: 显示菜单
|
|
|
|
|
Step 2.2: 选择菜单命令 c
|
|
|
|
|
Step 2.3: if c == CMD_READ then 读取数据
|
|
|
|
|
Step 2.4: if c == CMD_SAVE then 保存数据
|
|
|
|
|
Step 2.5: if c == CMD_PRINT then 打印数据
|
|
|
|
|
Step 2.6:
|
|
|
|
|
![](main.svg)
|
|
|
|
|
### save_data
|
|
|
|
|
Step 1: 输入文件名
|
|
|
|
|
Step 2: 打开文件
|
|
|
|
|
Step 3: if 打开文件失败 then 提示打开文件失败并结束
|
|
|
|
|
Step 4: 将所有库存记录写入文件
|
|
|
|
|
Step 5: 关闭文件
|
|
|
|
|
|
|
|
|
|
![](save_data.svg)
|
|
|
|
|
### print_data
|
|
|
|
|
Step 1: for 0 to num_part-1
|
|
|
|
|
Step 2: 打印学生成绩
|
|
|
|
|
|
|
|
|
|
![](print_data.svg)
|
|
|
|
|
### query_data
|
|
|
|
|
Step 1: for 0 to num_part-1 查询
|
|
|
|
|
Step 2: 输入查询学号
|
|
|
|
|
Step 3: 根据查询结果输出
|
|
|
|
|
|
|
|
|
|
![](query_data.svg)
|
|
|
|
|
### add_data
|
|
|
|
|
Step 1: for 0 to num_part-1 添加
|
|
|
|
|
Step 2: 输入添加学号
|
|
|
|
|
Step 3: if 成立则结束 else 输入学生名称、名次,添加分数, 并提示完成
|
|
|
|
|
|
|
|
|
|
![](add_data.svg)
|
|
|
|
|
### update_data
|
|
|
|
|
Step 1: for 0 to num_part-1 修改
|
|
|
|
|
Step 2: 输入修改学号
|
|
|
|
|
Step 3: if 不成立则结束 else 输出学生信息
|