GitHub项目地址:https://github.com/75-Hz/RJ-Project.git


 

PSP表格:

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

 30

 40

Estimate

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

 /

 /

Development

开发

 150

 210

Analysis

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

45

 60

Design Spec

生成设计文档

 /

Design Review

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

 /

 /

Coding Standard

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

 /

 /

Design

具体设计

10 

 15

Coding

具体编码

 30

 45

Code Review

代码复审

 10

 15

Test

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

 30

 45

Reporting

报告

 15

 15

Test Report

测试报告

 10

 15

Size Measurement

计算工作量

 5

 7

Postmortem & Process Improvement Plan

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

 10

 10

合计

 

 345

 477

 

思路:

随机生成数与符号组成算式,其中随机数与答案不得是负数,分母不可为0。

在计算出答案与输入的数进行比较,正确与否反馈给学生。

实现过程:

定义函数:count(),随机生成算式;

判断对错:输入的结果与key比较,相同则是“right”,不符则为“error”,并给出正确答案。


 

代码:

import profile

import random
 
#四则运算
 
def count():
 
    sign = ['', '', '×', '÷']
 
    f = random.randint(0, 3)
 
    n1 = random.randint(1, 20)
 
    n2 = random.randint(1, 20)
 
    key = 0
 
    if f == 0:#加法
 
       key = n1 + n2
 
    elif f == 1:#减法,要先比较大小,防止输出负数
 
        n1, n2 = max(n1, n2), min(n1, n2)
 
        key = n1 - n2
 
    elif f == 2:#乘法
 
        key = n1 * n2
 
    elif f == 3:#除法,分母不可以为0
 
        n1, n2 = max(n1, n2), min(n1, n2)
 
        while n1 % n2 != 0:
 
            n1 = random.randint(1, 10)
 
            n2 = random.randint(1, 10)
 
            n1, n2 = max(n1, n2), min(n1, n2)
 
            key = int(n1 / n2)
 
    print(n1, sign[f], n2, '= ', end='')
 
    return key
 

print('小学四则运算')
 
print('输入‘1’测试效能,输入‘2’开始')
 
n = int(input())
 

#当输入1时,测试效能
 
if n==1:
 
     profile.run('count()')


#当输入2时,开始运算
     
if n==2:
 
    while True:
 
        key = count()
 
        j = input()
 
        s = int(j)
 
        if s == key :
 
            print('right')
 
        else:
 
            print('error.,the answer is',key)
 

 

测试运行结果:

效能分析结果:

小结:

这次的四则运算的编程设计,让我知道拿到一个题目不是直接就开始打代码,而是要现在大脑进行思考、设计题目解答流程与其所需的实现方法,再进行编程,这会带来事半功倍的效果。

由于我学艺不精,暂时只做出整数的四则运算,除法得出真分数与分数间的四则运算并没有完成。期待之后可以完善这个“四则运算”。