20165214 结队编程项目-四则运算

20165214 第一次结队编程项目——四则运算第一周

需求分析

本周的结队编程想要实现一个四则运算系统,它可以自动生成n个计算题(本周不包括分数),其中n由我们输入。每输出一道题目,运行程序的人需要输入相应的答案,直到最后一道题做完。最后,统计正确率。

设计思路

首先,我的想法是:由于本周不包括分数,所以我干脆把除法的运算直接归到下一周的分数的运算中去(因为在数学中,两数相除也可以直接表示为分数的方式,每一个整数都可以表现为分数的形式)。所以本周结队编程我和我的队友两个人就只实现加减乘,除法我们会在下周实现的。
然后,我把程序分了三个类:主类进行运算,另外两个类分别随机产生数字和操作符。(这里有一点不好就是没有把计算的过程从主类中提取出来)
然后分别对三个类进行实现。

本周达成:

①能够随机生成n道题目,n由我们输入,最大长度可直接在程序里面修改;
②能够计算正确率并且按照百分比形式输出,取到小数点后一位。

下周的目标(扩展需求):

①加上分数运算;
②加上括号运算;
③支持简体中文、繁体中文、英语;(个人觉得这个是最简单的)
④能够查重到一定程度;
⑤能够选择计算的数字范围,输入1随机生成数的范围是1~10,输入2随机生成数的范围是1~50,输入3随机生成数的范围是1~100。

整数/多运算符(题目生成/题目运算判题)

运行截图:
1271410-20180416011617940-1926081677.png

码云链接

其中关键代码的解释我们注释在代码中,码云里有体现~

JUnit测试

为了实现JUnit测试,把原本程序的随机生成算式给改成手动输入算式判定结果
1271410-20180416024131028-987864353.png

UML图

在画这个图的时候就一直觉得自己把计算过程放在主类真是太不好了。。不符合高内聚低耦合的标准,下周一定改正。
1271410-20180416025519843-888116515.png

PSP

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划5040
· Estimate· 估计这个任务需要多少时间600652
Development开发6060
· Analysis· 需求分析 (包括学习新技术)55
· Design Spec· 生成设计文档3025
· Design Review· 设计复审 (和同事审核设计文档)6070
· Coding Standard· 代码规范 (为目前的开发制定合适的规范)3020
· Design· 具体设计120150
· Coding· 具体编码6060
· Code Review· 代码复审6040
· Test· 测试(自我测试,修改代码,提交修改)120150
Reporting报告6080
· Test Report· 测试报告1020
· Size Measurement· 计算工作量55
· Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划1510
合计12851387

遇到的困难与解决方法

本次编程遇到的很多问题我都借助API解决了,不得不再次感慨,API真是太好用了!有时候一些类的方法忘记了也不用费很多时间去找书,直接使用API就可以了。

  • 问题一:编程过程中一个比较难的问题是,Java没有提供能够直接把字符串中的运算符号提取出来直接参与运算的方法
  • 问题一解决方案:我调用String类的spilt(),利用正则表达式,分隔字符串从而分别把运算符号和数字抽取出来,再利用equals()方法来与运算符号进行匹配就可以了。

  • 问题二:问题二刚好就是我为什么要把除法也给归到第二周的分数的原因。设想一下,如果产生一个算式2%3+1(这里%是除号),那么得到的结果也是分数,即这个算式跟2/3+1是一样的。
  • 问题二解决方案:所以我把除法也给归到下一周的内容上去了。

  • 问题三:本周内容有一点不足就是没有加括号,加括号得考虑到很多因素(因为括号不能生成在算式两边,不能生成单边括号,还需要优先进行运算)
  • 问题三解决方案:我已经对于括号的应用有思路了,下周我会开始尝试,一定要尽力弄出括号。

点评伙伴

本次我的伙伴对我们的小组做出了很大的贡献,我们两一块商量,一块编程,互相交流程序实现的方法,并一起debug。感觉还是挺不错的,有人结伴学习,互相监督,在一个人想偷懒的时候,另一个人就会拉一把,防止偷懒。而且每个人都有自己的优势,在一起工作的时候互相取长补短,对我的成长也有很大的帮助。下周我将会和我的队友再次挑战自己!

