首页 > 其他 > 详细

四则运算

时间:2020-09-21 16:53:22      阅读:47      评论:0      收藏:0      [点我收藏+]

1. 项目要求

1.1 要求阐述

  • 生成小学四则运算题题目,结果不能为负数
  • 支持真分数的四则运算

1.3  详细代码https://github.com/cantplz/sum

2. PSP表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

20

30

    Estimate

    估计这个任务需要多少时间

20

20

Development

开发

300

450

    Analysis

    需求分析 (包括学习新技术)

30

45

    Design Spec

    生成设计文档

30

30

    Design Review

    设计复审 (和同事审核设计文档)

15

10

    Coding Standard

    代码规范 (为目前的开发制定合适的规范)

10

10

    Design

    具体设计

30

35

    Coding

    具体编码

60

180

    Code Review

    代码复审

30

20

    Test

    测试(自我测试,修改代码,提交修改)

40

65

Reporting

报告

85

60

    Test Report

    测试报告

30

25

    Size Measurement

    计算工作量

30

10

    Postmortem & Process Improvement Plan

    事后总结, 并提出过程改进计划

25

25

合计

 

347

480

3. 解题思路描述

先由main程序确定要求的算式要求,再由formula程序得出算式

首先,使用随机数生成操作数与运算符,通过参数设置操作数与运算符的数量,再将其拼接为算式,如3×7+9÷3。

其次,在算式上插入括号,括号插在有乘除附近的加减子算式中,如3×(7+9)÷3。

最后,在算式的基础上将其中的数字替换为分数,如果不想使用分数则跳过此步骤。

使用OPT方法存储相关参数,如操作数数值上限、操作数个数、使用的运算符种类、是否包含分数。

使用GeneralFormular类生成算式的中缀表达式,其中包含8个方法。

技术分享图片

 

4.代码说明

 

from formula import OPT, GeneralFormular, ComputeFormular


if __name__ == "__main__":
    print("{:^18} | {:^5} | {:^8}".format("参数", "数值范围", "请输入"))
    print("{0:-<21}+{0:-<11}+{0:-<12}".format(-))
    n = input("{:>14} | {:9} | ".format("生成算式数量", "[>=1]"))
    up_limit = input("{:>16} | {:9} | ".format("数值上限", "[>=10]"))
    oper_num = input("{:>15} | {:9} | ".format("操作数个数", "[>=2]"))
    oper_variety = input("{:>15} | {:9} | ".format("运算符种数", "[1~4]"))
    has_fraction = int(input("{:>14} | {:9} | ".format("是否包含分数", "[0, 1]")))
    print("{0:-<46}".format(-))
    opt = OPT(up_limit, oper_num, oper_variety, has_fraction)

    gf = GeneralFormular(opt)
    cf = ComputeFormular()

    formulars = {}
    for i in range(int(n)):
        f = gf.solve()
        s = cf.solve(f)
        formulars[i+1] = f + " = " + s
        print(formulars[i+1])

5.测试运行

技术分享图片

 

 6.性能分析

技术分享图片

 

 

四则运算

原文:https://www.cnblogs.com/z2273533704/p/13704883.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!