Java结对编程四则运算一周小结

需求分析

  • 对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式)。

    设计思路

  • 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录;
  • 具体的思路:
    1. 要产生随机数;
    2. 在产生随机数的时候就要产生随机的运算符;
    3. 在产生数字与运算符时最后一个数字之后就不能再产生运算符(运算符的数量始终比数字少1);
    4. 在一个式子中要多次产生随机数与运算符因此要用到循环;
    5. 在循环结束时就产生了一个式子就要求进行计算与输入;
    6. 在输入完之后就要判断对错,统计正确率;
    7. 又因为要产生多个式子就有需要一个循环,加上产生式子的循环,就需要一个双循环。

实现过程中的关键代码解释

  • 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结对编程四则运算一周小结的更多相关文章

  1. 20175305张天钰Java结对编程四则运算(二)

    Java结对编程四则运算(二) 一.题目描述及要求 Git提交粒度不要太粗,建议一个文件/一个类/一个函数/一个功能/一个bug修复都进行提交,不能一天提交一次,更不能一周一次,参考Commit Me ...

  2. 20175305张天钰Java结对编程四则运算

    Java结对编程四则运算 一.题目描述:如何对表达式进行求值运算呢 1.中缀表达式与后缀表达式(娄老师讲解) 中缀表达式就是运算符号在运算数中间的表达式,比如1+2,顾名思义,后缀表达式就是运算符在运 ...

  3. 20175226 2018-2019-2《java程序设计》结对编程-四则运算(第一周-阶段总结)

    结对编程-四则运算(第一周-阶段总结) 需求分析 实现一个四则运算程序,要求: 自动随机生成小学四则运算题目(加,减,乘,除) 支持整数.真分数且支持多项式 能够利用栈的思想,将中缀转换为后缀表达式 ...

  4. 20165325 2017-2018-2 《Java程序设计》结对编程_第二周:四则运算

    20165325 2017-2018-2 <Java程序设计>结对编程_第二周:四则运算 一.码云链接 FAO项目的码云链接; 1.Git提交日志已经实现一个功能/一个bug修复的注释说明 ...

  5. 结对编程--四则运算(Java)萧英杰 夏浚杰

    结对编程--四则运算(Java)萧英杰 夏浚杰 Github项目地址 功能要求 题目:实现一个自动生成小学四则运算题目的命令行程序 使用 -n 参数控制生成题目的个数(实现) 使用 -r 参数控制题目 ...

  6. 20165232 2017-2018-2《Java程序设计》结对编程一 第一周总结

    20165232 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...

  7. 结对编程--四则运算(Java)梅进鹏 欧思良

    结对编程--四则运算(Java)梅进鹏 欧思良 Github项目地址:https://github.com/MeiJinpen/Arithmetic 功能要求 题目:实现一个自动生成小学四则运算题目的 ...

  8. ### 20165219 2017-2018-2《Java程序设计》结对编程一 第二周总结

    20165219 2017-2018-2<Java程序设计>结对编程一 第二周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...

  9. 20165219 2017-2018-2《Java程序设计》结对编程一 第一周总结

    20165219 2017-2018-2<Java程序设计>结对编程一 第一周总结 结对对象 20165219王彦博 20165232何彦达 需求分析 实现一个程序,要求: 1 支持整数运 ...

随机推荐

  1. AWS系列-磁盘扩容

    1 磁盘扩容 1.1 卷介绍 aws磁盘扩容有两个方式 1.购买新的磁盘,挂载到相应的目录 2.原来磁盘做快照,购买新的磁盘,选择恢复快照到硬盘上,这样相当于,从一块硬盘上50G升级到100G 说到a ...

  2. xcode 运行 lua版本崩溃 解决方案

    问题描述:运行到LuaStack::init() 崩溃 原因: luajit不支持arm64 解决方案:编译luajit64位静态库 a.可以直接下载别人编译好的库,然后直接覆盖cocos2d\ext ...

  3. iOS-.pch如何使用

    今天我们要说的是.pch这个文件 我相信大家并不陌生,因为如果是新手开发工程师 总会被它搞得总报错误. 那么我们要知道.pch到底是干什么的,说白了就是一个预编译文件,在运行程序之前,要对头文件等一些 ...

  4. 【BZOJ3190】[JLOI2013]赛车 单调栈+几何

    [BZOJ3190][JLOI2013]赛车 Description 这里有一辆赛车比赛正在进行,赛场上一共有N辆车,分别称为个g1,g2……gn.赛道是一条无限长的直线.最初,gi位于距离起跑线前进 ...

  5. plotplayer声道设置原声

    1.打开plotplayer.根据按键F5,选择声音——>语言/同步/其他-流选择 2.重启plotplayer

  6. 巨蟒python全栈开发数据库前端5:JavaScript1

    1.js介绍&变量&基础数据类型 2.类型查询&运算符&if判断&for循环 3.while循环&三元运算符 4.函数 5.今日总结 1.js介绍&am ...

  7. php 正则表达式三.模式修正

    1.贪婪模式和懒惰模式, 贪婪模式:php中正则默认是贪婪模式,匹配尽可能多 的字符,比如 $pattern='/a+b/'; $subject='aaaaaaaaab,那么可能会preg_match ...

  8. MyISAM Key Buffer 读/写/利用率(%) MylSAM平均每秒Key Buffer利用率(%) MylSAM平均每秒Key Buffer读命中率(%) MylSAM平均每秒Key Buffer写命中率(%)

    MyISAM Key Buffer 读/写/利用率(%) MylSAM平均每秒Key Buffer利用率(%)MylSAM平均每秒Key Buffer读命中率(%)MylSAM平均每秒Key Buff ...

  9. git "Could not read from remote repository.Please make&n

    git "Could not read from remote repository.Please make sure you have the correct access rights. ...

  10. SQL 时间函数 Datepart()与DateName()

    1.Datepart() 返回代表指定日期的指定日期部分的整数 语法 Datepart(datepart,date) 返回类型 int datepart: 日期部分 缩写 year yy, yyyy ...