当前位置: 首页 > news >正文

实现一个自动生成小学四则运算题目的命令行程序

这个作业属于哪个课程 <班级的链接>
这个作业要求在哪里 <作业要求的链接>
这个作业的目标 <你理解的作业目标具体内容>

姓名:郭程朗
学号:3123004567
github地址:https://github.com/Ripplling/calculate/tree/master

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

效能分析

1.改进时间投入

需求分析:30分钟-设计高效数据结构和算法
编码阶段:45分钟-实现性能优化策略
总计:75分钟

2.性能改进思路

1.重复检测:HashSet查找和规范字符串生成

优化后:缓存规范化结果

2.表达式检测:递归生成和验证的重复计算

优化后:约束引导生成

3.分数运算:频繁月份和GCD计算

优化后:延迟约分

3.性能消耗

性能分析 - 生成1000道题目 (range=10)
操作类型 | 耗时(ms) | 占比(%) | 调用次数
表达式生成和验证 | 1450 | 58% | ~5000次
重复检测 | 620 | 25% | ~1000次
分数运算 | 280 | 11% | ~15000次
文件IO操作 | 150 | 6% | 2次

函数调用耗时排名:

  1. calculateExpression() - 35% (递归计算)
  2. getNormalizedString() - 22% (规范化处理)
  3. generateExpressionTree() - 18% (表达式生成)
  4. Fraction.simplify() - 12% (分数约分)
  5. File.write() - 6% (文件写入)

4.消耗最大函数

calculateExpression()

设计实现过程

image

测试运行

image

项目小结

这是一个非常有结构的项目,每个类都充分发挥了不同的作业,因此设计的时候要提前想好很多东西。这对我来说是一次难得的经验

http://www.hskmm.com/?act=detail&tid=34608

相关文章:

  • EasySQLite 升级到.slnx 格式后的性能优化效果解析
  • golang unique包和字符串内部化
  • 永久暂停window10更新,不想更新到window11
  • 算法第二章作业
  • 102302148谢文杰第一次数据采集作业
  • RaspberryPi 个人服务搭建
  • tryhackme-预安全-网络如何工作-网站如何工作-11
  • 2025塑料托盘优质厂家推荐,力森塑业科技多元化产品满足各类需求!
  • 嵌入式实验3串口通信--任务二USART1通信
  • Drive Snapshot
  • 20232319 2025-2026-1 《网络与系统攻防技术》实验二实验报告
  • 刷题日记—洛谷循环题单
  • 为什么需要学习变异的算法?
  • 今天搞了新的回归,不显著
  • shell编程学习笔记005之until循环
  • shell编程学习笔记006之select循环
  • burpsuite抓取小程序公众号数据包-cnblog
  • 2026 NOI 做题记录(七)
  • esp8266模块开发准备工作
  • 关于本学期我的编码规范与数学之美第一章观后感 - C
  • 线程--线程生命周期、Synchronized
  • C#中Yolo开发环境
  • CF1918F Caterpillar on a Tree
  • tryhackme-预安全-网络如何工作-DNS 详细信息-09
  • Diffusion
  • SP4191 天空代码 分析
  • l2正则化项以及torch.norm
  • 又数据结构
  • 大物实验
  • 蒙特卡洛保形预测技术解析