第五次作业——四则运算
【Github项目地址】
https://github.com/axh10086/test
【PSP表格】
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
10 |
|
· Estimate |
· 估计这个任务需要多少时间 |
10 |
|
Development |
开发 |
655 |
|
· Analysis |
· 需求分析 (包括学习新技术) |
30 |
|
· Design Spec |
· 生成设计文档 |
30 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
10 |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
5 |
|
· Design |
· 具体设计 |
40 |
|
· Coding |
· 具体编码 |
5h*60 |
|
· Code Review |
· 代码复审 |
1h*60 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
3h*60 |
|
Reporting |
报告 |
290 |
|
· Test Report |
· 测试报告+博客 |
4h*60 |
|
· Size Measurement |
· 计算工作量 |
10 |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
40 |
|
合计 |
955 |
【解题思路描述】
首先,用”import random” 和”random.randint(n,m)”来完成随机数的产生的生成运算。
与用户输入的答案进行匹配,判断对错
【设计实现过程】
该代码较简单,没有将四种运算分为四种单独的函数进行编程。
代码首先将四则运算包含在一个数组中,并且随机选择其中一种运算。随机生成两个十进制的整数,进行加减乘除四种运算。最后将用户输入的答案与正确答案进行比较。
【代码说明】
展示出项目关键代码,并解释思路与注释说明。
1 import random 2 opr = ['+','-','×','÷'] #四则运算的选择 3 jg = '0' 4 print('输入 "0000" 可退出') 5 while True: 6 fh = random.randint(0, 3) #fh可取0,1,2,3 7 n1 = random.randint(1, 10) #n1为1~10范围内的数 8 n2 = random.randint(1, 10) #n2为1~10范围内的数 9 rjg = 0 10 if fh == 0: #加法 11 rjg = n1 + n2 12 elif fh == 1: #减法 13 n1,n2 = max(n1,n2),min(n1,n2) #因为不能出现负数 所以用大的值减去小的值 14 rjg = n1 - n2 15 elif fh == 2:#乘法 16 rjg = n1 * n2 17 elif fh == 3:#除法 18 n1,n2 = max(n1,n2),min(n1,n2) 19 while n1 % n2 != 0:#只考虑整除的情况 20 n1 = random.randint(1, 10) 21 n2 = random.randint(1, 10) 22 n1,n2 = max(n1,n2),min(n1,n2)#保证用大的数除以小的数 23 rjg = int(n1 / n2) 24 25 print(n1, opr[fh], n2, '= ', end='')#输出题目 26 jg = input()#输入答案 27 if jg == '0000':#输入0000 意为退出 28 break 29 sr = int(jg) 30 if int(sr) == rjg:#如果输入答案与正确答案相等 则输出 正确 31 print('正确') 32 else: 33 print('错误,正确答案为:', rjg)
【测试运行】截图
【效能分析】
本代码十分简易 没有复杂的考虑到分数的四则运算 而只考虑了整数的实现 这是十分不足的地方
PSP表格记录下程序的各个模块上实际花费的时间
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
Planning |
计划 |
10 |
8 |
· Estimate |
· 估计这个任务需要多少时间 |
10 |
8 |
Development |
开发 |
655 |
785 |
· Analysis |
· 需求分析 (包括学习新技术) |
30 |
35 |
· Design Spec |
· 生成设计文档 |
30 |
40 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
10 |
15 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
5 |
5 |
· Design |
· 具体设计 |
40 |
60 |
· Coding |
· 具体编码 |
300 |
420 |
· Code Review |
· 代码复审 |
60 |
90 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
180 |
120 |
Reporting |
报告 |
290 |
330 |
· Test Report |
· 测试报告+博客 |
4h*60 |
4.5h*60 |
· Size Measurement |
· 计算工作量 |
10 |
10 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
40 |
50 |
合计 |
955 |
1123 |