1st_homework_SE--四则运算题目生成器
0x00 Code
0x01 需求分析
实现一个自动生成小学四则运算题目的命令行程序。
0x02 功能设计
主要功能为:
- 接受用户输入以便知道要出多少道题目
python start.py -n NUMBER
- 能随机产生题目: 包括真分数在内的四则运算
- 打印题目并接收用户输入的答案
- 用户输入的答案与程序计算出来的结果进行匹对
5.将生成器分别放在3个不同的文件。
calc.py 为 本项目所使用函数文件
config.py 为 配置文件
start.py 为启动文件
方便进行管理以及功能改善。
可阅读性和维护性较高
6.可以在配置文件中进行设置Fraction Mode.来满足不同年龄段小朋友的做题需求
0x03 代码分析
这次的题目比较简单。
python有包含fraction
的包,导入from fractions import Fraction
即可使用。
使用全局变量global result
可在各个函数中相互调用,但是在函数中需声明
采用各个函数分离的方式,由于选择operation的过程有较多重复代码,所以将其分离。
def calc_fract():
temp1,temp2=random.randrange(1,10),random.randrange(1,10)
if temp1>temp2:
temp1,temp2=temp2,temp1
fract1=Fraction(temp1,temp2)
temp1, temp2 = random.randrange(1, 10), random.randrange(1, 10)
if temp1>temp2:
temp1,temp2=temp2,temp1
fract2 = Fraction(temp1, temp2)
if fract1<fract2:
fract1,fract2=fract2,fract1
op = ['+', '-', '*', '/']
operation = random.choice(op)
operate(fract1,fract2,operation)
def calc_int():
temp1, temp2 = random.randrange(1, 10), random.randrange(1, 10)
if(temp1<temp2):
temp1,temp2=temp2,temp1
op = ['+', '-', '*', '/']
operation = random.choice(op)
operate(temp1,temp2,operation)
0x05 测试运行:
Fraction Mode
No Fraction Mode :
0x05 psp
0x06 小结
1.第一次自己写包再在不同的文件中调用。 import时只要写明文件名即可,不用加上.py
2.raw_input()
这个函数在使用时直接获取的内容为str型。
3.eval()
这个函数可以计算str中包含的运算式子.这样可以减少很多代码量!不过由于eval()的安全问题,建议少用。
4.在本次试验中遇到最大的问题是,一开始程序对answer和result无法判断正确,后来睡了一觉突然想起来有可能是type的问题。结果果然是!一个是 “class fractions. fraction” 一个是“type int”
1st_homework_SE--四则运算题目生成器的更多相关文章
- 结对编程(四则运算题目生成器core第七组)对接心得
在这篇博客博主想记录一下此次结队编程作业中与ui组对接的心得.在这里我也想表达一下对涂涵越同学的敬佩,他遇到困难时孜孜不倦求解的毅力着实让我佩服,我们在dll的生成上遇到了很大的困难,要不是他的坚持我 ...
- 结对项目:四则运算题目生成器(C)
一.Github项目地址:https://github.com/Spartaright/myapp(合作人:梁天龙.赖佑铭) 二.PSP表格(如下图) 1.项目地址 PSP表格 PSP2.1 Pers ...
- 结对编程1 —— 基于GUI和Swing的四则运算题目生成器
合作伙伴 201421123102 王艳秋 201421123106 陈 雄 代码地址 题目描述 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI( ...
- 结对编程1--基于GUI的四则运算题目生成器
最终项目详细代码(coding地址)/李志强的博客/我的详细代码/方言的博客 一.需求分析 1.实现之前项目的功能,如:除了整数之外,还要支持真分数的四则运算,真分数的运算,并且要求能处理用户的输入, ...
- 结对编程1---基于Flask的四则运算题目生成器
项目代码地址 / WEB应用地址 / 合作伙伴iFurySt博文链接 需求分析 本次程序是基于原有的控制台四则运算器的基础上,改成WEB的形式,同时还增加了一些新的功能.同时因为交互方式的改变,代码也 ...
- 结对项目:四则运算题目生成器(Java)
目录 一.需求分析 二.开发计划 三.实现方案 3.1 项目结构 3.2 代码说明 3.2.1 出题功能代码 3.2.3 批卷功能代码 3.2.3 四则运算功能代码 四.效能分析 4.1 程序效能 4 ...
- 【SE】Week1 : 四则运算题目生成器批改器程序总结
用户需求详见:http://www.cnblogs.com/jiel/p/4810756.html 1)PSP表格分析(预计耗时): PSP2.1 Personal Software Process ...
- 介绍一款原创的四则运算算式生成器:CalculateIt2
家里小朋友读一年级了,最近每天都有一些10以内的加减法口算练习,作为程序员爸爸,自然也是想办法能够偷懒,让电脑出题,给小朋友做些练习.于是,自己在业余时间开发了一个四则运算算式生成器,名为:Calcu ...
- 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序
1. 编写一个能自动生成小学四则运算题目的程序.(10分) 基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图. 本题发一篇随笔,内容包括: 题 ...
随机推荐
- 日常API之C#百度人脸识别
最近看到一只我家徒儿发来的链接,原来是一堆百度AI的SDK,于是一时兴起就做了一只人脸识别,喵喵喵(●'◡'●) 一.准备工作 首先,当然是下载SDK啦:http://ai.baidu.com/sdk ...
- 云端TensorFlow读取数据IO的高效方式
低效的IO方式 最近通过观察PAI平台上TensoFlow用户的运行情况,发现大家在数据IO这方面还是有比较大的困惑,主要是因为很多同学没有很好的理解本地执行TensorFlow代码和分布式云端执行T ...
- HDU 3625 Examining the Rooms:第一类stirling数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3625 题意: 有n个房间,每个房间里放着一把钥匙,对应能开1到n号房间的门. 除了1号门,你可以踹开任 ...
- SQL的JOIN语法解析(inner join, left join, right join, full outer join的区别)
原文链接:http://www.powerxing.com/sql-join/ 总的来说,四种JOIN的使用/区别可以描述为: left join 会从左表(shop)那里返回所有的记录,即使在右表( ...
- MYSQL数据库相关操作---读书笔记分享
===================数据库软件: <DBMS,DataBase Management System >数据库: 保存特定类型数据的容器<DB,database> ...
- 改进的Bresenham算法
这里不仔细讲原理,只是把我写的算法发出来,跟大家分享下,如果有错误的话,还请大家告诉我,如果写的不好,也请指出来,一起讨论进步. 算法步骤: (1) 输入直线的两端点P0 (x0, y0)和P1 (x ...
- JMeter元件的作用域和执行顺序
元件的作用域 配置元件:会影响其作用范围内的所有元件,作用范围是最大的,只要创建就对所有元件起作用. 前置处理器:在其作用范围内的每一个Sample元件之前执行: 定时器:对其作用范围内的每一个Sam ...
- java子类和父类中静态块、非静态块、构造函数的执行顺序
public class qqqq extends Parent{ public static void main(String[] args) { new Child(); } } class Pa ...
- 【Centos】yum安装MySQL
安装步骤 1. 点击此处下载MySQL的YUM源 -- [ MySQL RPM] 选择适合你平台的rpm,我的是centos7 2. 安装MySQL的yum源,即RPM sudo yum locali ...
- JAVA中反射机制一
反射一 基本概念 一.反射机制的基本概念 什么是反射?反射是指在运行状态中,对于任意一个类,都可以获取到这个类的所有属性和方法:对于任意一个对象,都能够调用这个对象的任意方法和属性:这种动态获取信息及 ...