zoukankan      html  css  js  c++  java
  • 自动生成小学四则运算项目(更新)

    一、代码已上传至githubhttps://github.com/zkkkk117/daima/commit/30aaa836a21c405130d0592c7a9f91449f285966

    二、项目PSP

    PSP表格指标 预估耗时(分钟) 实际耗时(分钟)
    计划-估计该任务需要多少时间 200 210
    需求分析与思路解析 30 20
    代码实现 70 75
    代码测试 50 55
    代码优化 30 35
    写博客 20 25

    三、解题思路描述:

    在本项目要求中,我们可以清楚明白需求是要编写能够随机生成的四则运算算式,便于小学生计算解题,考虑到面向对象是小学生,我们的式子不能太过于复杂。

    只要编写一个仅有二项的简单的符合题目需求的算式生成代码即可。

    四、设计实现过程:

    实现类:三个类(除主类)分别为封装函数一:整数求解函数:zsResult();封装函数二:真分数求解函数:zsResult();运算函数:result(s,n1,n2)

    其中,zsResult()和zsResult()中都调用运算函数result(s,n1,n2)来进行四则运算,同时result(s,n1,n2)类还负责输出结果

    其中,运用random库中的randint方法随机生成整数,用random.choice(['+','-','*','/']) 来实现符号的随机生成,使用max()min()函数防止生成小数

    五、代码说明

    def result(s,n1,n2):
        if s == '+':
            print('{} + {} = {}'.format(n1,n2,n1 + n2))
        elif s == '-':
            print('{} - {} = {}'.format(n1,n2,n1 - n2))
        elif s == '*':
            print('{} * {} = {}'.format(n1,n2,n1 * n2))
        elif s == '/':
            if n2 == 0:
                print('***除数不能为零***')
            else:
                print('{} / {} = {}'.format(n1,n2,n1 / n2))
        else:
            print('输入有误,请重新输入!')
    复制代码
    复制代码
    def zsResult():
        qes = int(input())
        for a in range(qes):
            rsign = random.choice(['+','-','*','/'])  
            rnum1 = random.randint(0,100)
            rnum2 = random.randint(0,100)
            if rnum1 < rnum2:
                rnum1 = max(rnum1, rnum2)
                rnum2 = min(rnum1, rnum2)
                result(rsign,rnum1,rnum2)
            else:
                result(rsign,rnum1,rnum2)
    复制代码
    复制代码
    def zfsResult():
        qes = int(input())
        for b in range(qes):
            rsign = random.choice(['+','-','*','/'])  
            snum1 = random.randint(0,100)
            mnum1 = random.randint(1,100)
            zfs1 = Fraction(snum1, mnum1)
            snum2 = random.randint(1,100)
            mnum2 = random.randint(1,100)
            zfs2 = Fraction(snum2, mnum2)
            if zfs1 < zfs2:
                zfs1 = max(zfs1, zfs2)
                zfs2 = min(zfs1, zfs2)
                result(rsign,zfs1,zfs2)
            else:
                result(rsign,zfs1,zfs2)

    六、测试运行:

     

    七、总结分析:经过这次实践要有规划和总结的能力,学会了制作PSP表,编写项目文档,。

    更新

     代码:整数求解与真分数求解函数:zsResult(),zfsResult()

    复制代码
    def zsResult():            #整数运算
        print("请输入出题数:")
        qes = int(input())
        print("请输入最大项数:")
        maxone = int(input())
        for a in range(qes):
            result(1,maxone)   #调用实际运算函数result(bo,k)
    
    
    def zfsResult():           #真分数运算
        print("请输入出题数:")
        qes = int(input())
        print("请输入最大项数:")
        maxone = int(input())
        for b in range(qes):
            result(2,maxone)   #调用实际运算函数result(bo,k)
    复制代码

     真分数运算结果:

  • 相关阅读:
    Docker手动搭建sentry错误日志系统
    Flask源码解析:Flask应用执行流程及原理
    django Rest Framework---缓存通过drf-extensions扩展来实现
    Python实现 -- 冒泡排序、选择排序、插入排序
    Python查找算法之 -- 列表查找和二分查找
    java设计模式之单例模式
    中文乱码解决方案
    web应用中Filter过滤器之开发应用
    web应用中的Filter过滤器之基础概述
    会话跟踪技术
  • 原文地址:https://www.cnblogs.com/zhoukun520/p/13702704.html
Copyright © 2011-2022 走看看