首页 > 其他分享 >结对项目

结对项目

时间:2024-09-28 20:13:07浏览次数:1  
标签:10 结对 20 项目 int question 50 return

这个作业属于哪个课程 软件工程课程
这个作业要求在哪里 结对项目
这个作业的目标 按照要求写一个四则运算生成器
成员一 罗祖文 3122004537
成员二 郑志涛 312004547

GitHub地址:https://github.com/Lzw1322/3122004537

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

代码说明

其中MathQuestionGenerator:负责生成随机数学问题。
FileHandler:负责将问题和答案保存到文件中。
AnswerEvaluator:负责读取文件,评估答案,并生成成绩文件。
Main:主程序入口,处理用户输入并调用其他模块。

性能分析


经过观察得出结论生成算式的时候耗时最大,消耗性能最多
于是采用了减少 I/O 操作次数,增多了一些条件判断,更改了一些代码逻辑使得性能得到了提升。
改进后如下
`public class MathQuestionGenerator {
private final Random random = new Random();
public Set generateQuestions(int num, int rangeLimit) {
Set questions = new HashSet<>();

    while (questions.size() < num) {
        String question = generateRandomQuestion(rangeLimit);
        if (question != null) {
            questions.add(question);
        }
    }
    return questions;
}
private String generateRandomQuestion(int rangeLimit) {
    int operatorCount = random.nextInt(3) + 1;
    StringBuilder question = new StringBuilder();
    for (int i = 0; i <=operatorCount; i++) {
        int e1 = random.nextInt(rangeLimit) ;
        int e2 = random.nextInt(rangeLimit) ;
        String operator = getRandomOperator();

        if (operator.equals("-") && e1 < e2) {
            return null;
        }

        if (i == 0) {
            question.append(e1);
            continue;
        } else {
            question.append(" ").append(operator).append(" ");
        }
        if (operator.equals("/")) {

            if(e2==0) return null;
            if (e1 >= e2 ) {
                return null;
            }
            question.append(e1).append(" / ").append(e2);
        } else {
            question.append(e2);
        }
    }
    return question.toString();
}
private String getRandomOperator() {
    String[] operators = {"+", "-", "*", "/"};
    return operators[random.nextInt(operators.length)];
}

}`

该函数由于是生成算式模块的主要函数,在运行过程中最耗时。

测试运行
我们通过测试不断生成算式其中大有 7/0/2、0'1/2、6'0/5 等各种错式,我们不断分析各种情况改进化简函数和计算函数,将其一一排除
部分结果如下


通过部分样例测试发现成绩无误

异常处理

对文件输入输出等进行异常判断处理

小结:
本次项目通过对问题合作探讨和思路分析,成功实现了小学四则运算生成器,运用了此前学习到的性能分析和PSP时间管理,共同提出了对数据结构和算法逻辑的建议,互相学习的同时节省了很多开发时间,在项目实现时有不少困难疑题,有些功能实现起来没有想象那么容易,合作学习时最大的体会是规范代码,做好注释,这次项目合作收获良多

标签:10,结对,20,项目,int,question,50,return
From: https://www.cnblogs.com/lzw1-1/p/18438339

相关文章

  • 结对项目
    姓名学号陈祥意3122004821肖商3122004837GitHub地址https://github.com/Csneer/auto_generate_formulaPSP表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)Planning计划4050Estimate估计这个任务需要多少时间1460......
  • 结对项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标学习合作编程开发项目,继续熟悉运用性能分析工具和PSP表格管理时间,养成良好编程风格......
  • 结对项目
    作业属于的课程计科22级12班作业要求要求作业目标团队合作实现一个自动生成小学四则运算题目的命令行程序姓名学号兰勇3122004783GitHub链接:链接一、PSP表格PSP2.1描述预估耗时(分钟)实际耗时(分钟)Planning·Estimate估计这个......
  • 结对项目
    这个作业属于哪个课程软件工程这个作业要求在哪里结对项目这个作业的目标组队实现一个自动生成小学四则运算题目的程序成员3122004487林丙昆成员3122004502赵衍锴GitHub地址:地址PSP2.1表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟......
  • 结对项目
    这个作业属于哪个课程计科22级12班这个作业要求在哪里结对项目这个作业的目标实现一个自动生成小学四则运算题目的命令行程序成员梁晓君(3222004682)阿丽娅·阿力木(3222004678)github地址作业github链接PSP表格PSP2.1PersonalSoftwareProcessStag......
  • 结对项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标实现一个自动生成小学四则运算题目的命令行程序github地址:https://github.com/zjm72......
  • 结对项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230成员李嘉锐(3122004951)林进光(3122004955)github链接https://github.com/bitpurleclude/3122004951Ma......
  • 结对项目:自动生成小学四则运算题目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标结对实现一个自动生成小学四则运算题目的命令行程序项目一、项目开发人员以及仓库地......
  • 结对项目
    这个作业属于哪个课程班级的链接这个作业要求在哪里作业要求的链接这个作业的目标要求实现一个自动生成小学四则运算题目的命令行程序一、合作成员学号姓名github仓库地址3122004819陈善能https://github.com/alenbear/Elementary_arithmetic31......
  • 结对项目
    这个作业属于哪个课程软件工程这个作业要求在哪里结对项目这个作业的目标实现一个自动生成小学四则运算题目的命令行程序项目成员车峤锐3122004471黄梓洋3122004481Github项目地址:项目链接2.PSP表格(计划时间)PSP表格(个人软件过程)PSP2.1Persona......