Java结对编程四则运算一周小结
Java结对编程四则运算一周小结
需求分析
对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式)。
设计思路
- 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录;
- 具体的思路:
- 要产生随机数;
- 在产生随机数的时候就要产生随机的运算符;
- 在产生数字与运算符时最后一个数字之后就不能再产生运算符(运算符的数量始终比数字少1);
- 在一个式子中要多次产生随机数与运算符因此要用到循环;
- 在循环结束时就产生了一个式子就要求进行计算与输入;
- 在输入完之后就要判断对错,统计正确率;
- 又因为要产生多个式子就有需要一个循环,加上产生式子的循环,就需要一个双循环。

实现过程中的关键代码解释
- 1.产生式子时的循环
for (int i = 0; i < num1; i++) {
for (int j = 0; j < num2; j++) {
//产生20及其以内的数字
Random a = new Random();
int p = a.nextInt(20);
System.out.print(p);
Problem += p + "";
//产生运算符
String peo[] = {"+", "-", "*", "/"};
//最后一个数字之后没有运算符。
int p2 = a.nextInt(4);
if (j < num2 - 1) {
System.out.print(peo[p2]);
Problem += peo[p2];
}
}
这段代码花费了大量的时间主要是第一点在双循环是情况比较复杂在计数要用哪个循环的变量,还有语句放置的问题都存在较大的问题.其中的if语句是用来判断是否输出的的式子时最后一个如果是就不再产生运算符.还有一个变量String类型的Problem这个变量是很重要的变量它将产生的数字与运算符一一记录下来最后生成一个式子,用于计算.
- 2.实现的类
import java.util.Scanner;
public class Calc extends Calculate
{
public static void main(String[] args) {
//确定输出的式子的个数。
Scanner scan = new Scanner(System.in);
System.out.println("你想输出几个式子:");
int num1 = scan.nextInt();
//确定几个数字参加运算
System.out.println("你想要几个数字参加运算;");
int num2 = scan.nextInt();
//输出式子
Problem problem =new Problem();
problem.Problem(num1,num2);
}
}
这个类是最终运行时运行的类里面有主函数主要用于确定几个数字参加运算与式子的个数。
运行过程截图

代码托管地址
遇到的问题及其解决方法。
- 问题1 如何记录产生的式子
解决:我去网上找了很多类似的代码之后没有发现好的方法,最后我在计算加法时得到启示就用来类似求和时的办法来求出最后的式子。 - 问题2 如何解决无法产生括号的问题,就是当除不尽时的计算的误差大?
这个问题还没有找到很好的方法来解决。
对结对的小伙伴做出评价
- 结对伙伴: 20162312 张家铖
结对伙伴的思维比较活跃,在写代码遇到困难时有助于我做出突破;
但是也是比较粗心,而且对于时间的把握还有待改善。最主要的是在写代码的注释的时候有些时候有些难懂;
PSP
| PSP2.1 | Personal Software Process Stages | 预估耗时(小时) | 实际耗时(小时) |
|---|---|---|---|
| Planning | 计划 | 1 | 1 |
| · Estimate | · 估计这个任务需要多少时间 | 20 | 20 |
| · Analysis | · 需求分析 (包括学习新技术) | 1 | 3 |
| · Design Spec | · 生成设计文档 | 0.5 | 0.5 |
| · Design Review | · 设计复审 (和同事审核设计文档) | 1 | 0.5 |
| · Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 1 | 0.5 |
| · Design | · 具体设计 | 2 | 3 |
| · Coding | · 具体编码 | 2 | 4 |
| · Code Review | · 代码复审 | 2 | 1 |
| · Test | · 测试(自我测试,修改代码,提交修改) | 2 | 1 |
| Reporting | 报告 | 1 | 1.5 |
| · Test Report | · 测试报告 | 2 | 2.5 |
| · Size Measurement | · 计算工作量 | 0.5 | 0.5 |
| · Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 1 | 1 |
Java结对编程四则运算一周小结的更多相关文章
- 20175305张天钰Java结对编程四则运算(二)
Java结对编程四则运算(二) 一.题目描述及要求 Git提交粒度不要太粗,建议一个文件/一个类/一个函数/一个功能/一个bug修复都进行提交,不能一天提交一次,更不能一周一次,参考Commit Me ...
- 20175305张天钰Java结对编程四则运算
Java结对编程四则运算 一.题目描述:如何对表达式进行求值运算呢 1.中缀表达式与后缀表达式(娄老师讲解) 中缀表达式就是运算符号在运算数中间的表达式,比如1+2,顾名思义,后缀表达式就是运算符在运 ...
- 20175226 2018-2019-2《java程序设计》结对编程-四则运算(第一周-阶段总结)
结对编程-四则运算(第一周-阶段总结) 需求分析 实现一个四则运算程序,要求: 自动随机生成小学四则运算题目(加,减,乘,除) 支持整数.真分数且支持多项式 能够利用栈的思想,将中缀转换为后缀表达式 ...
- 20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算
20165325 2017-2018-2 <Java程序设计>结对编程_第二周:四则运算 一.码云链接 FAO项目的码云链接; 1.Git提交日志已经实现一个功能/一个bug修复的注释说明 ...
- 结对编程--四则运算(Java)萧英杰 夏浚杰
结对编程--四则运算(Java)萧英杰 夏浚杰 Github项目地址 功能要求 题目:实现一个自动生成小学四则运算题目的命令行程序 使用 -n 参数控制生成题目的个数(实现) 使用 -r 参数控制题目 ...
- 20165232 2017-2018-2《Java程序设计》结对编程一 第一周总结
20165232 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...
- 结对编程--四则运算(Java)梅进鹏 欧思良
结对编程--四则运算(Java)梅进鹏 欧思良 Github项目地址:https://github.com/MeiJinpen/Arithmetic 功能要求 题目:实现一个自动生成小学四则运算题目的 ...
- ### 20165219 2017-2018-2《Java程序设计》结对编程一 第二周总结
20165219 2017-2018-2<Java程序设计>结对编程一 第二周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...
- 20165219 2017-2018-2《Java程序设计》结对编程一 第一周总结
20165219 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...
随机推荐
- iOS conformsToProtocol
- (BOOL)conformsToProtocol:(Protocol *)aProtocol; 是用来检查对象(包括其祖先)是否实现了指定协议类的方法. 今天遇到一个问题,一个类没有实现proto ...
- Objective-C中的instancetype和id关键字(转)
转自:Objective-C中的instancetype和id关键字 一.什么是instancetype 同id一样,都是表示未知类型的的对象. 二.关联返回类型(related result typ ...
- Multiview
新建3个ViewController的类 新建main.stroyboard,并配置好相应的布局(编辑界面,连接视图与类,ViewController的Storyboard ID,连接3个Button ...
- AWS系列-修改RDS时间(time_zone)
1.1 需求 数据库时间和北京时间相差8小时 开发人员发现app的时间与国内时间相差12小时,需要修改RDS的time_zone参数 1.2 打开RDS参数组 1.3 创建新的参数组 由于默认的参数组 ...
- Linux各文件颜色的含义
Linux系统中文件有多种颜色,不同颜色文件代表不同类型的文件,具体如下: 蓝色:目录 绿色:可执行文件 红色:压缩文件 浅蓝色:链接文件 白色:普通文件 黄色:设备文件
- Wex5循环某个div节点下的所有img标签,替换其src属性值
Model.prototype.newsDetailAfterRefresh = function(event){ var newsDiv = this.getElementByXid("n ...
- IE的文档模式, 及Textarea呈现bug一例
做了个非常简单的页面, 仅有几行html代码, 内容如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtm ...
- iOS xcode6.0使用7.1运行程序 iphone5上下有黑条
转自:http://stackoverflow.com/questions/25817562/black-bars-appear-in-app-when-targeting-ios7-1-or-7-0 ...
- URAL 2040 Palindromes and Super Abilities 2(回文树)
Palindromes and Super Abilities 2 Time Limit: 1MS Memory Limit: 102400KB 64bit IO Format: %I64d ...
- C++ 动态内存 栈堆
C++ 动态内存_w3cschool https://www.w3cschool.cn/cpp/cpp-dynamic-memory.html