转载于:https://www.cnblogs.com/zhuwenyuan/p/8848935.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Sailfin Voron是一种热带淡水鱼类,也被称为天使鱼科中的“天使鱼”。它是一种美丽的鱼类,拥有华丽而多彩的外观,是鱼缸中的宠物之一。 Sailfin Voron是鱼缸爱好者中受欢迎的一种鱼类,因为它具有非常迷人的外观。它的身体侧扁,呈纺锤形,背鳍和尾鳍非常长而尖,像帆一样,因此得名“Sailfin Voron”。它的鳞片呈亮丽的金色,闪闪发光,让它成为鱼缸中的一道亮丽风景线。 Sailfin Voron主要生活在热带地区的淡水湖泊和河流中,它们喜欢水温较暖的环境。它们是杂食性动物,食物包括浮游生物、小型昆虫和水中植物。在鱼缸中,我们需要提供适合它们生活的环境,包括适宜的温度、水质和养分等。同时,Sailfin Voron也需要适当的空间来游动和活动,以保持它们的健康和快乐。 尽管Sailfin Voron是一种美丽的鱼类,但它们并不是最容易饲养的品种之一。它们对水质的要求较高,如果不注意水质的控制,可能会导致它们生病甚至死亡。另外,Sailfin Voron也需要一定的社交空间,一般建议将它们放在与其它和平相处的品种一起养殖。 总之,Sailfin Voron是一种美丽而迷人的鱼类,适合鱼缸爱好者饲养。尽管它们的饲养较为复杂,但只要我们提供适宜的环境和饲养条件,它们能够成为我们家中的迷人宠物。 ### 回答2: Sailfin Voron是一种来自非洲和亚洲的淡水鱼类,属于腔棘鱼科。它的特点是其宽大而鲜艳的背鳍,这是栖息在流动水域中的鱼类中比较罕见的特征。这种鱼的背鳍通常呈现出明亮的蓝色或绿色,具有优美的形状,因此得名“Sailfin Voron”。 Sailfin Voron的体形通常较为修长,侧扁且稍高,身体呈橢圆形。它的头部相对较小,口部较窄,适合捕食浮游生物和小型无脊椎动物。Sailfin Voron在水中游动灵活,非常迅捷,常常成群结队生活。它们寿命较长,通常可活到5-8年。 在水族馆中,Sailfin Voron是淡水鱼爱好者们非常喜欢的观赏鱼之一。它们的鲜艳背鳍和独特体形使其成为水族馆中的明星。作为观赏鱼,它们通常需要一定的鱼缸空间,以便能够自由游动及展示其美丽的背鳍。 在自然界中,Sailfin Voron主要栖息于淡水河流,湖泊和池塘等水体中。它们是杂食性鱼类,以浮游生物,植物碎屑和小型无脊椎动物为主要食物来源。在繁殖季节,雄性Sailfin Voron会展示出美丽的背鳍以吸引雌性。雌性一般会在水生植物中产卵,并由雄性受精。 尽管Sailfin Voron在野外的种群数量相对稳定,但是由于人类的过度捕捞以及水体污染等原因,它们的栖息地受到了一定程度的丧失和破坏。因此,保护Sailfin Voron和其栖息地的生态环境变得至关重要。只有通过合理科学的管理和保护措施,我们才能保护这些美丽的鱼类,同时也保护整个生物多样性。 ### 回答3: "Sailfin Voron" 是一种鱼类,属于海鲈科(Scientific name: Costa voron)。 Sailfin Voron 鱼体侧扁,背部呈蓝灰色,腹部为银白色。它们的特征之一是背鳍和臀鳍非常宽大,像帆一样般展开,因此得名“Sailfin”。体长大约在10-15厘米左右。这种鱼类主要栖息在沿岸水域,如河流和河口。它们喜欢在水下潜藏在水草或者水下的洞穴中。 Sailfin Voron 鱼类是杂食性动物,主要以浮游生物、小型底栖无脊椎动物和植物为食。它们是群居性鱼类,常常成群结队活动。在繁殖季节,雄性鱼会变得更加鮮艳,以吸引雌性进行求偶。它们一般在水底崖壁或者岩石缝隙中产卵,卵孵化后雄性会负责守卫卵和幼鱼。 由于其独特的外观和行为习性,Sailfin Voron 鱼类受到了一些水族爱好者的喜爱。在一些水族馆中,你也可以看到这种鱼类。在养殖鱼类中,它们不需要过多特别的照顾,适合于养在较大的水族箱中。当然,对于购买和养殖这种鱼类,了解其适宜的水质和饲养方法是至关重要的。 总之,Sailfin Voron 是一种漂亮且有趣的鱼类,它们以其宽大的鳍以及独特的行为在水中展示出魅力,无论在自然环境还是在水族箱中都是令人赏心悦目的存在。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值