软件技术基础第二次作业
| 项目 | 内容 |
|---|---|
| 作业课程 | https://edu.cnblogs.com/campus/zjlg/25rjjc |
| 作业目标 | 实现一个命令行文本计数统计程序;能正确统计导入的纯英文txt文本中的字符数,单词数,句子数 |
| 姓名 - 学号 | 占传宇-2023329301054 |
| 码云仓库地址 | https://gitee.com/Hualuo_Huakai/planck.git |
软件技术基础第二次作业
项目介绍
本项目是基于VScode 1.105.1 IDE平台,使用Python语言编写的命令行文本计数统计程序。并通过pyinstaller插件将Python源文件转化为可执行文件(.exe),其命令模式为:main.exe[参数][文件名]。
- 基础任务: 正确统计导入的纯英文txt文本中的字符数,单词数,句子数。
- 拓展任务: 正确统计导入的Python源文件的代码行、空行、注释行等,并提供命令接口
使用说明
1.首先,打开main.exe所在文件夹,单击地址栏,输入cmd,如下图。

2.随后,按下回车,就会出现命令行,在光标跳动处输入指令即可。

3.最后,根据以下指令,键入命令行即可,如下图。
- 基础任务:
main.exe -c [文件名] # 统计字符数量包含空格
main.exe -w [文件名] # 统计单词数量
main.exe -s [文件名] # 统计句子数量
- 拓展任务:
main.exe -l [文件名] # 统计代码行数
main.exe -e [文件名] # 统计空行数
main.exe --com [文件名] # 统计注释行数
文件列表说明:
filetree
├── README.md
├── /V0.1/ # 初代版本
│ ├── main.py
│ ├── main.exe
├── /V0.2/ # 基础功能版本
│ ├── main.py
│ ├── file.txt
│ ├── main.exe
│ ├── UnitTest.py # 单元测试
│ ├── /performance/ # 性能测试
│ │ ├── performance_test.py
│ │ └── performance_text.txt
│ │ └── v0.2性能测试.png
├── /V0.3/ # 拓展功能版本
│ ├── main.py
│ ├── file.txt
│ ├── test.py
│ ├── main.exe
│ ├── UnitTest.py # 单元测试
│ ├── /performance/ # 性能测试
│ │ ├── performance_test.py
│ │ └── code.py
│ │ └── v0.3性能测试.png
├── /picture/ # 测试图片
└── /util/
历程及运行结果
v0.1
命令行窗口输入main.exe回车后的结果如下

v0.2
命令行窗口分别输入main.exe -c file.txt、main.exe -w file.txt、main.exe -s file.txt,回车后其结果如下

v0.3
命令行窗口分别输入main.exe -l file.txt、main.exe -e file.txt、main.exe --com file.txt、main.exe -c file.txt、main.exe -w file.txt、main.exe -s file.txt,回车后其结果如下

单元测试
v0.2
下面通过使用python内嵌的测试框架unittest,加入多个测试示例进行单元测试,结果如下:

v0.3
同V0.2版本一样,使用测试框架unittest,对加入的测试示例进行单元测试,结果如下:

性能测试
在VScode IDE 平台安装 Python 语言包后,其内置的 cprofile 模块,可以清晰地找到程序中占总执行时间最高的部分,我们可以专心优化这部分代码,而不必纠结于一些对性能影响比较少的操作。
v0.2
下图为V0.2版本性能测试结果

v0.3
下图为V0.3版本性能测试结果

异常处理
v0.2
当输入者错误输入指令时,会自动识别错误命令,并提供合法命令提示,使代码更具健壮性,如下图所示:

v0.3
同v0.2一样,通过使用argparse库的提示帮助功能,当输入者错误输入指令时,会自动识别错误命令,并提供合法命令提示,同时给于错误文件名报错,如下图所示:

心得体会
经过本次作业,我接触到了许多新知识。
- 学习到了Python基础语法以及re库调用正则化的使用
- 了解了使用pyinstaller工具转换成exe文件的方法
- 使用了测试框架unittest进行单元测试
- 同时还使用cprofile模块对程序进行了性能测试
在对exe文件测试的过程中,还掌握了命令提示符(CMD)这个Windows中的强大命令行工具,感受到了不同于图形化界面(GUI)的用户界面方式。在软件工程课上,当老师提到代码异常处理时,使我想到了用argparse库来实现-help命令,它不仅能给用户提供输入命令帮助,还能在用户输入错误指令时合法命令提示,使代码更完善,更具合理健壮性,其帮助命令如下图所示:

这次作业使我受益匪浅,我既学到了许多过去从来没有接触过的知识,也更加深刻地了解了软件工程的思维与原理。

浙公网安备 33010602011771号