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. ...
随机推荐
- 基于SQL调用Com组件来发送邮件
这个需求是公司有个文控中心,如果有用增删改了文件信息希望可以发邮件通知到有权限的人.当然方式很多. 这里是用数据库作业来完成 JOB+Com,这里用的com组件是Jmail 当然你需要把com组件放到 ...
- shell中的输入输出和编程中的变量(shell 03)
shell中的输入输出标准输入:键盘标准输出:终端显示器>> 追加是换行追加的echo -n 不尾随换行符 -e 启用解释反斜杠的转义功能 -E 禁用解释反斜杠的转义功能(默认) --he ...
- DSP SYS/BIOS开发
https://blog.csdn.net/lg1259156776/article/details/80695318
- mysql事务之一:MySQL数据库事务隔离级别(Transaction Isolation Level)及锁的实现原理
一.数据库隔离级别 数据库隔离级别有四种,应用<高性能mysql>一书中的说明: 然后说说修改事务隔离级别的方法: 1.全局修改,修改mysql.ini配置文件,在最后加上 1 #可选参数 ...
- juc原子类之五:AtomicLongFieldUpdater原子类
概要 AtomicIntegerFieldUpdater, AtomicLongFieldUpdater和AtomicReferenceFieldUpdater这3个修改类的成员的原子类型的原理和用法 ...
- ATM:模拟实现一个ATM + 购物商城程序
额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 支持多账户登录 支持账户间转账 记录每月日常消费流水 提供还款接口 ATM记录操作日志 提供管理接 ...
- CP干货:手机游戏上线前需要准备什么
转自:http://www.gamelook.com.cn/2015/09/229002 游戏研发完成后游戏该怎样推广?如何找渠道?推广时需要注意什么?下面给大家介绍一下具体流程,可能每个公司的上线流 ...
- kafka集群配置和java编写生产者消费者操作例子
kafka 安装 修改配置文件 java操作kafka kafka kafka的操作相对来说简单很多 安装 下载kafka http://kafka.apache.org/downloads tar ...
- js控制使div自动适应居中
一直都在想怎么样使弹出的DIV能在任何时候都是居中显示的,刚开始的时候是用CSS样式直接定义好层的位置,但是当页面很长的时候,或是浏览器窗口大小不是固定的时候就不能正确的显示,所以只好用JS来控制DI ...
- SDL_AudioSpec(转)
转贴地址:http://www.cnblogs.com/nanguabing/archive/2012/04/12/2444084.html ============================= ...