小学四则运算的简单实现

GitHub项目地址:https://github.com/fangzehui22/SiZeYunSuan

一、PSP

PSP

Personal Software Process Stages

预估耗时(分钟)

· Planning

· 计划

10

· Estimate

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

20

· Development

· 开发

800

· Analysis

· 需求分析

40

· Coding Standard

· 代码规范

5

· Design

· 具体设计

40

· Coding

· 具体编码

6h

· Test

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

3h

· Reporting

· 报告

5h

· Test Report

· 测试报告、博客

4h

· Postmortem

· 事后总结

30

合计

 

2084

二、题目要求

(1)能自动生成小学四则运算题目

(2)除了整数外,还支持真分数的四则运算

三、解题思路

      刚看到这个作业题目的时候一脸懵逼,小学四则运算听起来好像很简单,但是要用python代码实现出来对我来说还是有一定的难度,所以就先去网上找资料,想参考一下别人的思路,自己才知道从哪里下手。需要注意的是,因为小学生没有学过负数,所以计算结果不能出现负数。根据运算规则,除法的分母不能为0。

四、实现过程

      在写代码时,利用循环分别随机生成加减乘除的题目,并判断用户的输入结果是否正确。如果正确,则打钩;如果错误,则打叉并给出正确答案。

五、具体代码

 1 import random
 2 
 3 opr = ['','','×','÷']
 4 
 5 ch = '0'
 6 
 7 print('输入 "exit" 退出')
 8 
 9 while True:
10 
11     fh = random.randint(0, 3)
12 
13     n1 = random.randint(1, 10) #1<n1<10
14 
15     n2 = random.randint(1, 10) #1<n2<10
16 
17     rjg = 0
18 
19     if fh == 0:    #
20 
21         rch = n1 + n2
22 
23     elif fh == 1:  #
24 
25         n1,n2 = max(n1,n2),min(n1,n2) #确保用大的数减去小的数
26 
27         rch = n1 - n2
28 
29     elif fh == 2:  #
30 
31         rch = n1 * n2
32 
33     elif fh == 3:  #
34 
35         n1,n2 = max(n1,n2),min(n1,n2)
36 
37         while n1 % n2 != 0:
38 
39             n1 = random.randint(1, 10)
40 
41             n2 = random.randint(1, 10)
42 
43             n1,n2 = max(n1,n2),min(n1,n2)
44 
45         rch = int(n1 / n2)
46 
47     print(n1, opr[fh], n2, '= ', end='')#自动生成题目
48 
49     ch = input()  #用户答案
50 
51     if ch == 'exit':  #输入exit则退出
52 
53         break
54 
55     sr = int(ch)
56 
57     if int(sr) == rch:
58 
59         print('')
60 
61     else:
62 
63         print('×,答案:', rch)

六、测试运行

 

 

七、PSP

PSP

Personal Software Process Stages

实际耗时(分钟)

· Planning

· 计划

8

· Estimate

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

15

· Development

· 开发

820

· Analysis

· 需求分析

50

· Coding Standard

· 代码规范

5

· Design

· 具体设计

60

· Coding

· 具体编码

8h

· Test

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

4h

· Reporting

· 报告

400

· Test Report

· 测试报告、博客

5h

· Postmortem

· 事后总结

40

合计

 

2713

 

posted @ 2018-04-19 14:12  方泽慧  阅读(358)  评论(1编辑  收藏  举报