zoukankan      html  css  js  c++  java
  • 结对 四则运算

    编译环境:Visual C++ 6.0

    结对同伴:02邬进纳 http://home.cnblogs.com/u/fitfit/

    估计用时:一周

    开发时间:2015-04-06——2015-04-09

    4个方向:  

                3.用户答题结束以后,程序可以显示用户答题所用的时间

                4.用户可以选择出题的个数,答题结束可以显示用户答错的题目个数和答对的题目个数

                5.用户在第一次答题时,需要用户输入用户名,用户下次启动后,程序需要记住用户前一次输入的用户名 

                8.程序可以设置皮肤功能,可以改变界面的颜色即可。

    不足:

               这个程序有很多不完善的地方,例如,当输入的用户是以前注册过的用户时,程序并没有提示,而是再注册一次。还有其他许多的不足之处。。。要完善这些对我来说不是一件容易的事情。有待完善。。。

    总结:

        这次的实验是对我的一次大考验。自己动手,发现问题和解决问题。并发现了许多自己的不足,平时没掌握的知识在实践中暴漏,经过不断的思考,查阅书籍和上网查资料及上机运行,解决了大部分问题,还稍微有些小问题。本次编写的小学四则运算练习软件,它具有随机出题、自动评分、自动排名,查看正确答案、错题重做等功能,本系统功能强大(其实很多不足),在编程中,很多知识,几乎是一片空白。不过后来通过网络和参考许多别人的代码才做了出来。。。

    #include<stdio.h> 
    #include<string.h> 
    #include<stdlib.h> 
    #include<time.h>
    float A=0;
    int nu=0;
    int hourA,hourB,minA,minB;
    time_t start,end;
    struct Student 
    {    char name[21];    //姓名
         char num[10];     //学号或编号
         float avscore;
    }s[50];   //结构体数组,存储学生的信息,在此初定为50,可改
    
    
    void Savemessage()   //保存学生输入信息的函数
    {
     FILE *fp,*fp1;   //定义文件指针,//以下判断文件打开与否 ,"a"方式打开则可向文件尾写数据
    
    if((fp=fopen("studentmessage.txt","wb+"))==NULL)   //打开文件studentmessage.txt
        { printf("打开文件失败\n");
              exit(0);}
    if((fp1=fopen("TestResult.txt","a"))==NULL)   //打开文件TestResult.txt
        { printf("打开文件失败\n");
           exit(0);}
    
        printf("    输入姓名:");   //以下为要学生输入个人信息
        scanf("%s",s[0].name);
    
        printf("    输入学号:");
        scanf("%s",&s[0].num);
    
    
    fwrite(&s[0],sizeof(struct Student),1,fp);    //向文件studentmessage.txt中写入一条记录,即刚刚输入的学生信息
        fprintf(fp1,"    姓名:%s\n",s[0].name);   //以下为向文件TestResult.txt中写入刚刚输入的学生信息
        fprintf(fp1,"    学号:%s\n",s[0].num);
        fclose(fp);     //关闭文件studentmessage.txt
    fclose(fp1);
    system("cls");   //清屏
    }
    
    
    void Judge()   //判断函数
    {int i=0;
    FILE *fp;         //文件指针//以下判断文件打开与否 ,"r"为只读打开方式
    printf("\n\n\n");
      printf("         **********************小学四则运算练习软件*******************\n");
      printf("         *-----------------------------------------------------------*\n");
      printf("         *-----------------------------------------------------------*\n");
      printf("         *************************************************************\n");
      printf("         *----------------------------注    册-----------------------*\n");
      printf("         *-----------------------------------------------------------*\n");
      printf("         *----------------------------输入姓名-----------------------*\n");
      printf("         *-----------------------------------------------------------*\n");
      printf("         *----------------------------输入学号-----------------------*\n");
      printf("         *-----------------------------------------------------------*\n\n\n");
    if((fp=fopen("studentmessage.txt","r"))==NULL)        //以下判断文件打开与否 "a"方式打开则可向文件尾写数据//打开文件studentmessage.txt
            {   fp=fopen("studentmessage.txt","w+");    //如果没有studentmessage.txt文件,则新建此文件,"w+"打开方式为新建一个文件
                printf("无文件记录,已新建.\n");
            }
    
    while(!feof(fp))   //判断是否到了文件尾
        {
        fread(&s[i],sizeof(struct Student),1,fp); //一行一行从文件中读出学生信息,保存在结构体数组student[]中
        fscanf(fp,"\n");                           //读取换行符
        i++;         //i变量保存学生记录个数
    if(i==50)        //当人数满时即50个人满时,因为数组下标从0开始,所以当i为29时
            {
        printf("人数已满,你已无法测试.\n");
        fclose(fp);
            
        exit(0);
            }
        }
    }
    
    
    void Addition(int number)       //加法运算函数,number为题目数形参
    {
        
    FILE *fp,*fp2,*fp3;
    if((fp=fopen("TestResult.txt","a"))==NULL)
            { printf("打开文件失败\n");
       exit(0);}
    if((fp2=fopen("failedResult.txt","a"))==NULL)
        {printf("打开文件失败\n");
        exit(0);}
    
    if((fp3=fopen("rightResult.txt","a"))==NULL)
        {printf("打开文件失败\n");
            exit(0);}
    int num1,num2,num3,num4,m,n,count1=0,count2=0;
    float average=0.0;                //正确率变量,注意是float类型
        srand(time(0));               //初始化随机数,如果没有此语句,则每次运行程序时的随机数是一样的
        fprintf(fp,"    加法测试:\n");   //向文件写入
        fprintf(fp,"    被加数 + 加数 =      你的结果      正确结果   是否正确\n");//向文件写入
    {
        printf("         *************************************************************\n");/*选择难度*/
        printf("         *------------------------- 请选择难度:------------------------*\n");
        printf("         *-------------------------  1.简  单 -------------------------*\n");
        printf("         *-------------------------  2.一  般 -------------------------*\n");
        printf("         *-------------------------  3.困  难 -------------------------*\n");
        printf("         *-------------------------------------------------------------*\n\n\n");
    printf("请选择难度: "); scanf("%d",&m);system("cls"); //清屏
    {    if(m==1) n=10  ;      /*将m的值转化为对应的n值,从而使随机函数出现一位,2位,3位,*/
        if(m==2) n=100 ;
    else if(m==3) n=1000 ;}
        printf(" \n  **************************************************************************\n\n");
    for(int i=0;i<number;i++)   /*小于测试题目数时,循环*/
        {
        if(m==1)
            {num1=rand()%n; num2=rand()%n;  }  //产生一位随机数,num1,num2
    
        if(m==2)
        {
            num1=10+rand()%(n-10);           //产生两位随机数 num1,num2     
            num2=10+rand()%(n-10);
        }
        if(m==3)
        {   num1=100+rand()%(n-100);         //产生三位随机数 num1,num2         
            num2=100+rand()%(n-100);
        }
         num3=num1+num2;        //num3保存正确结果
         printf("    %d + %d = ",num1,num2);   //在终端屏幕上输出题目
         scanf("%d",&num4);     //你要输入的计算结果
    
    if(num3==num4)   //正确结果与你计算的结果比较,正确的话
        {
        fprintf(fp,"             %d + %d =\t\t%d\t\t%d\t√ \n",num1,num2,num4,num3);//将结果记录到TestResult.txt中
        count1++;
        }   //变量count1记录正确题目的个数
                
    else   //错误的话,即num1!=num2时
        {
        fprintf(fp,"             %d + %d =\t\t%d\t\t%d\t× \n",num1,num2,num4,num3);   //将结果记录到TestResult.txt中
        fprintf(fp2,"    %d + %d =\n",num1,num2,num4,num3);   //将错误题记录到failedResult.txt中
        fprintf(fp3,"    %d + %d =  %d \n",num1,num2,num3);   //将错误题正确结果记录到failedResult.txt中
        }
    }
    }
    
    average=float(count1)/float(number);   //计算正确率,注意int整型要转换为float类型
    
    fprintf(fp,"    正确 %d 道,错误 %d 道,正确率为:%f\n\n",count1,count2,average);
    A=A+average*100;
    nu++;
    fclose(fp);
    fclose(fp3);
    fclose(fp2);
    }
    
    
    void Subtracter(int number)   //减法运算函数,注释与加法一样
    {
    FILE *fp,*fp2,*fp3;
    if((fp=fopen("TestResult.txt","a"))==NULL)
        {
        printf("打开文件失败\n");
        exit(0);
        }
    if((fp2=fopen("failedResult.txt","a"))==NULL)
        {
        printf("打开文件失败\n");
        exit(0);
        }
    if((fp3=fopen("rightResult.txt","a"))==NULL)
        {
        printf("打开文件失败\n");
        exit(0);
        }
    
    int num1,num2,num3,num4,count1=0,n,m,count2=0;
    float average=0.0;
        srand(time(0));
        fprintf(fp,"    减法测试:\n");
        fprintf(fp,"    被减数 - 减数 =      你的结果      正确结果   是否正确\n");
    
        printf("         *************************************************************\n");/*选择难度*/
        printf("         *------------------------- 请选择难度:------------------------*\n");
        printf("         *-------------------------  1.简  单 -------------------------*\n");
        printf("         *-------------------------  2.一  般 -------------------------*\n");
        printf("         *-------------------------  3.困  难 -------------------------*\n");
        printf("         *-------------------------------------------------------------*\n\n\n");
        printf("请选择: "); scanf("%d",&m);system("cls"); //清屏
    {if(m==1) n=10  ;
    if(m==2) n=100 ;
    else if(m==3) n=1000 ;}
        printf(" \n  **************************************************************************\n\n");
    for(int i=0;i<number;i++)
        {if(m==1)
            {num1=rand()%n; num2=rand()%n;  }  //产生一位随机数,num1,num2
    
        if(m==2)
            {num1=10+rand()%(n-10);           //产生两位随机数 num1,num2     
            num2=10+rand()%(n-10);}
        if(m==3)
            {num1=100+rand()%(n-100);         //产生三位随机数 num1,num2         
            num2=100+rand()%(n-100);}
        num3=num1-num2;
        printf("    %d - %d = ",num1,num2);
        scanf("%d",&num4);
    if(num3==num4)
        {
        fprintf(fp,"             %d - %d =\t\t%d\t\t%d\t√ \n",num1,num2,num4,num3);
        count1++;  
        }
    else
        {
        fprintf(fp,"             %d - %d =\t\t%d\t\t%d\t× \n",num1,num2,num4,num3);
        count2++;
        fprintf(fp2,"    %d - %d =\n",num1,num2,num4,num3);
        fprintf(fp3,"    %d - %d =  %d \n",num1,num2,num3);
        }
    }
        average=float(count1)/float(number);
    
    fprintf(fp,"    正确 %d 道,错误 %d 道,正确率为:%f\n\n",count1,count2,average);
    A=A+average*100;
    nu++;
    fclose(fp);fclose(fp2);
    fclose(fp3);
    }
    
    
    void Multiplication(int number)//乘法运算函数,注释与加法一样
    {
    FILE *fp,*fp2,*fp3;
    if((fp=fopen("TestResult.txt","a"))==NULL)
        {
        printf("打开文件失败\n");
        exit(0);
        }
    
    if((fp2=fopen("failedResult.txt","a"))==NULL)
        {
        printf("打开文件失败\n");
        exit(0);
        }
    if((fp3=fopen("rightResult.txt","a"))==NULL)
        {
        printf("打开文件失败\n");
        exit(0);
        }
    
    int num1,num2,num3,num4,m,n,count1=0,count2=0;
    float average=0.0;
        srand(time(0));
        fprintf(fp,"    乘法测试:\n");
        fprintf(fp,"    被乘数 * 乘数 =      你的结果      正确结果   是否正确\n");
    
    {   printf("         *************************************************************\n");/*选择难度*/
        printf("         *------------------------- 请选择难度:------------------------*\n");
        printf("         *-------------------------  1.简  单 -------------------------*\n");
        printf("         *-------------------------  2.一  般 -------------------------*\n");
        printf("         *-------------------------  3.困  难 -------------------------*\n");
        printf("         *-------------------------------------------------------------*\n\n\n");
        printf("请选择: ");} 
        scanf("%d",&m);
        system("cls"); //清屏
    
    {if(m==1) n=10  ;
    if(m==2) n=100 ;
    else if(m==3) n=1000 ;}
        printf(" \n  **************************************************************************\n\n");
    for(int i=0;i<number;i++)
    {if(m==1)
        {num1=rand()%n; num2=rand()%n;  }  
    if(m==2)
        {num1=10+rand()%(n-10);               
        num2=10+rand()%(n-10);}
    if(m==3)
        {
        num1=100+rand()%(n-100);                  
        num2=100+rand()%(n-100);
        }
        num3=num1*num2;
        printf("    %d * %d = ",num1,num2);
        scanf("%d",&num4);
    if(num3==num4)
        {
        fprintf(fp,"             %d * %d =\t\t%d\t\t%d\t√\n",num1,num2,num4,num3);
        count1++;
        }
    else
        {
        fprintf(fp,"             %d * %d =\t\t%d\t\t%d\t×\n",num1,num2,num4,num3);
        count2++;
        fprintf(fp2,"    %d * %d =\n",num1,num2,num4,num3);
        fprintf(fp3,"    %d * %d =  %d \n",num1,num2,num3);
        }
     }
    average=float(count1)/float(number);
    
    fprintf(fp,"    正确 %d 道,错误 %d 道,正确率为:%f\n\n",count1,count2,average);
    A=A+average*100;
    nu++;
    fclose(fp);
    fclose(fp2);
    fclose(fp3);
    }
    
    void Division(int number)       // 和加法运算函数注释一样
    {
        FILE *fp,*fp2,*fp3;
    if((fp=fopen("TestResult.txt","a"))==NULL)
        {
        printf("打开文件失败\n");
        exit(0);
        }
    
    if((fp2=fopen("failedResult.txt","a"))==NULL)
        {
        printf("打开文件失败\n");
        exit(0);
        }
    if((fp3=fopen("rightResult.txt","a"))==NULL)
        {
        printf("打开文件失败\n");
        exit(0);
        }
    
    int num1,num2,m,n,count1=0,count2=0;
    float num3,num4,average;        //正确率变量,注意是float类型
        srand(time(0));             //初始化随机数,如果没有此语句,则每次运行程序时的随机数是一样的
        fprintf(fp,"    加法测试:\n");   //向文件写入
        fprintf(fp,"    除数数/被除数=      你的结果      正确结果   是否正确\n");//向文件写入
    
    {   printf("         *************************************************************\n");/*选择难度*/
        printf("         *------------------------- 请选择难度:------------------------*\n");
        printf("         *-------------------------  1.简  单 -------------------------*\n");
        printf("         *-------------------------  2.一  般 -------------------------*\n");
        printf("         *-------------------------  3.困  难 -------------------------*\n");
        printf("         *-------------------------------------------------------------*\n\n\n"); 
        printf("请选择:");
        scanf("%d",&m);system("cls");   //清屏
    
    {if(m==1) n=10  ;
    if(m==2) n=100 ;
    else if(m==3) n=1000 ;}
        
        printf(" \n  **************************************************************************\n\n");
        printf("    请保留保留小数点后一位    \n");
    for(int i=0;i<number;i++)   //小于测试题目数时,循环
    {if(m==1)
        num1=rand()%n;   
    if(m==2)
        num1=10+rand()%(n-10);               
    
    if(m==3)
        num1=100+rand()%(n-100);                  
        num2=n/10+rand()%(n-n/10);       //产生不等于零的随机数num3
        num3=(float)(num1)/(float)(num2);   //num3保存正确结果
        printf("    %d / %d = ",num1,num2);    //在终端屏幕上输出题目
        scanf("%f",&num4);   //你要输入的计算结果
        num3=(int)(num3*10)/10.0;   //实现保留小数点一位
    if(num3==num4)                                        //正确结果与你计算的结果比较,正确的话
        {fprintf(fp,"             %d / %d =\t\t%.1f\t\t%.1f\t√ \n",num1,num2,num4,num3);//向文件中写入
        count1++;                                       //变量count1记录正确题目的个数
        }
    else                        //错误的话,即num1!=num2时
        {fprintf(fp,"             %d / %d =\t\t%.1f\t\t%.1f\t× \n",num1,num2,num4,num3);
        count2++;   //变量count2记录错误题目的个数
        fprintf(fp2,"    %d / %d = \n",num1,num2);
        fprintf(fp3,"    %d / %d =  %.1f \n",num1,num2,num3);}}}
    average=float(count1)/float(number);   //计算正确率,注意int整型要转换为float类型
    fprintf(fp,"    正确 %d 道,错误 %d 道,正确率为:%f\n\n",count1,count2,average);
    A=A+average*100;
    nu++;
    fclose(fp);
    fclose(fp2);
    fclose(fp3);
    }
    
    void  rework()   // 错题重做
    {int a;
     char ch;
     FILE *fp2,*fp3;
        
    if((fp2=fopen("failedResult.txt","a+"))==NULL)
        {printf("打开文件失败\n");
       exit(0);}
        
    if((fp3=fopen("rightResult.txt","a+"))==NULL)
        {printf("打开文件失败\n");
         exit(0);}
        printf("********************错题重做***************************************\n");
    while(!feof(fp2))  
        {ch=fgetc(fp2);printf("%c",ch);   //读取failedResult.txt中的错题
    if(ch=='=')  
        scanf("%d",&a);}              //输入答案
        fp2=fopen("failedResult.txt","w");   //清空之前数据
        fclose(fp2);
        printf("========小朋友请查看正确答案===========================================\n");
    while(!feof(fp3))  
        { 
        ch=fgetc(fp3);printf("%c",ch);}   //读取rightResult.txt中的错题的答案
        fclose(fp3);fp3=fopen("rightResult.txt","w");//清空
        fclose(fp3);
        }
    
    
    void sort()      //实现排序
    {FILE *fp5;
    int i,j,m;
       s[0].avscore=A/nu;
       fp5=fopen("nrecord.txt","a+");
       fprintf(fp5,"%s        %s        %f\n",s[0].name,s[0].num,s[0].avscore);   //将刚刚做过的测试记录到文件nrecord.txt中
       fclose(fp5);
        fp5=fopen("nrecord.txt","rb");
    for(i=0;!feof(fp5);i++)
       {
        fscanf(fp5,"%s        %s        %f\n",s[i].name,s[i].num,&s[i].avscore);}   //将文件nrecord.txt的记录存到结构体struct Student中
       fclose(fp5);
    //实现排序   
        m=i;
    struct Student temp;
    for(i=0;i<m;i++)
    {  
    for(j=0;j<m-1;j++)
        if(s[j].avscore<s[j+1].avscore)
        {
        strcpy(temp.name,s[j].name);      //利用临时结构变量temp实现数组元素的交换
        strcpy(temp.num,s[j].num);
        temp.avscore=s[j].avscore;
    
        strcpy(s[j].name,s[j+1].name);
        strcpy(s[j].num,s[j+1].num);
        s[j].avscore=s[j+1].avscore;
    
        strcpy(s[j+1].name,temp.name);
        strcpy(s[j+1].num,temp.num);
        s[j+1].avscore=temp.avscore;
        }
              //若n=0,意味着没有交换了,排序已经完成
    }
    //输出排名结果
        printf(" ****************************************************************\n");
        printf("   ---------查看你的排名(排序结果由高到低):--------------------\n");
        printf("   -------------姓名        学号        分数------------\n");
    for(i=0;i<m;i++)
        {printf("        %s        %s        %4.2f\n",s[i].name,s[i].num,s[i].avscore);}}
    
    
    
    
    
    void TestOver()   //程序测试完毕函数
    {
    printf("\n\n------测试完毕你的测试结果保存在 %s 中------\n\n",s[0].num);    //输出测试结果记录提示
    }
    
    
    void ShowResult()   //显示测试结果函数
    {
    FILE *fp;
    if((fp=fopen("TestResult.txt","r"))==NULL)
    {   printf("打开文件失败\n");
        exit(0);}
    char ch;
         ch=fgetc(fp);   //文件开头字符
    while(ch!=EOF)   //当文件没有到尾时,一直循环
    {   putchar(ch);   //输出字符
       ch=fgetc(fp);}
     fclose(fp);
    }
    
    
    void FileCopy()   //文件复制函数,用来保存测试结果,当然文件名不能重复,
    {
    FILE *in,*out;
        strcat(s[0].num,".txt");   //将字符串".txt"连接到字符串student[0].num后,即以学号为文件名,后缀为.txt的文件中,保存在工程目录下
    if((in=fopen("TestResult.txt","r"))==NULL)
        {   in=fopen("TestResult.txt","w+");
         printf("无文件记录,已新建.\n");
        }
    if((out=fopen(s[0].num,"w"))==NULL)   //打开文件学号.txt 文件(如03071361.txt),"w"方式为只写方式
        {   printf("打开文件失败\n");
        exit(0);
        }
    while(!feof(in))   //当文件TestResult.txt没有结束时循环
        fputc(fgetc(in),out);   //逐个字符写入
        fclose(in);
        fclose(out);}
    
    void ChooseFunc();
    void begain()
        {
        printf("\n\n\n");
        printf("         \n");
        printf("         *************************************************************\n");
        printf("         *--------------------------1.加法测试-----------------------*\n");
        printf("         *--------------------------2.减法测试-----------------------*\n");
        printf("         *--------------------------3.乘法测试-----------------------*\n");
        printf("         *--------------------------4.除法测试-----------------------*\n");
        printf("         *--------------------------5.返回主菜单----------------------*\n");
        printf("         *------------------------------------------------------------*\n\n\n");
    int choose,thnum;   // bool judge=false;
        printf("         选择功能:");
        scanf("%d",&choose);
    while(choose<1||choose>5)   //不在以上所列的功能以内时循环
    {
        printf("         超出功能范围,请重新选择(1---5):");
       scanf("%d",&choose);
    }
    switch(choose)   //switch语句选择执行功能
    {
    case 1:   //执行功能1
         system("cls");   //清屏
         printf("\n\n\n");
         printf("         加法测试:输入要测试的题目数(5/10/20/50/100)::",&thnum);
         scanf("%d",&thnum);
    
    while(thnum<5||thnum>5&&thnum<10||thnum>10&&thnum<20||thnum>20&&thnum<50||thnum>50&&thnum<100||thnum>100)   //不在以上所列的功能以内时循环
    {    printf("超出功能范围,请重新选择(5/10/20/50/100):");
         scanf("%d",&thnum);}
    
         system("cls");//清屏
         
         Addition(thnum);   //调用加法运算函数
         begain();
    
     break;
    case 2:
         system("cls");   //清屏
         printf("\n\n\n");
         printf("         减法测试:输入要测试的题目数(5/10/20/50/100):",&thnum);
         scanf("%d",&thnum);
    
    while(thnum<5||thnum>5&&thnum<10||thnum>10&&thnum<20||thnum>20&&thnum<50||thnum>50&&thnum<100||thnum>100)   //不在以上所列的功能以内时循环
    {    printf("超出功能范围,请重新选择(5/10/20/50/100):");
         scanf("%d",&thnum);}
    
         system("cls");   //清屏
         Subtracter(thnum);
         begain();
        break;
    case 3:
         system("cls");   //清屏
         printf("\n\n\n");
         printf("         乘法测试:输入要测试的题目数(5/10/20/50/100):",&thnum);
         scanf("%d",&thnum);
    while(thnum<5||thnum>5&&thnum<10||thnum>10&&thnum<20||thnum>20&&thnum<50||thnum>50&&thnum<100||thnum>100)//不在以上所列的功能以内时循环
    {    
           printf("超出功能范围,请重新选择(5/10/20/50/100):");
        scanf("%d",&thnum);}
         
        system("cls");   //清屏
        printf("\n\n\n");
        Multiplication(thnum);
        begain();
       break;
    case 4:
        system("cls");   //清屏
        printf("\n\n\n");
        printf("         除法测试:输入要测试的题目数(5/10/20/50/100):",&thnum);
        scanf("%d",&thnum);
    while(thnum<5||thnum>5&&thnum<10||thnum>10&&thnum<20||thnum>20&&thnum<50||thnum>50&&thnum<100||thnum>100)//不在以上所列的功能以内时循环
    {   printf("超出功能范围,请重新选择(5/10/20/50/100):");
        scanf("%d",&thnum);}
        system("cls");   //清屏
        printf("\n\n\n");
        Division(thnum);begain();
       break;
    case 5:
        system("cls");   //清屏
    
        ChooseFunc();
       break;}}
    
    
    void ChooseFunc()   //功能选择函数
    {
        printf("\n\n\n");
        printf("         *************************************************************\n");
        printf("         *--------------------------1.开始测试-----------------------*\n");
        printf("         *--------------------------2.查看结果-----------------------*\n");
        printf("         *--------------------------3.查看排名-----------------------*\n");
        printf("         *--------------------------4.错题重做-----------------------*\n");
        printf("         *--------------------------5.结束测试 ----------------------*\n");
        printf("         *-----------------------------------------------------------*\n\n\n");
    int choose;
    
    
        printf("         选择功能:");
    scanf("%d",&choose);
    while(choose<1||choose>5)   //不在以上所列的功能以内时循环
    {
        printf("         超出功能范围,请重新选择(1---5):");
        scanf("%d",&choose);
    }
    switch(choose)   //switch语句选择执行功能
    {
    case 1:    //功能1
        system("cls");
        printf("  *************************************************************\n");
        {
        start =time(NULL);
        system("cls");  
        } 
    //显示时间
    
         begain();
        
    break;
    case 2:   //功能2
        system("cls");
        printf("\n\n");
        ShowResult();   //调用此函数,即输出测试结果
        ChooseFunc();
    break;
    case 3:   //功能2
        system("cls");
        printf("\n\n");
        sort();   //调用此函数,即输出测试结果
        ChooseFunc();
        break;
    
    case 4:   //功能4
        system("cls");   //清屏
        printf("\n\n");
        rework();   //调用此函数,即输出测试结果
        ChooseFunc();
        break;
    case 5:   //功能5
        system("cls");   //清屏
        printf("\n\n");
        
        { 
            end =time(NULL);
            printf("   *-----------------------------------------------------------------*\n");
            printf("   *------------------小朋友你答题用时为:%d秒------------------------*\n",end-start);
        }
            FileCopy();   //调用此函数,即复制测试结果
            TestOver();
        break;
        }
    }
    
    
    int main(int argc, char *argv[])    
    {
        system("color b0");        
    
        FILE *fp,*fp2,*fp3;
        fp=fopen("TestResult.txt","w");   //以只写方式打开文件,如果文件存在,则清空,这就是为什么结束程序时要复制测试结果了
        fp2=fopen("failedResult.txt","w");   //清空之前数据
        fclose(fp2);
        fp3=fopen("rightResult.txt","w");   //清空
        fclose(fp3);
        Judge();              //调用此函数
        Savemessage();        //调用此函数
        ChooseFunc();         //调用此函数
        
    }
  • 相关阅读:
    MySQL单实例、多实例服务脚本
    Shell之case结构条件句
    Shell之函数
    Shell之条件测试
    Shell脚本数字比较与四则运算
    Shell之分支结构
    Shell之变量的数值计算与输入
    Shell之变量子串与变量替换
    表单和框架
    HTML部分标签和代码
  • 原文地址:https://www.cnblogs.com/santokim/p/4409915.html
Copyright © 2011-2022 走看看