个人项目——二柱子的生成小学生四则运算题程序
2016-03-06 18:14
381 查看
二柱子的生成小学生四则运算题程序
一、程序要求1、自动生成30道小学生四则运算题
2、除了整数外,还要可以生成真分数的四则运算
二、程序设计思想
程序分两个部分:整数部分和分数部分
1、定义变量:第一个数(分子)、第二个数(分子)、第一个数的分母、第二个数的分母、运算符号;
2、用时间做种子,使每次产生随机数都不一样;
3、产生分支,分别输出整数四则运算、分数的四则运算;
4、分支1,产生整数随机数:第一个数、第二个数;
5、产生随机算符:用数字0-3代表+、-、*、/,即产生4以内的随机数;
6、输出整数运算式,其中减法需要大数减小数,除法的除数不能为0;
7、分支2,产生分数随机数:第一个数的分子、第二个数的分子、第一个数的分母、第二个数的分母、运算符号(同上);
8、输出分数运算式,其中分数的分母不能为0且分子小于分母,减法同上,除法的除数不能为0,即除法的除数的分子分母都不能为0。
三、源程序
//李俏,2016.3.3 //随机生成四则运算 #include<iostream> #include<stdio.h> #include<stdlib.h> #include<time.h> using namespace std; void main() { int first,second,firstm,secondm; int sign,i,j; srand((int)time(NULL)); //用时间做种子,每次产生随机数都不一样 for(i=0;i<30;i++) { j=rand()%2; //选择生成整数运算还是分数运算 if(j==0) //选择整数 { first=rand()%100; second=rand()%100; sign=rand()%4; switch(sign) { case 0: //整数加法 cout<<first<<"+"<<second<<"="<<endl; break; case 1: //整数减法 if(first>second) cout<<first<<"-"<<second<<"="<<endl; else cout<<second<<"-"<<first<<"="<<endl; break; case 2: //整数乘法 cout<<first<<"*"<<second<<"="<<endl; break; case 3: //整数除法 if(second!=0) cout<<first<<"/"<<second<<"="<<endl; else cout<<second<<"/"<<first<<"="<<endl; break; } } else //选择分数 { first=rand()%100; second=rand()%100;//分子 firstm=rand()%100; secondm=rand()%100;//分母 sign=rand()%4; switch(sign) { case 0://分数加法 if(firstm!=0&&secondm!=0&&first<firstm&&second<secondm) cout<<first<<"/"<<firstm<<" + "<<second<<"/"<<secondm<<"="<<endl; else i=i-1; break; case 1://分数减法 if(firstm!=0&&secondm!=0&&first<firstm&&second<secondm&&(first/firstm)>(second/secondm)) cout<<first<<"/"<<firstm<<" - "<<second<<"/"<<secondm<<"="<<endl; else i=i-1; break; case 2://分数乘法 if(firstm!=0&&secondm!=0&&first<firstm&&second<secondm) cout<<first<<"/"<<firstm<<" * "<<second<<"/"<<secondm<<"="<<endl; else i=i-1; break; case 3://分数除法 if(firstm!=0&&secondm!=0&&first!=0&&second!=0&&first<firstm&&second<secondm) cout<<first<<"/"<<firstm<<" / "<<second<<"/"<<secondm<<"="<<endl; else i=i-1; break; } } } }
四、结果截图
相关文章推荐
- [Unit Testing] AngularJS Unit Testing - Karma
- 【杭电-oj】--2004-成绩转换
- 2016-3-6.16:43------------js开始
- SPRING IN ACTION 第4版笔记-第八章Advanced Spring MVC-003-Pizza例子的基本流程
- Linux下的Tomcat安装
- HashMap源码分析
- Python 元组和集合的特点及常用操作
- lajflsjfj
- FZU 2191 完美的数字(暴力变思维)
- 查找算法4
- VS2008双机调试详解
- Android Studio NDK环境搭建
- VS2015 安装包
- HTML5开发移动web应用—JQuery Mobile(1)
- 解析C#多线程编程中异步多线程的实现及线程池的使用
- Hibenate映射属性
- NJOJ Hero 状态压缩觉悟题
- JAVA----JDK windows环境搭建
- LVS负载均衡之持久性连接介绍(session篇)
- N皇后问题