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 @@
+
\ 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 @@
+
\ 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 @@
-