# 软件技术基础第二次作业 **Repository Path**: yang-yangXK/File-statistics-project ## Basic Information - **Project Name**: 软件技术基础第二次作业 - **Description**: 文件统计程序可以实现基础统计字符数量,句子数量;可以进阶统计统计空行,注释行,代码行,单词数量。 - **Primary Language**: C++ - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-11-04 - **Last Updated**: 2023-11-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 软件技术基础第二次作业 ## 程序功能介绍 - V0.1:空文件; - V0.2:实现基本功能:文件统计程序可以实现基础统计字符数量,句子数量; - V0.3:实现进阶功能:增加统计统计空行,注释行,代码行,单词数量的功能; ## 使用说明 :exclamation: :exclamation: :exclamation: **PS:根据作业要求,为了用户输入体验以及提高输入正确率,程序的输入形式做了变动。** ### :point_right: V0.1版本 无 ### :point_right: V0.2版本 **1. 运行程序:** 在命令行中运行生成的可执行文件,提供要统计的文本文件名作为参数,如下所示: ``` ./word_count filename.txt //ps:其中 filename.txt 是要统计的文本文件的名称。程序将打开文件并输出字符数和单词数的统计信息。 ``` **2. 查看结果:** 程序会输出字符数和单词数的统计结果。 ### :point_right: V0.3版本 **1. 运行程序后,它将提示输入选项:** - 输入 'c' 来统计字符数。 - 输入 'w' 来统计单词数。 - 输入 's' 来统计句子数。 - 输入 'd' 来统计代码行数。 - 输入 'k' 来统计空行数。 - 输入 'z' 来统计注释行数。 - 输入 'a' 来同时统计所有上述统计信息。 - 输入 'q' 来退出程序。 **2. 根据选择,程序将提示输入要分析的文本文件的名称。请确保文件存在,并且输入了正确的文件名。** **3. 如果文件无法打开,程序将显示错误消息:"Error: Unable to open the file." 并提示重新输入文件名或退出程序。** **4. 一旦选择了有效的选项并指定了文件名,程序将分析文件内容并显示相应的统计信息,根据选择,它可以显示字符数、单词数、句子数、代码行数、空行数和注释行数。** **5. 如果选择了 'a' 选项,程序将同时显示所有可用的统计信息。** **6. 可以继续输入新的选项和文件名,以进行多次分析,或者输入 'q' 以退出程序。** _ps:这个程序允许根据不同的选项对文本文件进行多种统计分析,并且可以在一个会话中执行多次分析。_ ## 程序运行与相关结果 ### :point_right: V0.1版本 无 ### :point_right: V0.2版本 **【下图为V0.2实验文本】** ![输入图片说明](1.png) **【下图为V0.2实验结果】** ![输入图片说明](2.png) ### :point_right: V0.3版本 **【下图为V0.3实验文本】** ![输入图片说明](3.png) **【下图为V0.3实验结果】** ![输入图片说明](4.png) ## 程序运行性能测试 ### :point_right: V0.1版本 无 ### :point_right: V0.2版本 **【下图为V0.2实验性能整体测试】** ![输入图片说明](5.png) ### :point_right: V0.3版本 **【下图为V0.3实验性能整体测试】** ![输入图片说明](6.png) ## 反思和总结 在编写V0.2程序第一版时,没有使用无限循环语句,导致程序得出结果后自行退出,在V0.2(update)程序中,加入大无限循环中,并使用了一个额外变量来控制循环——布尔变量,使其可以在用户的选择下退出或继续输入文件名处理,当用户选择退出时,布尔变量 exitProgram 被设置为 true,循环退出,程序结束。本次作业受益匪浅,锻炼了编写小程序的能力,了解并熟悉了一些特殊函数以及语法的运用。