zoukankan      html  css  js  c++  java
  • 第三次博客园作业

    C语言文件

    1,主要代码:

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
        struct student{//结构定义 
            char name[10];
            char num[10];
            char sex[10];
            char cla[10];
            char score[10];
        };
        void Check();//定义三个函数用于执行三个功能 :查询,新建文件,修改界面 
        void Make();
        void Menu();
    int main(){
        int n;
        struct student stu[10];
        
        printf("----------------------------------------------------------------
    ");
        printf("               欢迎使用学生成绩查询与管理系统
     ");
        printf("1 查询成绩
    ");
        printf(" 2 新建成绩文件
    ");
        printf(" 3 界面颜色修改
    ");
        printf(" 4 退出
    ");
        printf("输入相应数字执行下一步:
    "); 
        scanf("%d",&n);
        switch(n)// 输入数字执行相应函数 
        {
            case 1:Check();break;
            case 2:Make();break;
            case 3:Menu();break;
            case 4:printf("退出系统
    ");exit(0); 
            default :printf("输入错误!");system("pause");break; 
         } 
         return 0;
     } 
     void Check()//查询函数 
     {
         system("cls");//system函数实现清屏操作 
         char name1[20][20];
         char name2[20][20];
         char num[10];
         char sex[10];
         char cla[10];
         char score[10];
         int i;
         struct student stu1[100];
         FILE *fp1;//文件 
         printf("请输入你要查询的数目:
    ");
         scanf("%d",&i);
         while(i>0)
         {
             printf("请输入查询者的姓名:
    ");
             scanf("%s",&name1[i]);
             strcpy(name2[i],name1[i]);//将姓名复制以便后续输出 
             strcat(name1[i],".txt");
             if((fp1=fopen(name1[i],"r"))==NULL)//若文件为空 
             {
                 printf("此人无信息
    ");
             }
             fp1=fopen(name1[i],"r");
             fscanf(fp1, "%s %s %s %s", &stu1[i].num, &stu1[i].sex, &stu1[i].cla, &stu1[i].score);//提取文件中的数据 
             printf(" 姓名 学号 性别 班级 成绩
    ");
             printf("%s %s %s %s %s
    ",name2[i],stu1[i].num,stu1[i].sex,stu1[i].cla,stu1[i].score);//表达文件数据 
             fclose(fp1);//关闭文件 
             i--;
         }
         printf("查询结束"); 
         system("pause");//冻结屏幕 
         exit(1);
         
     }
     void Make()//新建文件函数 
     {
         system("cls");//清屏操作 
         FILE *fp2;
         char name[10][10];
         char name3[20][20];
        char num[10];
        char sex[10];
        char cla[10];
        char score[10];
        int n,i,j;
        printf("请输入你要新建的数目:
    ");
        scanf("%d",&n);
        printf("姓名 学号 性别 班级 成绩
    ");
    j=1;
    for(i=0;i<n;i++) { scanf("%s",name[i]); strcpy(name3[i],name[i]); strcat(name[i],".txt");//命名加上“txt” FILE *fp2=fopen(name[i],"w+");//建立文件 fclose(fp2); if((fp2=fopen(name[i],"r+"))==NULL) { printf("无法建立文件 "); exit(0); } printf(" "); scanf(" %s %s %s %s",&num[i],&sex[i],&cla[i],&score[i]); fprintf(fp2,"%s %s %s %s ",&num[i],&sex[i],&cla[i],&score[i]);//输入进入文件 if(fclose(fp2)){ printf("无法关闭文件! "); exit(0); } printf("成功 已建立%d个文件 ",j); //统计已建立的文件数 j++; } } void Menu() { system("color 70");//改变界面颜色 }

    2,运行截图展示:

    基础界面:

    任务1,2:建立txt文件,并写入数据。

    任务3:读取数据并存入数组(查询)

    利用fscanf对文件进行读取。

    任务4:system函数

    颜色切换

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

    system("pause") 冻结窗口

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

    等......

    3,总结

    这一次在写代码的过程中遇到了很多困难,很多不熟悉的知识点,为了解决它们我翻了不少书,问了不少人,还看了很多同学的代码来寻找解决办法。在这一次的作业中我也了解了打开文件并写入和读取的方法,掌握了一些有关文件缓存区和EOF的知识,也学会了如何使用system函数去执行一些简单的指令来改变窗口样貌。但是,我的程序执行时的美观度还是不够高,结构体的运用仍不够娴熟,代码也不够简洁完美,我会在之后的课程中总结学习以便加以改进。

     

  • 相关阅读:
    对于函数中多个返回值的处理
    Docker-compose 安裝单机版redis
    设计模式七大设计原则
    UML 设计技巧
    使用Docker 容器配置nexus3.29 私有仓库
    分布式消息Kafka通信原理分析
    分布式消息Kafka通信
    使用docker 搭建nexus3.29
    分布式消息Kafka初步认识及基本应用
    Dubbo 常用配置及源码分析
  • 原文地址:https://www.cnblogs.com/MIKEHRO/p/12069404.html
Copyright © 2011-2022 走看看