1.gitHub地址:https://github.com/loveYuJun/wc.exe.git

2.PSP表格

psp2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 45 50
Estimate 估计这个任务所需时间 45 50
Development 开发 640 520
Analysis 需求分析(学习新技术) 200 150
Design spec 生成设计文档 10 10
Design Review 设计复审 30 15
Coding standard 代码规范(为目前开发制定合适的规范) 10 10
Design 具体设计 30 25
Coding 具体编码 100 120
Code Review 代码复审 60 40
Test 测试(自我测试,修改代码,提交修改) 200 150
Reporting 报告 100 90
Test Report 测试报告 20 30
Size Measurement 计算工作量 20 30
Postmortem & Process Improvement Plan 事后总结,并提出过程修改计划 60 30
合计   785 600

3.解题思路

使用C语言进行读取文件,主要利用C语言中的函数fgetc(),以进行对文档中的字符,词,行的计算。

4.设计实现过程

利用函数fgetc()读取到文件末尾时,会返回一个EOF,以此作为循环结束的条件,可以直接得到字符数;在此循环条件下对读取到的字符进行判定,当字符不为空白符或标点符号时,判定这是一个词的开始,当再次遇到空白或标点符号时,判定一个词的结束;在循环条件下,计算换行符出现的次数,结果加1即为行数。

5.主要代码

//主函数加全局变量
FILE *fp;
char flag;
int main(){
char filename[];
printf("please input filename!\n");
gets(filename);
countchar(filename);
countword(filename);
countline(filename);
} //计算字符数
int countchar(char *filename){
int chars=;
fp=fopen(filename,"r");
flag=fgetc(fp);
for( ; flag!=EOF ; ){
chars++;
flag=fgetc(fp);
}
printf("The char count of the file is %d.\n",chars);
fclose(fp);
return ;
} //j计算词数
int countword(char *filename){
int words=;
fp=fopen(filename,"r");
flag=fgetc(fp);
int inword=false;
for( ; flag!=EOF ;){
if(!isspace(flag)&&!ispunct(flag)&&!inword){
words++;
inword=true;
}
if(inword&&isspace(flag)||ispunct(flag))
inword=false;
flag=fgetc(fp);
}
printf("The word count of the file is %d.\n",words);
fclose(fp);
return ;
} //计算行数
int countline(char *filename){
int lines=;
fp=fopen(filename,"r");
flag=fgetc(fp);
for( ;flag!=EOF ;){
if(flag=='\n')
lines++;
flag=fgetc(fp);
}
lines++;
printf("The line count of the file is %d.\n",lines);
fclose(fp);
return ;
}

6.测试运行

(1)空白文档

(2)单行文档

(3)多行文档

7.项目小结

通过这次的作业,我认识到C语言还有不了解的,同时,在这个过程中,我更加了解了fgetc()函数的使用,了解了一个软件开发的较为具体的过程。

wc.exe程序的更多相关文章

  1. C++实现wc.exe程序

    github项目地址:https://github.com/insomniali/wc 基本功能 wc.exe -c file     统计文件file的字符数  [实现] wc.exe -w fil ...

  2. wc.exe指令(C++)

    https://github.com/kielingpao/wc 项目相关要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.ex ...

  3. 个人项目(WC.exe)(java)(基于图形界面)

    一.Github项目地址:https://github.com/Leungdc/ENhomework 二.PSP: PSP2.1 Personal Software Process Stages 预估 ...

  4. WC.exe【C】

    gitee传送门!!!(电脑打不开github,多次尝试未果,决定先用gitee存着先) 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序 ...

  5. 小白のjava实现wc.exe功能

    GitHub地址 项目完成情况 基本功能列表(已实现) wc.exe -c file.c     //返回文件 file.c 的字符数 wc.exe -w file.c    //返回文件 file. ...

  6. 模仿WC.exe的功能实现--node.js

    Github项目地址:https://github.com/102derLinmenmin/myWc WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要 ...

  7. 软工作业1—java实现wc.exe

    github项目地址 https://github.com/liyizhu/wc.exe WC 项目要求 基本功能列表: wc.exe -c file.c     //返回文件 file.c 的字符数 ...

  8. 用c语言基本实现wc.exe功能

    网址:https://github.com/3216005214/wc.exe wc项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿 ...

  9. java实现wc.exe

    Github地址:https://github.com/ztz1998/wc/tree/master 项目相关要求 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功 ...

随机推荐

  1. Dom运用2

    1.登录系统 <!--输入框创建--> 账号:<input class="ipt" type="text"><br> 密码: ...

  2. scrapyd 部署

    步骤 1 pip install scrapyd pip install scrapy-client 步骤 2 修改 scrapy.cfg [deploy:targetName]url = http: ...

  3. springboot2.2 集成 activity6 请假完整示例

    新手学习记录.写在springboot test 示例  示例代码地址看结尾.后面有带页面的示例. SpringBoot Test无页面简单示例 员工请假流程 员工发起申请,附带请假信息(请假几天) ...

  4. Day17_购物车

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"乐优商城"获取视频和教程资料! b站在线视频 注:实验 ...

  5. JPA第二天

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"springdata"获取视频和教程资料! b站在线视 ...

  6. 女生学Java编程是什么感受?

    那我就代表女生来说说感受 在编程的世界很难遇到好看的帅哥 记得当年15年7月4号是我实习生入职的日子,因为是校企合作,所以没有面试.老师推荐.直接入职.刚来北京第一个感觉就是人多,还有就是热.刚到公司 ...

  7. 4.13 省选模拟赛 树 树形dp 卷积 NTT优化dp.

    考试的时候 看到概率 看到期望我就怂 推了一波矩阵树推自闭了 发现 边权点权的什么也不是. 想到了树形dp 维护所有边的断开情况 然后发现数联通块的和再k次方过于困难. 这个时候 应该仔细观察一下 和 ...

  8. layer.js : n.on is not a function

    当时使用的jQuery为1.4.x的版本.换成高版本就好了. 参考 https://blog.csdn.net/marswill/article/details/69316003

  9. Linux之iptables原理详解

    目录: 一.netfilter与iptables 二.filter.nat.mangle等规则表 三.INPUT.FORWARD等规则链和规则 四.Linux数据包路由原理 五.iptables编写规 ...

  10. LeetCode 87,远看是字符串其实是搜索,你能做出来吗?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题第54篇文章,我们一起来看LeetCode 87题,Scramble String(爬行字符串). 这题的官方难度 ...