#include<cstdlib>
#include<ctime>
using namespace std
int randint()
{
int t = random()
宏扰 return t % 70 + 10
}
int run(int a, int b, int c, int t)
{
switch(t)
{
case 0:
return a - b - c
case 1:
return a - b + c
case 2:
return a + b - c
default:
return a + b + c
}
}
void output(int a, int b, int c, int t)
{
switch(t)
{
case 0:
cout<<a<<" - "<<b<<" - "<<c<<" = "
return
case 1:
cout<<a<<" - "<<b<<" + "<<c<<" = "
return
case 2:
cout<<a<<" + "<<b<<" - "<<c<<" = "
return
default:
cout<<a<<" + "<<b<<" + "<<c<<" = "
}
}
int main()
{
srand(time(0))
while(1)
{
int a = randint(), b = randint(), c = randint()
int t = randint() % 4
哗绝旅 int r = run(a,b,c,t)
if (r >= 1 && r <= 200)
{
output(a,b,c,t)
int in
cin>>in
if (in == r)
{
cout<<"^_^答对了"<<endl
}
else
{
cout<<"T_T打错了,答案是"<<r<<endl
乱凳 }
}
}
return 0
}
一、设计的流程:
1. 主界面设计,选择练习或测试,按ESC结束程序。
2. 题型选择界面设计,选择加、减、乘、除或混合运算,按ESC返回主界面。
3. 系统随机出题,运算数及结果均在100以内,乘、除法应能整除,显示算式。
4. 练习时脊樱,系统随机出题,键入结果,正确和错误均有提示,出错时允许再输入,最多三次机会,若还不正确,给出答案。继续出题,按ESC,显示总题数,正确数和正确率。
5. 测试时,系统自动出10道题,每题只给一次机会,每题10分,统计得分。结束后,给出总分,显示各题的对错信息,错误的给出答案。中间按ESC键结束。显示已作题的对错信息,错误的给出答案,不显示得分,按任意键返回题型选择界面。
相关知识:按键 *** 作、数组、指针、结构体等
二、例程:
#include<stdlib.h>#include<stdio.h>
#include<conio.h>
#include<time.h>
void main()
{
int a[10],b[10],d[10],c[10],num=0,result,add=0
float val
char fa[5]={'+','-','*','/'}
/* 出10道题 */
while(1)
{
srand((unsigned)time(NULL))
d[num]=abs(rand())%4/* 保证出题算法的随机性 */
while(1) /* 保证出题成功 */
{
c[num]=-1
a[num]=abs(rand())%100
b[num]=abs(rand())%100
if(d[num]==0) c[num]=a[num]+b[num]
else if(d[num]==1) c[num]=a[num]-b[num]
else if(d[num]==2) c[num]=a[num]*b[num]
else if(d[num]==3)
{
if(b[num]>0)val=1.0*a[num]/b[num]
else val=-1
}
if(d[num]<=2)
{
if(c[num]>=0 && c[num]<=100) break
纤野旅 }
else
{
if(a[num]==int(val)*b[num] && val>=0)
{c[num]=val break}
毁凳 }
}
num++
if(num==10) break
}
/* 回答 */
num=0
while(1)
{
printf("%d %c %d= ",a[num],fa[d[num]],b[num])
scanf("%d",&result)
if(result==c[num])
{
printf("回答正确!\n")
add+=10
}
else
printf("错误,正确答案: %d\n",c[num])
num++
if(num==10) break
}
printf("\n得分:%d\n",add)
getch()
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)