第二次作业,个人项目

一、GitHub地址

 https://github.com/amazingyp/LineCount

二、PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 30 24
· Estimate · 估计这个任务需要多少时间 30 24
Development 开发 1210 1272
· Analysis · 需求分析  15 13
· Design Spec · 生成设计文档 40 40
· Design Review · 设计复审  35 51
· Coding Standard · 代码规范 20 20
· Design · 具体设计 100 108
· Coding · 具体编码 850 901
· Code Review · 代码复审 30 28
· Test · 测试(自我测试,修改代码,提交修改) 120 111
Reporting 报告 120 110
· Test Report · 测试报告 60 50
· Size Measurement · 计算工作量 20 30
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 40 40
合计   1360 1406

三、解题思路

1.使用何种语言

题目中说过本次项目可使用任何语言,而且此题目并不会因为语言的选择而对解题难度有所影响,所以选择了不太熟悉的python,作为练手项目。

2.需求分析

本题需求为给定一功能参数和文件路径,去统计制定的行数,另外还要有递归文件夹,实现通配符,可视化界面的要求。面对这样逻辑清晰、且功能相对独立的需求,我的办法是"自底向上"设计(有没有这个名词啊0.0),具体做法是,先不考虑各个功能如何如何交互调用,先问自己,你会统计文件中的字符数吗?你会统计文件中的词数吗?每问自己一次,就实现一部分的功能,将这些功能实现好之后,在考虑封装调用的问题。封装成类?封装成函数?本题结构较为清晰简单,便只是封装成了函数,实现相应功能时调用即可。

3.功能实现

比较难的功能应该是统计词数,和其他同学一样,readline后用正则处理字符串,然后统计,其他的功能也大同小异。

4.图形界面

这不是python的强项,也不是我的强项,我用python默认的gui库Tkinter进行可视化界面的开发。第一次接触这个东西,所以效果并不美观。

四、设计实现过程

程序的功能逻辑比较简单,此处不画流程图了0.0 

程序分为三个模块

--wc.py  用于处理各种命令行参数

--function.py  存放统计不同类型行数的函数

--window.py  gui程序

工作流程为:用户给wc.py输入参数,wc.py根据用户输入的参数调用function.py的不同函数,将返回的结果打印在命令行中。

在上交这份作业之前,我观摩了不少的同学的作业,发现用Java编写的程序流程图组织非常精良,各种抽象类各种继承,比我这个玩具程序要严谨的多。这充分体现了Java和python两种语言的特色,Java组织严密,适合大型项目开发;python短平快,适合小型工具的开发。

五、功能测试

1.统计字符数

2.统计词的数目

3.统计行数

4.统计复杂数据

5.递归

6.图形界面

六、总结反思

通过完成这个项目,我了解到了python的一些基本语法,同时也是第一次使用PSP表格,希望能在以后的项目开发中学到更多东西。

 

猜你喜欢

转载自www.cnblogs.com/zyppyz/p/11581636.html
今日推荐