# text-counter **Repository Path**: mathlish/text-counter ## Basic Information - **Project Name**: text-counter - **Description**: 软件工程作业:命令行文本计数统计程序 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-11-01 - **Last Updated**: 2026-11-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 命令行文本计数统计程序 (Text-Counter) ## 1. 项目简介 本项目是一个基于 C++ 编写的命令行文本计数工具,为软件工程课程作业。程序能够读取纯英文 `.txt` 文本文件,并根据不同的命令行参数,准确统计文件中的字符数、单词数以及句子数。 在完成基础功能与扩展功能的基础上,本项目还实现了一个**自动化测试运行器 (Test Runner)**,能够一键对所有测试用例进行黑盒测试,并输出测试报告。项目通过 Git 进行版本控制,严格按照 `v0.1`、`v0.2`、`v0.3` 的版本迭代要求进行开发。 ## 2. 目录结构 ```text text-counter/ ├── src/ # 源码目录 │ └── main.cpp # 核心 C++ 源码文件 ├── tests/ # 测试相关目录 │ ├── test_runner.cpp # 自动化测试运行器源码 │ ├── test001.txt # 基础英文段落测试用例 │ ├── test002.txt # 标点与缩写词测试用例 │ ├── test003.txt # 空文件测试用例 │ ├── test004.txt # 纯空格/换行测试用例 │ └── test101.cpp # 用于扩展功能(注释/代码行)测试的源文件 ├── wc.exe # 编译生成的主程序(Windows 环境) ├── test_runner.exe # 编译生成的自动化测试程序 └── README.md # 项目说明文档 ``` ## 3. 编译说明 确保系统已安装 C++ 编译器(如 `g++`)。在项目根目录下执行以下命令: **3.1 编译主程序:** ```bash g++ src/main.cpp -o wc.exe ``` **3.2 编译自动化测试运行器:** ```bash g++ tests/test_runner.cpp -o test_runner.exe ``` ## 4. 命令调用格式 (Usage) 基本语法:`wc.exe [参数] [文件名]` **基础功能参数:** * `-c`:统计字符数(不包含换行符) * `-w`:统计单词数(以空白字符分隔) * `-s`:统计句子数(以 `.` `!` `?` 结尾) **扩展功能参数 (v0.3):** * `-l`:统计空行数 * `-m`:统计注释行数(支持 `//` 和 `/* */`) * `-k`:统计代码行数 * `-a`:输出综合统计报告(包含上述所有数据) ## 5. 调用示例 (Examples) **示例 1:统计基础信息** ```powershell > wc.exe -w tests/test001.txt Words: 14 ``` **示例 2:综合统计 (使用扩展功能)** ```powershell > wc.exe -a tests/test101.cpp --- All Stats --- Characters: 180 Words: 25 Sentences: 0 Empty lines: 2 Comment lines: 4 Code lines: 6 ``` ## 6. 自动化测试 (Automated Testing) 本项目内置了测试运行器。运行 `.\test_runner.exe` 即可自动比对所有预设用例的预期结果与实际输出,实现一键回归测试。 ```powershell > .\test_runner.exe ================================================== AUTOMATED TEST RUNNER (wc.exe) ================================================== File Parameter Status -------------------------------------------------- tests/test001.txt -w [PASS] tests/test001.txt -s [PASS] tests/test001.txt -c [PASS] tests/test003.txt -w [PASS] tests/test003.txt -c [PASS] tests/test001.txt -x [PASS] -------------------------------------------------- --- ALL TESTS SUMMARY --- Total : 6 Passed: 6 (True) Failed: 0 (False) All tests passed successfully! You are awesome! ``` ## 7. 版本更新记录 * **v0.1** 空项目初始化,搭建远程仓库。 * **v0.2** 完成基础功能:实现字符、单词、句子的统计,重构工程目录,并添加了多个边界测试用例。 * **v0.3** 完成扩展功能:实现代码行、空行、注释行的统计;新增黑盒自动化测试运行器,一键验证所有测试用例。