zoukankan      html  css  js  c++  java
  • 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

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

    八、结对编程照片

  • 相关阅读:
    HDU
    UVa——540Team Queue(STL练习map、queue数组的综合使用)
    NOJ——1659求值(log10取对数+floor取整数部分+可有可无的快速幂)
    NOJ——1658平方和(自然数平方和公式和取模法则)
    HDU——2723Electronic Document Security(STL map嵌套set做法)
    HDU——1982Kaitou Kid
    HDU——1073Online Judge(string类以及其对应函数)
    HDU——1062Text Reverse(水题string::find系列+reverse)
    HDU——1009FatMouse' Trade(贪心+结构体+排序)
    HDU——1799循环多少次(杨辉三角/动态规划/C(m,n)组合数)
  • 原文地址:https://www.cnblogs.com/jhs888/p/8849932.html
Copyright © 2011-2022 走看看