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("请选择您需要的服务(*^▽^*):
");
	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("
欢迎使用添加服务!
");
		printf("
请输入您需要添加的人数:
");
		scanf("%d", &n);
		
		printf("	依次输入需要添加到学生姓名:
");
		printf("
再分别输入该学生信息:
");
		printf("	姓名	班级	学号	姓名	性别	线代成绩
");

		for (i = 0;i < n;i++) {
			printf("	");
			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("	");
				scanf("%s", &s[i].sID);printf("	");
				scanf("%s", &s[i].name);printf("	");
				scanf("%s", &s[i].gender);printf("	");
				scanf("%d", &s[i].scoreLinea);//printf("
");
			}//将数据按顺序依次输入
			else {
				printf("Sorry!文件打开时遇到错误
");
				exit(0);
			}
			fprintf(fp, "%s	%s	%s	%s	%d
", s[i].cla, s[i].sID, s[i].name, s[i].gender, s[i].scoreLinea);
			fclose(fp);//记得一定要关闭文件,否则所输入的东西将会存留在缓冲区
		}
		break;
		
	case 2:printf("
欢迎使用查询服务!
");
		printf("
请输入您需要查询的人数:
");
		scanf_s("%d", &n);
		printf("	班级	学号	姓名	性别	线代成绩
");
		for (i = 0;i < n;i++) {
			printf("	班级:%s	学号:%s	姓名:%s	性别:%s	线代成绩:%d
",s[i].cla,s[i].sID,s[i].name,s[i].gender,s[i].scoreLinea);

		}
		printf("
");
		system("pause");
		break;
		
	default: break;	
	}
	return 0;
}

2. begin函数;

void begin(int n){
	system("color f4");

	printf("


");
	printf("		**et**----------------------------------------------**et**
");
	printf("		******            |  学生信息管理系统  |            ******
");
	printf("		******----------------------------------------------******
");
	printf("		******                                              ******
");
	printf("		******         (*^▽^*)欢迎您的使用(*^▽^*)         ******
");
	printf("		******           本系统祝您期末考科科90+            ******
");
	printf("		******                                              ******
");
	printf("		**et**----------------------------------------------**et**
");
	printf("


");
	
	system("date");//给使用者显示当前服务器的日期(yyyy/mm/dd)
	system("time");//给使用者显示当前服务器的时间(hh:mm)

	system("pause");//实现窗口冻结,使得使用者能够拥有更长时间来仔细阅读
}

3. sever函数;

void sever(int m) {
	system("color f4");
	system("cls");//实现清屏操作
	
	printf("


");
	printf("		**et**----------------------------------------------**et**
");
	printf("		******                |  功能菜单  |                ******
");
	printf("		******----------------------------------------------******
");
	printf("		******                                              ******
");
	printf("		******                [1]添加学生信息               ******
");
	printf("		******                [2]查询学生信息               ******
");
	printf("		******                [0]  退出系统                 ******
");
	printf("		******                                              ******
");
	printf("		**et**----------------------------------------------**et**
");
	printf("


");

	system("pause");//实现窗口冻结
}

二.程序运行截图

1. 首页界面(begin函数)

2. 菜单页面(sever函数)

3. 添加学生信息(完成任务一与任务二)

4. 查询学生信息(完成任务三)

5. 退出程序

四. system()函数(完成任务四)

  1. system("PAUSE")可以实现冻结屏幕,便于观察程序的执行结果;

  2. system("CLS")可以实现清屏操作;

  3. system("DATE")可以显示或设置日期;

  4. system("TIME")可以显示或设置系统时间;

  5. system("color f4"); 其中color后面的f是背景色代号,4是前景色代号;

五. 总结归纳

  1. 刚要开始准备些博客园作业时,发现自己文件的知识原来是如此不熟悉,虽然贺老师上课讲过,但是我忘记得挺快的,所以我之后有去看mooc上翁凯老师的视频以及阅读,了解了书本上关于文件的知识。
  2. 做出这个其实还蛮有成就感的,虽然班助说的链表和二进制文本我都不了解。我的程序里面多数使用的都是普普通通的一些操作,正常的输入输出,switch-case分支结构语句,if-else语句和for循环语句,程序还是很单调的。
  3. 这次的程序我学到了蛮多,基本的文件操作了解了,以及基本对结构体数组的学习,同时get了system函数的有意思的地方。
  4. 缓冲区:缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区缓冲区。缓冲器为暂时置放输出或输入资料的内存。
  5. EOF: 在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。
原文地址:https://www.cnblogs.com/hcy420/p/12064800.html