wordcount作业

这个作业属于哪个课程

https://edu.cnblogs.com/campus/nue/SE202010/

这个作业要求在哪里

https://edu.cnblogs.com/campus/nue/SE202010/homework/11481

这个作业的目标

熟悉个人开发PSP的流程,锻炼自己动手能力

学号

2030101

 

小组成员:郑子涵,邱锦

1.代码仓库链接

https://gitee.com/wojiaoxiaoming/wordcount.git

2.PSP表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

 300

 无

· Estimate

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

100

 无

Development

开发

 2000

 300

· Analysis

· 需求分析 (包括学习新技术)

 1000

 100

· Design Spec

· 生成设计文档

 1000

 50

· Design Review

· 设计复审

 1500

 100

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

 300

 30

· Design

· 具体设计

 1000

 3000

· Coding

· 具体编码

 2000

 2000

· Code Review

· 代码复审

 2000

 240

· Test

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

 1000

 100

Reporting

报告

 100

 300

· Test Repor

· 测试报告

 100

 无

· Size Measurement

· 计算工作量

 300

 无

· Postmortem & Process Improvement Plan

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

 1000

 30

 

合计

 13700

 6250

 

3.程序分析

3.1 统计字符串

f.read()返回一个文件从头到尾的字符串,只需要统计返回的字符串长度

 

 

 

3.2 统计行数

f.readlines()返回一个文件各行组成的列表,只统计列表元素个数

 

 

 

3.3 统计单词数

正则表达式:单词是由至少两个字母组成的且不含其他符号。用re.findall(r'[A-Za-z]{2,}'筛选单词

 

 

 

3.4 输出TOP10词频的单词

 利用word.sort(key=lambda x: x[1], reverse=(True))将单词排序并用range命令输出词频前十的单词。

 

 

 

3.5 将信息写入文件

写入文件利用f.write(info)

 

 

 

 

3.6 扩展功能

 

字符串处理

先使用str.replace(a, b)方法将字符串中的换行符,制表符和空格全部去掉,接下来就进行判断:如果开头是'//'的话就作为注释行,不考虑多行注释;如果一行只有一个字符或没有字符就作为空行;其他全部视为代码行。

 

 

 

3.7 接口封装

 

 

 

 

4.性能分析

visual studio自带的studio profiling tools工具得到wordcount的性能报告如下:

 

 

 

 

5.计算模块部分异常处理

 

如图是未安装py2exe工具

 

 

 

 

如图是不匹配任何的缩进格式,需要统一缩进的格式

 

 

 

6.测试

对一本万字英文小说进行了测试,得到的结果如下:

 

 

 

7.学习日志

学习时段

学习内容

收获与体会

自我效率评价

11.08(2:005:00)

(6:0021:00)

开始计划设计wordcount

从一开始的一头雾水到渐渐有了思路。

效率较低

11.11(8:0011:00)

开始wordcount的编程

观看他人的博客园,学习他人的编程语句,慢慢转化成自己的东西。

效率较低

11.15(15:0021:00)

完成了wordcount的主函数

逐渐熟悉了部分编程语句和方法,渐渐能看的懂代码语句,并且渐渐会运用了。

效率较低

11.16(8:0011:00)

   (15:0021:00)

对初步的主函数进行了测试

发现部分功能如统计词频功能无法实现,继续学习其他语句以突破这个桎梏。

效率极低

11.17(8:0011:00)

   (15:0021:00)

完成了代码的改造和优化,并且最终测试成功

独立完成了wordcount还是很开心的。

效率极低

 

8.总结

  通过本次作业学习,我初步掌握了wordcount统计单词数,字符数,行数和词频的功能,也了解了psp表格的设计,在实践中不断改进和测试我的代码,这对提高自己的python水平帮助很大,让我更加感叹软件工程的伟大之处。当然过程中也遇到许多的问题,但我也通过强大的互联网也一一化解了它们,在遇到困难的过程中不断的提升自己。

posted @ 2020-11-17 20:53  郑子涵  阅读(148)  评论(0)    收藏  举报