https://github.com/kielingpao/wc

项目相关要求

wc.exe 是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。

实现一个统计程序,它能正确统计程序文件中的字符数、单词数、行数,以及还具备其他扩展功能,并能够快速地处理多个文件。
具体功能要求:
程序处理用户需求的模式为:

wc.exe [parameter] [file_name]

基本功能列表:

wc.exe -c file.txt     //返回文件 file.txt 的字符数

wc.exe -w file.txt    //返回文件 file.txt 的词的数目

wc.exe -l file.txt     //返回文件 file.txt 的行数

解题思路

实现部分:

1.首先统计字符等的功能,只需要用fopen打开读取文件就基本搞定了,剩下就是遍历文件,什么数据都有了,这个函数也能实现绝对路径相对路径。

2.递归文件,只需要调用windows api即可,以前操作过,找找以前的笔记管理系统代码即可。具体就是用api函数返回当前目录记录在一个string对象(记录当前目录)中,之后对目录的操作都可以通过操作这个string对象进行,和用另一个api函数找到文件夹句柄这两个windows api配合,再使用递归的代码写法在该目录下进行递归遍历即可。

3.图形界面,使用easyX库即可。

4.要通过命令行运行,输入指令而不是通过“用户交互”来进行程序,所以程序用使用命令行参数的main函数。

测试部分:

1.需要考虑到各种文件字符、各种输入的情况,保证程序的鲁棒性。

2.要创建空字符文件、只有一个字符、空行、只有一行等的文件来进行测试。

设计实现过程

只要DOS命令行运行了wc.exe命令,就进入一个while(1)死循环里,不断检测判断匹配那几个命令,若匹配不到,就break退出死循环同时退出wc.exe程序,返回dos操作系统。

遇到的困难及解决方法

1.暑假没打代码,编译器莫名其妙消失了,解决办法:重新下载编译器,重新设置环境变量。

2.换了个新的编译器,现在使用cl编译器,环境变量等等设置有点不顺手,解决办法:多打代码。

3.关于递归文件。解决办法:以前做过笔记管理系统递归遍历、删除指定目录下所有文件,思路是调用几个windows API,那份代码当初几乎没有注释,几千行,晕。还是重写好了。这个也正在做,目前还有bug。

4.关于图形界面,以前做过C语言下调用别人的库完成图形界面,IDE莫名其妙都没了,那个库也忘记在哪了,代码也已经不存在了。解决办法:在学C++的图形界面。

5.目前只完成基本功能。解决办法:很认真地完成,也是严格按照基本功能的描述来做。

关键代码or设计说明

所有操作都在dos命令行下操作即可。不用IDE,只用记事本写代码,用命令行编译运行即可。

在命令行使用wc.exe指令完成对当前目录的任意文件进行统计。

可以与dos的命令配合,例如CD、type指令这些通通都可以使用,wc.exe(或wc)已然成为DOS命令行下一个指令。

测试运行

PSP

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

一小时

一小时

· Estimate

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

一周

一周

Development

开发

3h

3h

· Analysis

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

2d

2d

· Design Spec

· 生成设计文档

3h

3h

· Design Review

· 设计复审 (和同事审核设计文档)

1h

1h

· Coding Standard

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

2h

2h

· Design

· 具体设计

5h

5h

· Coding

· 具体编码

4h

4h

· Code Review

· 代码复审

1h

1h

· Test

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

2h

2h

Reporting

报告

1h

1h

· Test Report

· 测试报告

1h

1h

· Size Measurement

· 计算工作量

20min

20min

· Postmortem & Process Improvement Plan

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

30min

30min

合计

 

项目小结

太久没有打代码了,好多好多命令都忘记了,而且换了cl,似乎还有很多东西可以挖掘,刚好趁这个机会复习下,路还长。

