程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 結對 四則運算,結對四則運算

結對 四則運算,結對四則運算

編輯:關於C語言

結對 四則運算,結對四則運算


編譯環境: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();         //調用此函數
    
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved