wc.exe程序
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程序的更多相关文章
- C++实现wc.exe程序
github项目地址:https://github.com/insomniali/wc 基本功能 wc.exe -c file 统计文件file的字符数 [实现] wc.exe -w fil ...
- wc.exe指令(C++)
https://github.com/kielingpao/wc 项目相关要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有wc.ex ...
- 个人项目(WC.exe)(java)(基于图形界面)
一.Github项目地址:https://github.com/Leungdc/ENhomework 二.PSP: PSP2.1 Personal Software Process Stages 预估 ...
- WC.exe【C】
gitee传送门!!!(电脑打不开github,多次尝试未果,决定先用gitee存着先) 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序 ...
- 小白のjava实现wc.exe功能
GitHub地址 项目完成情况 基本功能列表(已实现) wc.exe -c file.c //返回文件 file.c 的字符数 wc.exe -w file.c //返回文件 file. ...
- 模仿WC.exe的功能实现--node.js
Github项目地址:https://github.com/102derLinmenmin/myWc WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要 ...
- 软工作业1—java实现wc.exe
github项目地址 https://github.com/liyizhu/wc.exe WC 项目要求 基本功能列表: wc.exe -c file.c //返回文件 file.c 的字符数 ...
- 用c语言基本实现wc.exe功能
网址:https://github.com/3216005214/wc.exe wc项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿 ...
- java实现wc.exe
Github地址:https://github.com/ztz1998/wc/tree/master 项目相关要求 实现一个统计程序,它能正确统计程序文件中的字符数.单词数.行数,以及还具备其他扩展功 ...
随机推荐
- php imap 那些坑
今天调试php 接收邮件,遇见的几大坑! 第一,返回错误 关键字imap_open返回flase 原来{{$mailServer}:143}INBOX 的端口,不是根据outlook给的,,,,,是 ...
- REST是什么?RESTFul又是什么?这二者的关系是怎样的?
REST(一种软件架构风格) 全称:Representational State Transfer 含义:(表述性 状态 转移) 是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可 ...
- PHP acos() 函数
实例 返回不同数的反余弦: <?phpecho(acos(0.64) . "<br>");echo(acos(-0.4) . "<br>&q ...
- rabbitMQ安装问题记录
参考链接: rabbitmq国内镜像地址:https://www.newbe.pro/Mirrors/Mirrors-RabbitMQ/ https://www.zhihu.com/question/ ...
- 回首Java——再回首JDK
如果你是刚要被Java军训的新兵,可有几时对环境搭建而不知所措?又如若你是驰骋Java战场多年的老将,可曾拿起陪伴你许久的82年的JDK回味一番?今天我们就来道一道JDK,重新来认识认识这个既熟悉又陌 ...
- qt中使用dll库的方法
使用dll文件时首先通过dll文件导出符号表,如下面介绍 1. 制作def 直接调用 pexports mylib.dll > mylib.def 2. 生成a 需要mylib.dll和myli ...
- 031_go语言中的通道遍历
代码演示 package main import "fmt" func main() { queue := make(chan string, 2) queue <- &qu ...
- 17、Observer 观察者模式
以一个实例给大家引入观察者,大家多多少少都写过html或者java中的swing.我们定义一个按钮,给他增加一个点击事件,那么这个方法是怎么被触发到呢,对了,就是利用了观察者设计模式 观察者模式 当对 ...
- linux常用命令(一)软件操作命令
软件包管理器:yum 安装软件:yum install xxx 卸载软件:yum remove xxx 搜索软件:yum search xxx 清理缓存:yum clean packages 列出已安 ...
- C# ASP 分析器错误信息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。
在本地运行的应用,部署到服务器上出现错误.原因是web.config 中:<compilation debug="true" targetFramework="4. ...