diff --git a/README.md b/README.md index af3a67c..10119f4 100644 --- a/README.md +++ b/README.md @@ -18,9 +18,9 @@ | C4 添加库存记录 | 王凯旋 | 王德沅 | 冯国平 | 苏永涛 | | C5查询库存记录 | 冯国平 | 王德沅 | 苏永涛 | 王凯旋 | | C6打印库存列表 | 王德沅 | 苏永涛 | 冯国平 | 王凯旋 | -| C7修改库存记录 | 苏永涛 | 王凯旋 | 王凯旋 | 冯国平 | +| C7修改库存记录 | 苏永涛 | 王德沅 | 王凯旋 | 冯国平 | | C8删除库存记录 | 冯国平 | 王凯旋 | 苏永涛 | 王德沅 | -| C9库存记录排序 | 王德沅 | 苏永涛 | 王凯旋 | 苏永涛 | +| C9库存记录排序 | 王德沅 | 冯国平 | 王凯旋 | 苏永涛 | | C10从文件中读取库存记录 | 王凯旋 | 苏永涛 | 冯国平 | 王德沅 | | C11从库存保存到文件 | 苏永涛 | 王德沅 | 王凯旋 | 冯国平 | | C12以图标方式显示库存记录 | 冯国平 | 苏永涛 | 王德沅 | 王凯旋 | @@ -399,3 +399,37 @@ Step 1:输入学生学号 Step 2:判断学号是否存在 Step 3:若存在则将其删除 Step 4:否则提示不存在并结束 + + + +### sort_data + +Step 1:对库存记录按学号从小到大排序 +<<<<<<< HEAD + +======= +Step 2:将按照学生成绩排序,若前面的比后面大,则交换 +Step 3:每次遍历记录是否交换,若没有交换,则排序结束 +Step 4:若成绩相同,则按照学号从小到大排序 +>>>>>>> 8892531498f3879c5e2a02c0346d2e14e7d0d0ff + + +### make_chart + +Step 1:输入文件名 +Step 2:判断其是否存在 +Step 3:若存在则打开文件并读取CSV 格式保存的所有库存记录 +Step 4:否则给出错误信息并结束 + + +<<<<<<< HEAD + +======= +### read_data +Step 1:输入文件名 +Step 2:查看输入的文件名是否和已有的文件相匹配 +Step 3:若匹配成功,则打开文件 +Step 4:若不成功,则返回错误值 +Step 5:打开后利用循环,依次输出文件里各个学生的学号,姓名和成绩; +Step 6:关闭文件 +>>>>>>> 8892531498f3879c5e2a02c0346d2e14e7d0d0ff diff --git a/daima b/daima new file mode 100644 index 0000000..d437315 --- /dev/null +++ b/daima @@ -0,0 +1,90 @@ +} + +// 函数定义 +void init(void) +{ + puts("程序启动"); +} +void quit(void) +{ + puts("程序退出"); + exit(EXIT_SUCCESS); +} +void display_menu(void) +{ + printf("\n%d 读取 | %d 保存 | %d 打印 | %d 查询 | %d 添加\n%d 修改 | %d 删除 | %d 排序 | %d 图表 | %d 退出\n\n", CMD_READ, CMD_SAVE, CMD_PRINT, CMD_QUERY, CMD_INSERT, CMD_UPDATE, CMD_DELETE, CMD_SORT, CMD_CHART, CMD_QUIT); +} +int make_choice(void) +{ + int c; // 用户输入 + int n = 0; // 正确读入的数据项个数 + while (n == 0) + { + printf("请选择:"); + n = scanf("%d", &c); // 尝试读入整数 c + scanf("%*[^\n]"); // 跳过一行中剩余的字符 + } + return c; +} + +//查询 +void query_data(void) +{ + int num; + printf("输入学生学号: "); + scanf("%d", &num); + int f = -1; + for (int i = 0; i < num_parts; i++) + { + if (num == stu[i].number) + { + f = i; + break; + } + } + if (f == -1) + { + printf("学生不存在"); + } + else + { + printf("学生学号:%d\n", stu[f].number); + printf("学生姓名:%s\n", stu[f].name); + printf("学生成绩:%d\n", stu[f].score); + } +} + +//打印 +void print_data(void) +{ + printf("NUMBER | NAME score\n"); + for (int i = 0; i < num_parts; i++) + { + printf("%d | %s %d\n", stu[i].number, stu[i].name, stu[i].score); + } +} + +//添加 +void add_data(void) +{ + int num; + printf("输入学生学号:"); + scanf("%d", &num); + int f = 0; + for (int i = 0; i < num_parts; i++) + { + if (num == stu[i].number) + { + f = 1; + break; + } + } + if (f == 0) + { + stu[num_parts].number = num; + printf("输入学生姓名:"); + scanf("%s", &stu[num_parts].name); + printf("输入学生成绩:"); + scanf("%d", &stu[num_parts].score); + num_parts++; + printf("学生 %d 添加成功\n", num); \ No newline at end of file diff --git a/main.drawio.svg b/main.drawio.svg new file mode 100644 index 0000000..a21fedf --- /dev/null +++ b/main.drawio.svg @@ -0,0 +1,521 @@ + + + + + + + + + +
+
+
+ + main + +
+
+
+
+ + main + +
+
+ + + + + + +
+
+
+ init +
+
+
+
+ + init + +
+
+ + + + + + +
+
+
+ 显示菜单 +
+
+
+
+ + 显示菜单 + +
+
+ + + + + + +
+
+
+ 选择菜单命令 +
+
+
+
+ + 选择菜单命令 + +
+
+ + + + + + + + +
+
+
+ 读取数据 +
+
+
+
+ + 读取数据 + +
+
+ + + + + + + + +
+
+
+ 保存数据 +
+
+
+
+ + 保存数据 + +
+
+ + + + + + + + +
+
+
+ 打印数据 +
+
+
+
+ + 打印数据 + +
+
+ + + + + + + + +
+
+
+ 查询数据 +
+
+
+
+ + 查询数据 + +
+
+ + + + + + + + +
+
+
+ 添加数据 +
+
+
+
+ + 添加数据 + +
+
+ + + + + + + + +
+
+
+ 更新数据 +
+
+
+
+ + 更新数据 + +
+
+ + + + + + + + +
+
+
+ 删除数据 +
+
+
+
+ + 删除数据 + +
+
+ + + + + + + + +
+
+
+ 对数据排序 +
+
+
+
+ + 对数据排序 + +
+
+ + + + + + + + + + +
+
+
+ 生成图表报表 +
+
+
+
+ + 生成图表报表 + +
+
+ + + + + + + + +
+
+
+ 确定退出 +
+
+
+
+ + 确定退出 + +
+
+ + + + + + + +
+
+
+ read_data +
+
+
+
+ + read_data + +
+
+ + + + + + + +
+
+
+ save_data +
+
+
+
+ + save_data + +
+
+ + + + + + + +
+
+
+ print_data +
+
+
+
+ + print_data + +
+
+ + + + + + + +
+
+
+ query_data +
+
+
+
+ + query_data + +
+
+ + + + + + + +
+
+
+ add_data +
+
+
+
+ + add_data + +
+
+ + + + + + + +
+
+
+ update_data +
+
+
+
+ + update_data + +
+
+ + + + + + + +
+
+
+ delete_data +
+
+
+
+ + delete_data + +
+
+ + + + + + + +
+
+
+ sort_data +
+
+
+
+ + sort_data + +
+
+ + + + + + + +
+
+
+ make_data +
+
+
+
+ + make_data + +
+
+ + + + + +
+
+
+ quit +
+
+
+
+ + quit + +
+
+ + + + + + + +
+
+
+ 命令错误,重新选择 +
+
+
+
+ + 命令错误,重新选择 + +
+
+
+ + + + + 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..3a39675 --- /dev/null +++ b/make_chart.drawio.svg @@ -0,0 +1,142 @@ + + + + + + + +
+
+
+ make_chart +
+
+
+
+ + make_chart + +
+
+ + + + + + +
+
+
+ 输入文件名 +
+
+
+
+ + 输入文件名 + +
+
+ + + + + +
+
+
+ 文件存在 +
+
+
+
+ + 文件存在 + +
+
+ + + + + +
+
+
+ yes +
+
+
+
+ + yes + +
+
+ + + + + + +
+
+
+ 打开文件并读取库存记录 +
+
+
+
+ + 打开文件并读取库存记录 + +
+
+ + + + +
+
+
+ else +
+
+
+
+ + else + +
+
+ + + + + +
+
+
+ 显示错误信息 +
+
+
+
+ + 显示错误信息 + +
+
+ + + +
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/query.drawio.svg b/query.drawio.svg index 59e1648..56f5d2c 100644 --- a/query.drawio.svg +++ b/query.drawio.svg @@ -1,4 +1,4 @@ - + @@ -119,6 +119,24 @@ + + + +
+
+
+

