首页 > 编程语言 >结对项目-Java实现四则运算题目生成器

结对项目-Java实现四则运算题目生成器

时间:2023-09-28 17:34:26浏览次数:35  
标签:结对 Java 函数 测试 生成器 生成 答案 expression 表达式

软件工程 21级计科1班
作业要求 结对项目
作业目标 了解结对合作开发流程,提高合作开发效率

项目成员

姓名 学号
江卓颖 3121004699
詹慧丹 3221004855

Github地址

github仓库链接

PSP表

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

设计实现过程

设计思路

  • 从命令行里面获取参数:如果获取到的是题目数量以及自然数的范围则调用createProblem()函数生成题目,如果获取到的是文件名,则调用函数creatGraFile()校对答案
  • 函数createProblem():
    • 调用generate()函数随机生成输入范围内的整数或真分数、运算符组成表达式,使用该表达式的逆波兰表达式计算答案,判断是否重复,没有重复则将其添加到结果集
    • 将结果集中的表达式和答案分成两个集合,传递给creatFile()和creatAnsFile()分别导出题目和答案文件
  • 函数creatGraFile():将两个文件导入并将答案装入两个集合中进行一一比对和统计,将统计结果导出文件

关键代码说明

主要函数

函数名 参数 主要功能
createProblem( ) n(题目数量)、r(自然数范围) 调用generate( )生成表达式和答案,分成表达式集合和答案集合,调用creatFile( )和creatAnsFile( )导出文件
generate( ) n(题目数量)、r(自然数范围) 调用expression( )生成表达式,调用bolan( )计算答案,调用ifRepeat( )判断重复,没有重复则将其添加到结果集
expression( ) r(自然数范围) 随机生成r范围内的整数或真分数以及运算符组成表达式expression,返回expression字符串
bolan( ) expression(表达式字符串) 使用该表达式的逆波兰表达式计算答案
jisuan( ) num1(操作数1)、num2(操作数2),operation(运算符) 根据操作数和运算符来进行计算
ifRepeat( ) expression(表达式),result(已生成的表达式集合) 将expression与已生成的表达式集合中的表达式进行比对,返回true或false
creatFile( ) problem(问题表达式集合) 将所有问题表达式导出到文件Exercises.txt
creatAnsFile( ) answer(答案集合) 将所有答案导出到文件Answer.txt
creatGraFile( ) exerciseFile(用户答案文件名),answerFile(标准答案文件名) 文件导入后,将答案装入两个集合中进行比对和统计,将统计结果导出文件Grade.txt

关键代码

createProblem( )函数

generate( )函数

expression( )函数

bolan( )函数


jisuan( )函数



测试运行

测试覆盖率

测试类

测试生成表达式函数

测试逆波兰计算结果函数

测试计算函数



测试生成比较文件函数

测试化简函数

测试约分函数

测试表达式重复检验函数

整体测试

生成100道10以内的算式

生成100道表达式,保存在Exercises.txt中

生成100道表达式的答案,保存在answer.txt中

100道计算题算错5道的校对结果,保存在Grade.txt中

效能分析

  • 由图可以看出,char[],String,StringBuilder类型使用的最多,可以看出函数generate可以进行改进,可以使用StringBuilder来代替String进行字符串的拼接,避免过多产生新的String对象。
    然后在进行逆波兰计算表达式的结果的函数中,char[]类型使用较多,暂无改进方法

项目小结

  • 经验和感受:
    第一次两个人一起完成一个程序,在仓库的操作上出现了一些麻烦,不过在讨论和搜索学习github的使用后都解决了,两个人一起讨论思路以及分工完成代码要比一个人高效得多,合理的分工可以避免某个功能的重复编写等,让开发更高效。这次的结对项目有利于我们了解合作开发的流程比如分配任务、制定代码规范等,同时,及时的测试有利于及时发现代码问题并解决,减小对整个程序的影响。

标签:结对,Java,函数,测试,生成器,生成,答案,expression,表达式
From: https://www.cnblogs.com/muggle1116/p/17733201.html

相关文章

  • 结对项目
    小学四则运算这个作业属于哪个课程软件工程这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade21-34/homework/13025这个作业的目标1、尝试结对编程2、深入熟悉开发过程3、设计一个能自动生成小学四则运算题并批改题目的程序合作者姓名学......
  • 基于Java开发的企业人力资源管理系统(招聘、绩效、考勤、酬薪管理)
    前言:企业人力资源管理系统是企业管理中不可或缺的一部分,它涵盖了招聘管理、人员管理、绩效管理、考勤管理、社保管理、酬薪管理等多个方面。这些模块相互关联,协同工作,为企业的人力资源优化和管理提供了强有力的支持。系统介绍:1、招聘管理是企业引进人才的重要环节,其主要目的是......
  • Java内存分析工具实践之resourcemanager内存泄漏排查
    ......
  • Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_食品的实体类、工具类与实现类
    Kbaor_2023_9_28_Java第一次实战项目_ELM_V1_食品的实体类、工具类与实现类ELM_V1_食品的实体类packageelm_V1;/***[食品实体类]**@author秦帅*@date2023-9-25*/publicclassFood{privateIntegerfoodId;//食品编号privateStringfoodNam......
  • JAVA导入工程遇见Could not transfer artifact io.rest-assured:rest-assured:pom:4.2
    问题:用idea导入已有的工程,操作File->InvalidateCaches/Restart后,点击右上角的Run,报以下异常:“Couldnottransferartifactio.rest-assured:rest-assured:pom:4.2.0”如下图所示:解决办法:因为Maven目录配置的问题,打开File->NewProjectsSettings->SettingsforNewProjects......
  • JavaScript 中的类型、值和变量
     JavaScript类型可以分为两类:原始类型和对象类型。JavaScript的基本类型包括数字、文本字符串(称为字符串)和布尔真值(称为布尔值)。特殊的JavaScript值null和undefined是原始值,但它们不是数字、字符串或布尔值。每个值通常被认为是其自身特殊类型的唯一成员。ES6添加了一种新......
  • java: Sorting Algorithms
     /***encoding:utf-8*版权所有2023©涂聚文有限公司*许可信息查看:https://www.geeksforgeeks.org/sorting-algorithms/*描述:https://www.geeksforgeeks.org/sorting-algorithms/*#Author:geovindu,GeovinDu涂聚文.**#IDE:IntelliJID......
  • 安装解压版activemq(版本太高,java不支持)
    1、上传压缩包apache-activemq-5.16.5-bin.tar.gz到/usr/local目录2、解压tar-xzvfapache-activemq-5.16.5-bin.tar.gz3、测试启动,进入/usr/local/apache-activemq-5.16.5/bin目录,启动./activemqstart4、测试访问activemq,访问http://localhost:8161/admin5、修改网页登......
  • 结对项目:实现自动生成小学四则运算题目
    软件工程计科21级2班作业要求结对项目-实现四则运算题目生成作业目标合作完成四则运算题目生成项目成员信息姓名学号杨恒3121005146游烽3121005148Github:https://github.com/wcng010/SoftwareWork2PSP表格PSP2.1PersonalSoftwarePr......
  • 结对项目
    结对项目——小学四则运算这个作业属于哪个课程软件工程这个作业要求在哪里结对项目这个作业的目标1、尝试结对编程2、深入熟悉开发过程3、设计一个能自动生成小学四则运算题并批改题目的程序一、合作者姓名学号冯逸华3121005162马传丞312100......