C语言文件
C 语 言 文 件
一.代码
1. 主函数;
#include<stdio.h> #include <stdlib.h> #include <string.h> struct student { char sID[10]; char cla[50]; char gender[10]; char name[20]; int scoreLinea; }s[70]; //定义一个结构题数组用来存放学生信息 void begin(int n);//用来展示首页面的一个自定义函数 void sever(int m);//用来展示功能界面的自定义函数 int main() { begin(1);//调用首页面函数 sever(1);//调用功能菜单页面函数 int sever; printf("请选择您需要的服务(*^▽^*):\n"); scanf("%d", &sever); system("cls");//清屏操作,使得程序能简洁的进入下一个页面 system("color f4");//设计背景框颜色为白色,字体颜色为红色 int n = 1, i; char name1[100][20], name2[100][20]; FILE* fp;//定义一个文件指针 switch (sever) { case 1:printf("\n欢迎使用添加服务!\n"); printf("\n请输入您需要添加的人数:\n"); scanf("%d", &n); printf("\t依次输入需要添加到学生姓名:\n"); printf("\n再分别输入该学生信息:\n"); printf("\t姓名\t班级\t学号\t姓名\t性别\t线代成绩\n"); for (i = 0;i < n;i++) { printf("\t"); scanf("%s", &name1[i]); strcpy_s(name2[i], name1[i]); strcat_s(name1[i], ".txt");//使用strcat使得能够生成“.txt”文件 if (fp = fopen(name1[i], "w+")) { scanf("%s", &s[i].cla);printf("\t"); scanf("%s", &s[i].sID);printf("\t"); scanf("%s", &s[i].name);printf("\t"); scanf("%s", &s[i].gender);printf("\t"); scanf("%d", &s[i].scoreLinea);//printf("\n"); }//将数据按顺序依次输入 else { printf("Sorry!文件打开时遇到错误\n"); exit(0); } fprintf(fp, "%s\t%s\t%s\t%s\t%d\n", s[i].cla, s[i].sID, s[i].name, s[i].gender, s[i].scoreLinea); fclose(fp);//记得一定要关闭文件,否则所输入的东西将会存留在缓冲区 } break; case 2:printf("\n欢迎使用查询服务!\n"); printf("\n请输入您需要查询的人数:\n"); scanf_s("%d", &n); printf("\t班级\t学号\t姓名\t性别\t线代成绩\n"); for (i = 0;i < n;i++) { printf("\t班级:%s\t学号:%s\t姓名:%s\t性别:%s\t线代成绩:%d\n",s[i].cla,s[i].sID,s[i].name,s[i].gender,s[i].scoreLinea); } printf("\n"); system("pause"); break; default: break; } return 0; }
2. begin函数;
void begin(int n){ system("color f4"); printf("\n\n\n"); printf("\t\t**et**----------------------------------------------**et**\n"); printf("\t\t****** | 学生信息管理系统 | ******\n"); printf("\t\t******----------------------------------------------******\n"); printf("\t\t****** ******\n"); printf("\t\t****** (*^▽^*)欢迎您的使用(*^▽^*) ******\n"); printf("\t\t****** 本系统祝您期末考科科90+ ******\n"); printf("\t\t****** ******\n"); printf("\t\t**et**----------------------------------------------**et**\n"); printf("\n\n\n"); system("date");//给使用者显示当前服务器的日期(yyyy/mm/dd) system("time");//给使用者显示当前服务器的时间(hh:mm) system("pause");//实现窗口冻结,使得使用者能够拥有更长时间来仔细阅读 }
3. sever函数;
void sever(int m) { system("color f4"); system("cls");//实现清屏操作 printf("\n\n\n"); printf("\t\t**et**----------------------------------------------**et**\n"); printf("\t\t****** | 功能菜单 | ******\n"); printf("\t\t******----------------------------------------------******\n"); printf("\t\t****** ******\n"); printf("\t\t****** [1]添加学生信息 ******\n"); printf("\t\t****** [2]查询学生信息 ******\n"); printf("\t\t****** [0] 退出系统 ******\n"); printf("\t\t****** ******\n"); printf("\t\t**et**----------------------------------------------**et**\n"); printf("\n\n\n"); system("pause");//实现窗口冻结 }
二.程序运行截图
1. 首页界面(begin函数)
2. 菜单页面(sever函数)
3. 添加学生信息
4. 查询学生信息
5. 退出程序
四. system()函数
system("PAUSE")可以实现冻结屏幕,便于观察程序的执行结果;
system("CLS")可以实现清屏操作;
system("DATE")可以显示或设置日期;
system("TIME")可以显示或设置系统时间;
system("color f4"); 其中color后面的f是背景色代号,4是前景色代号;
五. 总结归纳
- 刚要开始准备些博客园作业时,发现自己文件的知识原来是如此不熟悉,虽然贺老师上课讲过,但是我忘记得挺快的,所以我之后有去看mooc上翁凯老师的视频以及阅读,了解了书本上关于文件的知识。
- 做出这个其实还蛮有成就感的,虽然班助说的链表和二进制文本我都不了解。我的程序里面多数使用的都是普普通通的一些操作,正常的输入输出,switch-case分支结构语句,if-else语句和for循环语句,程序还是很单调的。
- 这次的程序我学到了蛮多,基本的文件操作了解了,以及基本对结构体数组的学习,同时get了system函数的有意思的地方。
- 缓冲区:缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区缓冲区。缓冲器为暂时置放输出或输入资料的内存。
- EOF: 在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
相关推荐
lpkwxl 2020-06-17
KilluaZoldyck 2020-02-27
Android开发CXY 2020-11-11
RealJianyuan 2020-06-14
pbyanglove 2020-06-09
徐建岗网络管理 2020-06-09
fengjing81 2020-06-06
lynjay 2020-06-02
wujingsheng0 2020-05-16
吴小伟 2020-05-09
sillion 2020-05-03
xiaobater 2020-05-01
ericasadun 2020-04-26
lynjay 2020-04-26
choupiaoyi 2020-04-26