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()函数(完成任务四)

  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作为文件结束标志。
posted @ 2019-12-19 01:35  羊腿桂鱼yu  阅读(220)  评论(0编辑  收藏  举报