• 20165202 结对编程项目-四则运算 第一周


    一、码云链接

    二、需求分析

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

    三、设计思路(同时输出UML类图)

    import java.util.Scanner;
    import java.util.Random;
    import java.io.IOException;
    import java.lang.String;
    public class sizeyunsuan {
        public static void main(String[] args) throws IOException {
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入你想要做的题目的数量:");
            int num = scanner.nextInt();
            double result=0;
            double answer,accuracy;
            double right=0;
            for (int i=0;i<num;i++) {
                Random random = new Random();
                int num_1 = random.nextInt(100);
                int num_2 = random.nextInt(100);
                System.out.print("题目 "+(i+1)+" :
    ");
                switch (random.nextInt(4)) {
                    case 0:
                        result=Jisuan.add(num_1,num_2);
                        System.out.println(num_1+" + "+num_2);
                        break;
                    case 1:
                        result=Jisuan.sub(num_1,num_2);
                        System.out.println(num_1+" - "+num_2);
                        break;
                    case 2:
                        result=Jisuan.mul(num_1,num_2);
                        System.out.println(num_1+" * "+num_2);
                        break;
                    case 3:
                        result=Jisuan.div(num_1,num_2);
                        System.out.println(num_1+" / "+num_2);
                        break;
                }
                System.out.println("请输入你的答案:");
                answer = scanner.nextInt();
                if (answer == result) {
                    System.out.println("Right !!!");
                    right++;
                } else
                    System.out.println("Wrong !!! 
    The correct answer is : " + result);
            }
            accuracy = (double) (right / num) * 100;
            if(num==0) {
                System.out.println("答题结束 !!!");
            }
            else{
                System.out.println("答题完毕 !
     你的正确率为 :" + accuracy + "%");
            }
        }
    
    }
    
    class Jisuan {
        static double add(int num_1,int num_2) {
            return (num_1+num_2);
        }
    
        static double sub(int num_1,int num_2) {
            return (num_1-num_2);
        }
    
        static double mul(int num_1,int num_2) {
            return (num_1*num_2);
        }
    
        static double div(int num_1,int num_2) {
            double temp;
            if (num_2!=0) {
                temp=num_1/num_2;
            }
            else
                temp=0;
            return temp;
        }
    }
    

    四、功能截图

    五、结对感受

    第一次正式合作结对编程,题目有一定难度所以我们在讨论设计的过程中花费了较多时间。虽然此前也接触过四则运算的编程题目,但这个项目的要求明显要高,多了很多额外条件。如果我一个人做的话,很可能因为题目的繁琐而消极怠工,无法完成。但通过我们两个人共同查阅资料,不断地交流、修改、讨论,终于解决了本题目也算是有一点点合作的成就感。我的编程水平不如李梓豪,很多时候他考虑问题要周全的多,所以在日后的合作中我还是要加强学习,努力完善自己的思维,提高自身能力。

    六、PSP表格

    PSP Personal Software Process Stages) 预估耗时(分钟)) 实际耗时(分钟)
    Planning 计划 30 30
    Estimate 估计这个任务需要多少时间 90 120
    Development 开发 40 60
    Analysis 需求分析 (包括学习新技术) 30 40
    Design Spec 生成设计文档 10 15
    Design Review 设计复审 (和同事审核设计文档) 25 20
    Coding Standard 代码规范 (为目前的开发制定合适的规范) 15 30
    Design 具体设计 60 75
    Coding 具体编码 100 125
    Code Review 代码复审 30 25
    Test 测试(自我测试,修改代码,提交修改) 50 75
    Reporting 报告 10 20
    Test Report 测试报告 20 25
    Size Measurement 计算工作量 10 20
    Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 60 80
    合计 580 825

    七、参考或引用的设计、实现

    八、结对编程照片

  • 相关阅读:
    左偏树
    “今日头条杯”首届湖北省大学程序设计竞赛现场赛
    最短路
    BP神经网络算法改进
    图论学习路线
    差分演化算法
    51Nod 1413 权势二进制
    51Nod 1315 合法整数集
    Treap(树堆)
    今日头条杯2018湖北省大学生程序设计竞赛(网络赛)
  • 原文地址:https://www.cnblogs.com/jhs888/p/8849932.html
Copyright © 2020-2023  润新知