diff --git a/README.md b/README.md index 4b0287d..0e38836 100644 --- a/README.md +++ b/README.md @@ -238,4 +238,81 @@ 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 输出学生信息 +``` +![](update_data.svg) +### delete_data +``` +Step 1: for 0 to num_part-1 删除 +Step 2: 输入删除学号 +Step 3: if 不成立则结束 else 删除 +``` +![](delete_data.svg) +### sort_data +``` +Step 1: for 0 to num_part-1 排序 +Step 2: 按学生学号从小到大排序 +``` +![](sort_data.svg) +### make_chart +``` +Step 1: Step 1: for 0 to num_part-1 图表 +Step 2: 以图表方式显示库存记录 +``` +![](make_chart.svg) \ No newline at end of file diff --git a/delete_data.drawio.svg b/delete_data.drawio.svg new file mode 100644 index 0000000..39f91ed --- /dev/null +++ b/delete_data.drawio.svg @@ -0,0 +1,180 @@ + + + + + + + + + +
+
+
+ delete_data +
+
+
+
+ + delete_data + +
+
+ + + + + + +
+
+
+ 输入学号 +
+
+
+
+ + 输入学号 + +
+
+ + + + + + + + +
+
+
+ 学号存在? +
+
+
+
+ + 学号存在? + +
+
+ + + + + + +
+
+
+ 学号不存在 +
+
+
+
+ + 学号不存在 + +
+
+ + + + + + +
+
+
+ 删除学生信息 +
+
+
+
+ + 删除学生信息 + +
+
+ + + + +
+
+
+ Y +
+
+
+
+ + Y + +
+
+ + + + +
+
+
+ X +
+
+
+
+ + X + +
+
+ + + + +
+
+
+ 已更新 +
+
+
+
+ + 已更新 + +
+
+ + + + +
+
+
+ 结束 +
+
+
+
+ + 结束 + +
+
+ + +
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/delete_data.svg b/delete_data.svg new file mode 100644 index 0000000..d965db4 --- /dev/null +++ b/delete_data.svg @@ -0,0 +1 @@ +
delete_data
delete_data
输入学号
输入学号
学号存在?
学号存在?
学号不存在
学号不存在
删除学生信息
删除学生信息
Y
Y
X
X
已更新
已更新
结束
结束
Text is not SVG - cannot display
\ No newline at end of file diff --git a/make_chart.drawio.svg b/make_chart.drawio.svg new file mode 100644 index 0000000..a93a739 --- /dev/null +++ b/make_chart.drawio.svg @@ -0,0 +1,87 @@ + + + + + + + + + +
+
+
+ make_chart +
+
+
+
+ + make_chart + +
+
+ + + + + + +
+
+
+ 读取文件 +
+
+
+
+ + 读取文件 + +
+
+ + + + + + +
+
+
+ 显示文件 +
+
+
+
+ + 显示文件 + +
+
+ + + + +
+
+
+ 结束 +
+
+
+
+ + 结束 + +
+
+
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/make_chart.svg b/make_chart.svg new file mode 100644 index 0000000..a21d0de --- /dev/null +++ b/make_chart.svg @@ -0,0 +1 @@ +
make_chart
make_chart
读取文件
读取文件
显示文件
显示文件
结束
结束
Text is not SVG - cannot display
\ No newline at end of file diff --git a/sort_data.drawio.svg b/sort_data.drawio.svg new file mode 100644 index 0000000..9718941 --- /dev/null +++ b/sort_data.drawio.svg @@ -0,0 +1,87 @@ + + + + + + + + + +
+
+
+ sort_data +
+
+
+
+ + sort_data + +
+
+ + + + + + +
+
+
+ 读取文件 +
+
+
+
+ + 读取文件 + +
+
+ + + + + + +
+
+
+ 排序 +
+
+
+
+ + 排序 + +
+
+ + + + +
+
+
+ 排序完成 +
+
+
+
+ + 排序完成 + +
+
+
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/sort_data.svg b/sort_data.svg new file mode 100644 index 0000000..61a476f --- /dev/null +++ b/sort_data.svg @@ -0,0 +1 @@ +
sort_data
sort_data
读取文件
读取文件
排序
排序
排序完成
排序完成
Text is not SVG - cannot display
\ No newline at end of file diff --git a/update_data.drawio b/update_data.drawio new file mode 100644 index 0000000..eb57ba4 --- /dev/null +++ b/update_data.drawio @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/update_data.svg b/update_data.svg new file mode 100644 index 0000000..5c215c8 --- /dev/null +++ b/update_data.svg @@ -0,0 +1 @@ +
update_data
update_data
输入学号
输入学号
输入姓名,成绩
输入姓名,成绩
学生不存在
学生不存在
结束
结束
Y
Y
N
N
Text is not SVG - cannot display
\ No newline at end of file