第二次作业

作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc
这个作业的目标 熟悉博客的写作和使用,将自己介绍给老师和助教
姓名-学号 李琪亮-2022329301082
码云仓库网址 https://gitee.com/foteino/tcsp/tree/master

一、作业要求

实现一个命令行文本计数统计程序。能正确统计导入的纯英文txt文本中的字符数,单词数,句子数。
具体命令行界面要求举例:
命令模式: wc.exe [参数] [文件名]
wc.exe -c file.txt 统计字符数
wc.exe -w file.txt 统计单词数
完整代码请移步,请复制链接打开。
https://gitee.com/foteino/tcsp/tree/master
扩展功能(加分项):统计代码行、空行、注释行等,并提供相应命令接口。
项目要求必须通过多次提交体现各个版本更迭和运行结果截图,版本号分别为
v0.1 空项目;
v0.2 项目完成基础功能
v0.3 项目完成扩展功能(加分项)
编写对应的单元测试。
使用选用的IDE附带的工具进行performance test。

二、项目介绍

本项目采用C语言进行编程,开发环境中选择了DEVCPP作为集成开发环境(IDE)。作为软件技术基础课程的第二次作业,我们设计并实现了一个命令行文本计数统计程序,主要功能是统计纯英文文本文件中的字符数量、单词数量以及句子数量。此外,程序还扩展了其他统计功能,如代码行数、空行数及注释行数的统计。为了满足作业要求,即生成可执行文件(.exe),项目中应用了C语言的stdlib,stdio,string库,通过它将C语言脚本文件(.c文件)打包成独立的可执行文件(.exe文件)。

基础功能

1.统计纯英文文本中的字符数、单词数和句子数。
2.对测试数据进行测试。

拓展功能

1.统计纯英文文本中的代码行、空行、注释行数。
2.对测试数据进行测试。

三、使用说明

1.通过win+R调出命令行窗口输出cmd,进入终端。
2.进入到代码所在的路径。
3.按照如下指令运行程序。

基础命令

1.wc.exe -c file1.txt 统计字符数。
2.wc.exe -w file2.txt 统计单词数。
3.wc.exe -s file1.txt 统计句子数。
注意 :file1,file2是测试的文件,可以自行更改。

基础命令

  • 1.wc.exe -c test1.txt 统计字符数。
    
  • 2.wc.exe -w test2.txt 统计单词数。
    
  • 3.wc.exe -s test1.txt 统计句子数。
    

注意 :test1,test2是测试的文件,可以自行更改。

拓展功能

1.统计纯英文文本中的代码行、空行、注释行数。
2.对测试数据进行测试。

3.wc.exe -l test3.txt 统计字符数。
4.wc.exe -e test3.txt 统计单词数。
5.wc.exe -m test3.txt 统计句子数。

注意 :test3是测试的文件,可以自行更改。

四、代码运行结果

ver0.2

进行字符,词语,句子的统计。

ver0.3

进行代码行数,注释行数,还要换行字符的统计。

五、项目心得

在这个项目中,我对原有的文本统计程序进行了扩展,增加了对代码行、空行和注释行的统计功能。在这个过程中,我不仅巩固了对 C 语言基本语法的理解,还深入学习了如何处理文件输入和字符串解析。

  1. 理解需求
    首先,我仔细分析了需求,明确需要统计的内容包括字符数、单词数、句子数、代码行数、空行数和注释行数。这让我意识到在设计程序时需要清晰地定义每一个功能模块,以便后续的实现和维护。

  2. 函数模块化
    在实现新功能时,我采用了模块化的设计思路,将每一种统计功能分解成独立的函数。这种做法不仅提高了代码的可读性,还使得每个函数的职责更加明确。例如,countLines、countEmptyLines 和 countCommentLines 函数分别处理不同的统计任务,便于后续的调试和扩展。

  3. 文件处理与状态管理
    在统计注释行的过程中,我遇到了如何正确处理多行注释的挑战。通过引入状态管理变量 inMultiLineComment,我能够有效地跟踪当前行是否在多行注释中。这让我意识到在处理复杂逻辑时,状态管理是非常重要的。

  4. 编码与调试
    在编写和调试代码时,我学会了使用 fseek 函数重置文件指针,以便在同一文件中多次读取不同的信息。此外,我也对字符串查找函数(如 strstr)有了更深入的理解,掌握了如何在字符串中查找特定模式。

  5. 反思与总结
    通过这次修改,我不仅提高了自己的编程能力,也增强了对代码结构和逻辑设计的理解。在实际开发中,面对新的需求,如何高效地修改和扩展现有代码是一个重要的技能。这次经历让我更加自信,也激励我继续学习和探索更多的编程知识。

posted @ 2024-10-28 17:36  Fochino  阅读(38)  评论(0编辑  收藏  举报