作业要求如下:
一、运算题
1. 分析题目陷阱
随机加减乘除号,随机数字
真分数运算,运算变量的分子必须小于分母
小学题(要求整除且所有运算均无负数)即:减法大减小,整数除法要限制变量
2. 需求调用
random 库和 fractions 库中的 Fraction 函数
1 import random 2 from fractions import Fraction
3. 声明变量
注意:分数中有个判断真分数的 while 循环,声明变量时候要符合循环要求(第五点代码部分)
3 f1_num = 2#第一个分数分子 4 f1_den = 0#第一个分数分母 5 f2_num = 2#第二个分数分子 6 f2_den = 0#第二个分数分母
4. 随机整数运算
1)使用 random.randint 对运算符 symbol ,运算变量 n1 , n2 赋随机1~100值
2)if...elif 控制,加法乘法直接做,减法注意交换大小,除法中限定余数为0
3)注意输出格式,比较输入和正确答案,对则 Right ,错则输出提示和正确答案
7 elif (symbol == 1): 8 n1, n2 = max(n1, n2), min(n1, n2) 9 right_result = n1 - n2
5. 随机分数运算
1)依旧调用 random.randint 对两个分数的分子,分母赋随机1~100值
2)分数加法:正确结果分子 = 第一个分子 × 第二个分母 + 第二个分母 × 第一个分子
正确结果分母 = 第一个分母 × 第二个分母
3)分数减法:正确结果分子 = 第一个分子 × 第二个分母 - 第二个分母 × 第一个分子
正确结果分母 = 第一个分母 × 第二个分母
注意:比较俩分数大小,记得交换后再做减法
4)分数乘法:正确结果分子 = 第一个分子 × 第二个分子
正确结果分母 = 第一个分母 × 第二个分母
5)分数除法:正确结果分子 = 第一个分子 × 第二个分母
正确结果分母 = 第一个分母 × 第二个分子
6)调用 Fraction 函数,将正确结果赋值给 right_result
7)注意输出格式,判断对错时记得将 right_result 转为字符串再与 input 比较
while(f1_num > f1_den or f2_num > f2_den): f1_num = random.randint(1, 100) f1_den = random.randint(1, 100) f2_num = random.randint(1, 100) f2_den = random.randint(1, 100) symbol = random.randint(0, 3) #满足真分数的循环赋值
if(f1_num/f1_den < f2_num/f2_den): (f1_num, f2_num) = (f2_num, f1_num) (f1_den, f2_den) = (f2_den, f1_den) result_num = f1_num * f2_den - f2_num * f1_den result_den = f1_den * f2_den #先比较大小,交换后再做减法
if (result == str(right_result)): print("Right!") else: print("The right answer is : ",right_result)
#运算结果改为字符串再判断,给出相应信息
6. 需完整代码请移步 https://coding.net/u/jiche
二、速看《构建之法》后,不懂的五个问题及一些小建议
必须要赞美《构建之法》的贯穿用例形式很漫话,对,就是通过像读者们的日常聊天,日常事件来展示出一个又一个工程相关问题,由浅入深,真的很引起共鸣。
细细想来,软件开发问题也就是这样,由现象看原因再看本质:开发过程中缺陷于何处,用户需求究竟有没有全面理解,好不好维护,未来是基于其上扩展还是全部推倒重写...
书里真的是写的很详细了,书中没详尽写的也都附上了大牛们讨论的链接地址,我就抛块砖头好了。Y(^o^)Y
1. P121,敏捷流程中最后20%到底谁去做啊?(强迫症患者很难受啊!!!)
2. P159,软件团队和客户代表之间的需求问题定义感觉有一些模糊,可否增加一些例子?
3. P224,功能说明书第二条里面加个适用于的场景环境分类会更好的吧。
4. P274,(个人见解) 智能手表的交互挑战应该是实际产品难以满足大多数的用户需求吧,简单总结一下智能手表问题:好看的功能少,功能全的太难看,不难看的太贵。并不是说人类不需要智能手表,而是现阶段的智能手表难以满足人类。我曾经想过这个问题,如果给智能手表加上独立通讯模块,其费用再将增加,用户体验将变化,但是如果说手机出三卡待机支持,我觉得将变得不一样(手机已经是大多数人的必备了)。希望未来智能手表能够替代手机部分功能的同时也可以让世界上大多数人有认同感!
5. P281,提到了“灰箱”测试方法,百度了一下,觉得可以在“进一步说,我们并不是要禁止懂得程序内部结构的人员来进行黑箱测试设计,只不过是在设计时有意不考虑软件的内部结构。”再增加明确一些的话语,将“灰箱”测试方法弄得完善一些,毕竟个人感觉“灰箱”测试用法每个团队都在用啊。
6. P314,软件质量成本问题,因为整个一条龙下来点比较多,像我这种小白去看的话,容易凌乱在风中。我觉得可以仿照管理学里面的全面质量管理,对软件质量管理分为三个阶段,质量检验阶段(预防,评审等),质量控制阶段(内部故障,外部故障等),全面质量管理阶段(提高职业技能,技术投资等)。然后对这三个方面展开讨论。
PS:《构建之法》写的实在详细,还有链接补充,不懂的都能去查到,只能大鸡蛋里挑点小骨头了  ̄□ ̄||
三、分析 游戏、手机应用、工作软件 三者特点
1. 游戏
1)游戏是一种潮流,跟风玩耍;做游戏的目标基本都是盈利吧(MOBA卖英雄皮肤、RPG卖道具、单机或者竞技类卖使用权限);目标肯定是支付宝,微信,银行账户的余额啊!
2)PC游戏都是到官网或应用平台下载,手机上的(王者荣耀、绝地求生:刺激战场...)比较大的游戏,会让已有游戏的同学通过蓝牙、热点的方式传输给我(掌机请忽略)
3)通过测试和用户反馈修改相应BUG,维护时候就停服更新
4)玩家本人情怀(例如:仙剑XX传、宝X梦系列),电竞类基本上是大公司(腾X,X易,暴X)代理的或者做的游戏,大平台(SxxxM)上线游戏,抢占市场资源能力强力碾压小公司。
2. 手机应用
1)自己有需求就去找资源了(比如说,想在手机或者PAD上办公就要去找OFFICE或者WPS...);感觉目标是宣传公司(顺便赚小钱)吧;感觉和赚钱没多大关系。
2)官网下载,应用平台下载,百度云盘下载...
3)用户反馈和开发者测试找BUG;上传补丁包(壁纸类软件从几MB到几十MB就是很好的例子啊)
4)大公司可信度碾压(有钱的公司靠这个当宣传,界面洁净,功能简单易上手,没钱的小公司不招商只能等着凉,招商后用户不喜欢广告给你差评,生存不易╮(╯▽╰)╭)
3. 工作软件
1)有需求就有能满足需求的软件;商用的话基本就是一手交钱,一手给你实现需求功能的软件;还是银行卡转账居多
2)公司统一下载到工作机里(用了几年,用户可能都不知道开发团队是哪个),为了保证一个公司的统一化嘛!
3)公司团队发现功能缺陷就要告知开发团队;开发团队一边解释一边加工
4)信誉度问题吧(好比淘宝皇冠 钻石店家的竞争,店家提供一对多服务,用户们多对一评价,评价多,评价好者居上)
4. 列举使用上述软件时的特殊现象,他们和硬件有什么不同?这些能反应软件的本质特性吗?
1)软件是现代化及未来生活不可缺失的部分,如果说过去二十年间是硬件带着软件奔跑,那么未来将是软件载着硬件飞行!
2)我觉得软件服务于人类,它所拥有的扩展性,不可见性,覆盖领域之广阔,开发者用户数量之庞大都已经证明其本质——软件因人类而进化,人类因软件而富强!
四、小组成员
以MOBA形式介绍一下吧,毕竟我们这代人的青春小怀念 (* ̄︶ ̄)
“泉水指挥官,优秀开团者,辅助小组长” 季澈 :http://www.cnblogs.com/jiche
“五杀掌控者,王牌TANK,上单小组员” 李怡龙:http://www.cnblogs.com/lee-li
“追求极致输出,以CARYY为荣耀,ADC小组员” 贺鸿琨:http://www.cnblogs.com/hehongkun
“浪里个浪,于刀光间游走,处剑影间不惊,集中单打野于一体的小组员” 胡浪:http://www.cnblogs.com/HULANG-BTB
“我今天还没被打倒,可能你也一样,因为我们彼此怀揣梦想” —— 马云