wc.exe指令(C++)的更多相关文章

  1. 模仿WC.exe的功能实现--node.js

    Github项目地址:https://github.com/102derLinmenmin/myWc WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要 ...

  2. JAVA实现WC.exe功能

    项目要求 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功能,并能够快速地处理多个文件. 具体功能要求: 程序处理用户需求的模式为: wc.exe [paramet ...

  3. C++实现wc.exe程序

    github项目地址:https://github.com/insomniali/wc 基本功能 wc.exe -c file     统计文件file的字符数  [实现] wc.exe -w fil ...

  4. 个人项目(WC.exe)(java)(基于图形界面)

    一.Github项目地址:https://github.com/Leungdc/ENhomework 二.PSP: PSP2.1 Personal Software Process Stages 预估 ...

  5. WC.exe(Java实现)

    一.GitHub项目地址:https://github.com/nullcjm/mypage 二.项目相关要求: wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写 ...

  6. 个人项目作业(wc.exe)

    1.GitHub项目地址 https://github.com/QiuBin666/WC 项目介绍: 题目描述 Word Count1. 实现一个简单而完整的软件工具(源程序特征统计程序).2. 进行 ...

  7. 个人项目作业——wc.exe

    一.Github项目地址 https://github.com/PIPIYing/wc 二.项目概况 项目描述 Word Count 1. 实现一个简单而完整的软件工具(源程序特征统计程序). 2. ...

  8. WC.exe【C】

    gitee传送门!!!(电脑打不开github,多次尝试未果,决定先用gitee存着先) 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序 ...

  9. 小白のjava实现wc.exe功能

    GitHub地址 项目完成情况 基本功能列表(已实现) wc.exe -c file.c     //返回文件 file.c 的字符数 wc.exe -w file.c    //返回文件 file. ...

随机推荐

  1. LinkedList插入排序实现

    昨天遇到一个集合排序的问题,要求在list中插入后数据有序,首先考虑使用集合自带的排序方法,但需要把list转成数组,排序后再转回list.后来发现使用插入算法是最省事的,因为既然是在插入里排序,那么 ...

  2. Java 引用类型数组

    引用类型变量可以使用类.接口或数组来声明. 数组引用变量是存放在栈内存(stack)中,数组元素是存放在堆内存(heap)中,通过栈内存中的指针指向对应元素在堆内存中的位置来实现访问. public ...

  3. php通过时间戳处理时间!

    1.获取当前时间方法date() 很简单,这就是获取时间的方法,格式为:date(format,format,timestamp),format为格式.timestamp为时间戳–可填参数. 2.获取 ...

  4. (转)Oracle 包(Package)

    本文转载自:http://www.cnblogs.com/lovemoon714/archive/2012/02/29/2373695.html 1.为什么要使用包?       答:在一个大型项目中 ...

  5. Java-Maven-Runoob:Maven教程

    ylbtech-Java-Maven-Runoob:Maven教程 1.返回顶部 1. Maven 教程 Maven 翻译为"专家"."内行",是 Apache ...

  6. 1052 Linked List Sorting

    题意:链表排序 思路:题目本身并不难,但是这题仔细读题很重要.原题中有一句话,"For each case, the first line contains a positive N and ...

  7. VS2017自动添加头部注释

    让VS自动生成类的头部注释,只需修改两个文集即可,一下两个路径下个有一个 Class.cs文件 D:\Program Files (x86)\Microsoft Visual Studio\2017\ ...

  8. pandas层级索引1

    层级索引(hierarchical indexing) 下面创建一个Series, 在输入索引Index时,输入了由两个子list组成的list,第一个子list是外层索引,第二个list是内层索引. ...

  9. redis学习六 集群的原理(转载)

    转载自 http://shift-alt-ctrl.iteye.com/blog/2285470 一.Redis Cluster主要特性和设计     集群目标 1)高性能和线性扩展,最大可以支撑到1 ...

  10. sql合并列

    oralce写法: select WM_CONCAT(A.title) as citys from tmpcity A sql server写法: select stuff((select ','+A ...