软工结对项目

news/2024/9/27 11:07:56
这个作业属于哪个课程 结对项目
这个作业要求在哪里 结对项目
这个作业的目标 合作完成一个自动生成小学四则运算题目的命令行程序

结对组合成员介绍

结对组合成员姓名 学号 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函数计算题目

测试运行

项目小结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/65335.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Docker镜像、Spark支持多表...Apache SeaTunnel 2.3.8版本将带来的惊喜

Apache SeaTunnel 2.3.8版本即将于大家见面,近日,Apache SeaTunnel PMC Member 范佳在社区的交流会上为大家提前透露了关于这个新版本即将进行的功能与特性更新概况,详细内容如下: SeaTunnel 简介 SeaTunnel是一个高性能的开源分布式数据集成系统,支持各种数据源的实时流式…

校青协宣传推广中心-二面-作品展示

主题图片ps:主题图片引用自扬州大学青年志愿者协会官Q 作品展示

深入理解 Nuxt.js 中的 app:error 钩子

title: 深入理解 Nuxt.js 中的 app:error 钩子 date: 2024/9/27 updated: 2024/9/27 author: cmdragon excerpt: 摘要:本文深入讲解了Nuxt.js框架中的app:error钩子,介绍其在处理web应用中致命错误的重要作用、使用方法及实际应用场景。通过创建Nuxt项目、定义插件、触发错…

黑马PM-内容项目-产品需求说明

产品需求说明产品交互需求说明如何撰写产品交互需求说明

MySQL窗口函数汇总

1.窗口函数概述窗口函数是一种SQL函数,非常适合于数据分析,其最大的特点就是:输入值是从SELECT语句的结果集中的一行或者多行的"窗口"中获取的,也可以理解为窗口有大有小(行数有多有少)。通过OVER子句,窗口函数与其他的SQL函数有所区别,如果函数具有OVER子句…

深入工作流调度的内核

在大数据时代,工作流任务调度系统成为了数据处理和业务流程管理的核心组件,在大数据平台的构建和开发过程中尤为重要。随着数据量的激增和业务需求的多样化,合理的任务调度不仅能够提高资源利用率,还能保证业务流程的稳定和高效运行。本文将结合实际场景,探讨目前市面上常…

【TES817】l基于XCZU19EG FPGA的高性能实时信号处理平台

板卡概述 TES817是一款基于ZU19EG FPGA的高性能实时信号处理平台,该平台采用1片高性能的FPGA:XCZU19EG-2FFVC1760I作为主处理器,FPGA的PL端外挂1组72位DDR4 SDRAM,用来实现超大容量数据缓存,FPGA的PS端外挂1组72位的DDR4 SDRAM的高速数据缓存,用来支持操作系统的运行。 该…

PbootCms模板当列表页只有一页的时候不显示分页的小技巧

在 PBootCMS 中,如果希望在列表页只有一页时隐藏分页条,可以通过条件判断来实现。具体步骤如下: 步骤 1: 判断总页数获取总页数:使用 {page:count} 获取总页数。 判断总页数:当总页数大于 1 时显示分页条。详细解释判断总页数使用 {pboot:if([page:count] > 1)} 判断总…