Compare commits

..

1 Commits
master ... C3

Author SHA1 Message Date
p8rq79j4h 43da1b23bd 666
2 years ago

@ -378,8 +378,8 @@ Step 5else打印学生信息
Step 1:打印学生学号和学生姓名 Step 1:打印学生学号和学生姓名
Step 2for i = 1 to num_parts Step 2for i = 1 to num_parts
Step 3:打印学生成绩 Step 3:打印学生成绩
![printf_data](/printf.drawio.svg)
![打印记录流程图](images/printf_data.drawio.svg)
#### update_data #### update_data
@ -388,7 +388,7 @@ Step 1输入学生学号
Step 2查找学生是否已录入 Step 2查找学生是否已录入
Step 3if 不存在then 直接退出 Step 3if 不存在then 直接退出
Step 4else 输出学生信息 Step 4else 输出学生信息
![update_data](/.drawio.svg) ![修改学生信息](images/update_data.drawio.svg)
#### delete_data #### delete_data
@ -397,16 +397,26 @@ Step 1:输入学生学号
Step 2:判断学号是否存在 Step 2:判断学号是否存在
Step 3:若存在则将其删除 Step 3:若存在则将其删除
Step 4:否则提示不存在并结束 Step 4:否则提示不存在并结束
![delete](/delete.drawio.svg)
### sort_data ### sort_data
Step 1:对库存记录按学号从小到大排序 Step 1:对库存记录按学号从小到大排序
<<<<<<< HEAD
<<<<<<< HEAD
=======
Step 2:将按照学生成绩排序,若前面的比后面大,则交换
Step 3每次遍历记录是否交换若没有交换则排序结束
Step 4若成绩相同则按照学号从小到大排序
>>>>>>> 8892531498f3879c5e2a02c0346d2e14e7d0d0ff
=======
Step 2:将按照学生成绩排序,若前面的比后面大,则交换 Step 2:将按照学生成绩排序,若前面的比后面大,则交换
Step 3每次遍历记录是否交换若没有交换则排序结束 Step 3每次遍历记录是否交换若没有交换则排序结束
Step 4若成绩相同则按照学号从小到大排序 Step 4若成绩相同则按照学号从小到大排序
![sort](/sort.drawio.svg) >>>>>>> 3aaec9cca337fd57c2c1b138e8ad7fee782cc079
### make_chart ### make_chart
@ -414,13 +424,25 @@ Step 1:输入文件名
Step 2:判断其是否存在 Step 2:判断其是否存在
Step 3:若存在则打开文件并读取CSV 格式保存的所有库存记录 Step 3:若存在则打开文件并读取CSV 格式保存的所有库存记录
Step 4:否则给出错误信息并结束 Step 4:否则给出错误信息并结束
![make_chart](/make_chart.drawio.svg)
<<<<<<< HEAD
<<<<<<< HEAD
=======
### read_data
Step 1:输入文件名
Step 2查看输入的文件名是否和已有的文件相匹配
======= =======
### read_data ### read_data
Step 1:输入文件名 Step 1:输入文件名
Step 2查看输入的文件名是否和已有的文化相匹配 Step 2查看输入的文件名是否和已有的文化相匹配
>>>>>>> 3aaec9cca337fd57c2c1b138e8ad7fee782cc079
Step 3若匹配成功则打开文件 Step 3若匹配成功则打开文件
Step 4若不成功则返回错误值 Step 4若不成功则返回错误值
Step 5打开后利用循环依次输出文件里各个学生的学号姓名和成绩 Step 5打开后利用循环依次输出文件里各个学生的学号姓名和成绩
Step 6关闭文件 Step 6关闭文件
![read](/read_data.drawio.svg) <<<<<<< HEAD
>>>>>>> 8892531498f3879c5e2a02c0346d2e14e7d0d0ff
=======
>>>>>>> 3aaec9cca337fd57c2c1b138e8ad7fee782cc079

@ -0,0 +1,90 @@
#define NAME_LEN 31
#define MAX_PARTS 100
/
struct students
{
int number;
char name[NAME_LEN + 1];
int score;
};
static struct students stu[MAX_PARTS];
static int num_parts = 0;
#include <stdio.h>
#include <stdlib.h>
//定义常量
#define CMD_QUIT 0
#define CMD_QUERY 4
#define CMD_INSERT 5
#define CMD_UPDATE 6
#define CMD_DELETE 7
#define CMD_READ 1
#define CMD_SAVE 2
#define CMD_PRINT 3
#define CMD_SORT 8
#define CMD_CHART 9
// 菜单命令的编号
// 函数声明
void init(void);
void quit(void);
void display_menu(void);
int make_choice(void);
void read_data(void); // 读取
void save_data(void); // 保存
void print_data(void); // 打印
void query_data(void); // 查询
void add_data(void); // 添加
void update_data(void); // 修改
void delete_data(void); // 删除
void sort_data(void); // 排序
void make_chart(void); // 图表
int confirm(const char *msg);
// 主程序
int main(void)
{
init(); // 程序启动
while (1)
{
display_menu();
int c = make_choice();
switch (c)
{
case CMD_QUERY:
query_data();
break;
case CMD_INSERT:
add_data();
break;
case CMD_UPDATE:
update_data();
break;
case CMD_DELETE:
delete_data();
break;
case CMD_READ:
read_data();
break;
case CMD_SAVE:
save_data();
break;
case CMD_PRINT:
print_data();
break;
case CMD_SORT:
sort_data();
break;
case CMD_CHART:
make_chart();
break;
default:
puts("命令错误,请重新选择");
break;
case CMD_QUIT:
if (confirm("确定要退出吗?"))
quit(); // 仅在确认后退出
break;
}
}
return 0;
Loading…
Cancel
Save