+ 结束 +

+
+
+
+
+ + 结束 + +
+
diff --git a/qyery_data.drawio.svg b/qyery_data.drawio.svg new file mode 100644 index 0000000..56f5d2c --- /dev/null +++ b/qyery_data.drawio.svg @@ -0,0 +1,150 @@ + + + + + + + +
+
+
+
+

+ query_data +

+
+
+
+
+
+
+
+
+
+
+ + query_data... + +
+
+ + + + + +
+
+
+ for i=0 to num_parts +
+
+
+
+ + for i=0 to num_parts + +
+
+ + + + + + + +
+
+
+ 学生信息不存在 +
+
+
+
+ + 学生信息不存在 + +
+
+ + + + +
+
+
+ if 查询到 +
+
+
+
+ + if 查询到 + +
+
+ + + + +
+
+
+ else +
+
+
+
+ + else + +
+
+ + + + + +
+
+
+ 打印学生信息 +
+
+
+
+ + 打印学生信息 + +
+
+ + + + + +
+
+
+

+ 结束 +

+
+
+
+
+ + 结束 + +
+
+ +
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file diff --git a/read_data.drawio.svg b/read_data.drawio.svg new file mode 100644 index 0000000..7f4ac0b --- /dev/null +++ b/read_data.drawio.svg @@ -0,0 +1,143 @@ + + + + + + + +
+
+
+ read_data +
+
+
+
+ + read_data + +
+
+ + + + + + +
+
+
+ 输入文件名 +
+
+
+
+ + 输入文件名 + +
+
+ + + + + +
+
+
+ 输入文件与已有文件匹配 +
+
+
+
+ + 输入文件与已有文件匹配 + +
+
+ + + + + +
+
+
+ yes +
+
+
+
+
+ + yes + +
+
+ + + + + +
+
+
+ 打开文件 +
+
+
+
+ + 打开文件 + +
+
+ + + + + +
+
+
+ no +
+
+
+
+ + no + +
+
+ + + + + +
+
+
+ 显示错误值 +
+
+
+
+ + 显示错误值 + +
+
+ + + +
+ + + + + Text is not SVG - cannot display + + + +
\ No newline at end of file