第三次博客作业

任务一

你现在拥有一个数组,数组中储存着总共10个人的姓名字符串

你需要为每个人创建一个txt文件,以他们的名字命名。

 

代码如下:

 

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main() {
    FILE * fp;
    int i;
    char name[10][100] = { "小曾","小陈","小顾","小黄","小李","小廖","小王","小吴","小徐","小诸" }; 
    for (i = 0; i < 10; i++) {
        strcat(name[i], ".txt");
        if ((fp = fopen(name[i], "w"))==NULL) {
            printf("File open error!\n");
            exit(0);
        }
       fclose(fp);
    }
    return 0;
}

 

运行结果:

 

 

任务二:

在任务一的基础上,这次不仅仅要创建txt文件,还需要往文件中写入

 

每个人的学号,性别,班级,线代成绩

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void waiguan();
struct student_information{
    char name[10];
    char num[20];
    char sex[10];
    char class[10];
    char score[20];
}s[10],a[10];
int main()
{
    waiguan();
    int a;
    printf("*******************************************\n");
    printf("*         欢迎使用学生信息管理系统        *\n");
    printf("*******************************************\n");
    system("cls");
    int n, i;
    char name[30][30];
    FILE* fp;
    printf("姓名 学号 性别 班级 线代成绩\n");
    for (i = 0; i < 10; i++)
    {
        scanf("%s", name[i]);
        strcpy(s[i].name, name[i]);
        strcat(name[i], ".txt");
        fp = fopen(name[i], "w");
        scanf("%s %s %s %s", s[i].num, s[i].sex, s[i].class, s[i].score);
        fprintf(fp, "%s %s %s %s %s", s[i].name, s[i].num, s[i].sex, s[i].class, s[i].score);
        if (fclose(fp)) {
            printf("Can not close the file!\n");
            exit(0);
        }
    }
    printf("录入成功!\n");
    printf("输入需要查询人数:");
    scanf("%d", &n);
    printf("输入需要查询人的姓名:");
    for (i = 0; i < n; i++)
    {
        scanf("%s", name[i]);
        strcat(name[i], ".txt");
        if ((fp = fopen(name[i], "r")) == NULL)
        {
            printf("没有该学生信息!");
            exit(0);
        }
        fp = fopen(name[i], "r");
        fscanf(fp, "%s %s %s %s %s",s[i].name,s[i].num,s[i].sex,s[i].class,s[i].score);
        printf("姓名  学号   性别   班级   线代成绩\n");
        printf("%s  %s   %s    %s    %s", s[i].name,s[i].num, s[i].sex,s[i].class,s[i].score);
        if (fclose(fp))
        {
            printf("File close error!");
            exit(0);
        }
        printf("\n");
        if (i != n - 1)
            printf("输入查询的姓名:");
    }
}
void waiguan(){
    system("color F3");
}

运行结果:

 

 

 

 

任务三:

在任务二生成的文件中,将每个人的信息再重新读取出来,放入数组中。

[要求使用结构体数组,结构体需要包含姓名,学号,性别,班级,线代成绩5个属性]

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void waiguan();
struct student_information{
    char name[10];
    char num[20];
    char sex[10];
    char class[10];
    char score[20];
}s[10],a[10];
int main()
{
    waiguan();
    int a;
    printf("*******************************************\n");
    printf("*         欢迎使用学生信息管理系统        *\n");
    printf("*******************************************\n");
    system("cls");
    int n, i;
    char name[30][30];
    FILE* fp;
    printf("姓名 学号 性别 班级 线代成绩\n");
    for (i = 0; i < 10; i++)
    {
        scanf("%s", name[i]);
        strcpy(s[i].name, name[i]);
        strcat(name[i], ".txt");
        fp = fopen(name[i], "w");
        scanf("%s %s %s %s", s[i].num, s[i].sex, s[i].class, s[i].score);
        fprintf(fp, "%s %s %s %s %s", s[i].name, s[i].num, s[i].sex, s[i].class, s[i].score);
        if (fclose(fp)) {
            printf("Can not close the file!\n");
            exit(0);
        }
    }
    printf("录入成功!\n");
    printf("输入需要查询人数:");
    scanf("%d", &n);
    printf("输入需要查询人的姓名:");
    for (i = 0; i < n; i++)
    {
        scanf("%s", name[i]);
        strcat(name[i], ".txt");
        if ((fp = fopen(name[i], "r")) == NULL)
        {
            printf("没有该学生信息!");
            exit(0);
        }
        fp = fopen(name[i], "r");
        fscanf(fp, "%s %s %s %s %s",s[i].name,s[i].num,s[i].sex,s[i].class,s[i].score);
        printf("姓名  学号   性别   班级   线代成绩\n");
        printf("%s  %s   %s    %s    %s", s[i].name,s[i].num, s[i].sex,s[i].class,s[i].score);
        if (fclose(fp))
        {
            printf("File close error!");
            exit(0);
        }
        printf("\n");
        if (i != n - 1)
            printf("输入查询的姓名:");
    }
}
void waiguan(){
    system("color F3");
}

运行结果:

任务四:

试着使用一下system("cls"),system("pause")这两个命令,看看这两个

命令能不能对你的程序起到一些美化的作用。

拓展:上网搜索类似的其他函数,使用并解释他们的作用。

查询所得:

用 system(“color 0A”)改变颜色, 其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:

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

system(“pause”)暂停程序,按任意键继续; 
system(“cls”)可以实现清屏操作。

posted @ 2019-12-21 09:54  Vancciiii  阅读(216)  评论(0编辑  收藏  举报