Github地址
https://github.com/SG-Zhang-X/Dokey/blob/mySE/%E5%B0%8F%E5%AD%A6%E7%94%9F%E5%9B%9B%E5%88%99%E8%BF%90%E7%AE%97
解题思路
题目要求小学生的四则运算,根据小学生水平划分为三年级以下水平和三年级以上水平,三年级以下选择难度一,100以内两个数字加减法,三年级以上学生选择难度一,带有真分数的四则运算。
实现过程
共有5个函数
LowCalculate()实现两个数字的加减运算
ProperFraction()产生真分数
blacket()实现带真分数的四则运算
Select()选择难度等级,输出正确结果以及准确率
if __name__ == '__main__':主函数
代码实现
import random def LowCalculate():#三年级以下题目,只涉及两个数字的加减运算 while(True): integer1 =random.randint(1, 100) integer2 =random.randint(1, 100) if (integer1 - integer1>0): integer1 = integer1 integer2 = integer2 break lowsymbol = random.choice("+-") if eval(str(integer1)+str(lowsymbol)+str(integer2))>0: return str(integer1)+str(lowsymbol)+str(integer2) def ProperFraction():#产生真分数 while(True): molecular = random.randint(1,100) #分子 denominator = random.randint(1,100) #分母 if(molecular<denominator): return str(molecular)+"/"+str(denominator) break def blacket():#产生三年级以上题目,含真分数的四则运算 left="(" right=")" integer=str(random.randint(1,100)) symbol=random.choice("+-*/") fraction=ProperFraction() if eval(integer+symbol+fraction)>0: return left+integer+symbol+fraction+right def Select(): if choice == '1': k=0 for i in range (5): a = LowCalculate() a = str(a) b = eval(a) print( a ,"=","请输入答案") answer = input() answer = int(answer) if (abs(answer - b)) == 0: k=k+1 print("你的回答正确") else: print("答案错误", "正确答案是:", b) print("你一共答对了", k, "题", "准确率为:", k / 5) if choice == '2': count=0 for i in range (5): a=blacket() b=str(random.choice("+-*/")) c=ProperFraction() if eval(a+b+c)>0: print(a,b,c,"="," 请输入答案:") answer = input() answer = float(answer) if (abs(answer-eval(a+b+c)))<0.1: count=count+1 print("你的回答正确","准确答案是:",eval(a+b+c)) else: print("答案错误","正确答案是:",eval(a+b+c)) print("你一共答对了",count,"题","准确率为:",count/5) if __name__ == '__main__': print("请选择难度," "三年级以下请输入1", "三年级以上请输入2") choice = input() X=Select()
运行结果
性能分析图
PSP时间表
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 8 | 7 |
· Estimate | · 估计这个任务需要多少时间 | 300 | 400 |
Development | 开发 | 200 | 390 |
· Analysis | · 需求分析 (包括学习新技术) | 20 | 40 |
· Design Spec | · 生成设计文档 | 10 | 15 |
· Design Review | · 设计复审 (和同事审核设计文档) | 10 | 15 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 15 | 30 |
· Design | · 具体设计 | 30 | 50 |
· Coding | · 具体编码 | 100 | 150 |
· Code Review | · 代码复审 | 20 | 30 |
· Test | · 测试(自我测试,修改代码,提交修改) | 40 | 60 |
Reporting | 报告 | 40 | 60 |
· Test Report | · 测试报告 | 20 | 30 |
· Size Measurement | · 计算工作量 | 10 | 10 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 10 | 20 |
合计 | 258 | 457 |