标签:png class 项目 数组 coding 整数 顺序 新技术 小数
a.需求分析
看了大家对于本课程的目标和规划,很多同学都希望能提高自己的实践能力,没有捷径可走,就是练习、练习再练习!那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序
从《构建之法》第一章的 “程序” 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 “软件”,满足以下需求:
b.功能设计
c.设计实现
MathStart 控制台的输入输出,将表达式写入文件,引用需要使用的类,将表达式的key存放入hashtable判重
Express 生成表达式,运算结果,判断表达式是否不符合要求,生成表达式的key。
Operator 运算符优先级定义,为Express运算结果提供帮助。
AnswerLogin 对比答案是否正确,可匹配小数,正整数,分数,带分数,若不是以上则输入失效,要求重新输入。
d.代码说明
num,oper随机生成。
括号一定在数字的左右两边,按左括号,数字,右括号,运算符的顺序加入表达式;
tranExp是将表达式转为后缀表达式,方便计算。
运算的过程代码短,行数多,简述一下,就是将后缀表达式中,取数字放入a数组中,遇到运算符取a中两个数,结果放回a中。像栈一样先进后出。
在后缀表达式中遇到‘+’或‘*’时,判断前面两个数值大小,将小的数放到前面。生成一个String的key。
缺陷,只能判断符号两边是数字的,不能判断符号边是表达式的如:(1+2)+(1/2)与(1/2)+(1+2)。
以上判定答案输入,根据正则表达式验证输入是否符合要求,符合则设置inputErr=false。当输入是小数时得到他的精度。分数精度为0.
最后进入Login,判定答案是否正确。
e.测试运行
6 repeat 9 即第7与第10重复。后面更改一下。
psp
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
---|---|---|---|
Planning | 计划 | 20 | 20 |
Estimate | 估计这个任务需要多少时间 | 5 | 5 |
Development | 开发 | 4000 | 4000 |
Analysis | 需求分析 (包括学习新技术) | 20 | 10 |
Design Spec | 生成设计文档 | 50 | 10 |
Design Review | 设计复审 | 2 | 1 |
Coding Standard | 代码规范 | 1 | 1 |
Design | 具体设计 | 20 | 30 |
Coding | 具体编码 | 4500 | 4700 |
Code Review | 代码复审 | 10 | 8 |
Test | 测试(自我测试,修改代码,提交修改) | 50 | 120 |
Reporting | 报告 | 60 | 120 |
测试报告 | 24 | 45 | |
计算工作量 | 3 | 5 | |
并提出过程改进计划 | 8 | 10 |
标签:png class 项目 数组 coding 整数 顺序 新技术 小数
原文地址:http://www.cnblogs.com/lxdapp/p/7562281.html