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

结对项目

时间:2024-09-26 19:23:38浏览次数:1  
标签:20 结对 题目 项目 生成 60 FileOperation 表达式

结对项目
| 作业的要求 | https://edu.cnblogs.com/campus/gdgy/SoftwareEngineering2024/homework/13137 |
| 我理解的作业目标 | 完成四则运算的算法完成以及软件开发到应用的实现 |
github链接
https://github.com/shishuiliuqing/project
PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 25 5
Estimate 估计这个任务需要多少时间 20 20
Development 开发 50 60
Analysis 需求分析 (包括学习新技术) 60 240
Design Spec 生成设计文档 10 15
Design Review 设计复审 60 60
Coding Standard 代码规范 (为目前的开发制定合适的规范) 10 10
Design 具体设计 20 30
Coding 具体编码 3天 3天
Code Review 代码复审 30 2天
Test 测试(自我测试,修改代码,提交修改) 30 60
Reporting 报告 60 60
Test Repor 测试报告 15 10
Size Measurement 计算工作量 5 5
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 20 25
合计 4天 6天
效能分析
可以看到String类的调用较多,这是将真分数转化为假分数便于计算带来的代价,同时HashMap调用也非常频繁,这是因为在大量生成题目和判题时会多次使用到哈希表,在生成题目数量巨大时,我们认为这样的消耗是可以接受的。
设计实现
本次项目满足了多项需求,包括多道题目的生成,每一道题目答案的计算,对重复题目的检查(包括对交换律等形式不同而本质一样的题目的筛查),答案的比对等需求。
其由四个类组成,分别为Main类、FileOperation类、ArithmeticExpression类、Fraction类组成。
其中Main类读取命令行参数,然后调用FileOperation类,FileOperation类中可以通过调用ArithmeticExpression类进行题目生成,然后在FileOperation类中进行题目判断。而Fraction类的功能是将数字转化为假分数进行计算,然后再将结果转化为真分数输出满足需求,其通过ArithmeticExpression类来调用。

具体代码设计
算术表达式的生成
生成随机不重复的算术表达式由ArithmeticExpression类完成,也是本次项目中主要的难点。为了便于查重与括号的生成,我们将一个小的算术表达式作为一个表达式的基本元素,这个元素可以是一个数字或者式子,通过递归的方法将各个小表达式组合生一个完整的表达式。在计算答案的过程中每一个元素都有着独立的优先级,相当于是自带了一个括号,然后我们再通过对题目的解析,判断是否将括号加上。其储存形式如下图,每一行都代表一个元素,先确定符号个数,再随机出每一个元素的符号个数,如果符号个数有剩,那就继续生成下一个元素。

再筛选重复题目的过程中,我们将输入一个题目,返回一个字符串数组,里面包含自身与有限交换的所有结果,以此来排查所有可能出现的重复题目。
运行结果如下:

计算生成的算术表达式
在计算的过程中,由于考虑到分数的存在,我们将所有的数字都转化成了分数的形式,用假分数的方法进行计算,然后再将其转化为标准的形式进行输出。

命令行参数读取
Main中找到命令行参数中的"-n""-r""-e",并读取其后的字符串,交给其他功能,比较简单,不再赘述。

题目判断
在FileOperation类中完成,在生成好所有的题目与答案后,从指定文件中获取答案进行比对,再将评判结果输出到指定文件,其运行结果如下:
测试运行


总结
在结对编程中,我们保持了高效的沟通,在编程过程中遇到的问题也能够及时的发现。而且思维的碰撞也可以帮助我们得到更有效的算法,在不断的讨论和优化中很快构建出程序的雏形。编程过程中,我们有时两人共同讨论难题,有时分工解决问题,使得项目的进行十分顺利,两人都得到了许多收获。

标签:20,结对,题目,项目,生成,60,FileOperation,表达式
From: https://www.cnblogs.com/guangdong1/p/18434116

