wordcount

1.设计思路

第一步 :主函数参数使用命令行参数,定义一个文件指针fp。
第二步:判断能否用只读的形式打开命令行指针中的文件,并让指针指向打开函数,若不能则输出不能读取文件,否则下一步。
第三步:使用strcmp函数判断命令行指针数组中的执行要求字符串是否为规定字符串-c、-w、-l,若是-c则调用character子函数输出返回的值,若是-w则调用子函数word输出返回的值,若是-l则调用子函数row输出返回的值,否则输出不能读取执行命令。
第四步:关闭文件。

第一步:定义整型函数名character,传递文件指针参数fp(用来计算字符数)。
第二步:定义一个整型计数器count初始值为0。
第三步:利用while循环判断是否为文件末尾,若是末尾则返回count的值,否则下一步。
第四步:如果从文件中读取的一个字符不是空字符则count+1赋给count,否则继续循环。

第一步:定义整型子函数名word,传递文件参数fp(用来计算单词数)。
第二步:定义一个整型的计数器count初始值为0,标志flag初始值为0.
第三步:利用while循环判断是否为文件末尾,若是则返回count的值,否则下一步
第四步:判断从文档中取出的一个字符是否为英文字母,若是则标志flag为1,否则判断标志是否为1,若是则count+1赋给count,并让标志为0,然后继续循环。

第一步:定义整型子函数名row,传递文件参数fp(用来计算行数)。
第二步:定义一个整型的计数器count初始值为0。
第三步:利用while循环判断是否为文文件末尾,若是则返回count的值,否则下一步
第四步:判断从文件中读取的一个字符是否为换行符,若是则count+1赋给count,否则继续循环。

2.实验代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int character(FILE *fp);
int word(FILE *fp);
int row(FILE *fp);
int main(int argc,char *argv[])
{FILE *fp=NULL;if((fp=fopen(argv[2],"r"))==NULL){printf("Please enter correct and available file name!\n");exit(0);}if(strcmp(argv[1],"-c")==0)printf("%d\n",character(fp));else if(strcmp(argv[1],"-w")==0)printf("%d\n",word(fp));else if(strcmp(argv[1],"-l")==0)printf("%d\n",row(fp));elseprintf("Please enter the available instruction you want!\n");fclose(fp);system("pause");return 0;
}
int character(FILE *fp)
{int count=0;while(!feof(fp))if(fgetc(fp)!=EOF)count++;return count;
}
int word(FILE *fp)
{short int flag=0;int count=0;while(!feof(fp)){if(fgetc(fp)<='Z'&&fgetc(fp)>='A'||fgetc(fp)<='z'&&fgetc(fp)>='a')flag=1;else{if(flag)count++;flag=0;}} return count;
}
int row(FILE *fp)
{int count=0;while(!feof(fp))if(fgetc(fp)=='\n')count++;return count;
}

3.本题调试过程碰到问题及解决办法

本题在编写代码的过程中出现的对知识点的不熟悉不作详细解释。
错误信息1:

错误原因:在输入统计字符数的文件时并没有将运行的文件放在同一个目录下,而我一直输入的只有需要统计的文件名,而在C:\Users\李晓静\这个目录下并没有wc.c这个文件,所以一直输出找不到。
改正方法:需要统计的文件地址从C:\Users\李晓静\以下的地址都要输入,我将文件都放在了桌面,输入时要有Desktop\这个路径,再输入文件名wc.c
错误信息2:
错误代码部分如下:

int character(FILE *fp)
{int count=0;while(!feof(fp))count++;return count;
}


错误原因:while循环中没有读取文件中的字符,一直判断文件末尾是死循环。
改正方法:在while循环中加一句判断从文件中取出的一个字符是否为空字符,然后执行下一语句。
正确信息:

GitHub地址:

https://github.com/MemoriesBook/C-PTA-/blob/master/wordcount.c

评论博客地址:

董欣
董雅洁
冯子旋

学习进度和总结

