wordcount作业
搭档:201631062427,201631062627
代码地址:https://gitee.com/oyyyyyy/wordcount
作业地址:
一: 代码互审情况
我们采用的都是c语言的方式完成该次作业,都是将整体分成小问题,然后通过函数逐步实现,最后在在主函数里面调用,所以在代码互审的时候,我们只需要检查对方的函数是否能够正确实现功能(在主函数里调用即可)。在检查了对方的代码没有错误的之后,就开始分析谁写的函数更加高效以及精简,最终采纳。我们两个基本上都实现了基本和扩展功能,但是高级功能均没有实现,因为用C语言实现界面化对我们来说是一个极其陌生的领域,在共同的努力之下我们争取完成。检查函数名,函数名称不规范,没有让人看出函数的功能。检查注释,注释太少,没有具体的描述检查规格,没有在该留空格的时候打上空格。检查头文件,头文件命名有问题,总体来说代码很清晰,有简单的注释,就是在命名方面还不够严谨。合并代码时,我们统一了命名,在必要的地方加上了注释,规定了代码字体大小。
(1)统计字符个数
void Run(char Type, char Type2, char *Path);
int CodeCount(char *Path) {
FILE *file = fopen(Path, "r");
assert(file != NULL);
char code;
int count = ;
while ((code = fgetc(file)) != EOF)
count+= ((code != ' ') && (code != '\n') && (code != '\t'));
fclose(file);
return count;
}
(2)统计单词个数
int WordCount(char *Path) {
FILE *file = fopen(Path, "r");
assert(file != NULL);
char word;
int is_word = ;
int count = ;
while ((word = fgetc(file)) != EOF) {
if ((word >= 'a' && word <= 'z') || (word >= 'A' && word <= 'Z')) {
count += (is_word == );
is_word = ;
}
else
is_word = ;
}
fclose(file);
return count;
}
(3)统计代码行数
int LineCount(char *Path) {
FILE *file = fopen(Path, "r");
assert(file != NULL);
char *s = (char*)malloc( * sizeof(char));
int count = ;
for (; fgets(s, , file) != NULL; count++);
free(s);
fclose(file);
return count;
}
int Orrid(char *Path)
{
/*FILE *file = fopen(Path, "r");
assert(file != NULL);
printf("code count: %d\n", CodeCount(Path));
printf("word count: %d\n", WordCount(Path));
printf("line count: %d\n", LineCount(Path));
int a,b,c;
FILE *fp1=fopen(Path,"w");
printf("字符数,单词数,行数:\n");
scanf("%d %d %d",&a,&b,&c);
fprintf(fp1,"该文本文件的字符数为:%d\n",a);
fprintf(fp1,"该文本文件的单词数为:%d\n",b);
fprintf(fp1,"该文本文件的行数为:%d\n",c);
fclose(fp1);
return 0;
}
(4)主函数
int main(int argc, char *argv[]) {
char Path[] = "*.c";
char Type = 's';
char Type2 = 'c';
if (argv[]) {
Type = *(argv[] + );
if (Type == 's') {
Type2 = *(argv[] + );
strcpy(Path, argv[]);
}
else
strcpy(Path, argv[]);
}
Run(Type, Type2, Path);
printf("\nPress any key to continue");
getchar();
return ;
}
运行结果
1)

2)

3)

4)

5)

总结:
在代码合并阶段,由于搭档风格与自己有很大不同,似乎有比自己更精简而有效的,有的却不能运行,在互相检查了许多错误和网上查资料解决完问题后,态度变得有些不耐烦,而且基本上只是为了完成问题,很多高级功能并没有实现,对一些基本功能都有些难想象,在以后学习中,慢慢实现。
wordcount作业的更多相关文章
- WordCount作业修改
WordCount作业修改 github地址 需求说明 基本需求 功能说明 PSP 代码实现 字符总数查询 单词数查询 行数查询 总结 一.需求说明 1.基本需求 WordCount的需求可以概括为: ...
- 自动化测试工具(基于WordCount作业)
本自动化测试的程序用于自动化测试WordCount作业,采用Java开发(基于jdk1.8+),基于Maven来管理项目. 支持的语言和开发进度 语言 进度 Java 已测试并投入运行 C++ 开发完 ...
- WordCount作业提交到FileInputFormat类中split切分算法和host选择算法过程源码分析
参考 FileInputFormat类中split切分算法和host选择算法介绍 以及 Hadoop2.6.0的FileInputFormat的任务切分原理分析(即如何控制FileInputForm ...
- 软件测试第二周个人作业:WordCount
github地址:https:/github.com/muzhailong/wc.git 第一次写博客很不容易,也算是一个好的开始吧. 1. 个人作业要求 作业简述:根据WordCount的需求描 ...
- JobClient学习------作业提交与初始化
public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); ...
- MapReduce调度与执行原理之作业提交
前言 :本文旨在理清在Hadoop中一个MapReduce作业(Job)在提交到框架后的整个生命周期过程,权作总结和日后参考,如有问题,请不吝赐教.本文不涉及Hadoop的架构设计,如有兴趣请参考相关 ...
- WordCount结对项目
合作者:201631062124,201631062423 代码地址:https://gitee.com/yryx/WordCount 作业地址:https://edu.cnblogs.com/cam ...
- MapReduce源码分析之新API作业提交(二):连接集群
MapReduce作业提交时连接集群是通过Job的connect()方法实现的,它实际上是构造集群Cluster实例cluster,代码如下: private synchronized void co ...
- WordCount 2.0(结对项目)
序言 合作伙伴 201631062220 201631062120 项目码云地址: https://gitee.com/zhege/WordCount 作业详细要求 系统分析与设计结对项目 ...
随机推荐
- 我的Java开发学习之旅------>Java经典排序算法之二分插入排序
一.折半插入排序(二分插入排序) 将直接插入排序中寻找A[i]的插入位置的方法改为采用折半比较,即可得到折半插入排序算法.在处理A[i]时,A[0]--A[i-1]已经按关键码值排好序.所谓折半比较, ...
- Pentaho BIServer Community Edtion 6.1 使用教程 第二篇 迁移元数据 [HSQLDB TO MySQL]
第一部分 迁移原因 Pentaho BI 社区版服务的很多元数据信息存储在数据库汇总,其默认使用HSQLDB 数据库,即借助它存储自身的资料库,比如 Quartz 调度信息.业务资料库连接信息(数据 ...
- Docker与虚拟化
核心知识点: 1.虚拟化的定义?虚拟化的核心和目标? 2.虚拟化的分类?Docker属于那种虚拟化? 3.Docker与传统虚拟化的区别?docker是直接在操作系统上实现虚拟化,直接复用本地操作系统 ...
- matplotlib和numpy 学习笔记
1. 在二维坐标系中画一个曲线 import matplotlib.pyplot as plt #data len=400, store int value data = [] #set x,y轴坐标 ...
- python类初探
class human: is_alive=True is_man=True def __init__(self,age): print('this is __init__() method, whi ...
- What can I yield?
浏览器支持情况:Enabled by default in desktop Chrome 39 一句话回答这个问题是:Promise,Thunks.为什么没有Generators?因为Generat ...
- C字符串末尾的'\0'问题
C语言的字符串要注意最后一位默认是'/0'的问题.这是一个易错点. strlen()计算长度时不考虑末尾的'\0' //例1 void test1() { ]; "; strcpy( str ...
- 浅析linux 下shell命令执行和守护进程
执行shell脚本有以下几种方式 1.相对路径方式,需先cd到脚本路径下 [root@banking tmp]# cd /tmp [root@banking tmp]# ./ceshi.sh 脚本执行 ...
- L3-007 天梯地图(30 分)
本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线:一条是最短距离的路线.题目保证对任意的查询请求,地图上都至少存在一条可达路线. 输 ...
- 使用webdriver出现的问题:[18796:1808:0730/131103.313:ERROR:install_util.cc(600)] Failed to read HKLM\SOFTWARE\Policies\Google\Chrome\MachineLevelUserCloudPolicyEnrollmentToken: 系统找不到指定的文件。 (0x2) DevTools lis
1.注册表导致 [5956:4996:0710/155156.898:ERROR:install_util.cc(589)] Unable to create registry key HKLM\SO ...