wc.exe指令(C++)
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++)的更多相关文章
- 模仿WC.exe的功能实现--node.js
		Github项目地址:https://github.com/102derLinmenmin/myWc WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要 ... 
- JAVA实现WC.exe功能
		项目要求 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功能,并能够快速地处理多个文件. 具体功能要求: 程序处理用户需求的模式为: wc.exe [paramet ... 
- C++实现wc.exe程序
		github项目地址:https://github.com/insomniali/wc 基本功能 wc.exe -c file 统计文件file的字符数 [实现] wc.exe -w fil ... 
- 个人项目(WC.exe)(java)(基于图形界面)
		一.Github项目地址:https://github.com/Leungdc/ENhomework 二.PSP: PSP2.1 Personal Software Process Stages 预估 ... 
- WC.exe(Java实现)
		一.GitHub项目地址:https://github.com/nullcjm/mypage 二.项目相关要求: wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写 ... 
- 个人项目作业(wc.exe)
		1.GitHub项目地址 https://github.com/QiuBin666/WC 项目介绍: 题目描述 Word Count1. 实现一个简单而完整的软件工具(源程序特征统计程序).2. 进行 ... 
- 个人项目作业——wc.exe
		一.Github项目地址 https://github.com/PIPIYing/wc 二.项目概况 项目描述 Word Count 1. 实现一个简单而完整的软件工具(源程序特征统计程序). 2. ... 
- WC.exe【C】
		gitee传送门!!!(电脑打不开github,多次尝试未果,决定先用gitee存着先) 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序 ... 
- 小白のjava实现wc.exe功能
		GitHub地址 项目完成情况 基本功能列表(已实现) wc.exe -c file.c //返回文件 file.c 的字符数 wc.exe -w file.c //返回文件 file. ... 
随机推荐
- 关于IO流的抽象类
			被一个问题问愣了:java的IO里有哪些抽象类?这个一时半会儿还真记不得,只知道IO有好几类,具体有哪些抽象类从来没有去认真记过.回头仔细看了下分类和继承才发现其实就两对:字节流的抽象类是InputS ... 
- gen_server的一些心得
			gen_server并不是我原来概念中的tcp_server或者udp_server的概念,只是一个纯粹的消息服务器,另外,附上它的一些回调函数的简单说明参考地址 http://hi.baidu.co ... 
- java代码做repeat次运算,从键盘输入几个数,比最值
			总结:今天这个题目有点灵活,因为它不但要求输出结果,还要进行几次相同的输入,不退出循环 import java.util.Scanner; //从键盘一次输入更多的数,然后把每一次的数进行---可比较 ... 
- selenium中Xpath轴定位方法
			1.Xpath轴:轴可定义相对于当前节点的节点集. 使用语法:轴名称::节点名称 例://input[@data-value="SXRYNAME"]/parent::td/foll ... 
- Python Twisted系列教程8:使用Deferred的诗歌下载客户端
			作者:dave@http://krondo.com/deferred-poetry/ 译者:杨晓伟(采用意译) 可以从这里从头开始阅读这个系列. 客户端4.0 我们已经对deferreds有些理解了 ... 
- Deep Learning 学习笔记(6):神经网络( Neural Network )
			神经元: 在神经网络的模型中,神经元可以表示如下 神经元的左边是其输入,包括变量x1.x2.x3与常数项1, 右边是神经元的输出 神经元的输出函数被称为激活函数(activation function ... 
- Jquery改变td内容为1的颜色
			Jquery改变td内容为1的颜色<table id="tb" > <tr> <td val="1">1</td> ... 
- Spring Cloud Config 1 (分布式配置中心)
			spring cloud config是spring cloud团队创建的一个全新的项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端和客户端两部分. 服务端也被称为 ... 
- sklearn中的cross_val_score()函数
			sklearn.cross_validation.cross_val_score(estimator, X, y=None, scoring=None, cv=None, n_jobs=1, verb ... 
- PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
			使用Python进行数据分析,大家都会多少学习一本经典教材<利用Python进行数据分析>,书中作者使用了Ipython的交互环境进行了书中所有代码的案例演示,而书中的Ipython交互环 ... 
