第三次博客作业

C语言文件

根据题目要求,我做出了一个可以储存并查询多个学生的相关数据的程序,数据包括一个学生的姓名、学号、性别、所在班级、现代成绩,还设计了一些可以让程序界面比较美观的UI界面,程序的最终效果如下图:

程序初始界面:

第三次博客作业_第1张图片

按任意键进入应用界面,输入1、2、3将分别转到相应的功能界面,如果输入4,则程序终止:

第三次博客作业_第2张图片

任务一、二的实现:

选项(1)为学生信息的输入,在输入完一位同学的信息后会提示是否继续添加学生信息,输入1则继续输入,输入0则跳转到应用界面:

第三次博客作业_第3张图片

输入1时的效果:

第三次博客作业_第4张图片

在输入学生的数据时,程序会自动生成一个以该学生的姓名为名字的txt文件,其中依次记录有每个学生的学号、性别、班级、线代成绩:

第三次博客作业_第5张图片
第三次博客作业_第6张图片

程序的以上部分不仅实现了自动创建一个“姓名.txt”的文件,还实现了向这些文件写入相应数据的目的,顺利的完成了任务一和任务二。

任务三的实现:

在应用界面输入2,对应的功能是显示所有被用户输入的学生的信息:

第三次博客作业_第7张图片

按任意键返回应用界面,实现将学生信息用结构数组重新读取出来并显示的目的,完成任务三。

$额外功能:

在应用界面输入3,对应查找某个学生单个信息的功能:

输入数字3,系统会提示是否查找,输入1查找,输入0转到应用界面:

第三次博客作业_第8张图片

任务四的实现:

system函数:

system函数可以发出一个DOS命令,首先来说我在本次作业中使用到的函数, system(“cls”)的作用是可以实现清屏操作, system("pause")的作用是可以冻结屏幕,便于观察程序的运行效果, system(“color”)可以改变命令台的底色和字符颜色,具体用法为:system(“color xy”),x和y分别为窗口的 背景色和前景色,各颜色代码如下:0=黑色 1=蓝色 2=绿色 3=湖蓝色 4=红色 5=紫色 6=黄色 7=白色 8=灰色 9=淡蓝色 A=淡绿色 B=淡浅绿色 C=淡红色 D=淡紫色 E=淡黄色 F=亮白色

我在网上又找到了一些system函数的具体实例(图片转自追梦小蚂蚁的CNDS博客):

第三次博客作业_第9张图片
第三次博客作业_第10张图片
第三次博客作业_第11张图片

在我编写的程序中,大量的穿插了 system("cls"),system("pause") ,以及system(“color”)的使用,具体请详见下面展示的此程序的源代码。

程序源代码:

主函数:

#include  
#include 
#include 

void UI_0(int n);
void UI_1(int n);
void UI_2(int n);
struct student {
    int id[30];
    char sex[4];      //定义结构数组 
    int Class[20];
    int linear;
};

