任务一:
你现在拥有一个数组,数组中储存着总共10个人的姓名字符串
你需要为每个人创建一个txt文件,以他们的名字命名。
代码如下:
#include#include<string.h> #include int main() { FILE * fp; int i; char name[10][100] = { "小曾","小陈","小顾","小黄","小李","小廖","小王","小吴","小徐","小诸" }; for (i = 0; i < 10; i++) { strcat(name[i], ".txt"); if ((fp = fopen(name[i], "w"))==NULL) { printf("File open error!\n"); exit(0); } fclose(fp); } return 0; }
运行结果:
任务二:
在任务一的基础上,这次不仅仅要创建txt文件,还需要往文件中写入
每个人的学号,性别,班级,线代成绩
代码如下:
#include#include #include<string.h> void waiguan(); struct student_information{ char name[10]; char num[20]; char sex[10]; char class[10]; char score[20]; }s[10],a[10]; int main() { waiguan(); int a; printf("*******************************************\n"); printf("* 欢迎使用学生信息管理系统 *\n"); printf("*******************************************\n"); system("cls"); int n, i; char name[30][30]; FILE* fp; printf("姓名 学号 性别 班级 线代成绩\n"); for (i = 0; i < 10; i++) { scanf("%s", name[i]); strcpy(s[i].name, name[i]); strcat(name[i], ".txt"); fp = fopen(name[i], "w"); scanf("%s %s %s %s", s[i].num, s[i].sex, s[i].class, s[i].score); fprintf(fp, "%s %s %s %s %s", s[i].name, s[i].num, s[i].sex, s[i].class, s[i].score); if (fclose(fp)) { printf("Can not close the file!\n"); exit(0); } } printf("录入成功!\n"); printf("输入需要查询人数:"); scanf("%d", &n); printf("输入需要查询人的姓名:"); for (i = 0; i < n; i++) { scanf("%s", name[i]); strcat(name[i], ".txt"); if ((fp = fopen(name[i], "r")) == NULL) { printf("没有该学生信息!"); exit(0); } fp = fopen(name[i], "r"); fscanf(fp, "%s %s %s %s %s",s[i].name,s[i].num,s[i].sex,s[i].class,s[i].score); printf("姓名 学号 性别 班级 线代成绩\n"); printf("%s %s %s %s %s", s[i].name,s[i].num, s[i].sex,s[i].class,s[i].score); if (fclose(fp)) { printf("File close error!"); exit(0); } printf("\n"); if (i != n - 1) printf("输入查询的姓名:"); } } void waiguan(){ system("color F3"); }
运行结果:
任务三:
在任务二生成的文件中,将每个人的信息再重新读取出来,放入数组中。
[要求使用结构体数组,结构体需要包含姓名,学号,性别,班级,线代成绩5个属性]
#include#include #include<string.h> void waiguan(); struct student_information{ char name[10]; char num[20]; char sex[10]; char class[10]; char score[20]; }s[10],a[10]; int main() { waiguan(); int a; printf("*******************************************\n"); printf("* 欢迎使用学生信息管理系统 *\n"); printf("*******************************************\n"); system("cls"); int n, i; char name[30][30]; FILE* fp; printf("姓名 学号 性别 班级 线代成绩\n"); for (i = 0; i < 10; i++) { scanf("%s", name[i]); strcpy(s[i].name, name[i]); strcat(name[i], ".txt"); fp = fopen(name[i], "w"); scanf("%s %s %s %s", s[i].num, s[i].sex, s[i].class, s[i].score); fprintf(fp, "%s %s %s %s %s", s[i].name, s[i].num, s[i].sex, s[i].class, s[i].score); if (fclose(fp)) { printf("Can not close the file!\n"); exit(0); } } printf("录入成功!\n"); printf("输入需要查询人数:"); scanf("%d", &n); printf("输入需要查询人的姓名:"); for (i = 0; i < n; i++) { scanf("%s", name[i]); strcat(name[i], ".txt"); if ((fp = fopen(name[i], "r")) == NULL) { printf("没有该学生信息!"); exit(0); } fp = fopen(name[i], "r"); fscanf(fp, "%s %s %s %s %s",s[i].name,s[i].num,s[i].sex,s[i].class,s[i].score); printf("姓名 学号 性别 班级 线代成绩\n"); printf("%s %s %s %s %s", s[i].name,s[i].num, s[i].sex,s[i].class,s[i].score); if (fclose(fp)) { printf("File close error!"); exit(0); } printf("\n"); if (i != n - 1) printf("输入查询的姓名:"); } } void waiguan(){ system("color F3"); }
运行结果:
任务四:
试着使用一下system("cls"),system("pause")这两个命令,看看这两个
命令能不能对你的程序起到一些美化的作用。
拓展:上网搜索类似的其他函数,使用并解释他们的作用。
查询所得:
用 system(“color 0A”)改变颜色, 其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:
0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色
system(“pause”)暂停程序,按任意键继续;
system(“cls”)可以实现清屏操作。