优化find函数并添加中文注释,要求将save函数写入find函数中,实现在find函数运行后会询问是否保存,如输入是则将查询到的结果保存到文件中,如输入否,则正常退出:void find(struct student *list, int amount) { int i = 0; int flag = 1; char temp[10]; dispinfo(); // 显示菜单信息 int flag2; do { flag2 = 1; printf(" 请输入学号:"); scanf("%s", temp); // 获取用户输入的学号 for (i = 0; i < amount; i++) { flag = strcmp(temp, list[i].code); // 比较用户输入的学号和学生信息中的学号 if (flag == 0) { // 如果学号匹配成功 flag2 = 0; break; } } if (flag2 == 1) printf(" 您所输入的学号不存在,请重新输入!\n"); // 如果没有匹配成功,提示用户重新输入 } while (flag2); printf("\t\t 学号 总评 等级 \n"); printf("\t\t%10s %6.1f%6c \n", list[i].code, list[i].score, list[i].grade); // 输出匹配成功的学生信息 printf("\n\n\n ****** 按任意键继续! ****** \n"); getch(); // 等待用户按键 } void save(struct student *list, int amount) { int i = 0; FILE *fp; fp = fopen("C:\Users\dell\Desktop\软件设计-源文件\A3\find_out.txt", "w"); // 打开文件 fprintf(fp, "\t\t 学号 总评 等级 \n"); for (i = 0; i < amount; i++) { fprintf(fp, "\t\t %10s %6.1f %6c \n", list[i].code, list[i].score, list[i].grade); // 将学生信息写入文件中 } printf("\n\n ****** 输出成功!请查看!摁任意键继续 ****** \n"); fclose(fp); // 关闭文件 getch(); // 等待用户按键
时间: 2024-03-28 21:39:59 浏览: 54
红外线NEC解码,c语言find函数源码,c语言
void find(struct student *list, int amount) {
int i = 0;
int flag = 1;
char temp[10];
dispinfo(); // 显示菜单信息
int flag2;
do {
flag2 = 1;
printf(" 请输入学号:");
scanf("%s", temp); // 获取用户输入的学号
for (i = 0; i < amount; i++) {
flag = strcmp(temp, list[i].code); // 比较用户输入的学号和学生信息中的学号
if (flag == 0) { // 如果学号匹配成功
flag2 = 0;
printf("\t\t 学号 总评 等级 \n");
printf("\t\t%10s %6.1f%6c \n", list[i].code, list[i].score, list[i].grade); // 输出匹配成功的学生信息
printf("\n\n\n ****** 按任意键继续! ****** \n");
getch(); // 等待用户按键
break;
}
}
if (flag2 == 1) {
printf(" 您所输入的学号不存在,请重新输入!\n"); // 如果没有匹配成功,提示用户重新输入
}
} while (flag2);
printf("是否将查询结果保存到文件中?(是/否)\n");
char choice[10];
scanf("%s", choice);
if (strcmp(choice, "是") == 0) {
save(list, amount); // 调用保存函数
}
}
void save(struct student *list, int amount) {
int i = 0;
FILE *fp;
fp = fopen("C:\Users\dell\Desktop\软件设计-源文件\A3\find_out.txt", "w"); // 打开文件
fprintf(fp, "\t\t 学号 总评 等级 \n");
for (i = 0; i < amount; i++) {
fprintf(fp, "\t\t %10s %6.1f %6c \n", list[i].code, list[i].score, list[i].grade); // 将学生信息写入文件中
}
printf("\n\n ****** 输出成功!请查看!摁任意键继续 ****** \n");
fclose(fp); // 关闭文件
getch(); // 等待用户按键
}
注释如下:
// 定义一个find函数,功能是查找学生信息
// 参数1:指向学生信息数组的指针
// 参数2:学生信息数组中元素的个数
void find(struct student *list, int amount) {
int i = 0;
int flag = 1;
char temp[10];
dispinfo(); // 显示菜单信息
int flag2;
do {
flag2 = 1;
printf(" 请输入学号:");
scanf("%s", temp); // 获取用户输入的学号
for (i = 0; i < amount; i++) {
flag = strcmp(temp, list[i].code); // 比较用户输入的学号和学生信息中的学号
if (flag == 0) { // 如果学号匹配成功
flag2 = 0;
printf("\t\t 学号 总评 等级 \n");
printf("\t\t%10s %6.1f%6c \n", list[i].code, list[i].score, list[i].grade); // 输出匹配成功的学生信息
printf("\n\n\n ****** 按任意键继续! ****** \n");
getch(); // 等待用户按键
break;
}
}
if (flag2 == 1) {
printf(" 您所输入的学号不存在,请重新输入!\n"); // 如果没有匹配成功,提示用户重新输入
}
} while (flag2);
printf("是否将查询结果保存到文件中?(是/否)\n");
char choice[10];
scanf("%s", choice);
if (strcmp(choice, "是") == 0) {
save(list, amount); // 调用保存函数
}
}
// 定义一个save函数,功能是将查询结果保存到文件中
// 参数1:指向学生信息数组的指针
// 参数2:学生信息数组中元素的个数
void save(struct student *list, int amount) {
int i = 0;
FILE *fp;
fp = fopen("C:\Users\dell\Desktop\软件设计-源文件\A3\find_out.txt", "w"); // 打开文件
fprintf(fp, "\t\t 学号 总评 等级 \n");
for (i = 0; i < amount; i++) {
fprintf(fp, "\t\t %10s %6.1f %6c \n", list[i].code, list[i].score, list[i].grade); // 将学生信息写入文件中
}
printf("\n\n ****** 输出成功!请查看!摁任意键继续 ****** \n");
fclose(fp); // 关闭文件
getch(); // 等待用户按键
}
阅读全文