四则运算可能需要注意的地方V1.1
作业:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/997
文档下载:https://coding.net/u/Dawnfox/p/f4/git/tree/master/doc
| Vesion | 开始时间 | 结束时间 | 备注 |
|---|---|---|---|
| (V1.0) | 2017/10/4 9:44:22 | 2017/10/4 11:33:12 | 初稿总结 |
| (V1.1) | 2017/10/4 15:57:08 | 2017/10/4 16:00:57 | 补充题目自动生成,并非用户手动输入 |
备忘:用于最后检验代码的功能是否完善,有遗漏的地方之后再补充。
一、正文
可执行文件(.exe)的文件名为f4,“>”表示可执行文件所在的文件目录,四则运算的题目是由程序生成而并非用户手动输入,用户只输入题目数量或者计算的结果。
功能1
仅支持四则基础运算,此时不支持括号。
a. 四则基础运算是指加(+),减(-),乘(*),除(/)。
b. 操作数的范围题目没明确指出,此处限定操作数的范围为-9999~9999,操作数应为整数或分数。
c. 功能1限定题目数量为20道。
d. 输入格式
在控制台输入“f4 回车”(无命令行参数)。
用户计算出的表达式结果的输入格式为“?a”,a为正确答案。如“?10”。
e. 输出格式
如果用户输入答案与题目正确的答案相等,则输出“答对啦,你真是天才!”,否则输出“再想想吧,答案似乎是(正确答案数字)喔!”。
用户答完20道题后,最后输出“你一共答对a道题,共b道题”。a为答对的题数量,b为题的总数,此时为20。还需注意最后这句话上面有一行空行。
f. 分数
1/3 != 0.33333333333333333333333333333333,而是无限长。该段话说明分数能够除尽时则可以用小数表示,否则应为分数形式。
功能2
在功能1基础上进行拓展,支持括号。
a. 括号此处只包括小括号(),不包括中括号[]与大括号{}。
b. 其他注意事项见功能1。
功能3
可定制题目数量,生成的题目两两之间不相同,将题目与正确答案打印到控制台与txt文件中。
a. 参数意义
两个命令行参数,参数1为-c,参数2代表题目数量。例:f4 -c 5 回车,该命令表示生成5道题目。
b. 参数格式
代表题目数量的参数2必须为正整数,如果为负数、小数、字符串、0或其他格式的不合法参数,输出“题目数量必须是 正整数。”。例:
f4 -c -200
题目数量必须是 正整数。
c. 相同题目的定义
普遍认为的相同题目是指题目A与题目B的操作符与操作数数量、顺序与形式都一致,如:题目A为1+2+3+4,而题目B为1+2+3+4。此处还需对“相同题目”进行定义,指看起来不一样的表达式通过交换律、结合律、分配律变换成另一道题目。如:题目A为12+32,题目B为2(1+3)+0。
d. 输出方式
“你忘记怎么调用打印机了,就把答案与题目横向对齐,输出在文件的右边。告诉老师txt文件可以用WORD打开,也能打印。”从这句话推断出,功能3不仅需要在控制台输出题目与正确答案,同时需要将题目与正确答案记录在相应的txt文件中。
e. 输出格式
答案与题目横向对齐,输出在文件的右边。需要注意题目是左对齐,而答案则是题目水平右侧且答案的第一个数字竖直方向对齐。例:
f4 -c 3
1+2(3+4)= 15
(1+2)3+5= 14
((1/2)-4)5= 17.5
功能4
待定,附加题,暂不考虑
四则运算可能需要注意的地方V1.1的更多相关文章
- [转]使用spring中的@Transactional注解时,可能需要注意的地方
前情提要 在编写业务层方法时,会遇到很多需要事务提交的操作,spring框架为我们提供很方便的做法,就是在需要事务提交的方法上添加@Transactional注解,比起我们自己开启事务.提交以及控制回 ...
- 使用spring中的@Transactional注解时,可能需要注意的地方
前情提要 在编写业务层方法时,会遇到很多需要事务提交的操作,spring框架为我们提供很方便的做法,就是在需要事务提交的方法上添加@Transactional注解,比起我们自己开启事务.提交以及控制回 ...
- [转]keil使用详解
第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上.结构性.可读性.可维护性上有明显的优势,因而易学易用.用过 ...
- 设计模式(一):“穿越火线”中的“策略模式”(Strategy Pattern)
在前段时间呢陆陆续续的更新了一系列关于重构的文章.在重构我们既有的代码时,往往会用到设计模式.在之前重构系列的博客中,我们在重构时用到了“工厂模式”.“策略模式”.“状态模式”等.当然在重构时,有的地 ...
- *HDU2254 矩阵乘法
奥运 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...
- ENode框架Conference案例分析系列之 - ENode框架初始化
前言 Conference案例是使用ENode框架来开发的.之前我没有介绍过ENode框架是如何启动的,以及启动时要注意的一些点,估计很多人对ENode框架的初始化这一块感觉很复杂,一头雾水.所以,本 ...
- Log4j 与 Logback的ConversionPattern对比
为了能将log4j的配置无缝转到logback,需要了解其中ConversionPattern的差异,以下是对比表格,内容来自: log4j官网 logback官网 其中可能需要转换的地方主要有两块: ...
- 温故而知新 OOP
设计原则1: 找出应用中可能需要发生改变的地方,把它们独立出来,不要和那些不需要变化的代码混在一起换句话说,如果每次新的需求一来,都会使某方面的代码发生变化,此时你就可以确定,这部分代码属于不稳定代码 ...
- springmvc源码分析
Spring MVC源码分析--初始化过程 标签: springmvcconstructioniocclass 2012-09-09 21:32 26578人阅读 评论(3) 收藏 举报 版权声明:本 ...
随机推荐
- 如何将两个字段合成一个字段显示(oracle和sqlserver的区别)
oracle中,如何将两个字段数据合并成一个字段显示,接下来看一下在sql server和pl/sql的区别 sql server中如何合并(用Cast()函数) --1.创建模拟的数据表--- cr ...
- shell脚本分析一
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言.Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界 ...
- JS-封装类或对象的最佳方案
JS封装类或对象的最佳方案 面向对象强大的优点之一是能够创建自己专用的类或者对象,封装一组属性和行为.抛开性能来说,JS要比面向对象语言如JAVA要灵活好用的多,组装数据结构很灵活方便.那么我们如何来 ...
- unity3D打包发布Apk详细步骤
1.复制android-sdk-windows文件夹到C盘或者D盘或者你可以找到的任意盘任意目录,注意:不能在中文目录下!! 复制完成之后,打开unity,新建一个项目,打开Edit-Preferen ...
- It is never too late!
整理着过去的学习笔记,零零碎碎的,偶尔夹杂着当时的心境. 泛泛的学着东西,不很系统,不很深入,倒像是在拾海,有时捡捡贝壳,有时抓抓螃蟹.叹服大海的神奇,还没来得及深钻某个领域. (以下内容写于2016 ...
- 十二. Python基础(12)--生成器
十二. Python基础(12)--生成器 1 ● 可迭代对象(iterable) An object capable of returning its members one at a time. ...
- 八. Python基础(8)--函数
八. Python基础(8)--函数 1 ● 函数返回布尔值 注意, 自定义的函数也可以是用来作逻辑判断的, 例如内置的startswith()等函数. def check_len(x): ' ...
- 下载python中package的简便方法
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxx
- TagHelpers 使用
@using AuthoringTagHelpers @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers // 手动高亮
- DevExpress v18.1新版亮点——DevExtreme篇(二)
用户界面套包DevExpress v18.1日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了DevExtreme JavaScript Controls v18.1 的新功能 ...