C语言文件

KilluaZoldyck 2019-12-19

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函数)

C语言文件

2. 菜单页面(sever函数)

C语言文件

3. 添加学生信息

C语言文件

C语言文件

C语言文件

C语言文件

4. 查询学生信息

C语言文件

C语言文件

5. 退出程序

C语言文件

四. system()函数

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

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

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

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

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

C语言文件

五. 总结归纳

  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作为文件结束标志。

相关推荐

NewActivity / 0评论 2020-05-08
fengjing81 / 0评论 2020-01-23