软件工程个人项目的一些总结(完整版)

11061176王洛书

我的项目总结分为估计用时、实际用时、大致思路、debug和性能优化、测试用例、感想六大块。

一、项目开始之前估计用时

阅读题目 1小时

复习C++ 4小时

思考解题方法 1小时

写代码3小时

DEBUG 3小时

性能优化  2小时

总结 1-2小时

共15-16个小时

二、实际用时

阅读题目  1个小时

折腾VS2012  好久

看C++相关内容  2小时

思考解题方法+写代码 6小时

DEBUG  6小时+5小时=11小时

性能优化  5小时

总结  2小时

共27个小时

  总体来说debug速度慢的原因还是对C++语法不熟悉,平时用的较少,这次个人项目算是恶补一些知识。

三、我的思路

 

1、从指定文件夹里读取所有.txt、.cs、.cpp、.h的文件的绝对路径,放在list.txt里。使用system((dir XXX /b /s > list.txt).c_str())的原理。


2、用Wcounter批量处理list.txt里的文件,统计词频

3、关于Wcouter的原理。。打开一个文件,进行分词(分词标志是所有非数字非字母的东西……)
确定是不是单词;是,则记录进字典;不是则抛弃。
要注意扩展模式和普通模式的区别。

4、处理完所有文件后,用sort将单词排序后输出。

5、开始debug

四、debug和代码优化

4.1我的最初始版本

(第一次因为时间紧迫测试用例只用了小文件。。当时自己电脑VS2012还未下载成功,所以在同学电脑里测试。。她的VS是中文版的)

 

这是我的最初始版本,有几个漏洞。

4.2中间版本

在这个版本里,我就初始版本进行了一些改进。

在第一次交作业的时候,我没有看清楚题目要求,漏考虑了目录可以是递归的情况,使用了DIR /B/AA来遍历所有文件。

第二次,我使用了DIR  /b/s,直接可以遍历目标文件夹下所有的文件。

这个版本也让我发现了我的一个Bug,我的小程序在使用小文件测试程序无误后,我又使用了同学间广为流传的21M测试文件进行程序性能测试,却意外发现程序的运行有问题。

下面是这个版本的性能测试图。。

4.3终结版

在中间版的基础上经历了大概数个小时的痛苦debug之后,发现我处理list.txt里面的所有txt、cs、cpp、h文件名上有问题。

在读取文件名打开对应文件时,我使用了fin>>lines,逐词读取。

这种读取方式有个弊端,当文件名里有空格时,便不能正确读取,会被系统误认为分词。

我改了一行代码,改用getline(fin,lines)读取文件名,bug迎刃而解。

release模式下跑同学间流行的某21M测试文档的性能测试图。大家release模式下测试该文档的用时在几秒-20分钟不等,我的时间大概在5s-12s之间,可见我的程序总体效率还算比较高。

 

特别要注意的是

在文件读取上还有陷阱……

在发邮件问过罗老师之后,罗老师说要求程序能够处理command arguments是类似C: est和C: est的情况。因为我用system读取文件,我在最后的文件读入的时候又加入了一个判断。

int len=strlen(argv[argc - 1]);
if(argv[argc-1][len-1]!= ' \ ' )
s=s+"\";

五、测试例子

1、普通的文件

2、文件递归测试

3、windows2007,windows98,Windows之类的

4、asd,321aaafd,fga31等不合法的

5、多种文件格式的

6、空文件夹

7、空文件

8、带中文内容的

9、带中文路径的

10、文件名里有空格的

11、特别大的文件,测试性能(同学给的21M和132M的文件)

12、同学的测试文件

六、收获和感想

用了很长时间完成这次作业,确实提高了自己对C++,尤其是文件处理方面的一些理解。

也在Debug中收获了很多痛苦和知识,增强了自己对DEBUG的信心。

 最后,非常感谢这次个人项目进行中帮助我的同学和老师。

原文地址:https://www.cnblogs.com/lucile-w/p/3327773.html