结对编程项目 “四则运算”第一周阶段性总结

需求分析

实现一个命令行程序,要求:
自动生成小学四则运算题目(加、减、乘、除)

  • 支持整数
  • 支持多运算符(比如生成包含100个运算符的题目)
  • 支持真分数
  • 统计正确率
  • 随机出现整数。
  • 括号必须成对存在。
  • 为了避免由于一次出现大量算式导致翻找时浪费不必要的时间,设计成每算一个再给出下一个算式,并给出当前进度。
  • 能一键给出算式的所有答案。
  • 自主设置涉及的运算符以适应不同年级的小学生。

设计思路

  • 随机出现数字算式。
  • 先做出整数计算式。
  • 暂时先做出整体框架,接下来再增添细节。

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

随机整数,并用switch语句。
import java.util.Random;
import java.util.Scanner;
import java.text.NumberFormat;
import java.util.*;
public class NumberCounter {
public static void main(String args[]) {
NumberFormat nf = NumberFormat.getPercentInstance();
Integer num1, num2;
RationalNumber N1, N2 = null, N3 = null;
String Q = null, A;
int trues = 0;
Random generator = new Random();
int num, answer;
Scanner scan = new Scanner(System.in);

    System.out.println("题目数量: ");
    int num4 = scan.nextInt();
    int num6 = generator.nextInt(1);
    if (num6 == 0) {
        for (int i = 0; i < num4; i++) {
            int num5 = generator.nextInt(3);
            num1 = Integer.obj();
            num2 = Integer.obj();
            switch (num5) {
                case 0:
                    num = num1.add(num2);
                    System.out.println(num1.getNum() + "+" + num2.getNum() + "=");
                    answer = scan.nextInt();
                    if (answer == num)
                        trues++;
                    else
                        System.out.println("正确答案: " + num);
                    break;
                case 1:
                    num = num1.reduce(num2);
                    System.out.println(num1.getNum() + "-" + num2.getNum() + "=");
                    answer = scan.nextInt();
                    if (answer == num)
                        trues++;
                    else
                        System.out.println("正确答案: " + num);
                    break;
                case 2:
                    num = num1.ride(num2);
                    System.out.println(num1.getNum() + "*" + num2.getNum() + "=");
                    answer = scan.nextInt();
                    if (answer == num)
                        trues++;
                    else
                        System.out.println("正确答案: " + num);
                case 3:
                    num = num1.excepet(num2);
                    System.out.println(num1.getNum() + "/" + num2.getNum() + "=");
                    answer = scan.nextInt();
                    if (answer == num)
                        trues++;
                    else
                        System.out.println("正确答案: " + num);
                    break;
            }
        }
    }

编写过程记录

PSP2.1 Personal Softwore Process Stage 预计耗时(分钟) 实际耗时(分钟)) 重要成长
Planning 计划 40 60
Estimate 做这个任务需要多长时间 360 240
Development 开发 30 30
Analysis 需求分析(包括学习新技术) 30 35
Design Spec 生成设计文档 60 40
Design Review 设计复审(和同事审核设计软件) 40 20
Coding Standard 代码规范 (为目前的开发制定合适的规范) 120 180
Design 具体设计 120 100
Coding 具体编码 100 120
Code Review 代码复审 30 15
Test 测试(自我测试,修改代码,提交修改) 20 15
Reporting 报告 30 40
Test Report 测试报告 40 50
Size Measurement 计算工作量 10 20
Postmortem & Process Improvement Plan 30 10

结对伙伴

我的结对伙伴是蔡文琛,本周的工作主要是他来操刀了,我的代码都是在他的指导下进行编辑,很感谢他对我的帮助。

posted @ 2017-05-14 23:28  20162316刘诚昊  阅读(212)  评论(4编辑  收藏  举报