个人项目-WC

个人项目-WC   (C语言)

一、Github地址:https://github.com/twistww/weiweijun

二、PSP表格

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

三、解题思路

1.因为自己的粗心,最开始尝试个人项目,已经是题目发布后的一周,所以有点匆忙。因为有大佬已经完成个人项目,他用的是Java,所以一开始我打算用Java进行个人项目。进行需求分析之后,发现运用面对对象的语言对本地文件进行操作有点困难,而且对Java的概念有很多遗忘,在浪费一定时间思考后,还是转向c语言。

2.尝试C语言之后,先完成大致main函数的框架,将实现三个基本功能的函数(字符统计charcount、单词统计wordcount、行数统计linecount)写出来,然后主函数调用三个方法,实现基本功能。由于对c语言的文件操作概念模糊,于是上网查询了文件的文件操作函数,使用 fopen( ) 函数来创建一个新的文件或者打开一个已有的文件,使用fclose()函数关闭文件,函数fgetc() 从 fp 所指向的输入文件中读取一个字符。写“-a”方法时,因为要查询代码函数、空行数以及注释行数,实现三个功能。一开始我打算写三个方法分别实现这三个统计功能,mian函数再调用三个函数实现“-a”的功能,但感觉过于繁琐,于是在网上查询,看到其他人用级联else-if多分支语句实现“-a”的功能,最终将三个方法合并为一个方法。

3.c语言图形界面之前未尝试过,而且时间有点赶,就没有实现图形界面。

四、设计实验过程

wc.exe由一个main主函数以及4个函数方法(字符统计charcount、单词统计wordcount、行数统计linecount、代码行数/ 空行数 / 注释行数统计allcount)构成,当程序开始,main函数运行,用户输入命令,程序判断是否为字符,若字符为‘-c’,则调用charcount函数,统计字符数目,输出,再退出程序;若字符为‘-w’,则调用wordcount函数,统计单词数目,输出,再退出程序;若字符为‘-l’,则调用linecount函数,统计行数目,输出,再退出程序;若字符为‘-a’,则调用allcount函数,统计代码行数/ 空行数 / 注释行数目,输出,再退出程序;若不是这四类字符,则输入字符无效,退出程序。

五、回归测试

1.测试空文件:

 

 

 

2.测试一个字符的文件:

 

 

 3.测试一个单词的文件:

 

 4.测试行的文件:

5.测试典型的文件:

 

 六、项目总结:

1.本次个人项目,反映出我的动手实践能力偏弱,对C语言掌握的不够熟练,对知识点概念模糊,缺乏动手编程实践。本次项目未运用Java编程,也侧面反映了我对java的知识点的遗忘以及对Java掌握的不牢固。在后面的学习中,要重新温习Java的知识点,多动手编程,熟能生巧。

2.本次个人项目,我对题目的要求并没有看仔细,以至于用c做完程序才发现还要进行图形界面的设计。在之后具体的操作之前,要申清题目,对项目进行仔细的需求分析,整理好自己的解题思路,再进行具体的代码实现,不要想一点写一点,可能会推翻自己之前的构思,会浪费很多时间,等一切准备工作都完成再开始,就能更高效的进行编程。

3.通过本次个人项目,我经历了一次较为完整的个人软件开发过程,第一次使用psp,如此规范的进行软件开发,虽然第一次我的程序并不够完善,还有很多不足的地方,对个人开发软件过程还很生疏,但还是收获了很多关于软件工程的知识。

 

posted on 2019-09-24 19:13  twistww  阅读(170)  评论(0编辑  收藏  举报

导航