mysql 记录四则混合运算_MathExamV2.0四则混合运算计算题生成器

本文档详细介绍了MathExamV2.0四则混合运算计算题生成器的开发过程,包括需求分析、设计、编码、测试和总结。该生成器遵循特定的运算规则,如数字范围、运算符限制等,以适应小学三年级的数学练习。在设计和编码阶段,重点考虑了符号优先级、随机数生成和错误处理。在测试环节,验证了不同输入参数的正确性和异常情况的处理。
摘要由CSDN通过智能技术生成

MathExamV2.0四则混合运算计算题生成器----211606360 丁培晖 211606343 杨宇潇

一、预估与实际

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

• Estimate

• 估计这个任务需要多少时间

60

100

Development

开发

• Analysis

• 需求分析 (包括学习新技术)

360

440

• Design Spec

• 生成设计文档

20

20

• Design Review

• 设计复审

30

40

• Coding Standard

• 代码规范 (为目前的开发制定合适的规范)

30

50

• Design

• 具体设计

120

180

• Coding

• 具体编码

350

550

• Code Review

• 代码复审

90

120

• Test

• 测试(自我测试,修改代码,提交修改)

30

45

Reporting

报告

• Test Repor

• 测试报告

30

30

• Size Measurement

• 计算工作量

30

35

• Postmortem & Process Improvement Plan

• 事后总结, 并提出过程改进计划

60

60

合计

1210

1670

二、需求分析

我通过在网络搜索的方式了解到,小学三年级数学有如下的几个特点:

特点1:式子的运算无法得出负数。

特点2:数字范围增加,可以得出上千的结果。

特点3:除数不能为0。

特点4:在一个式子内会使用多个运算符号。

特点5:清楚加减乘除算式的优先级,并且明白括号的意思。

特点6:式子的结果大小限定在10000以内。

经过分析,我认为,这个程序应当:

使用的数字大小应为[0,1000)

并且判断除数的数字大小应为[1,1001)

生成的符号至少两个,并且至少两种。

三、设计

1. 设计思路

这一次的作业,由于需要使用逆波兰表达式,因此我们使用了和上次作业不同的输入文本的方式,这一次使用的是将字符串转为byte[],然后输入文本的方式。

我们还分出了多中方法体以及构造函数,在主函数main()里调用构造函数,在构造函数内调用各个方法体。(第一次作业只建立了一个方法体,并且在主函数调用,显得代码臃肿,因为将所有的算法都集中在一个方法体内,因此作出改变。)

根据题目要求,传入的参数有-n和-grade,因此使用if()判断了参数的-n和-grade的顺序,并建立了一个judge()的方法体,使用正则表达式判断参数的格式。

数字需要随机得出,因此需要建立随机数,随机数有多种。

随机出来的式子需要写入文本,因此创建了一个TxT()的方法,用于创建文本并将式子输入文本当中,使用String数组进行存储式子,并用Byte[]转换,最后输入文本。

答案需要的格式为“等式+答案”,而且不需要小数以及负数,因此将随机数类型定义为整型,并在最后判断答案是否符合要求。

判断加减乘除需要使用到优先级,因此创建了一个Level方法,返回值为0,1,2,用于判断符号的优先级。

因为三年级的式子为四则混合运算,因此使用中序表达式以及逆波兰,将String数组里的式子转化为线性表,最终调用reckon()方法计算线性表内的式子。并返回最终结果。

d10de5853b1d0b232d7b44fa6ed63f3e.png

2. 实现方案

准备工作:先在Github上创建仓库,克隆到本地,并邀请结伴对象,将代码提交到一个仓库内。

技术关键点:

- 四则混合运算式子以及括号的判断,需要使用到优先级࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值