博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结对编程项目-四则运算(挑战出题)
阅读量:5320 次
发布时间:2019-06-14

本文共 3501 字,大约阅读时间需要 11 分钟。

结对编程项目-四则运算(挑战出题)

  • 结伴对象:

    需求分析

    题目去重
  • 1 . 程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。
  • 2 . 要能指定生成题目的数量
  • 3 . 要能指定题目包含的运算符数量

    设计思路

  • 1 . 先进行中缀转后缀
  • 2 . 对后缀进行排序
  • 3 . 若后缀相同,则进行答案判断

    1062733-20170604221807008-1301415074.png

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

public class Sort {    private String result, str, result2, result3;    // 排序(数字大小排序,非数字位置不变)    public String sorting(String s) {        String p = s.trim();        String[] str = p.split(" ");        List
list = new ArrayList
(); for (int i = 0; i < str.length; i++) { //判断是不是数字 if (isNumeric(str[i])) { list.add(str[i]); } } //排大小 String[] strings = new String[list.size()]; for (int i = 0; i < list.size(); i++) { strings[i] = list.get(i); } for (int x = 0; x < strings.length - 1; x++) { for (int y = x + 1; y < strings.length; y++) { int s1 = Integer.parseInt(strings[x]); int s2 = Integer.parseInt(strings[y]); if (s1 >= s2) { String temp = strings[x]; strings[x] = strings[y]; strings[y] = temp; } } } int j = 0; for (int i = 0; i < str.length; i++) { //判断是数字还是符号 if (isNumeric(str[i])) { str[i] = strings[j]; j++; } } String c = " "; for (int i = 0; i < str.length; i++) c += (str[i] + " "); return c; } //判断是否为数字 public boolean isNumeric(String str) { Pattern pattern = Pattern.compile("[0-9]*"); Matcher isNum = pattern.matcher(str); if (!isNum.matches()) { return false; } return true; }}
l1 = title.promber3(i + 1, 9, 4, 1);//生成题目                    result1 = con.storage(l1);//中转后                    result3 = eva.calculate(result1);//计算当前                    result2 = sort.sorting(result1);//排序                    if (list.size() != 0) {                        for (int w = 0; w < list.size(); w++) {                            //判断排序后的式子是否相同                            if (result2.equals(list.get(w))) {                                result4 = eva.calculate(list2.get(w));//计算排序后的式子相同的答案                                if (result3.equals(result4)) {                                    x = 1;                                    s --;                                    break;                                }                            }                        }                    }                    if (x == 0) {                        list.add(result2);//排序后的题目                        list1.add(l1);//原题目                        list2.add(result1);//中转后                    }

测试方法

1062733-20170604221728618-1664642659.jpg

运行过程截图

1062733-20170604221836305-912291401.jpg

遇到的困难及解决方法

  • 问题1 : 有时候代码会出现异常
  • 解决办法1:多运行几次,如果老师测试的时候出现异常,请耐心地多测试几次。

对结对的小伙伴做出评价

我们本周的任务是实现去重。 由于之前我们的代码基础打的十分的好。所以这次我和我的搭档也就很轻松的完成任务。给我的搭档打45分。

PSP

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

转载于:https://www.cnblogs.com/cs162318/p/6942146.html

你可能感兴趣的文章
[简讯]phpMyAdmin项目已迁移至GitHub
查看>>
转载 python多重继承C3算法
查看>>
【题解】 bzoj1597: [Usaco2008 Mar]土地购买 (动态规划+斜率优化)
查看>>
css文本溢出显示省略号
查看>>
git安装和简单配置
查看>>
面向对象:反射,双下方法
查看>>
鼠标悬停提示文本消息最简单的做法
查看>>
课后作业-阅读任务-阅读提问-2
查看>>
面向对象设计中private,public,protected的访问控制原则及静态代码块的初始化顺序...
查看>>
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
移动、联通和电信,哪家的宽带好,看完你就知道该怎么选了!
查看>>
Linux设置环境变量的方法
查看>>
Atitit.进程管理常用api
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>