软件技术基础第三次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/zjlg/21rjjc |
---|---|
这个作业的目标 | 实现一个统计程序,要求能正确统计文件中的字符数、单词数、句子数,以及具备其他的拓展功能 |
姓名-学号 | 马明忠 2016330301019 |
码云地址:码云链接
项目相关要求
- 这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和句子数。使得它是一个可行的统计程序,它能正确统计程序文件中的字符数、单词数、句子数,以及还具备其他扩展功能…
具体功能要求:
-
程序处理用户需求的模式为:wc.exe [parameter] [file_name]
-
基本功能列表:wc.exe -c file.txt //返回文件 file.txt 的字符数 … wc.exe -w file.txt //返回文件 file.txt 的词的数目… wc.exe -l file.txt //返回文件 file.txt 的句子数
PSP
psp2.1 | personal saftware process stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
plannibg | 计划 | 40 | 50 |
Estimots | 估计用时 | 90 | 100 |
Development | 开发 | ||
Analysis | 需求分析 | 100 | 160 |
Desingnspec | 生成设计文档 | 110 | 100 |
Design Review | 设计复审 | 40 | 40 |
Coding Standeard | 代码规范 | 20 | 15 |
Fest | 测试 | 70 | 20 |
Reporting | 报告 | ||
Test Report | 测试报告 | 120 | 155 |
Size Measurement | 计算工作量 | 15 | 15 |
Postomortem | 事后总结 | 60 | 20 |
ALL | 合计 | 625 | 625 |
解题思路
实现部分:
-
首先统计字符等的功能,需要用fopen打开并读取文件,这个函数能实现绝对路径和相对路径,注意需要遍历文件。
-
-c 统计文件中的字符数
对目标文件的每读入一个字符,若其不是‘\r’,均增加统计的字符数。 -
-w 统计文件中的词的数量
词的定义多种多样,这里的定义采用一系列连续的字母或数字或下划线,为一个词。我们可以把所有键盘上打出的符号视作一个栏杆,栏杆两边的有字符数部分视作是两个独立的词,以此来统计词的数量。 -
-l 统计文件中的句子数量
行数的判定十分明朗,如此来统计行数。 -
要通过命令行运行,输入指令而不是通过“用户交互”来进行程序,所以程序用使用命令行参数的main函数。
测试部分:
-
需要考虑到各种文件字符、各种输入的情况…
-
要创建空字符文件、只有一个字符、空行、只有一行等的文件来进行测试。
设计实现过程
- 只要DOS命令行运行了wc.exe命令,就进入一个while(1)死循环里,不断检测判断匹配那几个命令,若匹配不到,就break退出死循环同时退出wc.exe程序,返回dos操作系统。
遇到的困难及解决方法
-
编程能力太弱,基本为0。解决办法:多打代码。
-
关于计划,实际花费用时和计划有较大差距。解决办法:经验
-
目前只完成基本功能。解决办法:很认真地完成,也是严格按照基本功能的描述来做。
关键代码or设计说明
-
所有操作都在dos命令行下操作即可,用命令行编译运行即可。
-
在命令行使用wc.exe指令完成对当前目录的任意文件进行统计。