我这个项目的码云地址是https://gitee.com/chitu_heshui/personal_project41678.git
表格记录了我预期做这个项目的时间和实际上消耗的时间
PSP2.1 | Personal Software ProcessStages | 预估耗时(分钟) | 实际耗时(分钟) |
Planning | 计划 | 440 | 410 |
Estimate | 估计这个任务需要多少时间 | 440 | 410 |
Development | 开发 | 200 | 180 |
Analiysis | 需求分析(包括学习新技术) | 30 | 20 |
Design Spec | 生成设计文档 | 20 | 15 |
Design Review | 设计复审 | ||
Coding Standard | 代码规范(为目前的开发制定合适的规范) | 20 | 15 |
Design | 具体设计 | 20 | 20 |
Coding | 具体编码 | 60 | 70 |
Test | 测试(自我测试,修改代码,提交修改) | 30 | 30 |
Reporting | 报告 | ||
Test Repor | 测试报告 | ||
Size Measurement | 计算工作量 | ||
Postmortem & Process Improvement Plan | 事后总结,并提出过程改进计划 | 60 | 60 |
合计 | 440 | 410 |
计算器的流程图
写这个计算器的时候遇到了正则表达式来判断输入的值,这是上学期在数据结构学到的但是忘了,所以就在百度上找了一些博客来学习,
还有就是加减乘除出运算时处理的函数也是在百度上找的,自己研究了好久,挺好玩的,
这是从命令提示行获取代码:
parser=argparse.ArgumentParser(description='Process some inteqers.')
parser.add_argument("one",type=str)
args=parser.parse_args()
String = args.one
这是运算的部分代码:
def getValue(exp):
def value(exp, i):
deque = []
pre = 0
while i < len(exp) and exp[i] != ')':
if ord(exp[i]) >= ord('0') and ord(exp[i]) <= ord('9'):
pre = pre * 10 + int(exp[i])
i += 1
elif exp[i] != '(':
addNum(deque, pre)
deque.append(exp[i])
i += 1
pre = 0
else:
bra = value(exp, i + 1)
pre = bra[0]
i = bra[1] + 1
addNum(deque, pre)
return [getNum(deque), i]
这是正则判断的代码:
jisuan=re.compile("^(\(*\d+(.\d+)*\)*(\+|-|/|\*))+\d+(.\d+)*\)*$")
程序会获取从命令行输入的字符串并将其从命令行窗口显示出来
我遇到了一个问题就是test测试的时候定义方法名字的时候必须要以test_开头,否则就不会测试,测试用例,这个坑我踩了好久
总结:通过大伟老师安排我软件工程这门课,深深体会到有些东西必须得经历的,就是(趟坑)坑踩多了就好了,这是一个过程,使得我们如何快速的解决问题,要养成良好的编程习惯。