周蕊-第二次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zjlg/rjjc |
---|---|
这个作业的目标 | 设计一个命令行文本计数统计程序 |
姓名-学号 | 周蕊-2022329301039 |
我的码云地址: https://gitee.com/little-bear-huilai/the-second-homework.git
1. 项目简介及函数介绍
1.1. 项目简介
本项目旨在实现对文本文件进行多种维度的分析和统计功能,包括统计文本中的字符数、单词数、句子数、代码行数、空行数以及注释行数等。通过提供简单易用的命令接口,用户可以方便地对指定文本文件进行相关指标的获取。
1.2. 具体作业
实现一个命令行文本计数统计程序。能正确统计导入的纯英文txt文本中的字符数,单词数,句子数。
具体命令行界面要求举例:
命令模式: wc.exe [参数] [文件名]
wc.exe -c file.txt 统计字符数
wc.exe -w file.txt 统计单词数
扩展功能(加分项):统计代码行、空行、注释行等,并提供相应命令接口。
作业要求:
1、项目代码上传到自己的码云(需自行注册)。
2、程序和参数名可以按个人喜好命名。项目文档应包含项目说明,写入README.MD。该说明应该包含:
a. 项目的简介及其相关的用法;
b. 文件列表及其相关说明;
c. 例程运行及其相关结果。
3、码云上传的项目要求必须通过多次提交(commit)体现各个版本更迭和运行结果截图。
版本号分别为:
v0.1 | 空项目 |
---|---|
v0.2 | 项目完成基础功能 |
v0.3 | 项目完成扩展功能(加分项) |
编写对应的单元测试。
a. 实现基本功能的测试;
b. 单元测试包含更多的测试用例。(加分项)
使用选用的IDE附带的工具进行performance test。(加分项)
交作业时需直接附上自己的码云仓库地址。
1.3. 函数介绍
(1) text_count.m函数
功能:读取给定文本文件,然后统计其中的字符数、单词数、句子数、代码行数、空行数和注释行数等各项指标,并返回这些统计结果。
输入:接受一个文本文件名作为输入参数,如:text_count('test.txt'),其中test.txt是文本文件的名称,需确保该文件位于 MATLAB 的当前工作目录或者在已添加到 MATLAB 搜索路径的目录下。
输出:返回一个包含字符数、单词数、句子数、代码行数、空行数和注释行数统计结果的数组,顺序依次为:[char_count, word_count, sentence_count, code_line_count, empty_line_count, comment_line_count]。
(2) main.m函数
功能:根据传入的参数(-c、-w、-s、-cl、-el、-clc等),调用text_count.m函数对指定文本文件进行相应指标的统计,并将结果输出。
输入:接受可变数量的输入参数,规范输入格式是一个字符串数组,其中第一个元素是统计参数(-c、-w、-s等),第二个元素是要处理的文本文件的完整路径。如:main('-c', 'test.txt')表示统计test.txt文件中的字符数。
输出:在命令行显示出相应统计指标的结果。
2. 参数说明与用法
- -c参数:用于统计文本文件中的字符数。
- -w参数:用于统计文本文件中的单词数。
- -s参数:用于统计文本文件中的句子数。
- -cl参数:用于统计文本文件中的代码行数。这里对代码行的判断是行内容不为空,并且不以%开头。
- -el参数:用于统计文本文件中的空行数。
- -clc参数:用于统计文本文件中的注释行数。这里将%开头的行视为注释行。
3. 例程运行及其相关结果
3.1. 例程准备
准备了一段测试文本test.txt:一段英文文本,有类似代码格式的内容、标点符号、注释行等,可用于测试字符数、单词数、句子数的统计功能。
3.2.运行示例及结果
- 统计字符数
在 MATLAB 命令行输入:main -c testtxt
输出结果:应该是test.txt文件内容的字符数(包含空格和标点符号),得到结果263。 - 统计单词数
输入:main -w test.txt
输出结果:通过正则表达式等方式统计出test.txt文件中的单词数,比如可能得到44个单词。 - 统计句子数
输入:main -s test.txt
输出结果:以句号、问号、感叹号等作为句子结束标志,利用正则表达式分割文本得到test_file1.txt文件中的句子数,得到4句。 - 统计代码行数
输入:main -cl test.txt
输出结果:按照代码行判断条件(行内容不为空,并且不以%开头)统计test_.txt文件中的代码行数,得到2行。 - 统计空行数
输入:main -el test.txt
输出结果:统计test.txt文件中的空行数,得到0行。 - 统计注释行数
输入:main -clc test_.txt
输出结果:以%开头的行视为注释行,统计test.txt文件中的注释行数,得到2行。
通过以上例程运行示例,可以直观地看到本项目中各个函数的使用方法以及能够实现的文本统计功能。希望这份项目文档能够帮助用户更好地理解和使用本项目。
4. 单元测试与性能测试结果
4.1.单元测试结果
4.2.性能测试结果
根据自定义性能测试代码,对文本文件'test.txt'进行性能测试,测试结果如下:
这些平均执行时间数据能让我们直观了解到text_count.m函数在不同统计任务下的大致运行效率,便于比较不同功能之间的性能差异,也为进一步优化函数的性能提供了具体的参考依据。