# 命令行文本计数统计程序 **Repository Path**: shangjie-Li/Statistical-programs ## Basic Information - **Project Name**: 命令行文本计数统计程序 - **Description**: 软件技术基础课程的第二次作业--命令行文本计数统计程序 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-26 - **Last Updated**: 2024-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 命令行文本计数统计程序 ## 项目介绍   该项目采用Python进行编程,编程IDE选用了Pycharm软件。作为软件技术基础课程的第二次作业完成了命令行文本计数统计程序的设计,其任务主要是统计纯英文文本文件的字符数、单词数和句子数,其中拓展程序也实现了代码行、空行、注释行等的统计任务。作业要求生成可执行文件(.exe),**因此项目采用了Python的PyInstaller拓展库将.py文件转换为可执行的.exe文件**。 ### 基础功能 - 统计纯英文文本中的字符数、单词数和句子数。 - 对相关功能进行单元测试。 ### 拓展功能 - 统计纯英文文本中的代码行、空行、注释行数。 - 统计包含中文字符的文本中的中文字数。 - 利用Python的cProfile库对各个函数的进行performance test ## 代码的使用方法 1. 第一步通过win+R调出命令行窗口输出cmd,进入终端。 ![输入图片说明](https://foruda.gitee.com/images/1729953835852198448/782f66d7_14202753.png "EZ1A~H(5YPENEP6NE@PMH@W.png") 2. 第二步使用 cd 命令进入到相对应的文件目录下。 ![输入图片说明](https://foruda.gitee.com/images/1729954027858716779/8bc2f689_14202753.png "XADBP@00{(R3F0B{DG~3F[Q.png") 3. 按照相应的命令指令运行程序。 ![输入图片说明](https://foruda.gitee.com/images/1729954110599844966/1391edd5_14202753.png "8ZZ18(QROZDQ0ZIEG@{H)C6.png") 指令说明:**main.exe [-h] [-c] [-w] [-s] [-cl] [-bl] [-ctl] [-ch] filename.txt** ### 基本语句 1. main.exe -c file.txt 统计字符数 2. main.exe -w file.txt 统计单词数 3. main.exe -s file.txt 统计句子数 ### 拓展语句 1. main.exe -cl file.txt 统计代码行数 2. main.exe -bl file.txt 统计空行数 3. main.exe -ctl file.txt 统计注释行数 3. main.exe -ch file.txt 统计中文字数 ## 文件列表说明 代码从仓库中下载下来后如下图所示,其中v0.1、v0.2、v0.3分别对应项目的三次版本迭代,而performance_test则是性能测试的相关文件。 ![输入图片说明](https://foruda.gitee.com/images/1729954622620589642/b0937feb_14202753.png "1.png") 下图所示为v0.3文件夹中的内容,其中包含了对应版本的主程序代码以及单元测试代码、相应的.exe可运行文件、文本文件file.txt,以及代码的运行结果和单元测试的结果。 ![输入图片说明](https://foruda.gitee.com/images/1729954865684804898/c120c18b_14202753.png "3DUI)SY@%8YF@I]6C1T)7MV.png") 下图所示为performance_test文件夹中的内容,其中包含的性能测试代码和响应的测试结果,同时还有性能测试的测试结果。 ![输入图片说明](https://foruda.gitee.com/images/1729954984592851601/7e681336_14202753.png "3.png") ## 代码运行说明 ### v0.1版本 命令行窗口运行 main.exe 后的结果如下 ![输入图片说明](https://foruda.gitee.com/images/1729955241993613856/d974ea7d_14202753.png "1((SR($L4VLRE7~GBS]O1Q0.png") ### v0.2版本 命令行窗口运行 main.exe -c -w -s file.txt 后的结果如下 ![输入图片说明](https://foruda.gitee.com/images/1729955306942630427/97859002_14202753.png "7IIXT%{NZRCHXDH(CFP0QYG.png") ### v0.3版本 命令行窗口运行 main.exe -c -w -s -cl -bl -ctl -ch file.txt 后的结果如下 ![输入图片说明](https://foruda.gitee.com/images/1729955355462510140/d3bccb5e_14202753.png "JPI[NTTJR_%76_OE}XJKNV3.png") ## 单元测试 ### v0.2版本 使用了**5个测试用例**对于不同情况下文本对代码进行单元测试,结果如下: ![输入图片说明](https://foruda.gitee.com/images/1729955440327736062/bd473e1d_14202753.png "v0.2单元测试结果.png") ### v0.3版本 使用了**7个测试用例**对于不同情况下文本对代码进行单元测试,结果如下: ![输入图片说明](https://foruda.gitee.com/images/1729955511421449259/d180e248_14202753.png "v0.3单元测试结果.png") ## 性能测试 我采用了Python的拓展库cProfile来对代码进行测试,下图是部分函数测试结果图。 ![输入图片说明](https://foruda.gitee.com/images/1729955581391862768/713e2ba7_14202753.png "性能测试结果.png") ## 心得体会   在完成了相关项目代码的编写后,我对于Python编程语言及其拓展库的使用有个更深的了解。同时文本计数统计的任务也让我更了解了应该如何处理文本文件,而单元测试能够对程序的整体功能进行一个整体的验证,这也是我从前所不知道的,通过cProfile库来实现性能测试更是我完全没有使用过的内容,这使得我可以分析程序中的运行过程,了解性能并进行优化。此次的作业令我受益匪浅,学到了许多过去从来没有接触过的知识。