软工作业-Wc

Wc.exe

wc.exe是一个常见的工具,它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序,模仿已有wc.exe 的功能,并加以扩充,给出某程序设计语言源文件的字符数、单词数和行数。

githud地址:https://github.com/Coothen/practice.git

一、PSP表-预估耗时

PSP2.1Personal Software Process Stages预估耗时(分钟)
Planning计划60
· Estimate· 估计这个任务需要多少时间60
Development开发840
· Analysis· 需求分析 (包括学习新技术)60
· Design Spec· 生成设计文档30
· Design Review· 设计复审 (和同事审核设计文档)30
· Coding Standard· 代码规范 (为目前的开发制定合适的规范)30
· Design· 具体设计30
· Coding· 具体编码480
· Code Review· 代码复审60
· Test· 测试(自我测试,修改代码,提交修改)120
Reporting报告100
· Test Report· 测试报告60
· Size Measurement· 计算工作量10
· Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划30
合计 1000

二、解题思路

  • 先去GitHub或CSDN博客上面找类似的源程序,比较其他语言,我对C语言较熟悉,所以找了几份用C编程的源程序,并在编译器上运行测试效果。

  • 选择一份具备基本功能的源代码开始分析,并尝试根据其思路自己编辑。

  • 基本功能实现后,开始尝试实现拓展功能。

  • 拓展功能实现后,开始测试并修改代码。

三、设计实现过程

  • 先写两个功能函数

    void file_error(){};文件打开错误

    void c_w_lCount(int wc_char,int wc_word,int wc_line,FILE *fp){};实现字符,单词,行数的计数

  • 再写主函数

四、代码说明

//文件打开错误函数
  void file_error(){  
printf("打开有误!\n");
printf("请按enter键继续....");
_getch();
exit(0);
}
//字符数,单词数,行数计算
  void c_w_lCount(int wc_char,int wc_word,int wc_line,FILE *fp){//单词,字符,行数计算函数
char *c;
while (1){
char ch;
ch = fgetc(fp);//fgetc():从FP中 返回一个字符
if (ch >= 'A'&&ch <= 'z'){
putchar(ch);//终端输出一个字符
wc_char++;}
else if (ch == ' '){
  putchar(ch);
wc_word++;}
else if (ch == '\n'){
putchar(ch);
wc_word++;
wc_line++;}
else if (ch==EOF){
break;}
_getch();
printf("\n该文件中字符数有 %d个。\n", wc_char);
printf("该文件中单词数有 %d个。\n", wc_word);
printf("该文件中行数有 %d行。\n", wc_line);
printf("请输入统计方式如(-c\-w\-l):");//输入“-c"显示字符数 ,输入“-l"显示行数,输入“-w"显示单词数
gets(c);
if (strcmp(c, "-c") == 0){
printf("该文件中字符数有 %d个。\n",wc_char);}
else if (strcmp(c, "-w") == 0){
printf("该文件中单词数有 %d个。\n",wc_word);}
else if (strcmp(c, "-l") == 0){
printf("该文件中行数有 %d行。\n",wc_line);}
exit(0);}

五、测试运行

基本功能:

文件打开错误提示

 

实现文件字符数,单词数,行数的计算。

 

 输入-w/-c/-l,相对应输出字符数,单词数和行数。

统计字符数:

 统计单词数:

 

统计行数:

六、PSP表-实际耗时

PSP2.1Personal Software Process Stages实际耗时(分钟) 
Planning计划50 
· Estimate· 估计这个任务需要多少时间50 
Development开发680 
· Analysis· 需求分析 (包括学习新技术)90 
· Design Spec· 生成设计文档20 
· Design Review· 设计复审 (和同事审核设计文档)20 
· Coding Standard· 代码规范 (为目前的开发制定合适的规范)10 
· Design· 具体设计60 
· Coding· 具体编码240 
· Code Review· 代码复审120 
· Test· 测试(自我测试,修改代码,提交修改)120 
Reporting报告90 
· Test Report· 测试报告60 
· Size Measurement· 计算工作量10 
· Postmortem & Process Improvement Plan· 事后总结, 并提出过程改进计划20 
合计 820 

七、总结

遇到的问题:

  1. 时间过于紧迫。拿到题目,虽然题目并不是很难,但对于缺乏实践的我来说,是一个挑战,我从来没试过在这么短的时间内写一个小程序。

  2. 之前未接触过GitHub,在GItHub使用上面花费了较长时间。

  3. 开始的时间较晚,到后面发现很多问题,但是来不及修改。

改进及建议:学习用JAVA语言编写程序,此次用C语言编写程序,运行界面为编译器的运行窗口,并未自己制作视图界面。

收获:

  1. 知道独自开发一个小程序的基本步骤,学会使用预估耗时和实际耗时进行对比,从而提高自己的效率。

  2. 意识到自己C语言和JAVA语言的薄弱,应利用大三时间复习巩固,并多实践。

  3. 学会使用GitHub。

转载于:https://www.cnblogs.com/coothen/p/9649362.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值