一个关于编程的问题 给小学生出加减乘除运算题,然后判断学生输入的答案对错与否,具体要求:

能随机产生100以内以及1000以内的算术题(通过菜单选择),运算类型为随机产生的加减乘除中的任意一种,当选项不为E时,反复出题,根据用户输入判断对错,当选项为E时,给出... 能随机产生100以内以及1000以内的算术题(通过菜单选择),运算类型为随机产生的加减乘除中的任意一种,当选项不为E时,反复出题,根据用户输入判断对错,当选项为E时,给出总题数,答对的数和得分,返回主菜单

谢谢啊..帮个忙
展开
 我来答
百度网友1ed0419
2010-12-11 · TA获得超过169个赞
知道小有建树答主
回答量:139
采纳率:100%
帮助的人:90.6万
展开全部
用C++实现的,应该可以吧!如果要C语言的,稍微改动一下就可以啦!
#include <iostream>
#include <time.h>
using namespace std;

void showmenu()
{
cout<<"====================================="<<endl;
cout<<"===== 请选择题目 ==="<<endl;
cout<<"===== 1.100以内运算 ==="<<endl;
cout<<"===== 2.1000以内运算 ==="<<endl;
cout<<"===== 3.退出 ==="<<endl;
cout<<"===== 请选择操作:1、2、3,回车确认==="<<endl;
cout<<"====================================="<<endl;

}

void showscore(int num,int score)
{
cout<<"====================================="<<endl;
cout<<"===== 答题结果 ==="<<endl;
cout<<"===== 1.总答题数 "<<num<<" ==="<<endl;
cout<<"===== 2.正确数 "<<score<<" ==="<<endl;
cout<<"===== 3.得分 "<<score<<" ==="<<endl;
cout<<"======================================="<<endl;
}

void problems(int n,int num,int score)
{
int flg=0;
while (1)
{
char ch;
cin>>ch;
if (ch!='e'&&ch!='E')
{
float a,b,r;
int c;
char op[4]={'+','-','*','/'};
srand((unsigned) time (0));
a=rand()%n;
b=rand()%n;
c=rand()%4;
cout<<a<<op[c]<<b<<"=";
cin>>r;
switch (c)
{
case 0:
if (r==a+b)
{
cout<<"回答正确!加一分!" <<endl;
score++;
}
else
cout<<"回答错误!不得分!" <<endl;
cout<<"输入E并回车可查看看当前成绩,输入其它字符回车继续答题"<<endl;
num++;continue;
case 1:if (r==a-b)
{
cout<<"回答正确!加一分!" <<endl;
score++;
}
else
cout<<"回答错误!不得分!" <<endl;
cout<<"输入E并回车可查看看当前成绩,输入其它字符回车继续答题"<<endl;
num++; continue;
case 2:if (r==a*b)
{
cout<<"回答正确!加一分!" <<endl;
score++;
}
else
cout<<"回答错误!不得分!" <<endl;
cout<<"输入E并回车可查看看当前成绩,输入其它字符回车继续答题"<<endl;
num++; continue;
case 3:if (r==a/b)
{
cout<<"回答正确!加一分!" <<endl;
score++;
}
else
cout<<"回答错误!不得分!" <<endl;
cout<<"输入E并回车可查看看当前成绩,输入其它字符回车继续答题"<<endl;
num++; continue;
}

}
else
flg=1;
if (flg==1)
{
showscore(num,score);
showmenu();
}

}
}

void main()
{
int num=0;//答题数
int score=0;//得分
char ch1;
int n;
char flag;
showmenu();
cin>>ch1;
cout<<ch1<<"ch1";
switch (ch1)
{
case'1': n=100;break;
case'2':n=1000;break;
case'3':exit(0);
}
cout<<"开始进入答题,输入E并回车可查看看当前成绩"<<endl;
problems(n,num,score);
showmenu();
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式