一、代码展示
#include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> int n; FILE* fp; void welcome();//欢迎界面函数 void inputinformation();//录入信息函数 void query();//查询信息函数 void preservation();//保存信息函数 void exit();//退出系统函数 struct student { char name[20]; char name_[20]; char id[20]; char sex[4]; char Class[20]; char score[20]; }; struct student stu[10],stur[10]; int main() { system("cls"); system("color F1"); welcome(); while(1){ char ch=getchar(); switch(ch) { case'1': inputinformation();//录入学生信息 break; case'2': preservation();//保存学生信息 break; case'3': query();//查询学生信息 break; case'0':system("cls"); exit();//退出系统 exit(0); break; } } return 0; } void welcome()//欢迎界面函数 { printf("*********************************************************** "); printf("* 欢迎使用学生信息管理系统 * "); printf("*********************************************************** "); printf("* 功能列表 * "); printf("*********************************************************** "); printf("* →1.录入学生信息 * "); printf("* →2.保存学生信息 * "); printf("* →3.查询学生信息 * "); printf("* (一次查询一名,继续查询输入3) * "); printf("* →0.退出系统 * "); printf("*********************************************************** "); } void inputinformation()//录入学生成绩 { printf("需要录入学生人数: "); scanf("%d",&n); int i; for (i = 0; i < n; i++) { printf("输入学生姓名: "); scanf("%s", stu[i].name); strcpy(stu[i].name_,stu[i].name); strcat(stu[i].name, ".txt"); fp = fopen(stu[i].name, "w"); if (fp == NULL) { printf("文件打开错误! "); exit(0); } printf("输入学号: "); scanf("%s",stu[i].id); printf("输入性别: "); scanf("%s",stu[i].sex); printf("输入班级: "); scanf("%s",stu[i].Class); printf("输入线性代数成绩: "); scanf("%s",stu[i].score); fp = fopen(stu[i].name, "w"); fprintf(fp,"%s %s %s %s ",stu[i].id,stu[i].sex,stu[i].Class,stu[i].score); if(fclose(fp)){ printf("文件关闭错误! "); exit(0); } system("cls"); welcome(); printf("*---------------------------------------------------------* "); printf("* 录入成功,输入2保存 * "); printf("*********************************************************** "); } } void query()// 查询函数 { int i; char name[20],name_[20]; printf("请输入查询学生的姓名: "); scanf("%s",name); strcpy(name_,name); strcat(name,".txt"); if ((fp = fopen(name,"r")) == NULL) { printf("未录入此学生信息 "); } fp = fopen(name,"r"); fscanf(fp,"%s %s %s %s",stu[i].id,stu[i].sex,stu[i].Class,stu[i].score); printf("*姓名:%s 学号:%s 性别:%s 班级:%s 线性代数成绩:%s* ",name_,stu[i].id,stu[i].sex,stu[i].Class,stu[i].score); } void preservation()//保存函数 { int i; for(i=0;i<10;i++) { fp = fopen(stu[i].name, "r"); fprintf(fp,"%s %s %s %s ",stu[i].id,stu[i].sex,stu[i].Class,stu[i].score); } printf("*********************************************************** "); printf("* * "); printf("* * "); printf("* 保存成功 * "); printf("* ^ ^ * "); printf("* ^0^ ^0^ * "); printf("* * "); printf("* ^ ^ * "); printf("* ^ * "); printf("*********************************************************** "); system("pause"); system("cls"); welcome(); } void exit()//退出系统函数 { printf("*********************************************************** "); printf("* * "); printf("* 退出系统成功 * "); printf("* 欢迎下次使用 * "); printf("* ^ ^ * "); printf("* ^0^ ^0^ * "); printf("* * "); printf("* ^ ^ * "); printf("* ^ * "); printf("*********************************************************** "); }
二、运行界面
系统界面
录入学生信息
查询学生成绩
保存在电脑的文件
文件内部
系统退出界面
三、system()函数
使用system函数可以美化我们的运行界面。
1.system("pause")
可以实现冻结屏幕,便于观察程序的执行结果;
2.system("cls")
可以实现清屏操作。
3.而调用color函数可以改变控制台的前景色和背景
例如:
用 system("color 0A"); 其中color后面的0是背景色代号,A是前景色代号。
各颜色代码如下:
0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色
5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色
A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色
F=亮白色;
四、总结
1.通过本次的博客园作业,可以感受到代码的实用性;
2.一开始对文件并不是很熟悉,后来通过询问同学和百度搜索以及查阅书籍就有了更深的理解。
3.比如system()函数可以帮助我们编写代码,使得我们编写的程序运行更加顺畅,便于观察运行结果。
4.知识之间是贯通的,函数,结构体,文件都会是以后经常要实验的。