20165215 结对编程——四则运算第二周

本文介绍了一款自动生成小学四则运算题目的命令行程序的设计与实现过程。该程序支持整数运算、真分数、多语言选项,并能统计学生的答题正确率。

20165215 结队编程项目——四则运算第二周

目录

需求分析

基本需求

  • 实现一个命令行程序,要求:
  • 自动生成小学四则运算题目(加、减、乘、除)
  • 支持整数
  • 支持多运算符(比如生成包含100个运算符的题目)
  • 支持真分数
  • 统计正确率
  • 多语言支持:简体中文,繁體中文,English
  • 生成题目去重

设计思路

1296679-20180423004540521-913142588.png

核心代码

  • 声明哈希表使三种语言对应下面数组第1、2、3位
 System.out.printf("Please choose a language and type it! \n" +
                "请你选择一种语言并且输入对应的缩写!\n" +
                "請妳選擇壹種語言並且輸入對應的縮寫!\n" +
                "1.English 2.简体中文 3.繁體中文\n");
        HashMap<String,Integer> lanList = new HashMap<String,Integer>();
        lanList.put("1",0);
        lanList.put("2",1);
        lanList.put("3",2);
  • 生成整数类型的多项表达式
public IntegerExpression(int itemNum){
        this.itemNum = itemNum;
        if(itemNum<2)this.itemNum=2;//强制多项表达式的数字不少于两个
        else {
            for(int i =0;i < itemNum;i++){
                num.add(initItem());
                if(i>=1){if(op.get(i-1)=="/"){//若前面已执行完除法运算,防止其出现小数点
                    num.set(i-1,num.get(i)*((int)(Math.random()*4+2)));
                    op.add("+");
                }
                else op.add(initOp());
                }
                else op.add(initOp());
            }
        }
    }

功能截图

1296679-20180423004624485-176677348.png

结对感受

  • 结对对象:20165209 陈思兵
  • 伙伴博客
  • 感受:本次结对编程中我们探讨出问题的求解思路后,便可以分工进行类的创建,每人负责不同的区域,遇到问题时互相答疑解惑,最后再一起编写主类将它们串起来,大大提升了编写的效率。

PSP

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

转载于:https://www.cnblogs.com/fyss/p/8910960.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值