当前位置:文档之家› 四则运算训练器软件C语言开发(软件代码+软件说明)

四则运算训练器软件C语言开发(软件代码+软件说明)

软件名称:四则运算训练器
软件功能介绍:
该软件主要用于训练并测试使用者的四则运算能力。

进入软件主界面,界面上会显示3个选项,分别是:
1.10以内的四则运算训练。

2.20以内的四则运算训练。

0.退出。

使用者根据自己的需要选择不同的选项:
按“1”进入10以内的四则运算训练;
按“2”进入20以内的四则运算训练;
按“0”退出程序主界面。

10以内的四则运算和20以内的四则运算均为10题一组;在这10个题中,加减乘除均有,操作数均为整数,且加减乘除出现的顺序不定,除法给出的两个操作数能除尽。

对于给出的题目,当操作者计算正确时,操作界面上无特殊显示;当操作者计算错误时,操作界面上会显示“FAULT!”,提示操作者该题计算错误并同时进入下一题。

操作者每做完10道题,界面上会显示此轮计算的正确率,并询问操作者是否继续。

此时操作者可根据自己的需要,按“1”进入10以内的四则运算训练;
按“2”进入20以内的四则运算训练;
按“0”退出程序主界面。

程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void calculation1();
void calculation2();
void main()
{
int number;
char m;
redo:
printf("\t\t\t欢迎进入四则运算训练营!\n\n\n\n");
printf("<1>.10以内的四则运算系列.\n");
printf("<2>.20以内的四则运算训练.\n");
printf("<0>.退出.\n\n");
printf("请选择功能号( 1 / 2 / 0 ):");
scanf("%d",&number);
srand((unsigned)time(0));
loop: if(number==1) calculation1();
else if(number==2) calculation2();
else exit(0);
printf("\n\n");
printf("继续吗?(Y/N):");
getchar();
scanf("%c",&m);
if(m=='Y') goto loop;
if(m=='N') goto redo;
}
void calculation1()
{
int i,j,n=0;
int a1,a2,result;
float rate;
char c='%';
printf("您选择的是10以内的四则运算。

\n");
for(i=1;i<=10;i++)
{
j=rand()%4+1;
switch(j)
{
case 1:a1=rand()%10+1;a2=rand()%10+1;
printf("(%d) %d+%d=",i,a1,a2);
scanf("%d",&result);
if(result!=a1+a2)
printf("FAULT!\n");
n++;
}
break;
case 2: while((a1=rand()%10+1)&&(a2=rand()%10+1)) {
if(a1<a2) continue;
else break;
}
printf("(%d) %d-%d=",i,a1,a2);
scanf("%d",&result);
if(result!=a1-a2)
{
printf("FAULT!\n");
n++;
}
break;
case 3:a1=rand()%10+1;a2=rand()%10+1;
printf("(%d) %d*%d=",i,a1,a2);
scanf("%d",&result);
if(result!=a1*a2)
printf("FAULT!\n");
n++;
}
break;
case 4:while((a1=rand()%10+1)&&(a2=rand()%10+1)) {
if(a1%a2!=0) continue;
else break;
}
printf("(%d) %d/%d=",i,a1,a2);
scanf("%d",&result);
if(result!=a1/a2)
{
printf("FAULT!\n");
n++;
}
break;
}
}
rate=(10.0-n)/10.0*100;
printf("正确率为%.0f%c\n",rate,c);
}
void calculation2()
{
int i,j,n=0;
int a1,a2,result;
float rate;
char c='%';
printf("您选择的是20以内的四则运算。

\n");
for(i=1;i<=10;i++)
{
j=rand()%4+1;
switch(j)
{
case 1:a1=rand()%20+1;a2=rand()%20+1;
printf("(%d) %d+%d=",i,a1,a2);
scanf("%d",&result);
if(result!=a1+a2)
{
printf("FAULT!\n");
n++;
}
case 2:while((a1=rand()%20+1)&&(a2=rand()%20+1)) {
if(a1<a2) continue;
else break;
}
printf("(%d) %d-%d=",i,a1,a2);
scanf("%d",&result);
if(result!=a1-a2)
{
printf("FAULT!\n");
n++;
}
break;
case 3:a1=rand()%20+1;a2=rand()%20+1;
printf("(%d) %d*%d=",i,a1,a2);
scanf("%d",&result);
if(result!=a1*a2)
{
printf("FAULT!\n");
n++;
}
case 4:while((a1=rand()%20+1)&&(a2=rand()%20+1)) {
if(a1%a2!=0) continue;
else break;
}
printf("(%d) %d/%d=",i,a1,a2);
scanf("%d",&result);
if(result!=a1/a2)
{
printf("FAULT!\n");
n++;
}
break;
}
}
rate=(10.0-n)/10.0*100;
printf("正确率为%.0f%c\n",rate,c);
}
运行界面:。

相关主题