• C语言文件


    代码块:

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    struct student_information
    {
        char name[10];
        char student_ID[20];
        char sex[10];
        int score;
        char class_[10];
    }s[10]; 
    int main()
    {
        char Name[256][256]={
        {"c:\abc\漆靖"},{"c:\abc\何东"},{"c:\abc\黄思坡"},{"c:\abc\宋鸿森"},{"c:\abc\陈婷"},
        {"c:\abc\李心雨"},{"c:\abc\熊省"},{"c:\abc\若见花"},{"c:\abc\许颖"},{"c:\abc\刘雅"}
        };                                                                                                //建立一个含有十个人名字的数组; 
        int i;
        char item[100]={"姓名      学号                 性别   班级    线性代数成绩 "}; 
        for(i=0;i<10;i++){
            strcat(s[i].name,Name[i]);
            strcat(Name[i],".txt");                                                                        //使创建的文件为txt格式; 
            
            FILE *fp;
            if((fp=fopen(Name[i],"w+"))==NULL){                                                            //创建并打开以姓名命名的文本文档, 并检验是否打开成功; 
                printf("File open error!");
                exit(0);
            }
            fprintf(fp,"%s",item);                                                                        
            if(fclose(fp)){                                                                                //关闭文件; 
                printf("Can not close the file!");
                exit(0);
            }
        }
        for(i=0;i<10;i++){
            strcpy(s[i].name,s[i].name+7);
        }
        system("color 7D");
        printf("【                                              简易学生成绩管理系统                                                  】
    ");
        printf("【                                                                                                                    】
    ");
        printf("【                                                欢迎使用本系统!                                                    】
    ");
        printf("【                                                                                                                    】
    ");
        system("pause");
        system("cls");
        printf("                    请按学生姓名依次录入学号 性别 班级 线性代数成绩  (注意录入的数据间要有空格)
    ");
        for(i=0;i<10;i++){
            printf("%-8s",s[i].name);
            scanf("%s %s %s %d",&s[i].student_ID,s[i].sex,s[i].class_,&s[i].score);
            FILE *tp;
            tp=fopen(Name[i],"a+");
            fprintf(tp,"
    %-10s%s  %s  %s   %d
    ",s[i].name,s[i].student_ID,s[i].sex,s[i].class_,s[i].score);   //格式化方式向文件内写入信息; 
        }
        printf("录入完成
    ");                            
        system("pause");                                                                                        //使程序在此暂停; 
        system("cls");                                                                                            //清屏; 
        printf("                                              下面查看录入的学生信息
    ");
        system("pause");
        for(i=0;i<10;i++){
        FILE *tp;
        if((tp=fopen(Name[i],"a+"))==NULL)printf("error!");
        fscanf(tp,"%*[^
    ]");                                                                                    //读取文件内容时跳过第一行; 
        fscanf(tp,"%s%s%s%s%d",s[i].name,s[i].student_ID,s[i].sex,&s[i].class_,&s[i].score);
        if(fclose(tp))printf("error!");
    }
    for(i=0;i<10;i++) 
    printf("%-8s %s %s %s %d
    ",s[i].name,s[i].student_ID,s[i].sex,s[i].class_,s[i].score);                        //输出录入的内容; 
    printf("感谢您的使用!
    ");
    }

    任务一:

        char Name[256][256]={
        {"c:\abc\漆靖"},{"c:\abc\何东"},{"c:\abc\黄思坡"},{"c:\abc\宋鸿森"},{"c:\abc\陈婷"},
        {"c:\abc\李心雨"},{"c:\abc\熊省"},{"c:\abc\若见花"},{"c:\abc\许颖"},{"c:\abc\刘雅"}
        };                                                                                                //建立一个含有十个人名字的数组; 
        int i;
        char item[100]={"姓名      学号                 性别   班级    线性代数成绩 "}; 
        for(i=0;i<10;i++){
            strcat(s[i].name,Name[i]);
            strcat(Name[i],".txt");                                                                        //使创建的文件为txt格式; 
            
            FILE *fp;
            if((fp=fopen(Name[i],"w+"))==NULL){                                                            //创建并打开以姓名命名的文本文档, 并检验是否打开成功; 
                printf("File open error!");
                exit(0);
            }
            fprintf(fp,"%s",item);                                                                        
            if(fclose(fp)){                                                                                //关闭文件; 
                printf("Can not close the file!");
                exit(0);
            }
        }
        for(i=0;i<10;i++){
            strcpy(s[i].name,s[i].name+7);
    依据一个含有十个人姓名的字符串数组,分别创建以其姓名命名创TXT文件,运行结果如下图:(过程见图中注释)

    任务二:

    
    
    
     printf("                    请按学生姓名依次录入学号 性别 班级 线性代数成绩  (注意录入的数据间要有空格)
    ");
        for(i=0;i<10;i++){
            printf("%-8s",s[i].name);
            scanf("%s %s %s %d",&s[i].student_ID,s[i].sex,s[i].class_,&s[i].score);
            FILE *tp;
            tp=fopen(Name[i],"a+");
            fprintf(tp,"
    %-10s%s  %s  %s   %d
    ",s[i].name,s[i].student_ID,s[i].sex,s[i].class_,s[i].score);   //格式化方式向文件内写入信息; 
        }
        printf("录入完成
    ");                            
        system("pause");                                                                                        //使程序在此暂停; 
        system("cls");                                                                                            //清屏; 
    
    

     按姓名依次输入学号、性别、班级、线性代数成绩。(详细见注释)

    运行过程如下图:

     

     任务三:

    printf("                                              下面查看录入的学生信息
    ");
        system("pause");
        for(i=0;i<10;i++){
        FILE *tp;
        if((tp=fopen(Name[i],"a+"))==NULL)printf("error!");
        fscanf(tp,"%*[^
    ]");                                                                                    //读取文件内容时跳过第一行; 
        fscanf(tp,"%s%s%s%s%d",s[i].name,s[i].student_ID,s[i].sex,&s[i].class_,&s[i].score);
        if(fclose(tp))printf("error!");
    }
    for(i=0;i<10;i++) 
    printf("%-8s %s %s %s %d
    ",s[i].name,s[i].student_ID,s[i].sex,s[i].class_,s[i].score);                        //输出录入的内容; 
    printf("感谢您的使用!
    ");

     将任务二中录入文件中的数据通过fscanf函数读取数据到结构数组中,并输出到屏幕上。(具体见注释)

    结果如下:

     任务四:

    system类函数:

    system("cls"):清屏,适当使用使程序界面整洁。

    system("color xy"):改变cmd窗口背景色与前景色,x对应前景色,y对应背景色;具体颜色代码如下:

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

    system("pause"):冻结屏幕,便于观察程序的执行结果;

    system("date"):显示或设置日期。

    system("mode con cols=x lines=y"):设置窗口高度宽度,x为高度,y为宽度。

    system("title 标题");//设置cmd窗口标题

    
    
  • 相关阅读:
    JVM入门(一)
    2017目标
    2016目标
    C语言--第0次作业
    Hibernate ORM框架——续第一章:对象在Hibernate中的状态
    Hibernate ORM框架——续第一章:Java增删改查与Hibernate的增删改查的对比
    Hibernate ORM框架——续第一章:Hibernate的增删改查(第一个hibernate代码的优化)
    Hibernate ORM框架——第一章:Hibernate简介与操作基础
    改善SQL语句
    SQL Server的聚集索引和非聚集索引
  • 原文地址:https://www.cnblogs.com/qijing-cy/p/12054968.html
Copyright © 2020-2023  润新知