用户需求:git
1.程序可读入任意英文文本文件,该文件中英文词数大于等于1个。github
2.程序须要很壮健,能读取容纳英文原版《哈利波特》10万词以上的文章。框架
3.指定单词词频统计功能:用户可输入从该文本中想要查找词频的一个或任意多个英文单词,运行程序的统计功能可显示对应单词在文本中出现的次数和柱状图。学习
4.高频词统计功能:用户从键盘输入高频词输出的个数k,运行程序统计功能,可按文本中词频数降序显示前k个单词的词频及单词。测试
5.统计该文本全部单词数量及词频数,并能将单词及词频数按字典顺序输出到文件result.txt。
编码
基本功能:spa
1.读入读出文件功能(将文件进行读取,存放)
2.用户输入功能(用户输入想要查询的单词,以及查询高频单词的个数)
3.词频统计功能
4.排序功能(降序排序和按字典顺序排序)
5.显示功能(显示柱状图,显示前k个高频单词的词频,显示指定单词出现的次数)
备注:由于编码能力有限,因此只能实现部分功能,没有按照老师的要求将功能所有实现。
设计
用findall 抽取出[a-z,A-Z]的英文单词 而后用for循环遍历统计单词出现的次数代码规范
import re #应用re模块 lines_count = 0 chars_count = 0 words_dict= {} f=open('cyy.txt','r') for line in f: lines_count = lines_count + 1 chars_count = chars_count + len(line) match = re.findall(r'[^a-zA-Z]+', line)#匹配英文单词 for i in match: line = line.replace(i, ' ') lines_list = line.split() for i in lines_list: if i not in words_dict: words_dict[i] = 1 else: words_dict[i] = words_dict[i] + 1 f.close() for w,n in words_dict.items(): print(w,n)
任务内容 | 计划共完成须要的时间(min) | 实际完成须要的时间(min) |
计划 | 10 | 10 |
估计这个任务须要多少时间,并规划大体工做步骤 | 30 | 20 |
开发 | 200 | 200 |
需求分析 (包括学习新技术) | 10 | 10 |
生成设计文档 | 20 | 15 |
设计复审 (和同事审核设计文档) | 20 | 15 |
代码规范 (为目前的开发制定合适的规范) | 20 | 20 |
具体设计 | 30 | 30 |
具体编码 | 100 | 100 |
代码复审 | 25 | 25 |
测试(自我测试,修改代码,提交修改) | 20 | 20 |
报告 | 30 | 30 |
测试报告 | 10 | 10 |
计算工做量 | 5 | 3 |
过后总结 ,并提出过程改进计划 | 6 | 4 |
从 PSP表中能够看出,我全部的阶段付出的时间都比别人多好多多是由于第一次,缺少经验,在每个阶段我都在搜索,概括,总结,因此付出的时间相对来讲就比别人多好多,不过经过作此次表格,让我了解了作一个项目所要经历的阶段,都要作什么,虽然细节仍是不懂,可是大概框架仍是知道了,因此在从此的学习中,我会加倍努力,弥补本身的不足。code