一.代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> struct students { char name[20]; char num[15]; char sex[10]; char Class[10]; char score[10]; }; void menu(); void beauty(); void add_to(); void query();
int main() { beauty(); int n = 3; while (n > 0) { menu(); int x; scanf("%d", &x); switch (x) { case 0: query(); break; case 1: add_to(); break; case 2: printf("已退出!\n"); return 0; break; default: printf("错误,重新输入!"); system("pause"); break; } n--; } }
void beauty() { system("mode con cols=80 lines=34"); system("color 8F"); }
void menu() { printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); printf("################################################################################\n"); printf(" 欢迎使用成绩查询系统\n"); printf(" 请选择项目:\n"); printf(" [0].查询\n"); printf(" [1].录入\n"); printf(" [2].退出\n\n\n\n"); printf("################################################################################\n"); printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); }
void add_to() { system("cls"); char name1[10][20]; char name2[10][20]; char sex[10]; char num[15]; char Class[10]; char score[10]; int n; struct students a[500]; FILE* fp; printf("添加人数:"); scanf("%d", &n); printf(" 姓名 性别 班级 学号 线代期末成绩\n"); for (int i = 0; i < n; i++) { printf("\n"); printf(" "); scanf("%s", name1[i]); strcpy(name2[i], name1[i]); strcat(name1[i], ".txt"); FILE* fp = fopen(name1[i], "w+"); fclose(fp); if ((fp = fopen(name1[i], "r+")) == NULL) { printf("File open error!\n"); exit(0); } scanf(" %s %s %s %s", &a[i].num, &a[i].sex, &a[i].Class, &a[i].score); fprintf(fp, "%s %s %s %s", &a[i].num, &a[i].sex, &a[i].Class, &a[i].score); if (fclose(fp)) { printf("Can not close the file!\n"); exit(0); } } printf("\n 添加成功!\n"); exit(0); }
void query() { system("cls"); char name1[20]; char name2[20]; char sex[10]; char num[15]; char Class[10]; char score[10]; int i; printf("请输入查询的个数:"); scanf("%d", &i); struct students a[500]; FILE* fp; printf("请输入姓名:"); while (i > 0) { scanf("%s", name1); strcpy(name2, name1); strcat(name1, ".txt"); if ((fp = fopen(name1, "r")) == NULL) { printf("Failed to open file\n"); } fp = fopen(name1, "r"); fscanf(fp, "%s %s %s %s", &a[i].num, &a[i].sex, &a[i].Class, &a[i].score); printf(" 姓名 学号 性别 班级 线代期末成绩\n"); printf(" %s %s %s %s %s", name2, a[i].num, a[i].sex, a[i].Class, a[i].score); fclose(fp); i--; } system("pause"); exit(1); }
二.运行截图:
三.system函
1.system("pause")
可以实现冻结屏幕,便于观察程序的执行结果;
2.system("cls")
可以实现清屏操作。
四.总结:
1.通过这次作业,学会了掌握了文件的基本知识。
2.第一次感受到了代码的实用性。