C++小学生四则运算_余伟淇_郑鉴
https://github.com/kielingpao/sizeyunsuan
项目相关要求
1题目:实现一个自动生成小学四则运算题目的命令行程序
2说明
自然数:0, 1, 2, …。
• 真分数:1/2, 1/3, 2/3, 1/4, 1’1/2, …。
• 运算符:+, −, ×, ÷。
• 括号:(, )。
• 等号:=。
• 分隔符:空格(用于四则运算符和等号前后)。
• 算术表达式:
e = n | e1 + e2 | e1 − e2 | e1 × e2 | e1 ÷ e2 | (e),
其中e, e1和e2为表达式,n为自然数或真分数。
• 四则运算题目:e = ,其中e为算术表达式。
3需求:
1. 使用 -n 参数控制生成题目的个数,例如
Myapp.exe -n 10
将生成10个题目。
2. 使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围,例如
Myapp.exe -r 10
将生成10以内(不包括10)的四则运算题目。该参数可以设置为1或其他自然数。该参数必须给定,否则程序报错并给出帮助信息。
3. 生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如e1 − e2的子表达式,那么e1 ≥ e2。
4. 生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数。
5. 每道题目中出现的运算符个数不超过3个。
6. 程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。例如,23 + 45 = 和45 + 23 = 是重复的题目,6 × 8 = 和8 × 6 = 也是重复的题目。3+(2+1)和1+2+3这两个题目是重复的,由于+是左结合的,1+2+3等价于(1+2)+3,也就是3+(1+2),也就是3+(2+1)。但是1+2+3和3+2+1是不重复的两道题,因为1+2+3等价于(1+2)+3,而3+2+1等价于(3+2)+1,它们之间不能通过有限次交换变成同一个题目。
生成的题目存入执行程序的当前目录下的Exercises.txt文件。
其中真分数在输入输出时采用如下格式,真分数五分之三表示为3/5,真分数二又八分之三表示为2’3/8。
7. 在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的Answers.txt文件,格式如下:
特别的,真分数的运算如下例所示:1/6 + 1/8 = 7/24。
8. 程序应能支持一万道题目的生成。
9. 程序支持对给定的题目文件和答案文件,判定答案中的对错并进行数量统计,输入参数如下:
Myapp.exe -e <exercisefile>.txt -a <answerfile>.txt
统计结果输出到文件Grade.txt,格式如下:
Correct: 5 (1, 3, 5, 7, 9)
Wrong: 5 (2, 4, 6, 8, 10)
其中“:”后面的数字5表示对/错的题目的数量,括号内的是对/错题目的编号。为简单起见,假设输入的题目都是按照顺序编号的符合规范的题目。
解题思路
实现部分:
1.要通过命令行运行,输入指令而且带有 使用 -n 参数控制生成题目的个数、使用 -r 参数控制题目中数值(自然数、真分数和真分数分母)的范围的参数,所以程序用使用命令行参数的main函数。
2.生成的题目存入执行程序的当前目录下的Exercises.txt文件,所以要使用文件操作,创建题目文件,写入文件,还要创建答案的文件。
3.程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。需要通过有限次交换来判断是否是同一个题目。
测试部分:
1.需要考虑到各种文件字符、各种输入的情况,创建0道题等等保证程序的鲁棒性。
设计实现过程
命令行运行Myapp.exe该程序,可以通过命令行参数,可以通过
Myapp.exe -n 10
Myapp.exe -r 10
Myapp.exe -e <exercisefile>.txt -a <answerfile>.txt
等命令运行程序。
遇到的困难及解决方法
1.一开始没分工好,导致我们两人做的功能有重复。解决办法:好好沟通。
关键代码or设计说明
所有操作都在dos命令行下操作即可。不用IDE,只用记事本写代码,用命令行编译运行即可。
在命令行使用Myapp.exe以及几个可选参数进行工作。
可以与dos的命令配合,例如CD、type指令这些通通都可以使用,Myapp.exe(或Myapp.exe)已然成为DOS命令行下一个指令。
测试运行


