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

需求分析

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

  • 支持整数
  • 支持多运算符(比如生成包含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.1Personal Softwore Process Stage预计耗时(分钟)实际耗时(分钟))重要成长
Planning计划4060
Estimate做这个任务需要多长时间360240
Development开发3030
Analysis需求分析(包括学习新技术)3035
Design Spec生成设计文档6040
Design Review设计复审(和同事审核设计软件)4020
Coding Standard代码规范 (为目前的开发制定合适的规范)120180
Design具体设计120100
Coding具体编码100120
Code Review代码复审3015
Test测试(自我测试,修改代码,提交修改)2015
Reporting报告3040
Test Report测试报告4050
Size Measurement计算工作量1020
Postmortem & Process Improvement Plan3010

结对伙伴

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

转载于:https://www.cnblogs.com/ignor/p/6853840.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值