0x00 Code

查询源代码及README请点此

0x01 需求分析

实现一个自动生成小学四则运算题目的命令行程序。

0x02 功能设计

主要功能为:

  1. 接受用户输入以便知道要出多少道题目python start.py -n NUMBER
  2. 能随机产生题目: 包括真分数在内的四则运算
  3. 打印题目并接收用户输入的答案
  4. 用户输入的答案与程序计算出来的结果进行匹对

    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--四则运算题目生成器的更多相关文章

  1. 结对编程(四则运算题目生成器core第七组)对接心得

    在这篇博客博主想记录一下此次结队编程作业中与ui组对接的心得.在这里我也想表达一下对涂涵越同学的敬佩,他遇到困难时孜孜不倦求解的毅力着实让我佩服,我们在dll的生成上遇到了很大的困难,要不是他的坚持我 ...

  2. 结对项目:四则运算题目生成器(C)

    一.Github项目地址:https://github.com/Spartaright/myapp(合作人:梁天龙.赖佑铭) 二.PSP表格(如下图) 1.项目地址 PSP表格 PSP2.1 Pers ...

  3. 结对编程1 —— 基于GUI和Swing的四则运算题目生成器

    合作伙伴 201421123102 王艳秋 201421123106 陈 雄 代码地址 题目描述 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI( ...

  4. 结对编程1--基于GUI的四则运算题目生成器

    最终项目详细代码(coding地址)/李志强的博客/我的详细代码/方言的博客 一.需求分析 1.实现之前项目的功能,如:除了整数之外,还要支持真分数的四则运算,真分数的运算,并且要求能处理用户的输入, ...

  5. 结对编程1---基于Flask的四则运算题目生成器

    项目代码地址 / WEB应用地址 / 合作伙伴iFurySt博文链接 需求分析 本次程序是基于原有的控制台四则运算器的基础上,改成WEB的形式,同时还增加了一些新的功能.同时因为交互方式的改变,代码也 ...

  6. 结对项目:四则运算题目生成器(Java)

    目录 一.需求分析 二.开发计划 三.实现方案 3.1 项目结构 3.2 代码说明 3.2.1 出题功能代码 3.2.3 批卷功能代码 3.2.3 四则运算功能代码 四.效能分析 4.1 程序效能 4 ...

  7. 【SE】Week1 : 四则运算题目生成器批改器程序总结

    用户需求详见:http://www.cnblogs.com/jiel/p/4810756.html 1)PSP表格分析(预计耗时): PSP2.1 Personal Software Process ...

  8. 介绍一款原创的四则运算算式生成器:CalculateIt2

    家里小朋友读一年级了,最近每天都有一些10以内的加减法口算练习,作为程序员爸爸,自然也是想办法能够偷懒,让电脑出题,给小朋友做些练习.于是,自己在业余时间开发了一个四则运算算式生成器,名为:Calcu ...

  9. 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序

    1. 编写一个能自动生成小学四则运算题目的程序.(10分)   基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图.   本题发一篇随笔,内容包括: 题 ...

随机推荐

  1. 日常API之C#百度人脸识别

    最近看到一只我家徒儿发来的链接,原来是一堆百度AI的SDK,于是一时兴起就做了一只人脸识别,喵喵喵(●'◡'●) 一.准备工作 首先,当然是下载SDK啦:http://ai.baidu.com/sdk ...

  2. 云端TensorFlow读取数据IO的高效方式

    低效的IO方式 最近通过观察PAI平台上TensoFlow用户的运行情况,发现大家在数据IO这方面还是有比较大的困惑,主要是因为很多同学没有很好的理解本地执行TensorFlow代码和分布式云端执行T ...

  3. HDU 3625 Examining the Rooms:第一类stirling数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3625 题意: 有n个房间,每个房间里放着一把钥匙,对应能开1到n号房间的门. 除了1号门,你可以踹开任 ...

  4. SQL的JOIN语法解析(inner join, left join, right join, full outer join的区别)

    原文链接:http://www.powerxing.com/sql-join/ 总的来说,四种JOIN的使用/区别可以描述为: left join 会从左表(shop)那里返回所有的记录,即使在右表( ...

  5. MYSQL数据库相关操作---读书笔记分享

    ===================数据库软件: <DBMS,DataBase Management System >数据库: 保存特定类型数据的容器<DB,database> ...

  6. 改进的Bresenham算法

    这里不仔细讲原理,只是把我写的算法发出来,跟大家分享下,如果有错误的话,还请大家告诉我,如果写的不好,也请指出来,一起讨论进步. 算法步骤: (1) 输入直线的两端点P0 (x0, y0)和P1 (x ...

  7. JMeter元件的作用域和执行顺序

    元件的作用域 配置元件:会影响其作用范围内的所有元件,作用范围是最大的,只要创建就对所有元件起作用. 前置处理器:在其作用范围内的每一个Sample元件之前执行: 定时器:对其作用范围内的每一个Sam ...

  8. java子类和父类中静态块、非静态块、构造函数的执行顺序

    public class qqqq extends Parent{ public static void main(String[] args) { new Child(); } } class Pa ...

  9. 【Centos】yum安装MySQL

    安装步骤 1. 点击此处下载MySQL的YUM源 -- [ MySQL RPM] 选择适合你平台的rpm,我的是centos7 2. 安装MySQL的yum源,即RPM sudo yum locali ...

  10. JAVA中反射机制一

    反射一 基本概念 一.反射机制的基本概念 什么是反射?反射是指在运行状态中,对于任意一个类,都可以获取到这个类的所有属性和方法:对于任意一个对象,都能够调用这个对象的任意方法和属性:这种动态获取信息及 ...