Java结对编程之挑战出题

需求分析

  • 需求
  • 对于挑战出题来说最主要的就是要产生的式子并将重复的式子去掉。

设计思路

  • 具体的思路:

  • 思路一:

    原先我打算用集合中的元素的不重复性进行去重,这种思路的好处就是在运算符少的时候重复的概率越低,在参加运算的数字比较少的是好用。后来发现在产生大量的运算符参加运算时去重去掉的式子太多,就是说在运算符越多重复数字越多时去掉的式子太多从而大大的降低了运行的速率,就是说时间太长所以就放弃了这种方式。

  • 思路二:

    后来在于同学交流之后就选择了用另外一种去重的方法,就是将结果相同的式子去掉,这个思路的好处就是运算符越多重复的可能性就越低可以产生比较多的式子。

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

  • 入口类
import java.io.IOException;

/**
* Created by 春旺 on 2017/6/4.
*/
public class ExpressionGenerator {
public static void main(String[] args) throws IOException {
OutQuestion questionNumber = new IOPractice();
int num1 = Integer.parseInt(args[0]);
int num2 = Integer.parseInt(args[1]);
questionNumber.problem(num1,num2);
((IOPractice)questionNumber).inFile(args[2]);
}
}

这是为了用工具类在命令行下实现而设计的。

运行过程截图

  • 依次运行的结果

测试

代码托管地址

  • 要运行的是不在文件夹下的ExpressionGenerator类
  • 编译时请老师编译Src文件夹下后缀为.Java的文件。
  • 我们的结对编程的项目在最后的时候克隆在本地地有点问题所以改提交在了我的个人项目中

遇到的问题及其解决方法。

  • 问题1去重

    解决:我去网上找了很多资料之后还是没有找到一个比较好的方法来去重后来就选择了在设计思路中说到的两种方法来进行测试。

    这个问题还没有找到很好的方法来解决。

  • 问题二 测试工具

    测试工具必须在src文件运行后产生的class的文件夹中运行并且代码中不可以有包名否则无法运行

对结对的小伙伴做出评价

  • 结对伙伴: 20162312 张家铖

    结对伙伴的思维比较活跃,在写代码遇到困难时有助于我做出突破,他比较善于和同学交流在我们遇到瓶颈的时候总是可以找同学交流之后找到一个比较好的方法;

    但是也是比较粗心,而且对于时间的把握还有待改善。最主要的是在写代码的注释的时候有些时候有些难懂,并且在写代码时太慢;

给结对伙伴分:

  • 分数 40
  • 依据

    1.代码相对来说我提交的比较多一些。

    2.设计文档都有参与不分多少。

    3.测试中的参与度比较少。

PSP

PSP2.1 Personal Software Process Stages 预估耗时(小时) 实际耗时(小时)
Planning 计划 1 1
· Estimate · 估计这个任务需要多少时间 20 20
· Analysis · 需求分析 (包括学习新技术) 0.5 2.5
· Design Spec · 生成设计文档 1 1
· Design Review · 设计复审 (和同事审核设计文档) 0.5 0.5
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 1 1
· Design · 具体设计 2 2.5
· Coding · 具体编码 2.5 2.5
· Code Review · 代码复审 2 2.5
· Test · 测试(自我测试,修改代码,提交修改) 2 1
Reporting 报告 1 1.5
· Test Report · 测试报告 2 1.5
· Size Measurement · 计算工作量 1 1.5
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 1 1

Java结对编程之挑战出题的更多相关文章

  1. 20162312Java结对编程之挑战出题

    需求分析 实现去重出题,并以命令行参数形式指定题目要求. 设计思路 具体的思路: 思路一: 原本我和春旺商量通过集合中的元素的不重复性进行去重.但是运算符多也导致重复的数字多,去重的数量也大大增多越到 ...

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

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

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

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

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

    Java结对编程四则运算一周小结 需求分析 对于四则运算来说最主要的就是要计算出产生的式子(字符串的形式). 设计思路 总体可将这个项目分解为几个部分:产生式子,计算式子,判断对错并记录: 具体的思路 ...

  5. JAVA结对编程--阶段总结

    一.需求分析 1.基本需求 随机生成n道题目 支持整数.分数,支持多运算符 能判断正误,错误时给出正确答案 能计算出正确率 2.扩展需求 处理生成题目并输出到文件 完成题目后从文件读入并判题 支持多语 ...

  6. 【java并发编程艺术学习】(二)第一章 java并发编程的挑战

    章节介绍 主要介绍并发编程时间中可能遇到的问题,以及如何解决. 主要问题 1.上下文切换问题 时间片是cpu分配给每个线程的时间,时间片非常短. cpu通过时间片分配算法来循环执行任务,当前任务执行一 ...

  7. Java并发编程的挑战

    并发编程的目的是为了让程序运行得更快,但是,并不是线程启动的越多,就能让程序最大限度地并发执行.并发编程时,会面临非常多的挑战,比如上下文切换的问题,死锁的问题,以及受限于各种硬件和软件的资源限制问题 ...

  8. java并发编程--第一章并发编程的挑战

    一.java并发编程的挑战 并发编程需要注意的问题: 并发编程的目的是让程序运行的更快,然而并不是启动更多的线程就能让程序最大限度的并发执行.若希望通过多线程并发让程序执行的更快,会受到如下问题的挑战 ...

  9. 2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-最后阶段 最后的一周,时间越来越紧张,因为之前的拖沓和一些事情的耽误,导致了如今的紧张,这一周应该是我们小组效率最高 ...

随机推荐

  1. 三角矩阵怎么用MathType输入

    虽然现在已经是暑假,但还是有很多学霸们在炎炎夏日中努力奋战,连暑假都不放过.也许正在实验室里面做得昏天暗地,也许是正在跟数据努力奋战,也许还在办公室里面一点一点地码着论文.码论文的时候,不时地要敲着复 ...

  2. hdu 4539(状压dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4539 思路:跟poj1185简直就是如出一辙! #include<iostream> #i ...

  3. iOS-UISearchBar去掉边线

    解决办法: UISearchBar 去除边线 属性search.searchBarStyle = minimal 即可

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

    一.引言 欢迎大家和我一起编写Http服务器实现文件的上传和下载,现在我回顾一下在上一章节中提到的一些内容,之前我已经提到过文件的下载,在文件的下载中也提到了文件的续下载只需要在响应头中填写Conte ...

  5. std::deque

    deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速地随机访问任一个元素,并且能够高效地插入和删除容器的尾部元素.但它又与vector不同,deque支持高效插入和删除容器的头部元素 ...

  6. eslint Rules

    Rules 为了让你对规则有个更好的理解,ESLint 对其进行了分门别类. 所有的规则默认都是禁用的.在配置文件中,使用 "extends": "eslint:reco ...

  7. HYSBZ 3676 回文串 (回文树)

    3676: [Apio2014]回文串 Time Limit: 20 Sec  Memory Limit: 128 MB Submit: 1680  Solved: 707 [Submit][Stat ...

  8. 巨蟒python全栈开发flask8 MongoDB回顾 前后端分离之H5&pycharm&夜神

    1.MongoDB回顾 .启动 mongod - 改变data/db位置: --dbpath D:\data\db mongod --install 安装windows系统服务 mongod --re ...

  9. 让select下的option选中

    这里以默认选中当前月为例: HTML: 性别 <select name="sex" id="sex"> <option value=" ...

  10. As of Flume 1.4.0, Avro is the default RPC protocol.

    Flume 1.8.0 Developer Guide — Apache Flume http://flume.apache.org/FlumeDeveloperGuide.html The remo ...