本次作业地址: https://edu.cnblogs.com/campus/xnsy/Test/homework/2203
一、项目需求
WordCount的需求可以概括为:对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。
可执行程序命名为:wc.exe,该程序处理用户需求的模式为:
wc.exe [parameter] [input_file_name]
存储统计结果的文件默认为result.txt,放在与wc.exe相同的目录下。
二、项目功能
2.1基本功能
wc.exe -c file.c //返回文件 file.c 的字符数
wc.exe -w file.c //返回文件 file.c 的单词总数
wc.exe -l file.c //返回文件 file.c 的总行数
wc.exe -o outputFile.txt //将结果输出到指定文件outputFile.txt
注意:
空格,水平制表符,换行符,均算字符。
2.2扩展功能(未完成)
wc.exe -co file.c //返回代码行
wc.exe -n file.c // 返回空行
wc.exe -t file.c //返回注释行
wc.exe -e stopList.txt // 停用词表,统计文件单词总数时,不统计该表中的单词
wc.exe -o outputFile.txt //将结果输出到指定文件outputFile.txt
三、PSP表格
PSP2.1 |
PSP阶段 |
预估耗时 (分钟) |
实际耗时 (分钟) |
Planning |
计划 |
20 | 20 |
· Estimate |
· 估计这个任务需要多少时间 |
400 | 415 |
Development |
开发 |
200 | 210 |
· Analysis |
· 需求分析 (包括学习新技术) |
30 | 20 |
· Design Spec |
· 生成设计文档 |
20 | 10 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 | 15 |
· Coding Standard |
· 代码规范 (为目前的开发制定合适的规范) |
20 | 15 |
· Design |
· 具体设计 |
30 | 10 |
· Coding |
· 具体编码 |
300 | 330 |
· Code Review |
· 代码复审 |
10 | 30 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
30 | 15 |
Reporting |
报告 |
30 | 10 |
· Test Report |
· 测试报告 |
30 | 30 |
· Size Measurement |
· 计算工作量 |
10 | 5 |
· Postmortem & Process Improvement Plan |
· 事后总结, 并提出过程改进计划 |
30 | 25 |
合计 |
430 | 415 |
先用模块在生成窗口可以打开本地文件,并保存在result.txt中,如果result.txt没在程序目录下则在D盘创建一个文件并保存,但如何通过abspath自动识别wordcount.exe所在目录还没找到具体方法
定义了一个getMostCommonWord函数,获得在打开的txt文件中单词的字母和字母的总数,这个一开始并不难,但在一开始re.findall里获得的是列表,用for循环获得是单个字符串,不能计算其字母数,并输出也有错误,所以搜了一下字符串和列表的转化,最后实现基础功能。定义了一个analyze_code和run函数,这个一开始对我来说算很难,因为以前对re模块并不太熟悉,更何况涉及到换行读取,获得非换行字符,这些都是上网查询了一下re模块的match匹配规则,慢慢摸索出来。
代码实现截图: