第二个项目:WC

第二个项目:Word Count

一、主要功能:文件中字符数、单词数、行数的统计

二、github源码和工程文件地址:https://github.com/miniyuan222/the-second

三、代码展示:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int readData(char filename[]);
void writeData(int n, int x);
int hanzi(char filename[]);

void main(void)
{
char name[40] = "H:\\1.txt";
int word_num;
int hanzi_num;

word_num = readData(name);
hanzi_num = hanzi(name);
writeData(word_num, hanzi_num);
system("pause");

}

int readData(char filename[]) //此函数计算英文单词个数
{
FILE* fp;
char ch;
char flag = 0;
int num = 0;

if ((fp = fopen(filename, "r")) == NULL)
{
printf("%s open failure", filename);
exit(EXIT_FAILURE);
}
printf("%s open sucessfully!~\n", filename);

while (!feof(fp))
{
ch = fgetc(fp);
//(ch < 0x80) 排除汉字的干扰
if ((ch >= ‘A‘ && ch <= ‘Z‘) || (ch >= ‘a‘ && ch <= ‘z‘) || (ch >= ‘0‘ && ch <= ‘9‘))
flag = 0;
else if (flag == 0 && (ch != ‘-‘ && ch != ‘/‘&& ch != ‘\‘‘))
{
num++;
flag = 1;
}
}
fclose(fp);
return num;
}

int hanzi(char filename[]) //此文件计算汉字个数
{
FILE* fp;
int ch; //注意这里是int型的
int count = 0;
if ((fp = fopen(filename, "r")) == NULL)
{
printf("%s open failure.\n", filename);
exit(EXIT_FAILURE);
}

while (!feof(fp))
{
ch = fgetc(fp);
if (ch == -1)
break;

if (ch >= 0x80)
{
count++;
ch = fgetc(fp);//为什么要再来一次? 哦 因为fgetc每次只能取到一个字节 汉字是两个字节(可能是为了废掉一个字节)
}

}
fclose(fp);
return count;
}

void writeData(int n, int x) //此文件输出
{
FILE* fp;
if ((fp = fopen("D:\\result.txt", "a")) == NULL)
{
printf("File open failure!!!");
exit(EXIT_FAILURE);
}

fprintf(fp, "文件中的单词个数为%d\n", n);
fprintf(fp, "文件中的汉字个数为%d\n", x);

printf("文件中的单词个数为%d\n", n);
printf("文件中的汉字个数为%d\n", x);

printf("结果保存在D:\\result.txt当中\n");
fclose(fp);

}

四、总结:代码借鉴网上分享,并且与同学相互交流修改,增加了一个可以将统计结果保存到原文件里的功能,最后完成了该小项目。

时间: 2024-08-02 15:02:04

第二个项目:WC的相关文章

软件工程个人第二小项目——wc

github源码和工程文件地址:https://github.com/HuChengLing/wc 基本要求:要实现wc的基本功能即文件中字符数.单词数.行数的统计. 主要功能:文件中字符数.单词数.行数的统计和注释行统计. 设计思想:将文件中的一行字符读完来统计行数,然后运用字符数组再去分别统计字符数和单词数. 程序代码: #include<stdlib.h> #include<stdio.h> #include<string> void signalcount(ch

《小团队项目管理》第二问 --- 项目经理是救火队长?

在一些企业中常常会发生这种事情,公司业务繁忙,项目堆积成山,开发团队总共也就六七个人,恨不得一个人当两个人使,行内话称:"女人当做男人使,男人当做牲口使",急于改变现状的项目经理更是焦头烂额,满脑子的念头就是"怎么办?怎么办???".好吧看来我须要參与进来了,于是挽起袖子開始了一次<速度与激情>的编程之旅. 那我问你,你的准备工作做好了吗?你是最初接触项目需求的人,可能在你的脑海里,你的笔记本上画满了各种各样的符号,图示,用例,你的电脑上有各种各样的UM

团队作业8——第二次项目冲刺(Beta阶段)--第一天

团队作业8--第二次项目冲刺(Beta阶段)--第一天 会议照片: 燃尽图:   项目进展: 新的成员在熟悉项目 在计时模式下能够完程将成绩记录并读入SD卡中,其他的任务在继续完成中: 团队贡献比: 队员 角色 团队贡献比 陈麟凤 PM 17% 张志杰 DEV 18% 黄海鸿 TEST 16% 康建灿 TEST 16% 许明涛 DEV 17% 陈宇杰 DEV 16% 总结: Beta冲刺开始了,有了Alpha冲刺后,在进行新一阶段的冲刺在任务分工以及代码上要更用心,我们有信心能比上个阶段更加投入

red5 视频应用开发指南。第二个项目成功运行经验(2)

1,第二个项目通过最开始使用书本介绍的red5 1.0.0 ,发现连接的时候总是出现 NetConnection.Connect.Failed undefined 连接出错,具体代码是这样的 服务端代码 package com.red5app; import java.util.HashMap; import java.util.List; import java.util.Map; import org.red5.server.adapter.ApplicationAdapter; impor

团队作业7——第二次项目冲刺(Beta版本)

项目名称:软件1412--基于android的音乐播放器的开发 项目成员:  张慧敏(组长):201421122032                     苏晓微(组员):201421131033                     欧阳时康(组员):201421122050 团队作业7--第二次项目冲刺(Beta版本)day2 团队作业7--第二次项目冲刺(Beta版本)day3 Coding地址: https://git.coding.net/Suyooos/musicplayer.

团队作业7——第二次项目冲刺(Beta版本)

团队作业7--第二次项目冲刺-Beta版本项目计划 团队作业7--第二次项目冲刺(Beta版本)-第一篇 团队作业7--第二次项目冲刺(Beta版本)-第二篇 团队作业7--第二次项目冲刺(Beta版本)-第三篇 原文地址:https://www.cnblogs.com/daleag/p/8286688.html

个人项目Wc.exe(JAVA)

1.个人项目WC.exe的github地址:https://github.com/jezing/WC-in-software 2.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 35 50 · Estimate · 估计这个任务需要多少时间 35 50 Development 开发 900 1300 · Analysis · 需求分析  30 60 · Design Spec · 生成设计文档

个人项目-WC

1.GitHub地址:https://github.com/huanf921/WC 2.PSP表格 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 30 35 · Estimate · 估计这个任务需要多少时间 30 35 Development 开发 1530 1475 · Analysis · 需求分析 120 100 · Design Spec · 生成设计文档 30 30 · Design Rev

第二次项目冲刺(Beta阶段)--第三天

一.站立式会议照片 二.项目燃尽图 三.项目进展 队员  ID 贡献比 王若凡 201421123022 20% 吕志哲 201421123021 16% 欧阳勇 201421123026 16% 卢少锐 201421123027 16% 连永刚 201421123014 16% 郑怀勇 201421123016 16% 今日目标实现自定义重复率生成结果功能 成功实现,软件页面变更如图,手动输入但是需要输入保留两位的小数. 代码已经更新到conding中,但是还没有更新可运行的exe文件. 总结