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. 添加RichEdit控件后导致MFC对话框程序无法运行的解决方法

    新建一个基于对话框的MFC程序,对话框上添加了RichEdit控件,编译成功后无法运行起来,Debug版本与Release版本均不行! Windbg分析结果: WARNING: Stack unwin ...

  2. Havel-Hakimi定理(推断是否可图序列)

    给定一个非负整数序列{dn},若存在一个无向图使得图中各点的度与此序列一一相应.则称此序列可图化.进一步.若图为简单图,则称此序列可简单图化 至于能不能依据这个序列构造一个图,就须要依据Havel-H ...

  3. Http服务器实现文件上传与下载(一)

    一.引言 大家都知道web编程的协议就是http协议,称为超文本传输协议.在J2EE中我们可以很快的实现一个Web工程,但在C++中就不是非常的迅速,原因无非就是底层的socket网络编写需要自己完成 ...

  4. Lisp语言简介

    摘自维基百科,原链接为:http://zh.wikipedia.org/zh/LISP 因为Clojure是Lisp的一种的方言,所以我们可以先来了解一下Lisp这个比较小众的编程到底是什么~ --- ...

  5. ural1297. Palindrome

    1297. Palindrome Time limit: 1.0 secondMemory limit: 64 MB The “U.S. Robots” HQ has just received a ...

  6. ios 统一设计,iOS6也玩扁平化

    转:http://esoftmobile.com/2014/01/14/build-ios6-ios7-apps/ 前言 前段时间,苹果在它的开发者网站上放出了iOS系统安装比例,其中iOS7占到78 ...

  7. 170117、spring解决乱码

    spring解决乱码这个问题网上有很多解决方法,也可以关注本博客的文章,在此不再赘述, 今天推荐大家另外两种解决方法! 问题现象: 1.后台代码 2.前端界面 解决方法: 方法1:是在后台请求方法上加 ...

  8. 使用ADO如何获得SQLSERVER 2K的数据库名的列表

    打开数据库连接_ConnectionPtr m_pConn;_RecordsetPtr m_pRs;m_pConn.CreateInstance(__uuidof(Connection));m_pRs ...

  9. Python SQLAlchemy基本操作和常用技巧包含大量实例,非常好python

    http://www.makaidong.com/%E8%84%9A%E6%9C%AC%E4%B9%8B%E5%AE%B6/28053.shtml "Python SQLAlchemy基本操 ...

  10. Linux上添加服务(htttpd,samba等等)

    service httpd restart   出现 httpd:unrecognized service 错误 vi /etc/rc.d/rc.local #在/etc/rc.d/rc.local中 ...