四则运算出题1
2016-03-05 18:24
309 查看
1、题目要求:
完成一个程序,自动出30道题,范围在100以内,包括加减乘除,整数和真分数
2、实现思路:
程序自动出30道题,运算数和运算符号都是随机。
(1)先自动出一道题,重复过程30次即可;
(2)出一道题,要分为三个部分:第一个数、运算符号、第二个数;
(3)两个数可以直接用随机数产生,四个运算符可以用产生的随机数(1~4)来一一对应;
(4)如果是真分数,可以用随机产生的两个整数来组成一个分数,将较小的数作为分子即可成为真分数;
(5)用随机产生的1、2 来决定产生的数是真分数或是整数。
3、思路整理(实现步骤):
用随机产生的1、2 来决定第一个数是真分数或是整数,随机产生一个整数或是两个整数组成真分数作为第一个运算数,用产生的随机数(1~4)来决定产生的运算符号用随机产生的1、2 来决定第一个数是真分数或是整数,随机产生一个整数或是两个整数组成真分数作为第二个运算数,对运行界面进行整理。
4、源代码:
//此程序用来实现四则运算自动出题,范围包括整数、真分数
//王永维,2016、3、5
#include<iostream>
using namespace std;
void main()
{
int fenshuRand;//真分数或整数
int numRand1,numRand2; //运算数
int fuhaoRand; //运算符号
int count; //产生的式子个数
for(count=0;count<30;count++)
{
//输出题号
cout<<"\t("<<count+1<<")\t";
//选择运算数是真分数或者整数
fenshuRand=rand()%2+1;
//产生第一个数
if(fenshuRand==1)// fenshuRand 为1 为整数
{
numRand1=rand()%100+1;
cout<<numRand1;
}
if(fenshuRand==2)// fenshuRand 为2 为真分数
{
numRand1=rand()%100+1;
numRand2=rand()%100+1;
if(numRand1<numRand2)
cout<<"("<<numRand1<<"/"<<numRand2<<")";
else
cout<<"("<<numRand2<<"/"<<numRand1<<")";
}
//产生运算符号
fuhaoRand=rand()%4+1;
if(fuhaoRand==1)
cout<<" + ";
else if(fuhaoRand==2)
cout<<" - ";
else if(fuhaoRand==3)
cout<<" × ";
else
cout<<" ÷ ";
//产生第二个数
fenshuRand=rand()%2+1;
if(fenshuRand==1)// fenshuRand 为1 为整数
{
numRand1=rand()%100+1;
cout<<numRand1;
}
if(fenshuRand==2)// fenshuRand 为2 为真分数
{
numRand1=rand()%100+1;
numRand2=rand()%100+1;
if(numRand1<numRand2)
cout<<"("<<numRand1<<"/"<<numRand2<<")";
else
cout<<"("<<numRand2<<"/"<<numRand1<<")";
}
cout<<"="<<endl;
}
}
5、结果截图:
完成一个程序,自动出30道题,范围在100以内,包括加减乘除,整数和真分数
2、实现思路:
程序自动出30道题,运算数和运算符号都是随机。
(1)先自动出一道题,重复过程30次即可;
(2)出一道题,要分为三个部分:第一个数、运算符号、第二个数;
(3)两个数可以直接用随机数产生,四个运算符可以用产生的随机数(1~4)来一一对应;
(4)如果是真分数,可以用随机产生的两个整数来组成一个分数,将较小的数作为分子即可成为真分数;
(5)用随机产生的1、2 来决定产生的数是真分数或是整数。
3、思路整理(实现步骤):
用随机产生的1、2 来决定第一个数是真分数或是整数,随机产生一个整数或是两个整数组成真分数作为第一个运算数,用产生的随机数(1~4)来决定产生的运算符号用随机产生的1、2 来决定第一个数是真分数或是整数,随机产生一个整数或是两个整数组成真分数作为第二个运算数,对运行界面进行整理。
4、源代码:
//此程序用来实现四则运算自动出题,范围包括整数、真分数
//王永维,2016、3、5
#include<iostream>
using namespace std;
void main()
{
int fenshuRand;//真分数或整数
int numRand1,numRand2; //运算数
int fuhaoRand; //运算符号
int count; //产生的式子个数
for(count=0;count<30;count++)
{
//输出题号
cout<<"\t("<<count+1<<")\t";
//选择运算数是真分数或者整数
fenshuRand=rand()%2+1;
//产生第一个数
if(fenshuRand==1)// fenshuRand 为1 为整数
{
numRand1=rand()%100+1;
cout<<numRand1;
}
if(fenshuRand==2)// fenshuRand 为2 为真分数
{
numRand1=rand()%100+1;
numRand2=rand()%100+1;
if(numRand1<numRand2)
cout<<"("<<numRand1<<"/"<<numRand2<<")";
else
cout<<"("<<numRand2<<"/"<<numRand1<<")";
}
//产生运算符号
fuhaoRand=rand()%4+1;
if(fuhaoRand==1)
cout<<" + ";
else if(fuhaoRand==2)
cout<<" - ";
else if(fuhaoRand==3)
cout<<" × ";
else
cout<<" ÷ ";
//产生第二个数
fenshuRand=rand()%2+1;
if(fenshuRand==1)// fenshuRand 为1 为整数
{
numRand1=rand()%100+1;
cout<<numRand1;
}
if(fenshuRand==2)// fenshuRand 为2 为真分数
{
numRand1=rand()%100+1;
numRand2=rand()%100+1;
if(numRand1<numRand2)
cout<<"("<<numRand1<<"/"<<numRand2<<")";
else
cout<<"("<<numRand2<<"/"<<numRand1<<")";
}
cout<<"="<<endl;
}
}
5、结果截图:
相关文章推荐
- 多台android设备通过服务器进行通信(socket)
- XML基础
- android PercentRelativeLayout 支持百分比来设置控件的宽高
- 转:线程和进程的区别
- 阅读:基 于 情 感 词 典 的 中 文 微 博 情 感 倾 向 分 析 研 究
- MSVC里__forceinline的真正作用
- PAT (Advanced Level) Practise 1027 Colors in Mars (20)
- @Transactional详解
- Kinect2在线重建(Tracking and Mapping)
- javascript学习----window对象的学习与总结
- HEVC码率控制介绍(R-Lamda)
- UIButton(loading...)
- CF 558E 线段树
- 直方图均衡化原理与实现
- 修改window 10 开始菜单问题
- Hibernate一对多关系映射
- Maven聚合与继承
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-004- 处理上传文件
- SQL语句建表、设置主键、外键、check、default、unique约束
- 阻塞(blocking)赋值与非阻塞(non-blocking)赋值