四则运算

coding.net:https://git.coding.net/vambo/Caculates.gitgit

需求分析:
编写一个程序
1.自动生成小学四则运算的题目
2.Myapp.exe -n 10 -o Exercise.txt 经过-n控制题目数量 Myapp.exe -r 10 -r控制数值范围
3.假分数转为真分数表示
5.程序生成的题目不能重复(PS:经过有限次交换+或者×变成同一道题目)
6.生成的题目存入执行程序的当前目录下的Exercises.txt文件,同时生成答案,存入当前目录下的Answers.txt文件。
特别的,真分数的运算以下例所示:1/6 + 1/8 = 7/24。
7.程序能支持生成1W题
8.给定题目文件和答案文件,能断定对错 :如Myapp.exe -e <exercisefile>.txt -a <answerfile>.txt -o Grade.txt算法

设计文档:
1.设计一个类来存储运算数,类成员分别表示整数部分,分子部分,分母部分,boolean型表示是否带有分数。
2.设计一个类来存储运算符,+,-,×,÷。
3.获取控制台参数,有-e则为校验答案,不然为生成式子。设计文档:
4.用两个数组分别存储操做数和操做符,根据操做符数组来决定式子的运算方法。
5.计算过程用假分数表示,得出最终结果再约分。
具体实现:
数组

  • com.main
    • Main    提供方法入口,接收控制台参数
  • com.operationBean  bean包
    • Operand  操做数类
    • Operator 操做符类
  • com.tools      工具包
    • Caculate 提供计算方法
    • Reduction 提供方法将数化为规范的真分数           

PS:加减乘除方法相近,故只贴加法app

同理类推,三个运算符则为(++)+,(++)-,++(×),++(÷)eclipse

 

 

 运行结果工具

 

 

 

为了方便在myeclipse集成环境下测试运行学习

 

 

 

PSP

 

PSP2.1测试

Personal Software Process Stages编码

Time Senior Studentspa

Time

 

Planning

计划

5

10

 

· Estimate

估计这个任务须要多少时间

5

5

 

Development

开发  

105

410

 

· Analysis

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

10

10

 

· Design Spec

生成设计文档

10

10

 

· Design Review

设计复审

10

5

 

· Coding Standard

代码规范

10

5

 

· Design

具体设计

10

20

 

· Coding

具体编码

50

300

 

· Code Review

代码复审

5

30

 

· Test

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

13

30

 

Reporting

报告

15

20

 

·

测试报告

6

10

 

·

计算工做量

6

5

 

·

并提出过程改进计划

6

10

 

 

 

 

 

 

 

 总结

  最近课余心思比较多的花在参加宣讲会和简历上,因此对于课业花的心思会比较少。对于这个项目我以为是一个比较好的方式去学习和实践算法,但我应该是没作到。

在考虑查重的时候,看到王文基学长分享的《【四则运算】做业--如何判断重复》中,当算式使用二叉树形式存储时,能够经过最小子树判断算式的运算步骤。根据这种思路从而推出更浅显且暴力,能适用于我这个项目中的用法(由于项目并无使用二叉树做为存储结构),既经过运算过程来判断算式是否重复,由于当1+2+3和3+2+1在我这个项目中实则为caculate(caculate(1+2),3)和caculate(caculate(3+2),1),即判断最小的caculate(操做数1,操做数2,操做符)是否相同(或者操做符为+、×时经过交换两个操做数位置后相同),可是在读取字符串时,想将字符串读取为操做数数组和操做符数组存储时出现逻辑问题,因此如今卡在这里。也由于此输入题目文件和答案文件时检查题目正确性也使用直接读取答案文件来匹配了。

一片绿。。。。。为了遇上deadline,就先提交目前的版本,以后在改进。

相关文章
相关标签/搜索