一.代码:

#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.第一次感受到了代码的实用性。