个人项目

---恢复内容开始---

一、Github地址:https://github.com/S1mon-fq/S1mon1

二、PSP表格:

PSP2.1Personal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning 计划 20 20
· Estimate · 估计这个任务需要多少时间 20        20
Development 开发 660 760
· Analysis · 需求分析  45 45
· Design Spec · 生成设计文档 45 50
· Design Review · 设计复审  40 60
· Coding Standard · 代码规范 20 30
· Design · 具体设计 60 60
· Coding · 具体编码 360 500
· Code Review · 代码复审 60 60
· Test · 测试(自我测试,修改代码,提交修改) 60 70
Reporting 报告 120 1140
· Test Report · 测试报告 60 85
· Size Measurement · 计算工作量 20 15
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 40 40
合计   830 1030

三、解题思路

1.一开始看到题目需要统计字符数跟单词数,我想到的是C里面的算法,读取文本然后用不同的算法就可以统计其中所需要统计的项目,而且对Java也不熟练,所以选择用C来实现。

2.决定好要用C来实现,想好实现每个功能的算法,构思实现统计字符数时不确定如何可以更全面地实现,上网查找了资料,使用了最原始的方法,然后在主函数用了argc、argv函数。

3.题目需要程序处理用户需求的模式为:wc.exe [parameter] [file_name],通过向同学请教并上网搜查资料,得知可用argc、argv函数进行传参,就可以通过命令行来实现功能。

4.一开始以为-a的实现跟基本功能一样,后面发现可以合起来统计。

四、设计实验过程

一共五个函数,三个实现基本功能,一个实现-a的功能,还有一个主函数,主函数调用三个实现基本功能的函数和实现-a功能的函数,输出的是-w、-c、-l函数的返回值

和-a函数的输出。

主函数:

 

 

 

基本功能列表:

wc.exe -c file.c     //返回文件 file.c 的字符数

wc.exe -w file.c    //返回文件 file.c 的词的数目  

wc.exe -l file.c      //返回文件 file.c 的行数

 

扩展功能:
    -s   递归处理目录下符合条件的文件。(未实现)
    -a   返回更复杂的数据(代码行 / 空行 / 注释行)。

[file_name]: 文件或目录名,可以处理一般通配符。

高级功能:

 -x 参数。这个参数单独使用。如果命令行有这个参数,则程序会显示图形界面,用户可以通过界面选取单个文件,程序就会显示文件的字符数、行数等全部统计信息。(未实现)

五、测试运行

测试文件:

 

 

 空文件:

 

 

 只有一个字符的文件:

只有一行的文件:

只有一个词的文件:

一个典型的源文件:

 

以上可以看出基本功能都可以实现

对源文件实现-a功能:

六、收获和总结

1.不足:不太清楚C怎么做图形界面,递归处理目录下符合条件的文件也不太会,所以这两个功能都没能实现

2.由于自己的实操能力不强,只实现了比较简单的基本功能和一个扩展功能,整个编程过程中,我觉得最难的部分在于怎么能用命令行实现,向同学请教并查找了资料,第一次用argv、argc函数,一直在修改,倒是基本功能比较快就写好了,写代码还是熟能生巧。接下来希望自己去学习用python编程。

 

posted @ 2019-09-25 20:55  S1monn  阅读(152)  评论(0编辑  收藏  举报