C语言文件

一、主要代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

    struct student{//结构定义 
        char name[20];
        char num[10];
        char sex[10];
        char clas[20];
        char score[20];
    }stu[20];
    void add_to();//录入
    void query();//查询 
    int main()
	{
                system("color 70");
		int n;
		printf("               欢迎使用学生成绩查询与管理系统\n ");
    printf("1 查询成绩\n");
    printf(" 2 录入学生成绩\n");
    printf(" 3 欢迎下次使用\n");
    printf("输入相应数字执行下一步:\n"); 
    scanf("%d",&n);
    switch(n)// 输入数字执行相应函数 
    {
        case 1:query();break;
        case 2:add_to();break;
        case 3:printf("欢迎下次使用!\n");exit(0); 
        default :printf("输入错误!");system("pause");break; 
     } 
     return 0;
 } 
 void query(){
 	FILE* fp;
    int n, j;
    char name[50][50];
    printf("输入需要查询人数:");
    scanf("%d", &n);
    printf("输入需要查询人的姓名:");
    for (j= 0; j < n; j++)
    {
        scanf("%s", name[j]);
        strcat(name[j], ".txt");//将后缀设为txt,打开为文本形式
        if ((fp = fopen(name[j], "r")) == NULL)     //创建文件为名字的文本,并打开
        {
            printf("没有该学生信息!");
            exit(0);
        }
        fp = fopen(name[j], "w");
        fscanf(fp, "%s %s %s %s %s", stu[j].name, stu[j].num, stu[j].sex, stu[j].clas, stu[j].score);
        printf("姓名  学号   性别   班级   线代成绩\n");
        printf("%s  %s   %s    %s    %s", stu[j].name, stu[j].num, stu[j].sex,    stu[j].clas,     stu[j].score);
        if (fclose(fp))
        {
            printf("File close error!");
            exit(0);
        }
        printf("\n");
        if (j != n - 1)
            printf("输入需要查询人的姓名:");
    }
    printf("欢迎下次使用!");
}
void add_to(){
	system("cls");//清空界面
    char name1[20][20];
    char name2[20][20];
    char sex[10];
    char num[15];
    char clas[10];
    char score[10];
    int n;
    FILE* fp;
    printf("添加的人数:");
    scanf("%d", &n);
    printf(" 姓名    学号   性别   班级   线代成绩\n");
    for (int i = 0; i < n; i++) {
        printf("\n");
        scanf("%s", name1[i]);//输入姓名
        strcpy(name2[i], name1[i]);
        strcat(name1[i], ".txt");//将txt文件用名字命名
        FILE* fp = fopen(name1[i], "w+");
        fclose(fp);
        if ((fp = fopen(name1[i], "r+")) == NULL) {
            printf("File open error!\n");
            exit(0);
        }
        scanf(" %s %s %s %s", &stu[i].num,&stu[i]. sex,&stu[i].clas, &stu[i].score);
        fprintf(fp, "%s %s %s %s", &stu[i].num, &stu[i].sex, &stu[i].clas, &stu[i].score);//将数据存入文本文档
        if (fclose(fp)) {
            printf("Can not close the file!\n");
            exit(0);
        }
    }
    printf("\n 添加成功!\n");
    exit(0);
}

 二、运行截图

任务一

 

任务二

任务三

 

 

以及程序中所使用的system("cls") 清屏

system("pause") 冻结窗口

system("color ab") 切换界面颜色和字体颜色

等......

三、

任务四

system用法

system("cls")可以清屏

system("color xy"),x为背景颜色,y为字体颜色

0=黑色 ,1 = 蓝色, 2 = 绿色, 3 = 浅绿色, 4 = 红色, 5 = 紫色, 6 = 黄色, 7 = 白色, 8=灰色, 9 = 淡蓝色, A = 淡绿色, B = 淡浅绿, C = 淡红色, D = 淡紫色, E = 淡黄色, F = 亮白色。

system("pause")可以使屏幕暂停

system("dir")显示一个目录中的文件和子目录

system("del   xx")可以删除xx文件

四、小结、

此次博客园,遇到很多困难,通过课本以及百度解决了现阶段的一些困难,我已经初步掌握c语言文件操作的基本方法,同时了解缓冲区以及EOF概念,以及一些基本的system语句:清屏,暂停等。但是,我的程序写的还不够美观,结构体用的也不够熟练。

posted @ 2019-12-21 22:01  林毅()  阅读(220)  评论(0编辑  收藏  举报