zoukankan      html  css  js  c++  java
  • 小学生四则运算

    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
  • 相关阅读:
    Android stadio 插件推荐--ok gradle
    算法:枚举法---kotlin
    Kotlin 二分法算法游戏--猜价格
    android onCreate的两个方法
    Spring 中的scope
    Intellij IDEA 2017 debug断点调试技巧与总结详解篇
    深入浅出ConcurrentHashMap1.8
    ConcurrentHashMap JDK1.8
    synchronized修饰普通方法和静态方法
    Java多线程系列--CopyOnWriteArraySet
  • 原文地址:https://www.cnblogs.com/SGzhang/p/13700991.html
Copyright © 2011-2022 走看看