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. 3D游戏引擎〇 開始

    游戏循环: 初始化:运行一些主要的初始化操作,如内存分配,资源获取.从磁盘载入数据等. 进入游戏循环:进入主游戏循环.用户不断地运行动作,知道退出主循环为止. 读取玩家输入:处理玩家输入,或将其存储到 ...

  2. ASP.NET常见内置对象(一)

    在web开发中,数据库都是通过HTTP协议来传输的.但HTTP是一个无状态协议,不会保留数据的状态和信息. 为了解决问题.各种开发语言都提供了状态管理功能. 状态管理是在同一页或不同页的多个请求发生时 ...

  3. 10013: An attempt was made to access a socket in a way forbidden by its access permissions

    nginx的error.log日志报错: 2018/01/25 11:55:22 [emerg] 3380#15488: bind() to 0.0.0.0:20003 failed (10013: ...

  4. Android性能测试摘入(TestHome)

    Android性能测试:      客户端性能测试      服务端性能测试   客户端性能测试:      1.ROM版本的性能测试(即手机的不同操作系统):关注功耗测试      2.应用的性能测 ...

  5. 云计算之路:2009年Xen一个补丁背后那不为人知的故事

    仔细阅读了http://www.cnblogs.com/cmt/p/3729386.html这篇关于xen的博文,这篇博文写的挺赞的,分析的也很细致,涉及到4年前的一个patch的故事.在讲这个故事之 ...

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

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

  7. poj 1182 食物链 (带关系的并查集)

      食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 44835 Accepted: 13069 Description 动 ...

  8. Casperjs中fill提交表单遇到的问题

    1.if you access internet with proxy please add             --ignore-ssl-errors=true --ssl-protocol=a ...

  9. SpringMVC 返回的 json 中去除某些不必要的属性

    修改返回的Model,在对应的属性的get方法上使用 com.fasterxml.jackson.annotation.JsonIgnore 注解即可. 如 @JsonIgnore(true) pub ...

  10. Java 之内部类

    概述 内部类修饰符 内部类的细节 局部内部类 匿名内部类及其应用 匿名内部类细节 内部类概述 将一个类定义在另一个类的里面, 里面的那个类就称为内部类(内置类, 嵌套类). class Outer { ...