软件工程个人作业03
设计思想:
利用结果判断,若错误则输出“错误!”
正确则输出“正确!”同时进行计数!
程序源代码:
#include<iostream> #include<ctime> #include<cstdlib> using namespace std; void Out(int x,int x0,int y,int y0,int z,int z0,int &i,int j,int n,int m0,int &j0){switch(z0){//判断整数或分数case 0:{int answer,answer0;switch(z){//运算法则判断case 0:{answer=x+y;if(j==2){if(answer>=0){cout<<n<<" ("<<x<<")"<<" + "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正确!"<<endl;j0++;}else{cout<<" 错误!"<<endl;}}else{i--;}}else{cout<<n<<" ("<<x<<")"<<" + "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正确!"<<endl;j0++;}else{cout<<" 错误!"<<endl;}}break;}case 1:{answer=x-y;if(j==2){if(answer>=0){cout<<n<<" ("<<x<<")"<<" - "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正确!"<<endl;j0++;}else{cout<<" 错误!"<<endl;}}else{i--;}}else{cout<<n<<" ("<<x<<")"<<" - "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正确!"<<endl;j0++;}else{cout<<" 错误!"<<endl;}}break;}case 2:{answer=x*y;cout<<n<<" ("<<x<<")"<<" * "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正确!"<<endl;j0++;}else{cout<<" 错误!"<<endl;}break;}case 3:if(y!=0){//防止出现除数为零的情况if(m0==2){if(x%y==0)//余数判断(该操作可能会降低除法概率,,) {answer=x/y;cout<<n<<" ("<<x<<")"<<" / "<<"("<<y<<")"<<" =";cin>>answer0;if(answer==answer0){cout<<" 正确!"<<endl;j0++;}else{cout<<" 错误!"<<endl;}}elsei--;}if(m0==1){cout<<n<<" ("<<x<<")"<<" / "<<"("<<y<<")"<<" =";}}elsei--;break;}break;}case 1:{char answer0[8];char answer[8];int mu,zi,q;if(x0!=0&&y0!=0){switch(z){//运算法则判断case 0:{mu=x0*y0;zi=x*y0+y*x0;if(mu>zi){for(q=zi;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}}else{for(q=mu;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}}sprintf(answer,"%d/%d",zi,mu);cout<<n<<" ("<<x<<"/"<<x0<<")"<<" + "<<"("<<y<<"/"<<y0<<")"<<" =";cin>>answer0;if(strcmp(answer,answer0)==0){cout<<" 正确!"<<endl;j0++;}else{cout<<" 错误!"<<endl;}break;}case 1:{mu=x0*y0;zi=x*y0-y*x0;for(q=zi;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}sprintf(answer,"%d/%d",zi,mu);cout<<n<<" ("<<x<<"/"<<x0<<")"<<" - "<<"("<<y<<"/"<<y0<<")"<<" =";cin>>answer0;if(strcmp(answer,answer0)==0){cout<<" 正确!"<<endl;j0++;}else{cout<<" 错误!"<<endl;}break;}case 2:{mu=x0*y0;zi=x*y;for(q=zi;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}sprintf(answer,"%d/%d",zi,mu);cout<<n<<" ("<<x<<"/"<<x0<<")"<<" * "<<"("<<y<<"/"<<y0<<")"<<" =";cin>>answer0;if(strcmp(answer,answer0)==0){cout<<" 正确!"<<endl;j0++;}else{cout<<" 错误!"<<endl;}break;}case 3:{if(y!=0)//防止出现除数为零的情况 {mu=x0*y;zi=x*y0;if(mu>zi){for(q=zi;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}}else{for(q=mu;q>1;q--){if(mu%q==0&&zi%q==0){mu=mu/q;zi=zi/q;}}}sprintf(answer,"%d/%d",zi,mu);cout<<n<<" ("<<x<<"/"<<x0<<")"<<" / "<<"("<<y<<"/"<<y0<<")"<<" =";cin>>answer0;if(strcmp(answer,answer0)==0){cout<<" 正确!"<<endl;(j0)++;}else{cout<<" 错误!"<<endl;}}elsei--;break;}}}elsei--;break;}} } void Judje(int &x,int &x0)//保证真分数以及最简分数 {int m,i1;if(x>x0){//保证x<x0即保证为真分数m=x;x=x0;x0=m;}for(i1=x0;i1>1;i1--){//保证为最简分数if(x%i1==0&&x0%i1==0){x=x/i1;x0=x0/i1;}} } void main(){int x,x0,y,y0,z,z0,j,n,n0,m,m0=0;//定义变量int num,max,min;int j0=0;cout<<"请输入随机数范围(先最小值,后最大值)"<<endl;cin>>min;cin>>max;cout<<"请输入加减是否有负数:1、有;2、没有"<<endl;cin>>j;cout<<"请输入是否要有乘除法:1、有;2、没有"<<endl;cin>>m;if(m==1){cout<<"请输入除法是否有余数(分数不做区别):1、有;2、没有"<<endl;cin>>m0;}cout<<"请输入需要打印的题目数量(大于等于1):"<<endl;cin>>num;int *a=new int[num*5];//定义数组存储运算srand(time(0));//定义时间种子int i=0;if(min<0&&j==2)min=0;x = rand()%(max-min+1)+min;//产生随机数x0 = rand()%(max-min+1)+min;y = rand()%(max-min+1)+min;y0 = rand()%(max-min+1)+min;if(m==1)z = rand()%(3-0+1)+0;if(m==2)z = rand()%(1-0+1)+0;z0 = rand()%(1-0+1)+0;//用于判断整数运算与分数运算} Judje(x,x0);Judje(y,y0);cout<<"序号"<<endl;n=1;Out(x,x0,y,y0,z,z0,i,j,n,m0,j0);a[0]=x;a[1]=x0;a[2]=y;a[3]=y0;a[4]=z;for(i=1;i<num;i++)//利用FOR循环进行剩余输出 {n=i+1;n0=i*5;x = rand()%(max-min+1)+min;//产生随机数x0 = rand()%(max-min+1)+min;y = rand()%(max-min+1)+min;y0 = rand()%(max-min+1)+min;if(m==1)z = rand()%(3-0+1)+0;//运算符if(m==2)z = rand()%(1-0+1)+0;z0 = rand()%(1-0+1)+0;//用于判断整数运算与分数运算} Judje(x,x0);Judje(y,y0);a[n0]=x;a[n0+1]=x0;a[n0+2]=y;a[n0+3]=y0;a[n0+4]=z;if(x!=x0&&y!=y0&&x0!=1&&y0!=1){//防止出现在x=x0时输出依旧为x/x0格式以及分母为一的情况if(a[n0]!=a[n0-5]||a[n0]!=a[n0-4]||a[n0]!=a[i-3]||a[n0]!=a[n0-2]||a[n0]!=a[n0-1])//题目避免重复 {Out(x,x0,y,y0,z,z0,i,j,n,m0,j0);}}elsei--;}cout<<"共答对"<<j0<<"道题目!"<<endl;delete []a; }
运行结果截图:
周活动总结表
尚晓朋 2016/3/26
听课 | 代码 | 读书 | 总计 | |
星期一 | 100min | 42行 | 构建之法第3章 | 三小时20分钟 |
星期二 | ||||
星期三 | 45行 | 两个小时 | ||
星期四 | ||||
星期五 | 30行 | 两个小时 | ||
星期六 | 五个小时30分钟 | |||
总计 | 100min | 12小时50分钟 |
时间记录日志
日期 | 开始时间 | 结束时间 | 活动 | 备注 |
3.21 |
8:00 19:25 |
9:50 21:05 |
听课 写代码 |
上课 写代码,理思路 |
3.23 | 19:15 | 21:15 | 写代码删代码 | 两个小时 |
3.25 | 19:35 | 21:30 | 写代码,改错 | 两个小时 |
3.26 |
14:20 19:00 |
17:25 21:30 |
写程序 | 五个小时30分钟 |
缺陷记录日志
日期 | 编号 | 类型 | 引入阶段 | 排除阶段 | 修复时间 | 修复缺陷 |
3.21 | 1 | 编码 | 编译 | 30分钟 | ||
修改了课上没做好的部分并完成了课堂测试 | ||||||
3.26 | 2 | 编码 | 编译 | 一直被这个问题卡住 | ||
对分数运算结果判定时出现错误! |
附录:
关于多位数的运算,实现了多位数计算以及对结果的判断,但是无法移植到原程序中。
源代码:
#include<iostream> #include<ctime> #include<cstdlib> using namespace std; void Duo(int min,int max,int &answer) {int a,b;a=rand()%(max-min+1)+min;b=rand()%(3-0+1)+0;switch(b){case 0:{answer=answer+a;cout<<"+"<<a<<")";break;}case 1:{answer=answer-a;cout<<"-"<<a<<")";break;}case 2:{answer=answer*a;cout<<"*"<<a<<")";break;}case 3:{answer=answer/a;cout<<"/"<<a<<")";break;}}} void main() {int answer;int min,max;srand(time(0));//定义时间种子cout<<"输入范围下界与范围上界:"<<endl;cin>>min>>max;int x,w;x=rand()%(max-min+1)+min;answer=x;w=rand()%(10-1+1)+1;for(int i=1;i<=w;i++){cout<<"(";}cout<<x;for(int i=1;i<=w;i++){Duo(min,max,answer);}cout<<"="<<answer<<endl; }
(2016.3.27)
转载于:https://www.cnblogs.com/dawn-sky/p/5323172.html
软件工程个人作业03相关推荐
- 软件工程个人作业03—找水王
实验要求: 结对开发伙伴: 姓名:陶雨洁 博客地址链接:http://www.cnblogs.com/Amyheartxy/p/6736268.html 一.设计思想 其实在课堂上,老师已经点出了一点 ...
- 软件工程结对作业 四则运算界面设计
软件工程结对作业 四则运算器界面设计 康鑫 PB16060203 娄雨禛 PB16060356 项目内容链接:http://www.cnblogs.com/silent-zlv/p/8684979 ...
- 软件工程第一次作业补充
软件工程第一次作业(2) 关于<构建之法>的5个问题 1)P28,2.1.3回归测试具体怎么操作? 2)P46讲到了软件工程师的成长,那么对于我们大学生来说,需要培养哪方面的品质? 3)P ...
- 软件工程—团队作业1
软件工程-团队作业1 团队称号:Thanos (灭霸,超叼的一个动漫人物) 团队成员: 队长 成凯 1600802002 博客链接: http://www.cnblogs.com/ck03/ 党 ...
- 软件工程个人作业12
软件工程个人作业12 程序题目: •三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个"水王",他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻 ...
- 17秋 软件工程 团队作业 同学录
题目:团队作业--随堂小测(同学录) 17秋 软件工程 团队作业 同学录 Github Classmate-book 提交日志截图 在现场带了两台笔记本,用两个人的账号进行commit: PR: 程序 ...
- C语言程序设计博客作业03
C语言程序设计博客作业03 这个作业要求在哪里 C语言程序设计作业03:第十周作业 我在这个课程的目标是 掌握二维数组和字符串的使用方法 这个作业在那个具体方面帮助我实现目标 PTA作业和日常练习 参 ...
- 第一次软件工程课程作业
第一次的软件工程课程作业 这个作业属于哪个课程 <18级软件工程基础> 这个作业要求在哪里 我在这个课程的目标是 能熟练的运用编程知识,具备个人基本开发能力 这个作业在哪个具体方面帮助我实 ...
- 软件工程-个人作业-提问回顾与个人总结
软件工程-个人作业-提问回顾与个人总结 对曾经的问题进行解答 回答 每个阶段的知识点 需求 设计 实现 测试 发布 维护 心得体会 对曾经的问题进行解答 曾经问题的链接 回答 我仍然支持之前的看法.作 ...
最新文章
- linux ubuntu 系统日志信息
- pytorch tensor_[PyTorch 学习笔记] 1.2 Tensor(张量)介绍
- Nginx 常见问题解决
- 删除副本列表中的消失项目符号
- endnote 插入文献总变成乱码_维普文献导入Endnote中的乱码问题
- 项目 我行我素购物管理系统 0913
- 关联性挖掘--Apriori算法详解
- arcgis api for js入门开发系列十二地图打印(GP服务)
- 实验计算机控制器的实验结论,微机控制实验报告
- P1379 八数码难题
- Madis模拟黏滞阻尼器
- 【Java小游戏】两小时制作大鱼吃小鱼小游戏项目
- 自动切换手机耳机模式和话筒模式
- Java网络编程 Socket、ServerSocket 详解,方法介绍及完整代码示例
- ContentProvider android:exported = “true”
- 31 | GPU(下):为什么深度学习需要使用 GPU?
- java语言保留结构和联合_在下列概念中, Java 语言只保留了
- vs2019+opencv4.4+darknet+cuda11.1
- Shiziku 开启adb权限 之 三星S10+ 主板机
- K-means聚类算法实战