设为首页 加入收藏

TOP

随机生成两个数的四则运算(一)
2019-03-18 00:07:57 】 浏览:332
Tags:随机 生成 两个数 四则 运算

Github项目地址:

https://github.com/123diandian/sizeyunsuan

 

PSP

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

10

20

 Estimate

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

1440

2200

Development

开发

700

200

 Analysis

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

180

100

 Design Spec

 生成设计文档

5

5

 Design Review

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

10

15

 Coding Standard

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

5

10

 Design

 具体设计

40

30

 Coding

 具体编码

300

400

 Code Review

代码复审

30

40

 Test

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

30

20

Reporting

报告

120

100

 Test Report

 测试报告+博客

120

120

Size Measurement

 计算工作量

10

15

 Postmortem & Process Improvement Plan

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

40

60

合计

 

3040

3335

 

题目要求:

能自动生成小学生四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!)

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

 

解题思路:

  • 定义一个函数随机生成两个整数,并进行四则运算
  • 定义一个函数随机生成两个真分数,再定义一个函数对两个真分数进行四则运算(调用Fraction函数进行分数运算)
  • 用户输入自己的要求
  • 计算结果与用户的输入进行对比

 

设计函数:

  • 定义一个函数随机生成两个正整数并进行四则运算(减数要比被减数小;除数不能等于0且当被减数大于一时,除数要能整除被除数)
  • 定义一个函数随机生成两个真分数,再定义一个函数对两个真分数进行四则运算(调用Fraction函数进行分数运算;分母不能为0,且除数即生成的第二个分数不能等于0)

 

具体程序设计:

成员变量

成员名

类型

功能

t

int

输入测试类别,1.测试  2.练习  3.退出

n

int

输入运算类别,1.整数  2.真分数  3.混合  4.退出

k

int

输入题目的数量

p

float

每道题的分数

s

float

总的得分

q

列表

存储表达式

ans

列表

存储计算结果

da

int

是否查看答案,1.是  2.否

a

字符串

用户计算的答案

 

成员函数

函数名

功能

c1(q, ans)

两个整数的四则运算

creatF()

随机生成两个真分数

c2(q, ans)

两个真分数的四则运算

main()

主函数

 

核心代码:

 1 ##两个整数的四则运算
 2 def c1(q, ans):
 3     symbol = random.choice(['+', '-', '*', '/'])  # 生成随机符号
 4     if symbol == '+':
 5         n1 = random.randint(0, 100)
 6         n2 = random.randint(0, 100)
 7         q.append(str(n1) + '+' + str(n2) + '=')
 8         ans.append(n1 + n2)
 9     elif symbol == '-':
10         n1 = random.randint(0, 100)
11         n2 = random.randint(0, n1 + 1)
12         q.append(str(n1) + '-' + str(n2) + '=')
13         ans.append(n1 - n2)
14     elif symbol == '*':
15         n1 = random.randint(0, 100)
16         n2 = random.randint(0, 100)
17         q.append(str(n1) + '×' + str(n2) + '=')
18         ans.append(n1 * n2)
19     else:
20         n1 = random.randint(0, 100)
21         if n1 == 0:
22             n2 = random.randint(1, 100)
23         else:
24             n2 = random.randint(1, n1 + 1)
25             while n1 % n2:
26                 n1 = random.randint(1, 100)
27                 n2 = random.randint(1, n1 + 1)
28         q.append(str(n1) + '÷' + str(n2) + '=')
29         ans.append(Fraction(n1, n2)) 
 1 ##随机生成两个真分数
 2 def createF():
 3     fz1 = random.randint(0, 100)
 4     if fz1 == 0:
 5         fm1 = random.randint(1, 100)
 6     else:
 7 
 8         fm1 = random.randint(fz1, 100)
 9     f1 = Fraction(fz1, fm1)
10     fz2 = random.randint(1, 100)
11     fm2 = random.randint(fz2, 100)
12     f2 = Fraction(fz2, fm2)
13     return f1, f2
 1 ##两个真分数的四则运算
 2 def c2(q,ans):
 3     symbol = random.choice(['+','-','*','/'])
 4     f1,f2 = createF()
 5     if symbol =='+':
 6         while f1+f2>1:
 7             f1,f2 = createF()
 8         q.append(str(f1)+'+'+str(f2)+'=')
 9         ans.append(f1+f2)
10     elif symbol =='-':
11         f1,f2 = max(f1,f2),min(f1,f2)
12         q.append(str(f1)+'-'+str(f2)+'=')
13         ans.append(f1-f2)
14     elif symbol == '*':
15         while f1*f2>1:
16             f1,f2 = createF()
17         q.append(str(f1)+'×'+str(f2)+'=')
18         ans.append(f1*f2)
19     else:
20         while f1/f2>1:
21             f1,f2=createF()
22         q.append(str(f1)+'÷'+str(f2)+'=')
23         ans.append(Fractio
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python中的猴子补丁Monkey Patch 下一篇Python基础环境搭建

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目