zoukankan      html  css  js  c++  java
  • 四则运算 SPEC 20160911

    本文档随时可能修改,并且没有另行通知。
    请确保每一次在开始修改你的代码前,读标题中的日期,如果晚于你上次阅读,
    请重读一次。

    教师节你去探望初中数学老师,她感叹你当年真是个优秀学生啊,从来不报怨作
    业多,然后关切地问,“你现在学啥呢?”你说学计算机呢,她要求你举个例子
    证明你学的知识有用。你的回答她一直不懂。

    你回家后连夜编了个程序,展示你的水平。程序准备帮助她给初中生出四则运算
    题目,学生答题后,自动判断对错。你第二天去找老师献宝。

    功能1. 四则运算

    支持出题4个数的四则运算题目,所有题目要求作者有能力正确回答 (提示:1/3
    != 0.33333333333333333333333333333333,而是无限长)。

    为了快出成果,你快速造个控制台的版本,包括以后改版成更优秀界面的核心功
    能,并考虑到扩展。

    你在老师面前作如下表演 (数字你用excel验算过了,UI的卖萌部分你还没有想好) 。

    > f4
    1+2*3+4=
    ?11
    答对啦,你真是个天才!
    1+2*3+5=
    ?11
    再想想吧,答案似乎是12喔!
    1+2/4-5=
    ?-3.5
    答对啦,你真是个天才!
    ...(一共20道题)
    
    你一共答对4道题,共20道题。
    

    完成这个功能,老师对你的信任值+10.

    功能2. 支持括号

    老师看了你的表演,大大赞赏了你。然后她说,"你的题库里怎么都是没有括号
    的题呢,我记得你当初括号就掌握得不好啊。"你的脸红了,对老师说,"给我2
    个小时时间,我给你一个新版本,有括号的。"

    你拿出笔记本,偷偷微信你们《构建之法》班的学霸,她说肯定能行,但是细节
    信号不好你听不清,只捕捉到隐约几个词"逆波兰""后缀表达式""堆栈""我看好
    你""数据结构"。

    两小时后,在老师面前你在控制台下输入f4,然后回车。

    > f4
    1+2*(3+4)=
    ?15
    答对啦,你真是个天才!
    (1+2)*3+5=
    ?11
    再想想吧,答案似乎是14喔!
    ((1/2)-4)*5=
    ?-17.5
    答对啦,你真是个天才!
    ...(一共20道题)
    
    你一共答对4道题,共20道题。
    

    完成这个功能,老师对你的信任值+15.

    功能3. 限定题目数量,"精美"打印输出

    "就这点儿题,像你当年做得那么快,一会儿就完成啦!"老师说,"另外,我想打
    印出来,上课也不能带台机器。又另外,你把答案也打出来呗,我把答案剪掉,
    题目给学生做。"

    一看需求这么多,你生怕她会说,"这都是很简单的功能,你一定能完成吧"。你
    知道如果承诺今晚,明早交工的时候她一定想出了更多可怕的需求,你赶紧说,
    "老师我现在就做。"

    你忘记怎么调用打印机了,就把答案与题目横向对齐,输出在文件的右边。告诉
    老师txt文件可以用WORD打开,也能打印。她满意而意味深长地笑了,表示同意。

    你输入命令执持的时候,脑袋比手指头还疼。

    >f4 -c 3
    1+2*(3+4)=                     15
    (1+2)*3+5=                     14
    ((1/2)-4)*5=                   17.5
    

    你对老师说,"-c"这个参数后面输入多少,就生成多少题目。老师输入

    >f4 -c -200
    题目数量必须是 正整数。
    >f4 -c 3.5
    题目数量必须是 正整数。
    >f4 -c test
    题目数量必须是 正整数。
    

    老师欣慰的笑了。你怔怔地看着她,心下怀疑她真的是教初中数学的那位么。

    完成此功能,老师对你的信任值+5.

    功能4. 支持分数出题和运算

    教师节后,你终于又回到美丽优雅并且正常的东北师范大学净月校区,在去食堂
    的路上偶遇你心目中的女神 (或男神,请自行替换)。她说,"哎呀,这跟我们
    《构建之法》课上的题目要求一样啊,真是巧合。"

    "不要客气,代码拿去!反正我也没用。"你说,"如果有需求变更或扩展,尽管找
    我。"

    你伏笔埋得不错。女神马上说,"对啊,有一点儿点儿不一样,你午饭时间加加
    班帮我改出来吧。"

    她的题目还要求支持分数运算,你不禁想到了功能1中你特意规避了一些题目不
    出。她想要的是下面的样子:

    >f4 -c 3
    1/3+2/3+1+1=                   3
    1/2+2/3+1+2=                   4 1/6
    7/5+3/4*2-3                    -1/10
    

    你想到越难的题目就越能表现你的能力,欣然应允了,转身跑向实验室,路上就
    开始给师兄打电话。背后传来女神的声音,"提示1:别忘了约分。提示2:带分数,
    即 一又二分之一 表示 1 1/2。"

    完成这个功能,女神对你的青睐+50.

    未来

    还有可能把程序改造成GUI版,把程序改造为web版,把程序移植为android/ios
    版。今天留好接口,明天就不发愁。

    要求 !,必选项。此项完成+50,此项不做-50.

    参考《构建之法》第4章两个合作,在每周持续结对编程上述功能,要求发布随
    笔1篇,给出结对编程的体会,以及至少5项在编码、争论、复审等活动中花费时
    间较长,给你较大收获的事件。要求给出照片1张,带包括结对的两位同学、工
    作地点、计算机,可选项包括其他能表达结对编程工作经历的物品或场景。

  • 相关阅读:
    发布spring cloud + vue项目
    以太坊上发行ERC20代币
    [转]大白话讲解Promise(一)
    比特币测试网络搭建
    非对称加密, 助记词, PIN, WIF
    搭建EOS未完
    [转]EOS智能合约 & 私链激活 & 基本操作
    [转]https://www.jianshu.com/p/06443248f4d8
    web3js 进行转账
    [转]How to Send Ethereum with Web3.js and Node
  • 原文地址:https://www.cnblogs.com/younggift/p/5860707.html
Copyright © 2011-2022 走看看