相关文章

  • vue项目部署到nginx后一刷新页面就404
    在Vue项目部署到Nginx服务器上时,遇到刷新页面显示404的问题,通常是因为Nginx无法正确地处理Vue路由。Vue应用的路由是前端路由,依赖于JavaScript来动态解析URL,当直接访问除根路径外的URL时,Nginx默认会尝试在服务器上找到对应的文件或目录,如果找不到就会返回404错误。为了解决这个问......
  • 结对项目
    github地址这个作业属于哪个课程计科22级12班这个作业要求在哪里作业要求链接这个作业的目标结对实现一个自动生成小学四则运算题目的命令行程序姓名任务郑铠洋程序实现彭培炎测试一、PSP表格阶段描述预估耗时(分钟)实际耗时(分钟)P......
  • 【项目实战】生命体征监测芯片ADPD7000调试
    概要ADPD7000作为多模式生命体征监测传感器前端,可以做到心率、心电、血氧、体脂等生命体征进行实时监测。极小的封装及强悍的功能用在小小的手表手环上,就可以测量出人体的多项数据。以下技术实现过程,具体一定驱动基础的伙伴能秒懂。技术细节硬件原理:驱动配置:以上P4_......
  • 【项目实战】精准监测睡眠数据的进化之路
    项目场景:睡眠是人体正常生理活动的一部分,对人体的健康和身体功能恢复具有重要作用。睡眠监测功能已成健康手表手环等穿戴设备标配。在价格高度敏感的深圳电子消费市场,硬件配置的高低,使用算法的成熟度也能极大影响到睡眠数据精准度,但这都不是本文讨论的重点。全文主要探讨如何......
  • 结对项目
    这个作业属于哪个课程https://edu.cnblogs.com/campus/gdgy/CSGrade22-34这个作业要求在哪里https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13230这个作业的目标<结对合作完成项目,实现一个自动生成小学四则运算题目的命令行程序>成员1唐立伟3122......
  • 某房地产集团搭建员工培训体系项目纪实
    某房地产集团搭建员工培训体系项目纪实——完善员工培训体系,提高培训效果【客户行业】房地产行业【问题类型】培训体系【客户背景】某房地产公司隶属于某大型央企,主营业务涵盖房产开发、物业管理等房地产全产业链。依托央企的品牌和实力,充分发挥产业链协同、城市综合开发......
  • 某国有投资集团用人机制改革项目成功案例纪实
    某国有投资集团用人机制改革项目成功案例纪实——引入淘汰机制,优化用人机制,有效传导压力【客户行业】国有企业;金融行业【问题类型】用人机制改革【客户背景】南方某集团,是面向工业领域的综合类国有资本投资公司,集团员工数万人,部门几十个,拥有多家子公司,涉及投资运营领域广......
  • 【项目案例】嵌入式Linux比较好的10+练手项目推荐,附项目文档/源码/视频
    后台私信小雯老师,回复“嵌入式Linux项目”,免费获取以下所有项目配套源码及文档。练手项目推荐 1 智能猫眼项目功能介绍:1.人脸识别:基于百度专业的深度学习算法和海量数据训练可进行人脸识别,轻松知晓访客身份;2.智能报警:实时检测非法闯入,可以自动布防,当触发警报时实时报警,最短时间......
  • 如何在CMakeList项目中集成GNU Autotools 构建模块
    背景:我有三个工具A,B,C,其中A,B是原先MakeFile编译的工具,C是原先GNUAutotools自动编译的工具。现在希望使用CMakeList统一构建,我的目录如下:||–A|-----/src|-----CMakeList.txt|–B|-----/src|-----CMakeList.txt|–C|-----autoTool|–CMakeList.txt想要起到的效......
  • OA项目之用户管理
    1.用户管理1.1.后台接口定义分页查询用户接口定义,支持条件模糊查询;新增用户接口定义;编辑用户接口定义;删除用户接口定义;1.2.前端用户管理实现1.2.1.分页查询页面初始化<!--数据表格--><tablestyle="margin-top:-15px;"id="tb_user"lay-filter="t......