zoukankan      html  css  js  c++  java
  • 《个人软件开发流程》——申同燕

    1.需求分析:

    根据用户输入的题目个数,产生含有2个数字,1种运算符的题目,并显示出来。

    2.核心代码:

    复制代码
    package entity;
    
    import java.util.ArrayList;
    import java.util.Random;
    import java.util.Scanner;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    import java.util.function.BiFunction;
    
    /**
     * 试卷实体类
     */
    public class Exam {
    
        private List<Subject> subjectList;
    
        public List<Subject> getSubjectList() {
            return subjectList;
        }
    
        public void setSubjectList(List<Subject> subjectList) {
            this.subjectList = subjectList;
        }
    
        public Exam() {
            System.out.println("请输入要生成几道题目:");
            Scanner sc = new Scanner(System.in);
            int count = sc.nextInt();
            List<Subject> list = new ArrayList<Subject>();
            BiFunction<Integer, Integer, Integer> add = (x, y) -> x + y;
            BiFunction<Integer, Integer, Integer> minus = (x, y) -> x - y;
            BiFunction<Integer, Integer, Integer> multiple = (x, y) -> x * y;
            BiFunction<Integer, Integer, Integer> divide = (x, y) -> x / y;
            for (int i = 0; i < count; i++) {
                Subject subject = new Subject();
                Integer a = new Random().nextInt(99);
                Integer b = new Random().nextInt(99);
                subject.setA(a);
                subject.setB(b);
                subject.setIndex(i + 1);
                Integer symbol = new Random().nextInt(3);
                if (symbol == 0) {
                    subject.setSymbol("+");
                    subject.setAnswer(add.apply(a, b));
                } else if (symbol == 1) {
                    subject.setSymbol("-");
                    subject.setAnswer(minus.apply(a, b));
                } else if (symbol == 2) {
                    subject.setSymbol("×");
                    subject.setAnswer(multiple.apply(a, b));
                } else if (symbol == 3) {
                    subject.setSymbol("÷");
                    subject.setAnswer(divide.apply(a, b));
                }
                list.add(subject);
            }
            this.subjectList = list;
    
        }
    
        public static void main(String[] args) {
            Exam exam = new Exam();// 随机出题
            
            // 查看试卷
            exam.getSubjectList().forEach(subject -> {
                System.out.println("第" + subject.getIndex() + "题:" + subject.getA() + " " + subject.getSymbol() + " "
                        + subject.getB() +"=");
            });
            System.out.println("输出你的答案,每题答案之间用空格分开:");
            System.out.println();
            Scanner sc = new Scanner(System.in);
            int count = sc.nextInt();
            System.out.println("-----------*答案为*----------");
            exam.getSubjectList().forEach(subject -> {
                System.out.println("第" + subject.getIndex() + "题答案:"+ subject.getAnswer());
            });
        }
    
    }
    
    /**
     * 定义题目的类
     *
     */
    class Subject {
    
        private Integer index;
    
        private Integer a;
    
        private Integer b;
    
        private String symbol;
    
        private Integer answer;
    
        public Integer getIndex() {
            return index;
        }
    
        public void setIndex(Integer index) {
            this.index = index;
        }
    
        public Integer getA() {
            return a;
        }
    
        public void setA(Integer a) {
            this.a = a;
        }
    
        public Integer getB() {
            return b;
        }
    
        public void setB(Integer b) {
            this.b = b;
        }
    
        public String getSymbol() {
            return symbol;
        }
    
        public void setSymbol(String symbol) {
            this.symbol = symbol;
        }
    
        public Integer getAnswer() {
            return answer;
        }
    
        public void setAnswer(Integer answer) {
            this.answer = answer;
        }
    
    }
    复制代码

    3.PSP对照表

    PSP

    任务内容

    计划共完成需要的时间(min)

    实际完成需要的时间(min)

    Planning

    计划

    25

    30

       Estimate

     · 估计这个任务需要多少时间,并规划大致工作步骤

    25

    30

    Development

    开发

    248

    323

       ·Analysis

    ·分析需求

    15

    20

       ·Design Spec

    ·生成设计文档

    20

    25

       ·Design Review

    ·设计复审

    8

    10

       ·Coding Standard

    ·代码规范

    5

    3

       ·Design

    ·具体设计

    25

    30

       ·Coding

    ·具体编码

    120

    160

       ·Code Review

    ·代码复审

    30

    45

       ·Test

    ·测试

    25

    30

    Record Time Spent

    记录用时

    27

    31

    Test Report

    测试报告

    15

    17

    Size Measurement

    计算工作量

    7

    8

    Postmorterm

    事后总结

    5

    6

    4.总结

       具体编码与代码复审较为费时间,许多方法都忘记了,具体编码环节估计和实践差距太大了。总体来说,磕磕绊绊写完了。还是要多加练习。

  • 相关阅读:
    远程控制.scrcpy&其他资料&我的游戏辅助方案
    虚拟机.第三方.droid4x(海马玩)
    私.微信
    私.Modbus测试_ZC03_rtu,ascii,tcp
    Modbus资料
    私.Modbus测试_ZC02_串口方式
    私.Modbus测试_ZC01_TCP方式
    私.01.serialport
    C# Type Basics
    NORFLASH驱动详细说明
  • 原文地址:https://www.cnblogs.com/shuliqiu0320/p/14643237.html
Copyright © 2011-2022 走看看