日期 代码时间 代码行数 博客时间 博客行数
3月12日 0 0 0 0
3月13日 0 0 0 0
3月14日 6 3 25 17
3月15日 11 5 0 0
3月16日 0 0 0 0
3月17日 0 0 0 0
3月18日 9 7 19 24
3月19日 17 21 0 0
3月20日 0 0 0 0
3月21日 0 0 0 0
3月22日 12 8 31 40
3月23日 48 19 45 86
3月24日 0 0 0 0
3月25日 0 0 0 0
3月26日 0 0 16 160
3月27日 51 24 72 543
3月28日 19 9 67 342
3月29日 44 34 67 199
3月30日 0 0 0 0
3月31日 0 0 0 0
4月1日 24 17 0 0
4月2日 12 13 50 549
4月3日 30 14 47 45
4月4日 0 0 0 0
4月5日 0 0 0 0
4月6日 0 0 0 0
4月7日 0 0 77 203
4月8日 0 0 0 0
4月9日 0 0 0 0
4月9日 0 0 0 0
4月10日 86 7 23 150
4月11日 15 6 250 20
4月12日 50 6 45 239
4月13日 0 0 0 0
4月14日 42 22 0 0
4月15日 101 0 0 0
4月16日 0 0 0 0
4月17日 0 0 0 0
4月18日 0 0 0 0
4月19日 0 0 0 0
4月20日 0 0 0 0
4月21日 0 0 0 0
4月22日 0 0 0 0
4月23日 0 0 0 0
4月24日 0 0 0 0
4月25日 0 0 0 0
4月26日 52 0 0 0
4月27日 0 0 0 0
4月28日 0 0 0 0
4月29日 0 0 0 0
4月30日 0 0 0 0
5月1日 0 0 0 0
5月2日 0 0 0 0
5月3日 0 0 0 0
5月4日 0 0 0 0
5月5日 0 0 0 0
5月6日 0 0 0 0
5月7日 0 0 0 0
5月8日 0 0 0 0
5月9日 0 0 0 0
5月10日 0 0 0 0
5月11日 59 20 8 0

本学期课程即将结束,请总结下你本课程的收获,回顾第0次作业,你是否实现了你的目标?

要想写好代码就必须自己动手敲,光靠听别人的是没什么用的,大多只能知道C语言中有这种函数和语句而已,平时课上看着老师写的一串串代码,课上好像都看懂了,但是课下真正自己写的时候又写不出来了,所以光靠课上听是没用的。至于第0次作业的目标,其中有一点我并没有实行,每周课后做2道课外的C语言题目,这一点我是很惭愧的,其它的我想我都尽可能地实现了。

你对目前的上课和作业方式(上课讲解+PTA+博客)有何意见和建议?

我觉得PTA可以和上课讲解的方式相同,PTA中的题目只有一道题目,这个题目包含了课上学的很多知识点,全部体现在一串代码中,这样也有利于将知识点和代码串联起来,实现C语言的综合利用,博客也是同样的,减少作业量还可以高质量地完成课程任务,题目涉及的知识点越多就越难,要思考的地方就多,对学生的思维能力有一定的锻炼效果吧。

终于我们即将不再是师生。当你结束本课程,你和我就站在同样的位置上,我将不再基于学校授权和知识、经验 (年龄?)上的优势而对你的自由有任何干扰。除发布成绩以外,我最后一次行使教师特权: 请问你有什么要对教师 (我)说的,建议、抱怨、希望……多谢。

我想说你是一个好老师,很负责任,从专业知识方面,虽然我觉得可能没有那么深入,课堂上也没有多余的知识点,主要原因可能是班里大多数学生都听不懂吧,所以只能把时间都放在讲解课本上要求的内容了吧,但是我觉得老师的态度真的是很认真,就算不是对学生负责,那也是对这份教师工作负责,这一点我真心地很敬佩老师,感谢老师带给我的这种精神,我会好好开发的。

转载于:https://www.cnblogs.com/lixiaojing/p/8992287.html

