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

软工结对项目

时间:2024-09-27 11:03:14浏览次数:1  
标签:rand 结对 20 String 项目 软工 leftOperand operator rightOperand

这个作业属于哪个课程 结对项目
这个作业要求在哪里 结对项目
这个作业的目标 合作完成一个自动生成小学四则运算题目的命令行程序
**

结对组合成员介绍

结对组合成员姓名 学号 GitHub项目地址
苏清仪 3222004337 GitHub项目地址
张易欣 3222004811 GitHub项目地址
**
**

PSP表格

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

开发环境

  • 开发语言:Java
  • 编译器:IDEA 2022.1

效能分析

设计实现过程

代码说明

generateExercises函数代码如下

    private static void generateExercises() {
        Random rand = new Random();
        while (generatedExercises.size() < numberOfExercises) {
            String exercise = generateRandomExpression(rand);
            if (!generatedExercises.contains(exercise)) { 
                generatedExercises.add(exercise);
                double answer = evaluateExpression(exercise);
                answers.add(String.valueOf(answer));
            }
        }
    }

generateExercises函数生成题目集合和答案集合,调用了generateRandomExpression函数生成随机题目,调用了evaluateExpression函数计算题目生成答案

generateRandomExpression函数代码如下

    private static String generateRandomExpression(Random rand) {
        String operator = OPERATORS[rand.nextInt(OPERATORS.length)];
        String leftOperand;
        String rightOperand;
        if (operator.equals("-")) {
            // 对于减法,确保左操作数 >= 右操作数,保证结果不为负数
            leftOperand = rand.nextBoolean() ? generateNaturalNumber(rand) : generateProperFraction(rand);
            do {
                rightOperand = rand.nextBoolean() ? generateNaturalNumber(rand) : generateProperFraction(rand);
            } while (parseOperand(leftOperand) < parseOperand(rightOperand));
        } else {
            leftOperand = rand.nextBoolean() ? generateNaturalNumber(rand) : generateProperFraction(rand);
            rightOperand = rand.nextBoolean() ? generateNaturalNumber(rand) : generateProperFraction(rand);
        }
        return leftOperand + " " + operator + " " + rightOperand;
    }

generateRandomExpression函数生成随机题目,调用了generateNaturalNumber函数生成随机自然数和generateProperFraction函数生成随机真分数

evaluateExpression函数代码如下

    private static double evaluateExpression(String expression) {
        String[] tokens = expression.split(" ");
        double leftOperand = parseOperand(tokens[0]);
        double rightOperand = parseOperand(tokens[2]);
        String operator = tokens[1];

        switch (operator) {
            case "+":
                return leftOperand + rightOperand;
            case "-":
                return leftOperand - rightOperand;
            case "*":
                return leftOperand * rightOperand;
            case "/":
                return leftOperand / rightOperand;
            default:
                throw new IllegalArgumentException("Unknown operator: " + operator);
        }
    }

evaluateExpression函数计算题目

测试运行

项目小结

标签:rand,结对,20,String,项目,软工,leftOperand,operator,rightOperand
From: https://www.cnblogs.com/suqingyi/p/18435270

相关文章

  • 实战笔记:Vue2项目Webpack 3升级到Webpack 4的实操指南
    在Web开发领域,保持技术的更新是非常重要的。随着前端构建工具的快速发展,Webpack已经更新到5.x版本,如果你正在使用Vue2项目,并且还在使用Webpack3,那么是时候考虑升级一下Webpack了。我最近将我的Vue2项目从Webpack3升级到了Webpack4。以下是我升级过程中积累的经验和步骤,希望......
  • 黑马PM-内容项目-产品需求说明
    产品需求说明产品交互需求说明如何撰写产品交互需求说明......
  • maven parent: 指定了项目的父 POM packaging: 指定打包类型为 POM。 modules: 列出了
    1.parent定义:这是指一个项目的父POM(ProjectObjectModel)。在Maven中,父POM可以包含共享的配置、依赖和插件设置,使多个子项目可以继承这些设置。作用:通过指定父POM,子项目可以自动获取父项目中定义的依赖版本、插件配置等,减少重复配置,提高一致性。例如,所有子模块......
  • 欧姆龙PLC数据 转 profinet IO项目案例
    目录1 案例说明 12 VFBOX网关工作原理 13 准备工作 24 网关采集欧姆龙PLC数据 25 用PROFINETIO协议转发数据 56 案例总结 71 案例说明设置网关采集欧姆龙PLC数据把采集的数据转成profinetIO协议转发给其他系统。2 VFBOX网关工作原理VFBOX网关是协议转换网关,是把一种......
  • 国自然基金项目撰写技巧
    随着社会经济发展和科技进步,基金项目对创新性的要求越来越高。申请人需要提出独特且有前瞻性的研究问题,具备突破性的科学思路和方法。因此,基金项目申请往往需要进行跨学科的技术融合。申请人需要与不同领域结合,形成多学科交叉的研究。基金项目申请在新时期更加注重国际化视野。......
  • 黑马PM-内容项目-产品原型设计
    产品设计思路原型的概念及分类原型绘制工具原型设计规范Axure制作基础交互......
  • Taro——H5项目如何修改静态文件入口
    前言这里我们来说下如何修改Taro静态文件的入口,一般情况下是不需要修改的,但是如果你是在当前项目下部署的二级站点,那你就需要调整了。内容这里我们说两种情况,一种是在静态资源引入的时候加入前缀,另一种是真正的将静态资源输出到指定的目录下。静态资源前缀这里的静态文件入口......
  • 欧姆龙PLC数据 转 profinet IO项目案例
    目录1 案例说明 12 VFBOX网关工作原理 13 准备工作 24 网关采集欧姆龙PLC数据 25 用PROFINETIO协议转发数据 56 案例总结 71 案例说明设置网关采集欧姆龙PLC数据把采集的数据转成profinetIO协议转发给其他系统。2 VFBOX网关工作原理VFBOX网关是协议转换网关,是把一......
  • js狠疯狂:10分钟生成项目,前后端一体化高效开发方案
    01疯狂的开始“这不可能吧!”小李盯着屏幕,几乎有些不敢相信自己的耳朵。那是一个平常的周一早晨,项目组在公司会议室开着例行周会。项目经理老张突然提出一个新需求:“能不能在10分钟内生成一个从后端API到PC端、移动端的完整项目?”所有人顿时沉默了几秒钟,随后开发小组爆发出......
  • XX项目系统压力测试报告模板
    1.1、测试目的对XX系统的业务能力进行性能测试,客观、公正评估系统的性能现状。1、开发正确、有效的性能测试脚本,模拟业务员进行:XX、XX这2个单据新增保存、查询、编辑等操作;2、通过性能测试,客观、公正评估在当前环境下,被测系统的各项性能指标表现;3、验证被测系统的业务处......