设计思想:

利用结果判断,若错误则输出“错误!”

正确则输出“正确!”同时进行计数!

程序源代码:

#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相关推荐

  1. 软件工程个人作业03—找水王

    实验要求: 结对开发伙伴: 姓名:陶雨洁 博客地址链接:http://www.cnblogs.com/Amyheartxy/p/6736268.html 一.设计思想 其实在课堂上,老师已经点出了一点 ...

  2. 软件工程结对作业 四则运算界面设计

    软件工程结对作业 四则运算器界面设计 康鑫  PB16060203 娄雨禛  PB16060356 项目内容链接:http://www.cnblogs.com/silent-zlv/p/8684979 ...

  3. 软件工程第一次作业补充

    软件工程第一次作业(2) 关于<构建之法>的5个问题 1)P28,2.1.3回归测试具体怎么操作? 2)P46讲到了软件工程师的成长,那么对于我们大学生来说,需要培养哪方面的品质? 3)P ...

  4. 软件工程—团队作业1

    软件工程-团队作业1 团队称号:Thanos (灭霸,超叼的一个动漫人物) 团队成员: 队长 成凯 1600802002  博客链接: http://www.cnblogs.com/ck03/   党 ...

  5. 软件工程个人作业12

    软件工程个人作业12 程序题目: •三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个"水王",他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻 ...

  6. 17秋 软件工程 团队作业 同学录

    题目:团队作业--随堂小测(同学录) 17秋 软件工程 团队作业 同学录 Github Classmate-book 提交日志截图 在现场带了两台笔记本,用两个人的账号进行commit: PR: 程序 ...

  7. C语言程序设计博客作业03

    C语言程序设计博客作业03 这个作业要求在哪里 C语言程序设计作业03:第十周作业 我在这个课程的目标是 掌握二维数组和字符串的使用方法 这个作业在那个具体方面帮助我实现目标 PTA作业和日常练习 参 ...

  8. 第一次软件工程课程作业

    第一次的软件工程课程作业 这个作业属于哪个课程 <18级软件工程基础> 这个作业要求在哪里 我在这个课程的目标是 能熟练的运用编程知识,具备个人基本开发能力 这个作业在哪个具体方面帮助我实 ...

  9. 软件工程-个人作业-提问回顾与个人总结

    软件工程-个人作业-提问回顾与个人总结 对曾经的问题进行解答 回答 每个阶段的知识点 需求 设计 实现 测试 发布 维护 心得体会 对曾经的问题进行解答 曾经问题的链接 回答 我仍然支持之前的看法.作 ...

最新文章

  1. linux ubuntu 系统日志信息
  2. pytorch tensor_[PyTorch 学习笔记] 1.2 Tensor(张量)介绍
  3. Nginx 常见问题解决
  4. 删除副本列表中的消失项目符号
  5. endnote 插入文献总变成乱码_维普文献导入Endnote中的乱码问题
  6. 项目 我行我素购物管理系统 0913
  7. 关联性挖掘--Apriori算法详解
  8. arcgis api for js入门开发系列十二地图打印(GP服务)
  9. 实验计算机控制器的实验结论,微机控制实验报告
  10. P1379 八数码难题
  11. Madis模拟黏滞阻尼器
  12. 【Java小游戏】两小时制作大鱼吃小鱼小游戏项目
  13. 自动切换手机耳机模式和话筒模式
  14. Java网络编程 Socket、ServerSocket 详解,方法介绍及完整代码示例
  15. ContentProvider android:exported = “true”
  16. 31 | GPU(下):为什么深度学习需要使用 GPU?
  17. java语言保留结构和联合_在下列概念中, Java 语言只保留了
  18. vs2019+opencv4.4+darknet+cuda11.1
  19. Shiziku 开启adb权限 之 三星S10+ 主板机
  20. K-means聚类算法实战

热门文章

  1. 在SharePoint 2010中通过SQL数据源创建仪表板
  2. linux rm(remove) 命令详解
  3. 软件相关模块与ansible剧本
  4. windows下多进程加协程并发模式
  5. 04 - JavaSE之异常处理
  6. node开发 npm install -g express-generator@4
  7. 【dmp文件还原到oralce数据库】
  8. 用键盘上下左右键和ctrl键移动TreeView节点
  9. (转)explorer.exe应用程序错误:0x000000该内存不能为read的解决方法
  10. java 输出 三角形_Java实现输出三角形