四则运算可能需要注意的地方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) 收藏 举报 版权声明:本 ...
随机推荐
- Redis入门第一课
为什么需要NoSQL? 1High performance:web1.0不能点赞互动,web2.0可以互动,里面有很多高并发读写 2Huge Storage:海量数据的高效率存储和访问 3High ...
- learning ddr write leveling
- unity中让物体移动到鼠标点击地面任一点的位置(单击移动和双击暂停移动)并生成图标
using UnityEngine; using System.Collections.Generic; using UnityEngine.EventSystems; using UnityEngi ...
- docker(三)容器的基本操作
下载镜像 docker pull name 基本启动容器 docker run IMAGE command args run 在新容器中运行 IMAGE 镜像名称 command 容器命令 args ...
- Mac 无需网线创建ipv6环境
首先需要准备Mac一台 iPhone 2部(其中一部用于测试你的项目,请装上你的应用) 连接线一根 第一步:通过数据线连接iphone和mac 第二步:打开iphone的个人热点并选择仅USB 如果没 ...
- sas 变量类型转换
data b2: set b1; newbl=put(oldbl,10.); run; 根据转换后的类型灵活填写
- 开发框架DevExtreme发布v18.2.4|附下载
DevExtreme Complete Subscription是性能最优的 HTML5,CSS 和 JavaScript 移动.Web开发框架,可以直接在Visual Studio集成开发环境,构建 ...
- debug fortran
exmple: gfortran -g -fcheck=all -Wall segf.f90
- adb shell模拟点击事件(input tap)
前言:appium定位也不是万能的,有些元素还是定位不到,这个时候只能换一个方式定位了,可以使用这个adb shell模拟点击. 1.input可以实现的功能 输入文本信息:input text gu ...
- day 50 JS框架基础
一 JavaScript的历史1 Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigator 2.0产品中开发出一套livescript的脚本 ...