搭档: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作业的更多相关文章

  1. WordCount作业修改

    WordCount作业修改 github地址 需求说明 基本需求 功能说明 PSP 代码实现 字符总数查询 单词数查询 行数查询 总结 一.需求说明 1.基本需求 WordCount的需求可以概括为: ...

  2. 自动化测试工具(基于WordCount作业)

    本自动化测试的程序用于自动化测试WordCount作业,采用Java开发(基于jdk1.8+),基于Maven来管理项目. 支持的语言和开发进度 语言 进度 Java 已测试并投入运行 C++ 开发完 ...

  3. WordCount作业提交到FileInputFormat类中split切分算法和host选择算法过程源码分析

    参考 FileInputFormat类中split切分算法和host选择算法介绍  以及 Hadoop2.6.0的FileInputFormat的任务切分原理分析(即如何控制FileInputForm ...

  4. 软件测试第二周个人作业:WordCount

    github地址:https:/github.com/muzhailong/wc.git 第一次写博客很不容易,也算是一个好的开始吧. 1.   个人作业要求 作业简述:根据WordCount的需求描 ...

  5. JobClient学习------作业提交与初始化

    public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); ...

  6. MapReduce调度与执行原理之作业提交

    前言 :本文旨在理清在Hadoop中一个MapReduce作业(Job)在提交到框架后的整个生命周期过程,权作总结和日后参考,如有问题,请不吝赐教.本文不涉及Hadoop的架构设计,如有兴趣请参考相关 ...

  7. WordCount结对项目

    合作者:201631062124,201631062423 代码地址:https://gitee.com/yryx/WordCount 作业地址:https://edu.cnblogs.com/cam ...

  8. MapReduce源码分析之新API作业提交(二):连接集群

    MapReduce作业提交时连接集群是通过Job的connect()方法实现的,它实际上是构造集群Cluster实例cluster,代码如下: private synchronized void co ...

  9. WordCount 2.0(结对项目)

    序言 合作伙伴 201631062220      201631062120 项目码云地址: https://gitee.com/zhege/WordCount 作业详细要求 系统分析与设计结对项目 ...

随机推荐

  1. Node.js学习笔记(1):Node.js快速开始

    Node.js学习笔记(1):Node.js快速开始 Node.js的安装 下载 官方网址:https://nodejs.org/en/ 说明: 在Windows上安装时务必选择全部组件,包括勾选Ad ...

  2. luoguP3066 [USACO12DEC]逃跑的BarnRunning

    luoguP3066 [USACO12DEC]逃跑的BarnRunning 题目大意 给定一棵n个节点的树和参数L,查询每个节点子树中到达该节点距离<=L的数量(包括该节点) 偏模板的主席树 P ...

  3. vue-awesome-swiper的使用以及API整理

    一.先说一个看关于vue-awesome-swiper的一个坑 vue项目的package.json中显示的"vue-awesome-swiper": "^2.5.4&q ...

  4. linux下安装svn服务

    环境centos6.8 64位: 1.安装svn yum install subversion yum install mod_dav_svn 2.创建svn仓库 mkdie /home/svn 3. ...

  5. python列表推导式的if-else

    a=[i for i in range(10) if i%2==0]print(a)a=[i if i%2==0 else 'qi' for i in range(10)]print(a) 结果:[0 ...

  6. 灰色大气企业html5模板

    灰色大气企业html网页模板是一款以灰色为背景的大气简洁企业html5网站模板. 下载地址:http://www.huiyi8.com/sc/10860.html

  7. Cocos2d-x中定时器的使用

    CCTimer:轻量级的计时器 CCTimer (void) ccTime  getInterval (void) void  setInterval (ccTime fInterval) bool  ...

  8. BZOJ 1680 [Usaco2005 Mar]Yogurt factory:贪心【只用考虑上一个】

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1680 题意: 在接下来的n周内,第i周生产一吨酸奶的成本为c[i],订单为y[i]吨酸奶. ...

  9. android自定义控件(五) 自定义组合控件

    转自http://www.cnblogs.com/hdjjun/archive/2011/10/12/2209467.html 代码为自己编写 目标:实现textview和ImageButton组合, ...

  10. Codeforces round 396(Div. 2) 题解

    Problem A 题目大意 给定两个字符串,要求构造出一个最长的一个串满足:这个串是其中一个串的字序列并且不是另一个串的子序列.输出长度.\((len \leq 10^5)\) 题解 千万年死在读题 ...