四则运算的实现

GitHub项目地址:https://github.com/superdizi/-1/blob/master/%E5%9B%9B%E5%88%99%E8%BF%90%E7%AE%97

 二、psp

PSP

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

15

25

    Estimate

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

15

25

Development

开发

300

400

    Analysis

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

30

45

    Design Spec

    生成设计文档

30

30

    Design Review

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

15

10

    Coding Standard

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

15

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

合计

 

400

485

 

三、解题思路描述

1、算式的可视化 2、算式的计算及判断

先以构建获得整数,分数,符号的函数

通过random获得随机数以自动获得不同的数与运算符

将算式计算得到答案,并将运算符与数字拼接让算式可视化

4. 设计实现过程

  函数 说明
1
integer
返回随机整数
2
score
返回随机分数

3

conc

连接符号与数字并计算,输出算式

返回算式答案

 

 

 

 

 

 

5. 代码示例

def integer(n):
    return random.randint(1,n)
def score(n):
    num1=random.randint(1,n)
    num2=random.randint(1,n)
    return Fraction(min(num1,num2),max(num1,num2))
def conc(n,x):
    if x==0:
        f=random.randint(0,3)
        num1=integer(n)
        num2=integer(n)
        if f==0:
            result=num1+num2
            rand=operation[f]
            print("题目:")
            print(str(num1)+rand+str(num2))
            return result
        if f==1:
            result=num1-num2
            rand=operation[f]
            print("题目:")
            print(str(num1)+rand+str(num2))
            return result
        if f==2:
            result=num1*num2
            rand=operation[f]
            print("题目:")
            print(str(num1)+rand+str(num2))
            return result
        if f==3:
            result=num1/num2
            rand=operation[f]
            print("题目:")
            print(str(num1)+rand+str(num2))
            return result
    else:
        f=random.randint(0,3)
        num1=score(n)
        num2=score(n)
        if f==0:
            result=num1+num2
            rand=operation[f]
            print("题目:")
            print(str(num1)+rand+str(num2))
            return result
        if f==1:
            result=num1-num2
            rand=operation[f]
            print("题目:")
            print(str(num1)+rand+str(num2))
            return result
        if f==2:
            result=num1*num2
            rand=operation[f]
            print("题目:")
            print(str(num1)+rand+str(num2))
            return result
        if f==3:
            result=num1/num2
            rand=operation[f]
            print("题目:")
            print(str(num1)+rand+str(num2))
            return result

6、运行实例

print("请输入题目最大数max")
print("max=")
m=int(input())
print("输入0表示整数题目,输入1表示分数题目")
print("x=")
x=int(input())
while True:
    answer=conc(m,x)
    print("请输入答案=")
    uanswer=eval(input())
    if uanswer==answer:
        print("正确")
    else:
        print("错误")
    print("输入y再来一题,输入n退出")
    cont=str(input())
    if cont=='y':
        continue
    if cont=='n':
        break

  

七、性能测试

 

posted @ 2020-09-20 23:56  屁屁蛇  阅读(240)  评论(0)    收藏  举报