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. LinkQueue(链队列)

    关于Node.h,请参考LinkStack #include"Node.h" template<typename ElemType> class LinkQueue { ...

  2. nodejs 文件读取一行

    作者QQ:1095737364    QQ群:123300273     欢迎加入!   废话没有,直接上代码: app.get('/company', function (req, res, nex ...

  3. insertBefore 和 insetAfter函数详解

    在Javascript DOM编程艺术上面讲到,insertBefore(   )函数,即在已有元素前面插入一个新元素: 语法: parentElement . insertBefore(newEle ...

  4. Navicat提示Access violation at address 004E9844 in module ‘comctl32.dll’

    内存越界问题,重新注册下Windows的动态链接库,首先“开始”—“cmd”,在打开的dos窗口中运行“for %1 in (%windir%\system32\*.dll) do regsvr32. ...

  5. Python下的OpenCV学习 02 —— 图像的读取与保存

    OpenCV提供了众多对图片操作的函数,其中最基本的就是图片的读取与输出了. 一.读取图片 利用OpenCV读取一张图片是非常容易的,只需要用到 imread() 函数,打开shell或者cmd,进入 ...

  6. CentOS下安装JDK7

    下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html 1. 安 ...

  7. 刚安装Fedora 23工作站后,你必须要做的24件事

    [51CTO.com快译]Fedora 23工作站版本已发布,此后我们就一直在密切关注它.我们已经为新来读者介绍了一篇安装指南:<Fedora 23工作站版本安装指南> 还有一篇介绍如何从 ...

  8. RSA简介(四)——求逆算法

    此处所谓求逆运算,是指在模乘群里求逆. 第一节里提到互质的两个定义: (1)p,q两整数互质指p,q的最大公约数为1. (2)p.q两整数互质指存在整数a,b,使得ap+bq=1. 只要明白了欧几里得 ...

  9. 【Linux init】systemd 服务单元管理

    系统服务管理systemd  Control the systemd system and service manager 控制systemd系统和服务管理,并行启动服务时充分发挥了多核处理器的性能, ...

  10. @media实现网页自适应中的几个关键分辨率

    不同分辨率设备或不同窗口大小下网页布局经常是不同的,一不小心就会发生错位.可以利用@media screen实现网页布局的自适应,但是怎样兼容所有主流设备就成了问题.到底分辨率是多少的时候设置呢?首先 ...