python个人项目-软工个人项目WC(Python实现)

实现功能:

1、-c:统计字符数;

2、-w:统计单词数;

3、-l:统计行数;

4、-a:统计复杂数据(空行、代码行和注释行);

5、-s:递归处理目录下符合条件的文件;

通配符没有全面,只能辨别后缀。

6、-x:通过图形界面选择文件;

可以通过图形界面选择文件,但输出还是在cmd上显示。

二、PSP

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)

Planning

计划

30

25

· Estimate

· 估计这个任务需要多少时间

20

20

Development

开发

600

660

· Analysis

· 需求分析

20

20

· Design Spec

· 生成设计文档

20

30

· Design Review

· 设计复审

30

30

· Coding Standard

· 代码规范

30

40

· Design

· 具体设计

80

60

· Coding

· 具体编码(学习新技术)

400

370

· Code Review

· 代码复审

60

50

· Test

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

60

60

Reporting

报告

120

120

· Test Report

· 测试报告

60

80

· Size Measurement

· 计算工作量

30

30

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

30

30

合计

1590

1625

三、解题思路

看到题目时,发现它的需求可以用Python很容易的实现,然后看到需要用cmd输入,但用python并不会直接生成exe文件,然后在网上看到可以利用一些途径生成exe文件,就直接用python写了。因为我对Python不是很熟悉,对python里面类的方法还不是很懂,并且我之前打惯了C语言,所以我用面对过程的思路去实现了这个程序。下面是实现各种功能的思路:

1、字符计算:python有方法可以直接知道字符的个数,但要减去空格还有换行的字符。

2、单词计算:可以通过正则表达式,只保留连续的英文字母,即可得到单词数。

3、行数计算:有readlines方法,可以把文件按行读入,即可知道有多少行。

4、复杂数据:按行读入,把空格和换行符去掉,在判断是空行还是注释行还是代码行。

5、处理文件夹里面符合类型的文件:通过递归把符合类型的文件都存进一个列表里面,在循环处理。

6、通过图形界面选择文件:直接调用方法即可。

7、在CMD上输入,可以通过sys模块实现,然后对输入的参数进行读取分析。

四、设计过程

因为用的还是面对过程的思路,所以没有用到类,主要有下面几个方法:

1、count_char: 统计字符个数;

2、count_word: 统计单词的个数;

3、count_line:统计行数;

4、function_a:实现-a的功能,统计复杂数据;

5、get_filelist: 递归处理文件夹里面符合条件的文件,存在一个列表里面;

6、function_s:实现-s的功能;

7、function_x:实现-x的功能,可以通过图形界面选择文件;

8、main:主方法,用来分析输入调用特定的方法。

流程图如下:

1797472-20190925210511797-1684803282.png

五、测试结果

测试文件说明:除了特殊文件夹里面的文件,其他均为正常的源文件。特殊文件夹里面file1.c是空文件,file2.c只有一个字符,file3.c只有一个单词,file4.c只有一行。

1797472-20190925211538808-2136114277.pngs

测试截图:

测试-c、-w、-l、-a和-s(可以直接用-a命令把-c、-w、-l和-a的答案都输出来):

1797472-20190925212349062-614888255.png

测试-s:

1797472-20190925212751962-1179163667.png

1797472-20190925212845725-1428885571.png

六、总结

本次软工作业,是我用Python做出来的第一个软件,我对python的理解进一步加强了。但python是一门面向对象的语言,我却用面向过程的思路去实现这个软件,可以看出我对python的理解和应用还不够深,还需继续深入学习。同时,也可以看出我还没面向过程的思想中跳出来,对“万物皆对象”的理解不够强,对于像这样的小软件还能完成,但对于大程序来说,就可能比较吃力了。本次开发过程中,可能实现的步骤中不明确,有很多的bug出现,大大增加了开发的时间。所以通过这次软工作业,我懂得了一个道理,编程能力固然重要,但实现的步骤同样重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值