當前位置:編程學習大全網 - 編程語言 - 制作壹個可供小學數學運算程序:10以內加減法,能根據輸入題數出題,判斷做題是否正確,最後計算分數。

制作壹個可供小學數學運算程序:10以內加減法,能根據輸入題數出題,判斷做題是否正確,最後計算分數。

要求:制作壹個可供小學數學運算的程序。10以內的加減法,能根據輸入題數出題,判斷做題是否正確,最後計算分數,

例如:請輸入題數:2

1+5=

2+4=

由用戶輸入答案,程序根據答案判斷正誤,輸出正確率(%)

界面要示:圖形方式界面(使用c語言繪制界面)

我目前做的程序,現在腦子很混亂,所以最後幾行亂七八糟的沒改。。。希望有高人指點,幫我完成整個程序的循環。還有,用turbo c為這個程序制作壹個簡單的歡迎界面和運行界面

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

char d1,d2;

int Getanum(int num)

{

int a;

srand(num*num+time(0));

a=(rand()+num)%10;//產生10以內的隨機數

return a;

}

void main()

{

loop:int i,num,a,b,c,op,error;

error = 0;//錯誤數置零

num = 100;//使得下面的while循環成立即可

printf("同學們,開始做題嘍!輸入題數吧^.^:");

scanf("%d",&num);

for(i=0;i<num;i++)//每次出題開始

{

a = Getanum(i);//第壹個操作數

b = Getanum(a);//第二個

op = (Getanum(a+b)+b)%2;//產生符號 +或者-

switch(op)

{

case 0://+

if(a+b>10)//超過10重新來

{

i--;

break;

}

else

{

printf("%d : %d + %d = ",i+1,a,b);//出題

scanf("%d",&c);//取輸入的結果

if(c != a+b)//答案錯誤

{

printf("出錯啦,做題要仔細哦!\n");

error++;

}

else//正確答案鼓勵壹下

{

printf("真棒!再接再厲哦!\n");

}

}

break;

case 1://-

if(b>a)//保證a>b 使得不出現負數

{

a=a+b;

b=a-b;

a=a-b;

}

printf("%d : %d - %d = ",i+1,a,b);//出題

scanf("%d",&c);//取結果

if(c != a-b)

{

printf("出錯啦,做題要仔細哦!\n");

error++;//錯誤自加

}

else

{

printf("真棒!再接再厲哦!\n");

}

break;

default:

break;

}

}

printf("%d 道題錯誤!\n",error);//輸出錯誤數

printf("妳的正確率為百分之 %d .\n",(num-error)*100/num);//所得分數

printf("還需要多加努力哦,繼續做題麽?\n繼續請輸入y,不繼續請輸入n");

d1=getchar();

if(d1='y')goto loop;

else printf("byebye!");

}

最佳答案

程序改好了 界面先放放吧 不用graphics.h的話做個簡單的歡迎界面還是可以的

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

char d1,d2;

int Getanum(int num)

{

int a;

srand(num*num+time(0));

a=(rand()+num)%10;//產生10以內的隨機數

return a;

}

int main()

{

int i,num,a,b,c,op,error;

error = 0;//錯誤數置零

num = 100;//使得下面的while循環成立即可

printf("同學們,開始做題嘍!輸入題數吧^.^:");

scanf("%d",&num);

for(i=0;i<num;i++)//每次出題開始

{

a = Getanum(i);//第壹個操作數

b = Getanum(a);//第二個

op = (Getanum(a+b)+b)%2;//產生符號 +或者-

switch(op)

{

case 0://+

if(a+b>10)//超過10重新來

{

i--;

break;

}

else

{

printf("%d : %d + %d = ",i+1,a,b);//出題

while(!scanf("%d",&c))

{

fflush(stdin);

}//取輸入的結果

if(c != a+b)//答案錯誤

{

printf("出錯啦,做題要仔細哦!\n");

error++;

}

else//正確答案鼓勵壹下

{

printf("真棒!再接再厲哦!\n");

}

}

break;

case 1://-

if(b>a)//保證a>b 使得不出現負數

{

a=a+b;

b=a-b;

a=a-b;

}

printf("%d : %d - %d = ",i+1,a,b);//出題

scanf("%d",&c);//取結果

if(c != a-b)

{

printf("出錯啦,做題要仔細哦!\n");

error++;//錯誤自加

}

else

{

printf("真棒!再接再厲哦!\n");

}

break;

default:

break;

}

}

printf("%d 道題錯誤!\n",error);//輸出錯誤數

printf("妳的正確率為百分之 %d .\n",(num-error)*100/num);//所得分數

printf("還需要多加努力哦,繼續做題麽?\n繼續請輸入y,不繼續請輸入n");

fflush(stdin);

d1=getchar();

if(d1=='y')

main();

else

{

printf("byebye!\n");

exit(0);

}

return 0;

}

這個是加法的:

#include <iostream.h>

#include <windows.h>

#include <time.h>

void main()

{

int i,n=0,x,k;

cout<<"請輸入題目的數目:";

cin>>x;

for(i=1;i<=x;i++)

{

int a,b,c,d;

srand(time(NULL));

a=rand()%10;

Sleep(200);

srand(time(NULL));

b=rand()%10;

cout<<a<<"+"<<b<<"=";

c=a+b;

cin>>d;

if(c==d)

{

cout<<"回答正確,繼續加油"<<endl;

n++;

}

else cout<<"回答錯誤,加把勁哦"<<endl;

cout<<"\n";

}

k=n*(100/x);

if(k>=80)

{

cout<<"恭喜妳得到好成績,妳的得分為:"<<k<<"\n";

}

else cout<<"成績壹般哦,請繼續加油,妳的得分為:"<<k<<"\n";

}

這個是減法的:

#include <iostream.h>

#include <windows.h>

#include <time.h>

void main()

{

int i,n=0,x,k;

cout<<"請輸入題目的數目:";

cin>>x;

for(i=1;i<=x;i++)

{

int a,b,c,d,t;

srand(time(NULL));

a=rand()%10;

Sleep(200);

srand(time(NULL));

b=rand()%10;

if(a<b)

{

t=a;a=b;b=t;

}

cout<<a<<"-"<<b<<"=";

c=a-b;

cin>>d;

if(c==d)

{

cout<<"回答正確,繼續加油"<<endl;

n++;

}

else cout<<"回答錯誤,加把勁哦"<<endl;

cout<<"\n";

}

k=n*(100/x);

if(k>=80)

{

cout<<"恭喜妳得到好成績,妳的得分為:"<<k<<"\n";

}

else cout<<"成績壹般哦,請繼續加油,妳的得分為:"<<k<<"\n";

}

  • 上一篇:如何降低電機轉速?
  • 下一篇:美國加州理工學院研究生課程介紹完整版
  • copyright 2024編程學習大全網