實驗項目wordcount相关推荐

  1. 項目實施文檔寫作框架

    項目實施文檔寫作框架 1.  當前現狀 2.  面臨存在的問題 3.  解決方案 4.  實施步驟 4.1  項目實習前的備份(項目實施安全性方面準備工作) 4.2  項目改善的實施 4.3  項目實 ...

  2. 邊實驗邊分析 - Android Foreground Service的使用

    邊實驗邊分析 - Android Foreground Service的使用 一.簡述 二.Android LowMemoryKiller 介紹 三.startService方法的調用行爲測試 給Se ...

  3. Android小項目之---時間線程應用(附源碼)

    进程 在Android 中,进程是应用程序的完整实现,而不是用户通常了解的那样.他们主要用途很简单: • 提高稳定性和安全性,将不信任或者不稳定的代码移动到其他进程. • 可将多个.apk 包运行在同 ...

  4. Android小項目之---吃飯選哪?--》選擇對話框(附源碼)

    還記得早先我們做的記算器的例子嗎?當中的驗證判斷用到了對話框,今天我們來做一個不一樣的對話框,要做的這個小例子是一個可供選擇效果的對話框 即層層迭迭的Alert Dialog:界面方面我們擺放一個Bu ...

  5. java网站开发框架搭建手册_Javaweb項目框架搭建

    前言 Java從大二開始學習到現在大四也有差不多兩年了,但是由於之前一直在玩,沒有認真學過,直到現在才開始重新學習.也是很湊巧,看到了黃勇老師的<架構探險>,於是便開始學習寫Java We ...

  6. Android小項目之---ListView实现论坛管理效果(附源碼)

    在android系統中,ListView的用法稍微複雜一點,配置Adpater就有幾種方法,如ArrayAdapter,SimpleAdapter等.查了一些網上的相關例子,有很多都是用ListAct ...

  7. 如何在版本控制工具中管理Sencha Architect的項目

    根據數次痛苦的經歷結合stack overflow上的解答,發現原來還是可以使用svn.git之類的版本控制工具管理Sencha Architect生成的項目的. 具體的要點如下,假定項目記作{PRO ...

  8. 四大資本力推:Spacecraft 星際母艦 NFT 項目未發先火

    在區塊鏈行業中,資本是推動行業發展的重要一環,任何公鏈和項目的運行如果少了資本方的參與,那麼必然面臨更長的成長週期和更為曲折的成長道路. 因此,區塊鏈行業中,投資的風向幾乎可以代表行業的走向,資本的流 ...

  9. qt mysql now()_Qt + mysql 運用 (項目一)

    自己整合了一些資料方便以后查看,另外參考了一些資料嘗試做了個學生管理系統 以下資料若有錯誤或有侵權的地方,請前輩們指正,謝謝! 在Qt項目中右鍵執行qmake,之后在運行. 另外一種方法是在MVS20 ...

最新文章

  1. c语言malloc函数用法_C语言内存模型!小本本记起来啊!
  2. 信息系统项目管理师-项目评估的基本方法
  3. valuestack,stackContext,ActionContext.之间的关系
  4. webpack之externals操作三部曲--正确的姿势
  5. Boot Hill 布特山
  6. 8 年经验面试官解读程序员的技能瓶颈,以及突破瓶颈的忠告 | CSDN 博文精选
  7. 【Axure RP8.1】一款专业的快速原型设计工具
  8. 拓端tecdat|R语言分位数回归预测筛选有上升潜力的股票
  9. Cadence、Pspice 软件相关汇总
  10. win10自动停用打印服务器,雨林木风win10系统添加打印机总是自动关闭打印服务的方法...
  11. 数据集加载--load_digits
  12. 工业设计与钣金工艺是怎么相互相成的
  13. 【朝花夕拾】【编程基础】一 存储单位
  14. Bug 20186278 - crfclust.bdb Becomes Huge Size Due to Sudden Retention Change (文档 ID 20186278.8)
  15. win10系统蓝牙耳机的连接与连接后无法听到声音
  16. 怎么写一篇优质爆款小红书种草文案?美妆产品为例
  17. 第1讲、Cadence Allergo绘制小马哥DragonFly四轴飞行器PCB四层板教程简介
  18. Python正则表达式-re模块奇技淫巧
  19. 【C++】 STL库的stack容器
  20. thinkphp实现邮箱发送

热门文章

  1. 薏米到底有多强大?真是没想到还能这样吃~
  2. linux进程管理与调度
  3. 关于Ajax和@RequestBody配合使用的问题
  4. 【Elasticsearch】es 7.8.0 java 实现 BulkRequest 批量写入数据
  5. 【es】es 的 Setting和Environment
  6. 【Jackson】jackson 语法介绍 关键字
  7. 【Elasticsearch】Elasticsearch 集群健康值红色 解决方案 或者 分片 未分配
  8. 【Kafka】kafka 再均衡监听器 ConsumerRebalanceListener
  9. 【Kafka】Kafka SCRAM认证 ERROR [ZooKeeperClient] Auth failed
  10. 20-10-023-安装-KyLin-2.5.2-单机版安装(MAC)成功