结对项目

这个作业属于哪个课程 软件工程
这个作业要求在哪里 作业要求
这个作业的目标 学会结对编程,合作编写程序

成员:3119005343王宇崇
Github链接

一、PSP2.1表格

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

二、模块接口的设计与实现过程

1.程序流程图

2、项目结构


main:项目入口
AnswerCheckUtil类:检验答案是否正确
ExerciseIntegerUtil类:生成整数型题目
ExerciseFractionUtil类:生成分数型题目
FractionOperationUtil类:将分数转换为带分数
ExerciseInsertUtil类:将题目和答案写入文本文件中

三、计算模块接口部分的性能改进


四、部分代码说明

main类

点击查看代码
package main;

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

import utils.AnswerCheckUtil;
import utils.ExerciseFractionUtil;
import utils.ExerciseIntegerUtil;

public class main {


    public static void main(String[] args) {
        //n表示输入题目数量,x表示输入数字的范围
        int in,n,x,over;
        System.out.println("自动生成小学四则运算题目");
        while(true) {
            Scanner scanner=new Scanner(System.in);
            System.out.println("选择题目类型:1整数类型,2分数类型");
            //判断是否输入为数字
            if(!scanner.hasNextInt())
                continue;
            in=scanner.nextInt();
            if(in==1) {
                System.out.println("请输入出题的数量和数字的范围");
                n=new Scanner(System.in).nextInt();
                x=new Scanner(System.in).nextInt();
                ExerciseIntegerUtil.getExerise(n, x);
                File file=new File("write.txt");
                try {
                    if(!file.exists())
                        file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                System.out.println("请在write.txt中作答,答题完毕请输入1");
                over=scanner.nextInt();
                //判断是否输入正确
                while(over!=1) {
                    System.out.println("输入有误,请重新输入");
                    over=new Scanner(System.in).nextInt();
                }
                AnswerCheckUtil.checkAnswer();
            }
            else if(in==2) {
                System.out.println("请输入出题的数量和数字的范围");
                n=new Scanner(System.in).nextInt();
                x=new Scanner(System.in).nextInt();
                ExerciseFractionUtil.getExercise(n, x);
                File file=new File("write.txt");
                try {
                    if(!file.exists())
                        file.createNewFile();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                System.out.println("请在write.txt中作答,答题完毕请输入1");
                over=scanner.nextInt();
                while(over!=1) {
                    System.out.println("输入有误,请重新输入");
                    over=new Scanner(System.in).nextInt();
                }
                AnswerCheckUtil.checkAnswer();
            }
            else {
                System.out.println("你输入有误");
            }
        }
    }

}

五、具体的测试案例



六、项目小结

在这次结对编程中,我没有找到合适的队友,所以打算一个人完成这个项目,先是在网上找了资料学习,但是却没有得到好的思路,还好有和其他已经结了对的同学交流讨论后,我才能确定初步的思路,开始项目。在项目的完成过程中,由于只能由一个人来考虑并完成,所以在碰到许多难题时,便会浪费很长的时间,由此我深刻地体会到这个项目需要结对的重要性。在项目完成之后,对于题目的部分要求也不能很好的满足,例如对于题目的查重功能未能实现,总的来说,这是一次令我印象深刻的编程体验,我觉得对于一个编程项目来说,相比由一个人来完成,还是与人合作,多讨论多交流才能让成果更符合需求,让自己收获更多。

posted @ 2021-10-26 00:54  ffw145  阅读(33)  评论(0编辑  收藏  举报