• 20165104-Java第一次结对编程练习


    Java第一次结对编程练习

    毫不客气得讲,这次作业的难度,远远超出我,我的搭档两人得能力范围。结对学习,变成了结对向同学请教学习。两个人一起问,确实效率高一点

    • 需求分析

      • 随机生成题目

        • 生成题目数量根据用户需求输入
        • 自动生成小学四则运算题目
        • 支持整数和真分数
        • 支持多运算符(比如生成包含100个运算符的题目)
      • 统计正确率

      • 能多次生成题目

      • 扩展需求

        • 题目去重
        • 支持多语言
        • 处理生成题目并输出到文件
        • 完成题目后从文件读入并判题
    • 设计思路

      • 实验首先是完成一个计算器的功能,可以实现简单的+、-、*、/运算
      • 实现多运算符,编入四个类分别实现整数运算、真分数运算、判断结果正确并计算正确率
      • 利用JUnit检测非法输入
      • 设计一个主类生成随机数,生成题目,并判断正确率
      • 设计测试类,利用JUnit测试整数类与分数类的四则运算

    uml图:

    核心代码及注释

    public class Calculate {
        public static void main(String[] args) {
            NumberFormat number = NumberFormat.getPercentInstance();
            Random ran = new Random();
            Scanner scan = new Scanner(System.in);
            while (true) {
                System.out.print("请输入您所需要生成的题目数量:");
                int A = scan.nextInt();                        //A:题目数量
                for (int i = 0; i < A; i++) {
                    int B = ran.nextInt(2);                //生成随机数0/1,随机挑选整数或分数运算
                    int C = ran.nextInt(4);                //生成随机数0-3,随机挑选4种运算符
                    IntNumber in1 = IntNumber.obj();               //整数运算
                    IntNumber in2 = IntNumber.obj();
                    Fraction score1 = Fraction.obj();              //分数运算
                    Fraction score2 = Fraction.obj();
                    if (B == 0) {
                        switch (C) {                                //整数加减乘除运算
                            case 0:
                                int num = in1.add(in2);
                                String num1 = "" + num;
                                int n = scan.nextInt();
                                Judgement.judge(n == num, num1);
    

    测试代码


    运行结果截图

    代码托管

    码云链接

    结对伙伴评价

    讲道理,两个菜鸡,这种难度的编程题确实让我们焦头烂额....

    BUT

    日子还得照样过,代码还得照样敲,从之前一个人问变成现在两个人一起向同学请教学习,说实话,确实两个人一起问,不懂得互相交流,学起来快乐一点吧。谢谢我的搭档

    • 结对学习的照片已经放到蓝墨云班课里面了
  • 相关阅读:
    setTimeout详解
    【康娜的线段树】
    【[CQOI2016]手机号码】
    【[IOI2014]Wall 砖墙】
    【[1007]梦美与线段树】
    【[POI2010]ANT-Antisymmetry】
    【[HEOI2016/TJOI2016]排序】
    【[SCOI2016]背单词】
    【[HNOI2008]GT考试】
    【[JSOI2007]建筑抢修】
  • 原文地址:https://www.cnblogs.com/20165104mfb/p/8849731.html
Copyright © 2020-2023  润新知