C语言文件

一、代码展示

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student    
{
    char name[20];
    int number;
    int clas;
    char gender[10];
    char score[20];
}; 
int i;
void menu(){ //目录 
    printf("            ☆★☆★☆★☆★☆★☆★☆★☆ ★\n");
    printf("            ★欢迎使用学生成绩信息管理系统 ☆\n");
    printf("            ☆   请选择您所使用的服务:    ★\n");
    printf("            ★           查询[1]           ☆\n");
    printf("            ☆        添加or修改[2]        ★\n");
    printf("            ★           退出[0]           ☆\n");
    printf("            ☆★☆★☆★☆★☆★☆★☆★☆ ★\n");
}
void Txt_Write()  //写入txt
{
    system("cls");
    int n,j;
    char name1[20];
    char name2[20];
    int num,clas;
    char sex[10];
    char score[20];
    FILE *fp;
    struct student stu[500];
    printf("请输入所添加的人数:\n");
    scanf("%d",&n);
    j=n-1;
    if(n>9)
    {
        printf("一次输入这么多,你不累我都累了!!!\n"); 
        printf("在秃头之路上“猪突猛进”!!!\n\n");
    }
    for(i=1;i<=n;i++)
    {
        printf("请输入\n姓名 学号 班级 性别 线代成绩:\n");
        scanf("%s",name1);
        strcpy(name2,name1);
        strcat(name1,".txt");
        if ((fp = fopen(name1,"w")) == NULL)
        {
            printf("查无此人!!!\n");
            }
        fprintf(fp,"姓名      学号      班级      性别   线代成绩\n");
        scanf("%d%d%s%s",&num,&clas,sex,score);
        fprintf(fp,"%-10s%-10d%-10d%-10s%s",name2,num,clas,sex,score); //数据对齐
        fclose(fp);
        fp = fopen(name1,"r");
        fscanf(fp,"%*[^\n]"); //略过第一行
        fscanf(fp,"%s %d %d %s %s",&stu[i].name,&stu[i].number,&stu[i].clas,&stu[i].gender,&stu[i].score);
        printf("姓名      学号      班级      性别   线代成绩\n");
        printf("%-10s%-10d%-10d%-10s%s\n",stu[i].name,stu[i].number,stu[i].clas,stu[i].gender,stu[i].score);
        system("pause");
        system("cls");
        if(j>0)
        {
            printf("剩余输入:%d\n\n",j--);
        }
    }
    system("cls");
    if(n==0){
        printf("好玩吗?GUN呐!!!\n");
        system("pause");
        system("cls");
        return menu();
    }
    else{
        printf("数据已更新!!!\n");
        system("pause");
        system("cls");
        return menu();
    }
}
void Txt_Read()  //读取txt
{
    system("cls");
    char name1[20];
    char name2[20];
    int num,clas;
    char sex[10];
    char score[20];
    FILE *fp;
    struct student stu[200];
    while(1)
    {
        
        printf("请输入所查询姓名(输入*退出查询!):");
        scanf("%s",name1);
        strcpy(name2,name1);
        if(name2[0]=='*'&&name2[1]!=0){
            system("cls");
            printf("哪个憨憨名字是这样的!!!\n") ;
            system("pause");
            system("cls");
            return menu();//返回目录 
        }
        if(name2[0]=='*'&&name2[1]==0){
            system("cls");
            return menu();//返回目录 
        }
        strcat(name1,".txt");
        if ((fp = fopen(name1,"r")) == NULL)
       {
           system("cls");
           printf("查无此人!!!\n");
           system("pause");
           return Txt_Read();
        }
        fp = fopen(name1,"r");
        fscanf(fp,"%*[^\n]"); //略过第一行
        fscanf(fp,"%s %d %d %s %s",&stu[i].name,&stu[i].number,&stu[i].clas,&stu[i].gender,&stu[i].score);
        printf("姓名      学号      班级      性别   线代成绩\n");
        printf("%-10s%-10d%-10d%-10s%s\n",stu[i].name,stu[i].number,stu[i].clas,stu[i].gender,stu[i].score);
        fclose(fp);
        system("pause");
        system("cls");
    }
    exit(0);
}
int main()
{
    system("color FD");  //界面颜色 
    int n;
    menu();
    while(1)
    {
    scanf("%d", &n);
    switch(n)
    {
        case 1: Txt_Read();
            break;
        case 2: Txt_Write();
            break;
        case 0:
            system("cls");
            printf("告辞!!!\n"); 
            return 0;
        default:
        printf("输入错误!!!\n");
            break;
        }
    }
    return 0;
}

二、运行展示

添加or修改功能,输入相同名字可进行修改。

 

 

 

 

查询功能,输入*可返回目录。

 

 

 

退出。

创建的txt文件。

 

 对应的信息。

三、system()

 

system("pause")

使程序在此时暂停,使程序有阶段的进行。

 

system("CLS") 

可以实现清屏操作。

 

system("color ab");

其中color后面的a是背景色,b是字体色。

 

0=黑色         8=灰色

 

1 = 蓝色       9 = 淡蓝色

 

2 = 绿色       A = 淡绿色

 

3 = 浅绿色   B = 淡浅绿色

 

4 = 红色      C = 淡红色

 

5 = 紫色      D = 淡紫色

 

6 = 黄色      E = 淡黄色

 

7 = 白色      F = 亮白色

 

 

四、总结

1.了解文件基本操作相关函数的使用

2.学会了运用system()来美化运行界面(这个有点好玩!)

3.初步了解了缓冲区以及EOF概念

posted @ 2019-12-17 14:51  烟雨萧煜  阅读(238)  评论(0编辑  收藏  举报