(一)工程设计时间预计

1.代码编写:2小时

  (1)文件夹的遍历以及筛选;

  (2)文件夹的读取,以及对读取字符的操作;

  (3)所得结果排序,以及文件输出。

2.程序调试:1小时

  (1)编写数据。

  (2)测试以及调试。

3.预计总时间:3小时

(二)工程所用实际时间

1.代码编写:4小时

  (1)文件夹的遍历以及筛选;

  (2)文件夹的读取,以及对读取字符的操作;

  (3)所得结果排序,以及文件输出。

2.程序调试:3小时

  (1)编写数据。

  (2)测试以及调试。

实际所用总时间:7小时

(三)关于实际时间比预计时间长的分析

在这一过程中对于文件的递归遍历始终无法做到,最终只能用cmd命令在windows环境下dir这个指令和列出文件目录有关

(四)程序部分代码
遍历文件
void Init(int argc,char *argv[]){
string baseDir,command;
baseDir=argv[argc-1];
if (baseDir[baseDir.length()-]!='\\')
baseDir+='\\';
command="dir "+baseDir+"*.txt "+baseDir+"*.cpp "+baseDir+"*.h "+baseDir+"*.cs"+" /S"+" /B > result.txt";
system(command.c_str());
return;
}

模式选择

for(i=;i<(*count);i++){
if(argc==){ //模式一
for(k=;w[i].danci[k]!='\0'&&str[k]!='\0';k++)
if(w[i].danci[k]!=str[k] && w[i].danci[k]+'A'-'a'!=str[k] && w[i].danci[k]!=str[k]+'A'-'a')
break;
if(w[i].danci[k]=='\0'&&str[k]=='\0'){
flag1=;
w[i].times++;
if(w[i].danci[]>str[])
strcpy_s(w[i].danci,str);
break;
}
}
else if(argc==){ //模式二
int m,n;
for(m=strlen(w[i].danci)-;m>=;m--)
if(w[i].danci[m]>='a'&&w[i].danci[m]<='z' || w[i].danci[m]>='A' &&w[i].danci[m]<='Z')
break;
for(n=strlen(str)-;n>=;n--)
if(str[n]>='a'&&str[n]<='z' || str[n]>='A'&&str[n]<='Z')
break;
if(m!=n)
break;
else{
for(k=;k<=m;k++)
if(w[i].danci[k]!=str[k] && w[i].danci[k]+'A'-'a'!=str[k] && w[i].danci[k]!=str[k]+'A'-'a')
break;
if(k=m+){
flag1=;
w[i].times++;
if(strcmp(w[i].danci,str)>)
strcpy_s(w[i].danci,str);
break; }
}
}
}

(五)代码分析

1.分析报告

(六)所使用的测试用例

测试空文件夹

测试有相同单词的文件

测试有文件中包含文件的文件

测试有不符合后缀的文件

测试-e中数字不同,单词相同的文件

测试-e中大小写不同的文件

测试字母+数字+字母+数字的文件

(七)感想

这次的编程与预计差别非常大,让我了解了很多自己不懂得知识。通过网上搜索和查阅《c++prime》这本书让我了解了很多。



