C语言文件

一、代码展示

 

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct students {   //定义结构体
    char name[20];
    char num[15];
    char sex[10];
    char Class[10];
    char score[10];

};
void menu(); //主页面    
void beauty();//改变字体和背景颜色,窗口大小
void add_to();//录入
void query();//查询
int main()
{
    beauty();
    int n = 3;
    while (n>0) {
        menu();
        int x;
        scanf("%d", &x);
        switch (x) //功能选择
        {
        case 1: query();
            break;
        case 2: add_to();
            break;
        case 0:
            printf("已退出!\n");
            return 0;
            break;
        default:
            printf("输入错误,请重新输入!");//输入错位提示
            
            system("pause");//冻住窗口,防止直接跳过
            break;

        }
        n--;
    }
}
void beauty()
{
    system("mode con cols=80 lines=34");//DOS窗口的尺寸会变为34行79列
    system("color 70");//7指改变背景为白色,0指改变字体颜色为黑色。
}
void menu()
{
    printf("--------------------------------------------------------------------------------\n");
    printf("********************************************************************************\n");
    printf("--------------------------------------------------------------------------------\n");
    printf("                           欢迎使用成绩查询录入系统\n");
    printf("                              请选择您的业务:\n");
    printf("                                [1].查询\n");
    printf("                                [2].录入\n");
    printf("                                [0].退出\n\n\n\n");
    printf("--------------------------------------------------------------------------------\n");
    printf("********************************************************************************\n");
    printf("--------------------------------------------------------------------------------\n");
}
void add_to()
{
    system("cls");//清空界面
    char name1[10][20];
    char name2[10][20];
    char sex[10];
    char num[15];
    char Class[10];
    char score[10];
    int n;
    struct students a[500];
    FILE* fp;
    printf("添加的人数:");
    scanf("%d", &n);
    printf("                    姓名      学号    性别   班级   线代成绩\n");
    for (int i = 0; i < n; i++) {
        printf("\n");
        printf("                   ");
        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", &a[i].num,&a[i]. sex,&a[i].Class, &a[i].score);
        fprintf(fp, "%s %s %s %s", &a[i].num, &a[i].sex, &a[i].Class, &a[i].score);//将数据存入文本文档
        if (fclose(fp)) {
            printf("Can not close the file!\n");
            exit(0);
        }
    }
    printf("\n                     添加成功!\n");//提示添加成功
    exit(0);
}
void query()
{
    system("cls");
    char name1[20];
    char name2[20];
    char sex[10];
    char num[15];
    char Class[10];
    char score[10];
    int i;
    printf("请输入查询个数:");
    scanf("%d", &i);
    struct students a[500];
    FILE* fp;
    printf("请输入姓名:");
    while (i > 0) {
        scanf("%s", name1);
        strcpy(name2, name1);
        strcat(name1, ".txt");
        if ((fp = fopen(name1, "r")) == NULL) {
            printf("Failed to open file\n");
        }
        fp = fopen(name1, "r");//打开对应文本文档
        fscanf(fp, "%s %s %s %s", &a[i].num, &a[i].sex, &a[i].Class, &a[i].score);//从文件中读取数据
        printf("                    姓名      学号    性别   班级   线代成绩\n");
        printf("                   %s  %s  %s %s    %s", name2, a[i].num, a[i].sex, a[i].Class, a[i].score);
        fclose(fp);
        i--;

    }
    system("pause");//暂停页面,防止退出
    exit(1);
}

 

二、运行截图

任务一

 

 

任务二

 

 

 

任务三

 

主页及提示

 

 

 查询

 

 

录入

 

 

 三、system()

 

 

1.system("pause"):暂停界面,可以停留仔细查看信息。

2.system(“cls”)清除界面,是界面信息更直观简洁。

3.system(“date”)显示使用时间,防成谜。

4.system( "color ab") a是背景颜色,b是字体颜色。

四、总结

1.通过学习书本和询问他人,学会了基本的建立、写入、读取文件。

2.运用结构体,将不同函数之间联系起来,读写数据更为方便。

3.学会了system(),改变运算窗口的设置,是运算更为美观。

4.了解缓冲区以及EOF概念,并未用到二进制文件,但对其有初步了解。

posted @ 2019-12-17 18:17  长安某•  阅读(234)  评论(0编辑  收藏  举报