主要功能:運算國小四則運算,可以選擇加減乘除以及混合運算。
設計思想:首先思考運算數字範圍,考慮國小生的運算能力,然後分類運算方法,分為加減乘除混合運算,
然後可以選擇是繼續做題還是退出程式,可以總結做對或者做錯的題數,友善計算正确以及錯誤的題數。
源代碼:
#include <stdio.h>
#include <ctype.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
#define IDNO_LENGTH 6
#define CALC_KIND 4
char getSignal();
int getResult(int,int,char);
void takeTest();
void falsePrint(int);
void correctPrint(int);
//main函數
void main()
{
while(1)
{
takeTest();
}
}
//擷取随機運算符
char getSignal()
char signal[CALC_KIND]={'+','-','*','/'};
srand((unsigned)time(NULL));
return signal[rand()%4];
//擷取随機數
int random(double start, double end)
return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0));
//運算
int getResult(int num1,int num2,char signal)
int res;
switch(signal)
case '+':
res=num1+num2;break;
case '-':
res=num1-num2;break;
case '*':
res=num1*num2;break;
case '/':
res=num1/num2;break;
default:
res=0;
printf("運算符不符合規則\n");
return res;
//列出題目
void takeTest()
int giveRes;
int num1;
int num2;
char signal;
int printFlag;
signal=getSignal();
num1=random(0,100);
num2=random(1,100);
if(signal=='-')
if(num1<num2)
{
int temp;
temp=num1;
num1=num2;
num2=temp;
}
if(signal=='/')
if(num2==0)
printf("%d%c%d=",num1,signal,num2);
scanf("%d",&giveRes);
fflush(stdin);
if(getResult(num1,num2,signal)==giveRes)
printFlag=random(1,5);
correctPrint(printFlag);
else
printFlag=random(1,4);
falsePrint(printFlag);
printf("正确答案:%d\n",getResult(num1,num2,signal));
//回答正确列印資訊
void correctPrint(int num)
switch(num)
case 1:
printf("You're right!\n");break;
case 2:
printf("It's OK!\n");break;
case 3:
printf("Correct!\n");break;
case 4:
printf("Perfect!\n");break;
case 5:
printf("Good!\n");break;
printf("Powerful!\n");break;
//回答錯誤列印資訊
void falsePrint(int num)
printf("You're lost!");break;
printf("Failure!");break;
printf("Come on!");break;
printf("It's wrong!");break;
printf("Incorrect!");break;

感謝《百度貼吧》大神的幫助