小学生四则运算

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.1Personal 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
原文地址:https://www.cnblogs.com/SGzhang/p/13700991.html