博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第五次作业:结对项目-四则运算 “软件”之升级版
阅读量:6281 次
发布时间:2019-06-22

本文共 4971 字,大约阅读时间需要 16 分钟。

第五次作业:结对项目-四则运算 “软件”之升级版

这个作业的要求来自于:

结对成员:张朗

同伴的博客园地址:

远程github地址为:


 

 

一、基本要求

 

从个人项目出发,将程序改装成一个单机带用户界面(不是控制台)的程序,这个程序最基本要达到:

 

  • 生成题目,单个题目最多不能超过4个运算符,操作数小于100。
  • 用户可以输入答案
  • 若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。

 

二、扩展方向

 

  1. 程序可以设置皮肤功能,可以改变界面的颜色即可。
  2. 程序可以出带括号的正整数四则运算,支持分数,除法保留两位小数,如:(1/3+1)*2 = 2.67,特别注意:这里是2.67而非2.66,或保持分数形式:8/3
  3. 可以出表达式里含有负整数(负整数最小不小于-100)的题目,且负数需要带括号,用户输入的结果不用带括号。如: 2*(-4) = -8
  4. 程序可以设置皮肤功能,可以改变界面的颜色即可。

 


 

三、功能实现

int a0[1000],b0[1000],c0[1000],a1[1000],b1[1000],c1[1000],a2[1000],b2[1000],c2[1000],a3[1000],b3[1000],c3[1000],C[1000],a,b,c;   int i,j,A0,A1,A2,A3,B0,B1,B2,B3;   int num,line,k;   int min,max,m;   int CC,FS,YS;    k=0;   A0=0;A1=0;A2=0;A3=0;   B0=0;B1=0;B2=0;B3=0;   cout<<"*************四则运算1.0*************"<
>num>>line; cout<<"请问是否要有乘除法?有请输入\"1\",无请输入\"0\""<
>CC; while(1) //判断输入是否合法 { if(CC != 1&&CC != 0) { cout<<"输入不合法,请重新输入\"1\"或\"0\":"; cin>>CC; } else break; } cout<<"请问是否要加减结果有负数?有请输入\"1\",无请输入\"0\""<
>FS; while(1) //判断输入是否合法 { if(FS != 1&&FS != 0) { cout<<"输入不合法,请重新输入\"1\"或\"0\":"; cin>>FS; } else break; } cout<<"请问是否要除法结果有余数?有请输入\"1\",无请输入\"0\""<
>YS; while(1) //判断输入是否合法 { if(YS != 1&&YS != 0) { cout<<"输入不合法,请重新输入\"1\"或\"0\":"; cin>>YS; } else break; } cout<<"请输入两个值确定算式中a,b的取值范围(请保证前一个值小于后一个值):"<
>min>>max; while(1) //判断输入是否合法 { if(min>=max) { cout<<"输入不合法,请重新输入:"; cin>>min>>max; } else break; } m=max-min+1; for(i=0;i<1000;i++) { a0[i]=0;b0[i]=0; a1[i]=0;b1[i]=0; a2[i]=0;b2[i]=0; a3[i]=0;b3[i]=0; } for(i=0;;i++) { a=min+rand()%m; b=min+rand()%m; c=rand()%4; if(CC==0) //如果CC=0,去除c=2,3的情况 { if(c==2||c==3) continue; } if(FS==0) //如果FS=0,去除c=0,1下结果小于0的情况 { if(c==0) { if(a+b<0) continue; } else if(c==1) { if(a-b<0) continue; } } if(YS==0) //如果YS=0,且是除法,去除a,b相除有余数的情况 { if(c==3) if(0 != a%b) continue; } //将算式分为加、减、乘、除四组 if(c==0) //加法 { for(j=0;j<=A0;j++) { if(a==a0[j]&&b==b0[j]) { B0++;break; } } if(B0>0) { B0=0;continue; } else { a0[A0]=a; b0[A0]=b; c0[A0]=a+b; A0++; } } else if(c==1) //减法 { for(j=0;j<=A1;j++) { if(a==a1[j]&&b==b1[j]) { B1++;break; } } if(B1>0) { B1=0;continue; } else { a1[A1]=a; b1[A1]=b; c1[A1]=a+b; A1++; } } else if(c==2) //乘法 { for(j=0;j<=A2;j++) { if(a==a2[j]&&b==b2[j]) { B2++;break; } } if(B2>0) { B2=0;continue; } else { a2[A2]=a; b2[A2]=b; c2[A2]=a+b; A2++; } } else //除法 { if(b==0) continue; for(j=0;j<=A3;j++) { if(a==a3[j]&&b==b3[j]) { B3++;break; } } if(B3>0) { B3=0;continue; } else { a3[A3]=a; b3[A3]=b; c3[A3]=a+b; A3++; } } if(num==A0+A1+A2+A3) //限制算式数量 break; } //输出 for(i=0;i
>C[i]; int t=0,corr=0; //判断输入结果的对错 for(i=0;i

 


、运行结果

 

 

、总结

两个人结对是一种不错的选择,完成项目的速度快许多,但是代码风格不一样,意见不一致,这导致了项目完成的时间变慢了,但总体完成的时间还是提高很多的。


 

、耗时表

PSP2.1 Personal Software Process Stages Time Senior Student(h) Time(h)
Planning 计划 2.5 1.5
· Estimate 估计这个任务需要多少时间 5 3
Development 开发 8 10
 Analysis 需求分析 (包括学习新技术) 0.5 0.5
Design Spec 生成设计文档 1 1
Design Review 设计复审 1 1
Coding Standard 代码规范 0.3 0.3
Design 具体设计 2 3
Coding 具体编码 6 8
Code Review 代码复审 1 1
Test 测试(自我测试,修改代码,提交修改 0..5 0.8
Reporting 报告 2 2
  测试报告 0 0
  计算工作量 1 1
  并提出过程改进计划 0 0

 

结队照片

 

 

转载于:https://www.cnblogs.com/hzj111/p/9869477.html

你可能感兴趣的文章
可与Mirai比肩的恶意程序Hajime,竟是为了保护IoT设备?
查看>>
《Spring Data 官方文档》6. Cassandra 存储库
查看>>
聊聊并发(十)生产者消费者模式
查看>>
R语言数据挖掘2.2.4.2 FP-growth算法
查看>>
人工智能概念诞生60年,哪些大牛堪称“一代宗师”?
查看>>
《游戏大师Chris Crawford谈互动叙事》一9.5 真实案例
查看>>
Java Cache系列之Guava Cache实现详解
查看>>
设计模式 - 适配器
查看>>
CSS之可折叠导航
查看>>
淘宝美工设计师细说何为天猫透明背景
查看>>
【B/S学习总结】我的第100篇CSDN博客
查看>>
[Hadoop]chukwa与ganglia的区别
查看>>
数据挖掘工具分析北京房价 (一) 数据爬取采集
查看>>
IOS项目之弹出动画终结篇
查看>>
iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)
查看>>
OSS移动开发实战2 (30分钟快速搭建移动应用上传回调服务)
查看>>
Swift语言学习No.2: 二维数组
查看>>
SQL性能优化概要
查看>>
Mysql主从同步失败
查看>>
Linux几个常用的小命令-我最喜欢chmod
查看>>