int main ()
{
    system("color f0");                            //使用函数改变命令台的底色和字符颜色
    int j,i,k,flag=0,mark=0,decide;
    char sign;
        
    char stu[100][20],stucp[100][20],stu_dec[20]; 
    struct student students_ip[10],students_op[10];//students_ip做从用户输入中读入数据的数组,students_op做从文件中读入数据的数组 
    FILE *fp;                                      //定义文件指针 
    
    UI_0(0);                    //加载初始UI 
    
    sign=getchar();             //用户输入任意字符继续 
    
    system("cls");              //清屏 
    
    for(j=0;j=4;)
     {
        UI_2(1);                //加载选择界面 
        scanf("%d",&j);
        system("cls");
        if(j==1){
                
                
                for(i=mark;i<100;i++)
                {
                        system("cls");//清屏
                    printf("请分别输入:姓名|学号|性别|班级|线代成绩\n");
                
                    printf("\t");
                    scanf("%s",stu[i]);                         //输入学生姓名 
                    strcpy(stucp[i],stu[i]);
                    strcat(stu[i],".txt");                      //将输入的名字后加上“.txt”
                    mark++;                      
                if((fp=fopen(stu[i],"w+"))==NULL)               //创建以学生名字为标题的txt文件 
                    {
                        printf("文件打开时遇到错误!\n");
                        exit (0);
                    }
                scanf("%s",students_ip[i].id);          // 输入学生信息到结构数组students_ip 
                scanf("%s",students_ip[i].sex);
                scanf("%s",students_ip[i].Class);
                scanf("%d",&students_ip[i].linear);
                
                fprintf(fp,"%s %s %s %d",students_ip[i].id,students_ip[i].sex,students_ip[i].Class,students_ip[i].linear);      //将结构数组students_ip中的数据输入姓名.txt文件中 
                fclose(fp);
                
                printf("==是否继续录入学生信息?==\n \n  *是(1)  *否(0)\n \n");
                scanf("%d",&decide);
                if(decide==0)break;
                
            }
            
            
                    for(k=0;k

其他函数:

void UI_0(int n)
{
    int k;
    system("color f4");
    printf("_________________________________________________学生信息库v1.0Beta版__________________________________________________\n"); //界面 
    for(k=0;k<15;k++)printf("|                                                                                                                     |\n");
    printf("|                                                 欢迎使用本数据库!                                                  |\n") ;
    printf("|                                                                                                                     |\n");
    printf("|                                                   按任意键继续···                                                |\n");
    printf("|                                    :( (  ):::::                              |\n");
    printf("|                                    (_, \\ ) ,_)::       |            |       |\n");
    printf("|                                    :::-'--`--:::::::: ~~|   ,    \\ _ /     |\n");
    printf("|         __                                 ::::::::::::::::::: ,|`-._/|  -== (_) ==- |\n");
    printf("|       >(' )                            ::::::::^^::::::::.' |  /||\\   /  \\     |\n");
    printf("|         )/                                 ::::::^^::::::::.'  | ./ ||`\\     |       |\n");
    printf("|        /(                          :::::::::::::::/ `-. |/._ || \\              |\n");
    printf("|       /  `----/                        ~~=~_~^~ =~ \\~~~~~~~'~~~~'~~~~/~~`` ~=~^~    |\n");
    printf("|       \\  ~=- /                        ~^^~~-=~^~ ^ `--------------'~^~=~^~_~^=~^~  |\n");
    printf("|_____________________________________________________________________________________________________________________|\n");
    
 } 
 void UI_1(int n)
 {
    int k;
    for(k=0;k<17;k++)printf("|                                                                                                                     |\n");
    printf("|                                                     感谢您的使用!                                                  |\n");
    printf("|                                                     祝您生活愉快!                                                  |\n");
    for(k=0;k<17;k++)printf("|                                                                                                                     |\n");
    system("pause");
 }
 void UI_2(int n)
 {
    int k;
    printf("|—————————————————————————————————————————————————————————-—|\n");
    printf("|                                             ████████████                                                |\n");
    printf("|                                            ██   ◥██◤  ██                                               |\n");
    printf("|                                        ◢███    ◥◤   ██◣                                             |\n");
    printf("|                                        ▊▎██◣       ◢█▊ ▊                                            |\n");
    printf("|                                        ▊▎██◤ ●  ●   ◥█▊ ▊                                            |\n");
    printf("|                                        ▊ ██         █▊ ▊                                            |\n");
    printf("|                                        ◥▇██ ▊      ▊ █▇◤                                             |\n");
    printf("|                                            ██ ◥▆▄▄▄▆◤ █▊   ◢▇▇◣                                  |\n");
    printf("|                                     ◢██◥◥▆▅▄▂▂▂▄▅▆███◣  ▊◢   █                                 |\n");
    printf("|                                     █                                 █ ◥◤◢◤                                  |\n");
    printf("|                                       █◣       ________       ◢█    ◢◤                                    |\n");
    printf("|                                          ▊     |程序猿|       ▊     ◢◤                                      |\n");
    printf("|                                          ▊     |______|       ▊  ◢◤                                        |\n");
    printf("|                                           ▊       ×       █▇◤                                          |\n");
    printf("|                                          ◢█▇▆▆▆▅▅▅▆▆▆▇█◣                                             |\n");
    printf("|                                          ▊ ▂ ▊      ▊ ▂ ▊                                           |\n");
    printf("|                                          ◥▆▆▆◤      ◥▆▆▆◤                                           |\n");
    printf("|                                                                                                                     |\n");
    printf("|                                                       功能界面                                                      |\n");
    printf("|                                                                                                                     |\n");
    printf("|                     ·学生信息添加(1)                                    ·学生信息一览(2)                      |\n");
    printf("|                                                                                                                     |\n");
    printf("|                     ·学生信息查询(3)                                    ·退出程序    (4)                      |\n");
    for(k=0;k<4;k++)printf("|                                                                                                                     |\n");
    printf("|_____________________________________________________________________________________________________________________|\n");
  } 
总结:

收获:通过本次作业,我又把书本上的相关知识阅读了一遍,带着问题去读书果然受益匪浅,无论是对文件的打开和关闭、文件内容的写入和读取,还是关于缓冲区、EOF函数的概念,都有了新的理解。

感受:本次作业看似都是陌生的知识,但是仔细接触后就会发现这些知识十分有趣,会让人停不下来的去试错和研究,我也是在这种心理的驱使下一口气做出了这个程序,并且加了一点私货(指附加功能)。其实通过编写附加程序也是对自己的一种挑战,成功之后就会有很大的成就感,并且在这次的程序中我将界面做成函数分别封装,使自己的主函数看起来很简洁,也是自己在编程中的又一尝试!

你可能感兴趣的:(第三次博客作业)