结队作业,小学生3年级数学题出题器
结对作业,
学号1:211606308 江东
学号2:211606306 黄柏涛
一、预估与实际
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
Estimate | ? 估计这个任务需要多少时间 | 1200 | 1365 |
Development | 开发 | ||
Analysis | ? 需求分析 (包括学习新技术) | 200 | 240 |
Design Spec | ? 生成设计文档 | 60 | 70 |
Design Review | ? 设计复审 | 60 | 70 |
Coding Standard | ? 代码规范 (为目前的开发制定合适的规范) | 80 | 90 |
Design | ? 具体设计 | 80 | 90 |
Coding | ? 具体编码 | 60 | 70 |
Code Review | ? 代码复审 | 20 | 40 |
Test | ? 测试(自我测试,修改代码,提交修改) | 30 | 30 |
Reporting | 报告 | 70 | 90 |
Test Repor | ? 测试报告 | 60 | 70 |
Size Measurement | ? 计算工作量 | 20 | 35 |
Postmortem & Process Improvement Plan | ? 事后总结, 并提出过程改进计划 | 50 | 55 |
合计 | 1842 |
二、需求分析
我通过上网的方式了解到,小学三年级数学有如下的几个特点:
- 特点1:两个加数应该在100以内
- 特点2:减法的计算结果不能出现负数
- 特点3:除数不能为0
- 特点4:有余数要打出余数
特点5:小学三年级已经学会了四则运算的加减乘除混合运算以及他的优先级规则
...
三、设计
1. 设计思路
这个程序有三个大的方法构成,分别为show1()与show2()show3()来显示并将小学1,2,3年级计算题目的结果输入到out.txt,之前我们已经完成了1,2年级的出题器,这次主要是初步完成三年级的出题器.
- ...
2. 实现方案
技术关键点
1为了确保输出的两数之和小于100,两数之差大于0,除数不为0,需要设计一些算法
2当两数相减出现负数的时候把两数交换位置避免出现负数,优化了一年级的算术题
3小学三年级数学已经学会了四则运算的优先级规则
- 准备工作:先在Github上创建仓库,克隆到本地,完成后提交。
- 技术关键点:要现在Eclipse先打出代码然后把代码输入到out.txt文件后,要在cmd上运行检测。在基础的代码上还要加入四则运算。
四、编码
通过按照自己的设计方案来写代码,遇到不会的知识点就看小静老师上学期的PPT与作业,上网百度了逆波兰表达式的算法,将我们平常习惯用的中缀表达式改写成后缀表达式来解决运算时的优先级问题
1. 调试日志
- 运用逆波兰公式的时候忘记加入优先级,导致只能按顺序加减乘除,不会出现先乘除后加减的正确结果。
2. 关键代码
private static void Reverse Polish Notation(String[] strArr){
String str = "+-/";
Stack stack = new Stack();
//遍历数组中的每一个元素
for(String s : strArr){
if(!str.contains(s)){
//如果是数字,放入栈中
stack.push(s);
}else{
int a = Integer.valueOf(stack.pop());
int b = Integer.valueOf(stack.pop());
switch(s){
case "+" :
stack.push(String.valueOf(a+b));
break;
case "-" :
stack.push(String.valueOf(b-a));
break ;
case "" :
stack.push(String.valueOf(a*b));
break;
case "/" :
stack.push(String.valueOf(b/a));
break ;
}
}
}
System.out.println(stack.pop());
}
注:这段逆波兰表达式是我百度学习到的,具体出栈入栈的逻辑还是没法完全理解透彻,参考网址https://blog.csdn.net/Willard1314/article/details/71425553
3. 代码规范
- 方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵循驼峰形式。
- 代码中的命名均不能以下划线或美元符号开始,也不能一下划线或美元符号结束。
- 类型与中括号紧挨相连来定义数组。
- 代码中命名只能用英文。
四、编码
随机生成数字数组与运算符数组,将数组输出表达式后,上网查找关于逆波兰表达式的算法将运算结果按照算法的优先级运算出来,并输出到文本.在github网站上结对的时候,不知道是校园网的原因还是其他的原因,结队伙伴的邮箱一直收不到搭档邀请的链接,后来我发现可以copy link将邀请链接直接发给搭档,在百度逆波兰算法后,我们两人仍然还是无法理解透彻,用的不是很好,后来在同学的帮忙讲解下终于才完成了这一段的代码编写,属实不容易啊,最后的四则运算输出答案还在努力编写中.
五、测试
六、总结
这一次的实验是在第一次的基础上提升,加入了四则运算与四则运算的优先级的问题,使得代码量就大大的提升,代码过程中遇到了许许多多的问题,截至到今天12点还是没有完成代码的输出,后续会在GITHUB上继续更新的.
转载于:https://www.cnblogs.com/a211756221/p/9673291.html
结队作业,小学生3年级数学题出题器相关推荐
- 小学生加减法出题神器c语言编程,小孩我要当学霸(小学加减法出题器)
小孩我要当学霸1.1是一款网友分享的小学加减法出题器,它可以自动出题,家长朋友们只需要设定好题目类型和范围就可以了.使用起来还是非常方便的,感兴趣的朋友欢迎前来西西下载! 关于软件 现在很多地区还是没 ...
- python小学生口算题生成器_小学数学题出题神器
小学数学题生成器是一款简易的小学数学题目出题神器,目前支持20以内的加减混合运算,未来会更新更多的功能.对于想要在家给孩子练习的家长来说,还是比较方便的,而且能够打印. 软件介绍 今年儿子刚上一年级, ...
- 小学生算数出题器程序设计
本程序设计满足以下功能: 随机生成两个整数x和y,并且满足两数相加不大于100,两数相减不为负数. 随机出10道题,每题10分,程序结束时显示学生得分和等级. 每道题学生只有一次机会输入答案,当学生输 ...
- 《构建之法》作业:口算出题器
<构建之法>作业:python写口算出题器 实现功能: 输入一个正整数n,随机生成n道运算符为2或3的整数四则运算(无括号) 题目和结果均为整数 生成两个文件,equation0.txt用 ...
- 实现“小学生算术题出题器”
本次作业要求:(1)出题器可以随机出四则运算.(2)真分数的运算.以下为程序运行截图: 根据使用说明来输入整数题目的数量,以及分数题目的数量,这里分别以5道题为例. 如果回答正确就会提示"回 ...
- 懒人版小学生1-6年级计算题练习(口算练习)可直接电脑上答题或者打印题目
[懒人版]小学生1-6年级计算题练习 欢迎使用 软件编程语言 软件功能 软件操作流程 下载地址 软件使用到的工具 欢迎使用 网上众多小学生计算题练习(小学生口算练习)软件使用起来都不是很方便.网上现有 ...
- php四则运算出题器
php四则运算出题器 要求 1.可以将出题结果导出到EXCEL文件 2.用户可以指定题目的数量 3.用户可指定操作数的数目(至少二个.至多四个),如果指定的操作数超过2个,应该随机出现括号用于改变运算 ...
- 小学算术自动出题c语言,【小学算术随机出题器】小学算术随机出题器电脑版下载 v0.7 吾爱版-趣致软件园...
小学算术随机出题器介绍 小学算术随机出题器是一款十分好用的在线学习软件,专为每一个家长提供了全新的小学生数学出题方式,让家长在家轻松帮助自己的孩子数学成绩.小学算术随机出题器电脑版使用起来十分的简单, ...
- 一道六年级数学题,求阴影面积,那我只能用Python代码了
前言 一.说明 今天看到微信群里一道六年级数学题,如下图,求阴影部分面积 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案 ...
最新文章
- 神经网络基础:(2)损失函数
- 杨森翔的书法:正月十六试笔【圆光、斗方】
- CSS3选择器:nth-child和:nth-of-type之间的差异的那些事儿
- python入门if语句练习_python入门视频:09 if语句_练习.mp4
- 8个球放入3个盒子方式_8种土豆做法,好吃到根本停不下来!
- [luoguP2679] 子串(DP)
- android 4.4 keyfactory.getinstance 报错_Android实际开发bug大总结
- Babel指南——基本环境搭建
- xx闪购—主体选项卡
- java ResourceBundle
- React使用jsbarcode条形码插件
- pyLDA系列︱gensim中的主题模型(Latent Dirichlet Allocation)
- 服务器安全狗Windows V5.0正式版
- 量化交易alpha、beta、shape等基本概念梳理
- 密码学Kerberos协议理解
- Jackknife,Bootstraping, bagging, boosting, AdaBoosting, Rand forest 和 gradient boosting的区别
- 【CV】Mask R-CNN:用于目标实例分割的通用框架
- 什么是期权?期权案例说明
- hashmap的特性?HashMap底层源码,数据结构?Hashmap和hashtable ConcurrentHashMap区别?
- xwiki功能-XWikiRESTfulAPI
热门文章
- MySQL - 分页查询优化的两个案例解析
- JVM - 深入剖析字符串常量池
- Oracle-数据字典解读
- Oracle实例迁移_真实场景实操
- vins 解读_代码解读 | VINS 视觉前端
- UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x8b in position 1: invalid start byte
- 学习笔记(七)——jQuery(一)
- 腾讯面试题 linux下free命令详解
- Halcon知识: XLD的概念
- Halcon算子盘点:Chapter 16:System