PSP
|
PSP2.1 |
Personal Software Process Stages |
预估耗时(分钟) |
实际耗时(分钟) |
|
Planning |
计划 |
一小时 |
一小时 |
|
· Estimate |
· 估计这个任务需要多少时间 |
一周 |
一周 |
|
Development |
开发 |
3h |
3h |
|
· Analysis |
· 需求分析 (包括学习新技术) |
2d |
2d |
|
· Design Spec |
· 生成设计文档 |
3h |
3h |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
1h |
1h |
|
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
2h |
2h |
|
· Design |
· 具体设计 |
5h |
5h |
|
· Coding |
· 具体编码 |
4h |
4h |
|
· Code Review |
· 代码复审 |
1h |
1h |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
2h |
2h |
|
Reporting |
报告 |
1h |
1h |
|
· Test Report |
· 测试报告 |
1h |
1h |
|
· Size Measurement |
· 计算工作量 |
20min |
20min |
|
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30min |
30min |
|
合计 |
项目小结与结对感受
1.程序员要吃饭,如何才能吃饭并吃好饭,那就是自己必须比别人强。如果才能显得自己比别人强,那就要做到自己写的代码有自己的个性在里面。其实不然,目前,单兵作战只能适用于小型项目,对于大型的项目,组件化的开发,各个模块的接口,都需要定义,单靠单兵作战,无法成就强大而稳定的系统。
2.闭关自守,不交流。自己在那里Coding,只管自己的一摊子。殊不知,自己做了改动,会影响到别人的程序。
3.听不见别人的意见。程序员都认为自己很牛,对于别人的提出的意见都很难虚心地接受。
4.认为项目的成功不是自己的功劳而是大家的功劳,自己的地位很难在Team中体现。
5.过高地估计自己的能力。觉得自己什么都比别人好。
然而,开发一个项目就像踢足球一样,光有前锋是不够的,还要有教练(架构师)、队长(Team leader)。后卫踢得好的话,也能够有机会进球。自己有机会进球,虽然彰显了自己的能力,整个Team输了比赛,结果一样是失败。
所以,对于程序员来说,和足球运动员一样,只有彰显自己的个性,同时能够团结周围的Team的成员,一起去踢好一场球,做到双赢,才能够真正发挥自己的价值和作用。
C++小学生四则运算_余伟淇_郑鉴的更多相关文章
- 拉登是我罩的队_第三周_需求改进&原型设计
需求改进&原型设计 1. 需求&原型改进 1.1硬件部分(1) 硬件部分分为主机和遥控器,分别由两个单片机进行控制.(2) 单片机1:负责显示游戏的界面.使用数码管显示当前得分,使用不 ...
- 30道小学生四则运算题C/C++编程
软件工程科课上,老师通过实例讲解什么是程序,程序和软件的区别,要求我们通过短时间写一道编程题, 题目就是编写30道小学生四则运算题.以下就是源代码: #include<iostream.h> ...
- Demo02_对结构体进行文件读写_张仕传_作业_
#include <iostream> using namespace std; #define StructArrarySize 5 // 老师数量 #define StudentNum ...
- CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站
CLOSE-UP FORMALWEAR_意大利进口_2015秋冬_男装发布会_西装图片系列_男装西装设计资料_WeArTrends时尚资讯网_国内最专业的服装设计资讯网站 CLOSE-UP FORMA ...
- 金洪林:红邦创衣止于至善_品牌-生活时尚_品牌_YOKA时尚网
金洪林:红邦创衣止于至善_品牌-生活时尚_品牌_YOKA时尚网 金洪林:红邦创衣止于至善
- 联系我们_你我想法_【有男度】UNANDU 100%进口 全球设计师品牌精汇 男装_男装搭配_时尚男装_品牌男装_男装搭配技巧_男装网站
联系我们_你我想法_[有男度]UNANDU 100%进口 全球设计师品牌精汇 男装_男装搭配_时尚男装_品牌男装_男装搭配技巧_男装网站 联系我们 2012-02-17 国内北京公司总部 邮编 ...
- 联系我们_站内信息_站内资讯_网上定制衬衫|衬衫定制|衬衫定做-ChenShanLe衬衫乐
联系我们_站内信息_站内资讯_网上定制衬衫|衬衫定制|衬衫定做-ChenShanLe衬衫乐 衬衫乐定制网是国内领先的成衣定制机构,专业从事衬衫网络在线定制.高级定制服装的价格不菲,而衬衫乐运用了&qu ...
- Payssion,海外本地支付_海外本地收款_小语种本地支付_外贸收款_外贸网店收款_欧洲本地支付_俄罗斯本地支付_巴西支付_跨境支付_PAYSSION,让跨境支付更轻松!
Payssion,海外本地支付_海外本地收款_小语种本地支付_外贸收款_外贸网店收款_欧洲本地支付_俄罗斯本地支付_巴西支付_跨境支付_PAYSSION,让跨境支付更轻松! 首页 / 关于 ...
- MUD江湖_MUD文字游戏_MUD五指_武林群侠_北侠_夺宝江湖_书剑_文字江湖游戏_MUD游戏下载
MUD江湖_MUD文字游戏_MUD五指_武林群侠_北侠_夺宝江湖_书剑_文字江湖游戏_MUD游戏下载 武侠类手机文字游戏,经典再现高度自由玩法宠物 自制装备 师徒自立门派 自造武功欢迎来玩 Q群 1 ...
随机推荐
- redis list结构
一个功能肯定有其应用场景: PUSH和POP操作,其实是队列的基本操作.Redis的list就是一个极其强大的队列系统.我们在哪些地方会用到队列呢?下面,我们说两个例子: a,评论系统 逛过微博的筒子 ...
- Maven入门----介绍及环境搭建(一)
知识点: 介绍Maven 本机搭建Maven环境 DEMO测试 本地仓库迁出 Maven简介: 百度百科: 说到底就是一个项目管理工具. 本机搭建Maven环境: Maven的环境需要jdk环境的支持 ...
- Oracle中遇到的错误
1. ORA-00937: 不是单组分组函数 和 不是group by表达式 --select count(corp_tn),state_code from t_oa_main where cor ...
- FPGA应用及ARM-FPGA架构举例
FPGA的应用非常广泛,通信领域,视频图像处理领域,汽车电子领域,消费电子领域,工业领域,数据处理领域等,都能看到FPGA的身影. 在设计中,FPGA通常和其他处理IC架构,完成整个设计.FPGA-A ...
- 蓝桥杯 算法训练 ALGO-114 黑白无常
算法训练 黑白无常 时间限制:1.0s 内存限制:256.0MB 问题描述 某寝室的同学们在学术完之后准备玩一个游戏:游戏是这样的,每个人头上都被贴了一张白色或者黑色的纸,现在每个人都会说一句 ...
- iSCSI存储的3种连接方式
我们分析了iSCSI存储的系统结构,下面来看iSCSI是如何与服务器.工作站等主机设备来连接的,也就是我们如何建立一个iSCSI网络存储系统. iSCSI设备的主机接口一般默认都是IP接口,可以直接与 ...
- mysql实战优化之七:数据库侧配置优化
对于功能,我们可能知道必须改进什么:但对于性能问题,有时我们可能无从下手.其实,任何计算机应用系统最终队可以归结为: cpu消耗 内存使用 对磁盘,网络或其他I/O设备的输入/输出(I/O)操作. 但 ...
- 1117 Eddington Number
题意:给出了N个数字,确定一个尽可能大的数字E,要求这N个数字中大于E的数字有E个. 思路: 乍一看不知道题目在说啥.静下心来多读几遍题目,在草稿纸上比划比划,发现是个大水题.解释一下样例,原始序列为 ...
- UE4子弹特效
转自:http://blog.ch-wind.com/ue4-projectile-visual-effects/ 子弹使用抛体就可以实现了,但是要让其看起来更加真实,则可能需要加上一些粒子特效. 当 ...
- maven(基础介绍一)
maven:提供的作用有以下几点: 1 jar包依赖 这个也许会maven最突出的特点了使用maven不需要上网单独下载jar包,只需要在配置文件pom.xml中配置jar包的依赖关系,就可以自动的下 ...