软件工程个人项目--Word frequency program的更多相关文章

  1. 软件工程个人项目-Word frequency program by11061167龚少波

    (一)工程设计时间预计 1.代码编写:4小时 熟悉Visual studio 2012的使用 : 程序代码部分主要分为三个步骤: (1)主函数的构建,包括各种函数调用及输入输出部分: (2)对目标文件 ...

  2. 关于软件工程个人作业 Word frequency program 的总结

    一.预计花在程序各部分的时间: (1)对所给命令行参数的判断和处理,看它是否合法.是哪种模式.预计用时20min; (2)关于目录操作:遍历给定目录下的所有文件,包括子目录和非目录文件.预计用时40m ...

  3. 【软件工程】Word frequency program

    一.开始写代码前的规划: 1.尝试用C#来写,之前没有学过C#,对于C++也不熟,所以打算先花1天的时间学习C# 2.整个程序基本分为文件遍历.单词提取.单词匹配.排序.输出几个模块,各个模块大致时间 ...

  4. Limeng:Individual Project: Word frequency program -BUAA Advanced Software Engineering

    11061190-李孟 Implement a console application to tally the frequency of words under a directory (2 mod ...

  5. Individual Project - Word frequency program——12061154Joy

    Description&Requirement: http://www.cnblogs.com/jiel/p/3978727.html 项目时间估计 理解项目要求: 1h 构建项目逻辑: 1h ...

  6. Individual Project - Word frequency program by HJB

    using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Text;us ...

  7. Individual Project - Word frequency program

    1.项目预计用时 -计划学习C#和百度一些用法的时间:5小时 -项目本身打算写两个类,一个是遍历搜索文件夹的,另外一个用来统计单词.计划用时:5小时 2.项目实际用时 学习C#以及正则表达式的用法:3 ...

  8. Individual Project - Word frequency program - Multi Thread And Optimization

    作业说明详见:http://www.cnblogs.com/jiel/p/3978727.html 一.开始写代码前的规划: 1.尝试用C#来写,之前没有学过C#,所以打算先花1天的时间学习C# 2. ...

  9. Record for Individual Project ( Word frequency program )

    1.  预计时间 ● 对问题总体的理解.规划:10 min ● 设计编写程序:5 h ● 调试: 分模块-40 min; 总体-40min ● 测试(性能分析).改进:1 h 2.  实际用时 ● 对 ...

随机推荐

  1. Android的NDK开发(4)————JNI数据结构之JNINativeMethod

    转至:http://blog.csdn.net/conowen/article/details/7524744 1.JNINativeMethod 结构体的官方定义 typedef struct { ...

  2. WCF-学习笔记概述之计算服务(1)

    关于WCF的介绍,在此不再赘述,其他地方应有尽有.直接开始实例,第一个实例以一个简单的计算服务为例,本人是学习了蒋金楠的<WCF全面解析>. 1.构建解决方案 Interface:用于定义 ...

  3. java 菱形

    //画菱形 一半 for(int hs=1;hs<11;hs++) //行数 { //画空格 for(int kg = 9; kg >= hs; kg--) //空格数 { System. ...

  4. ORACLE将表中的数据恢复到某一个时间点

    执行如下SQL将test_temp表中的数据恢复到 2013-04-26  21:06:00 注意,这里一定要先删除全部数据,否则可能会导致数据重复 delete from test_temp; in ...

  5. java中的toString方法

    对于我这种用惯了C++的人来说,突然见到有人写java程序的时候竟然将整数和String类型的变量使用+连接到一起,感到非常奇怪,追究了下原因. 原来所有的java对象都有toString()方法,而 ...

  6. 设置图片Alpha

    Drawable ico = getResources().getDrawable(R.drawable.search_box);                       mSearchLayou ...

  7. inline-block和text-indent在IE6,IE7下同时使用的兼容问题解决方法

    在实际应用中,考虑到seo,很多button,icon都要用到inline-block和text-indent来处理,例如: <a href="#">Button< ...

  8. POJ 3253 Fence Repair【二叉堆】

    题意:给出n根木板,需要把它们连接起来,每一次连接的花费是他们的长度之和,问最少需要多少钱. 和上一题果子合并一样,只不过这一题用long long 学习的手写二叉堆的代码,再好好理解= = #inc ...

  9. BZOJ2111: [ZJOI2010]Perm 排列计数

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2111 题意:一个1,2,...,N的排列P1,P2...,Pn是Magic的,当且仅当2< ...

  10. FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法。。

    [原创] RFC3984是H.264的baseline码流在RTP方式下传输的规范,这里只讨论FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法. 1.单个NAL包单元 12字节 ...