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("【                                              简易学生成绩管理系统                                                  】\n");
    printf("【                                                                                                                    】\n");
    printf("【                                                欢迎使用本系统!                                                    】\n");
    printf("【                                                                                                                    】\n");
    system("pause");
    system("cls");
    printf("                    请按学生姓名依次录入学号 性别 班级 线性代数成绩  (注意录入的数据间要有空格)\n");
    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,"\n%-10s%s  %s  %s   %d\n",s[i].name,s[i].student_ID,s[i].sex,s[i].class_,s[i].score);   //格式化方式向文件内写入信息; 
    }
    printf("录入完成\n");                            
    system("pause");                                                                                        //使程序在此暂停; 
    system("cls");                                                                                            //清屏; 
    printf("                                              下面查看录入的学生信息\n");
    system("pause");
    for(i=0;i<10;i++){
    FILE *tp;
    if((tp=fopen(Name[i],"a+"))==NULL)printf("error!");
    fscanf(tp,"%*[^\n]");                                                                                    //读取文件内容时跳过第一行; 
    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\n",s[i].name,s[i].student_ID,s[i].sex,s[i].class_,s[i].score);                        //输出录入的内容; 
printf("感谢您的使用!\n");
}

任务一:

 

    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("                    请按学生姓名依次录入学号 性别 班级 线性代数成绩  (注意录入的数据间要有空格)\n");
    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,"\n%-10s%s  %s  %s   %d\n",s[i].name,s[i].student_ID,s[i].sex,s[i].class_,s[i].score);   //格式化方式向文件内写入信息; 
    }
    printf("录入完成\n");                            
    system("pause");                                                                                        //使程序在此暂停; 
    system("cls");                                                                                            //清屏; 

 


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

运行过程如下图:

 

 

 

 任务三:

 

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

 

 将任务二中录入文件中的数据通过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窗口标题

 

 

 

 


posted on 2019-12-17 15:52  漆靖  阅读(203)  评论(0编辑  收藏  举报

导航