1.需求分析:
运用自己喜欢的语言写一个自动生成四则运算的小程序
2。 功能设计:
(一)基本功能:自动生成基本四则运算题库,题库难度和数量自己可以控制
(二)扩展功能:系统单文件运行,自动生成题库。
3. 设计实现:导入随机数包,通过if,while语句进行判断,最后将数据写入data,输出文件。
4. 测试运行:
5. 粘贴自己满意的代码
while i<10: i=i+1 j=random.randint(0, 3) operachar=opera_li[j] a=random.randint(0, 100) b=random.randint(0, 100) #if语句进行判断 if ('*' == operachar or '/' == operachar): i=i-1 continue; if(operachar=="+"): c = a + b elif(operachar=="-"): c = a - b elif(operachar=="*"): c = a * b else: if (b == 0): i=i-1 continue c = a / b; if (c >= 100 or c < 0): i=i-1 continue s="{0}{1}{2}=".format(a,opera_li[j] ,b) #格式化字符 if s in data: i = i - 1 continue data.append(s) k=0 for i in data: #向文件里面也如数据 k=k+1 f.write("第"+str(k)+ "题"+i+' ') f.close() print("题目已经出了,请查看result.txt")
6. 总结:如果设计的方法多了,当某个类通过接口来依赖某个类的时候,被依赖的那个类要实现的方法太多了,会造成那个类中大量的代码冗余,不可过少的原因是,接口太多,会让设计变复杂,且不便于管理。因此一个一个方法需要增加其他的功能,或者代码需要重构的时候,要扩展软件的行为,尽量不要去修改已有的代码。用抽象构建框架,方法的实现来扩展细节。
7.PSP时间计算
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
5 |
5 |
·Estimate |
·估计这个任务需要多少时间,并规划大致工作步骤 |
5 |
5 |
Development |
开发 |
49 |
50 |
··Analysis |
需求分析 (包括学习新技术) |
3 |
3 |
·Design Spec |
·生成设计文档 |
3 |
3 |
·Design Review |
·设计复审 (和同事审核设计文档) |
3 |
4 |
·Design |
具体设计 |
5 |
5 |
·Coding |
具体编码 |
20 |
20 |
·Code Review |
·代码复审 |
5 |
5 |
·Test |
·测试(自我测试,修改代码,提交修改) |
10 |
10 |
Reporting |
报告 |
6 |
5 |
··Test Report |
·测试报告 |
3 |
2 |
·Postmortem & Process Improvement Plan |
·事后总结 ,并提出过程改进计划 |
3 |
3 |