博客园第三次作业

一.代码展示

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct students {   //定义结构体
    char name[20];
    char num[15];
    char sex[10];
    char Class[10];
    char score[10];

};
void menu(); //菜单    
void view();//改变外观
void type_in();//录入
void query();//查找 
int main()
{
    view();
    int n = 3;
    while (n>0) {
        menu();
        int x;
        scanf("%d", &x);
        switch (x) //功能选择
        {
        case 1: query();break;
        case 2: type_in();break;
        case 3: view();break;
        case 0:
            printf("退出系统\n");
            return 0;
            break;
        default:
            printf("输入错误,请重新输入!");//输入错位提示
            
            system("pause");//冻住窗口
            break;

        }
        n--;
    }
}
void menu()
{
    printf("                        欢迎使用学生成绩查询与管理系统\n\n");
    printf("                                 请选择:\n");
    printf("                                [1].查询\n");
    printf("                                [2].录入\n");
    printf("                                [3].外观\n");
    printf("                                [0].退出\n\n\n\n");
    printf("                                输入相应数字执行下一步:\n");
}
void type_in()
{
    system("cls");//清空界面
    char name1[10][20];
    char name2[10][20];
    char sex[10];
    char num[15];
    char Class[10];
    char score[10];
    int n;
    struct students a[500];
    FILE* fp;
    printf("需要添加的人数:");
    scanf("%d", &n);
    printf("                    姓名      学号    性别   班级   线代成绩\n");
    for (int i = 0; i < n; i++) {
        printf("\n");
        printf("                   ");
        scanf("%s", name1[i]);//输入姓名
        strcpy(name2[i], name1[i]);
        strcat(name1[i], ".txt");//将txt文件用名字命名
        FILE* fp = fopen(name1[i], "w+");
        fclose(fp);
        if ((fp = fopen(name1[i], "r+")) == NULL) {
            printf("File open error!\n");
            exit(0);
        }
        scanf(" %s %s %s %s", &a[i].num,&a[i]. sex,&a[i].Class, &a[i].score);
        fprintf(fp, "%s %s %s %s", &a[i].num, &a[i].sex, &a[i].Class, &a[i].score);//将数据存入文本文档
        if (fclose(fp)) {
            printf("Can not close the file!\n");
            exit(0);
        }
    }
    printf("\n                     添加成功!\n");//提示添加成功
    exit(0);
}
void query()
{
    system("cls");
    char name1[20];
    char name2[20];
    char sex[10];
    char num[15];
    char Class[10];
    char score[10];
    int i;
    printf("请输入需要查找的个数:");
    scanf("%d", &i);
    struct students a[500];
    FILE* fp;
    printf("请输入需要查找的姓名:");
    while (i > 0) {
        scanf("%s", name1);
        strcpy(name2, name1);
        strcat(name1, ".txt");
        if ((fp = fopen(name1, "r")) == NULL) {
            printf("Failed to open file\n");
        }
        fp = fopen(name1, "r");//打开对应文本文档
        fscanf(fp, "%s %s %s %s", &a[i].num, &a[i].sex, &a[i].Class, &a[i].score);//从文件中读取数据
        printf("                    姓名      学号    性别   班级   线代成绩\n");
        printf("                   %s  %s  %s %s    %s", name2, a[i].num, a[i].sex, a[i].Class, a[i].score);
        fclose(fp);
        i--;

    }
    system("pause");//暂停页面
    exit(1);
}
void view()
{
    system("color 0C");//0指将背景变为黑色,C指将字体颜色变为红色。
}

二.运行截图:

1.

2.

3.

三.system()用法

system("pause");//暂停程序,按任意键继续;

system("cls");//清空黑框界面;    

system("color 12");//改变黑框颜色,不同数字不同颜色,0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色,其中color后面的第一个数是背景色代号,第二个数是前景色代号。

四.总结

1.掌握文件的一些基本用法

2.对于system()的用法掌握

posted @ 2019-12-20 17:21  祖国庇佑我  阅读(110)  评论(0编辑  收藏  举报