一个关于编程的问题 给小学生出加减乘除运算题,然后判断学生输入的答案对错与否,具体要求:
能随机产生100以内以及1000以内的算术题(通过菜单选择),运算类型为随机产生的加减乘除中的任意一种,当选项不为E时,反复出题,根据用户输入判断对错,当选项为E时,给出...
能随机产生100以内以及1000以内的算术题(通过菜单选择),运算类型为随机产生的加减乘除中的任意一种,当选项不为E时,反复出题,根据用户输入判断对错,当选项为E时,给出总题数,答对的数和得分,返回主菜单
谢谢啊..帮个忙 展开
谢谢啊..帮个忙 展开
1个回答
展开全部
用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();
}
#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();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询