C程序第四次作业
作业要求一
实践最简答的项目wordcount,必须完成其中的基本功能,若可以完成其他功能给予加分。完成后请将你的设计思路、主要代码写在本次作业博客里。
设计思路:
第一步:定义文件型指针变量fp,整型number,字符a。
第二步:判断输入的字符a的值,根据a值的不同调用不同的函数。
第三步:在被调用的三个函数中,判断是否打开此txt文件,如果打开失败则直接退出,从fp所指示的磁盘文件上分别读入一个字符到a,b,c,在while循环中判断文件是否结束。
第四步:对应不同的函数在循环中有不一样的条件,最后返回主函数。
主要代码:
#include <stdio.h>
#include <process.h>
int main(int argc,char *argv[])
{
FILE *fp;
int number;
char a;
printf("请输入字符:\n");
scanf("%c",&a);
if(a=='c') {
number=ch();
} else if(a=='w') {
number=wo();
} else {
number=li();
}
printf("%d",number);
return 0;
}
int ch() {
FILE *fp;
if((fp=fopen("wc.txt","r"))==NULL)
{
printf("File to open error!\n");
exit(-1);
}
int m=0;
char a;
a = fgetc(fp);//
while(a!=EOF) {
m++;
a=fgetc(fp);
}
if( fclose(fp) )
{
printf( "Can Not Close The File!\n" );
return 0;
}
return m;
}
int wo () {
FILE *fp;
if((fp=fopen("wc.txt","r"))==NULL)
{
printf("File to open error!\n");
exit(-1);
}
char b;
int i=1,count=0;
b = fgetc(fp);
while(b!=EOF) {
if(b==' '||b=='\n')
{
i=1;
}else
{
if(i==1)
{
count++;
i=0;
}
}
b = fgetc(fp);
}
if( fclose(fp) )
{
printf( "Can Not Close The File!\n" );
return 0;
}
return count;
}
int li() {
FILE *fp;
if((fp=fopen("wc.txt","r"))==NULL)
{
printf("File to open error!\n");
exit(-1);
}
int n=1;
char c;
c= fgetc(fp);
while(c!=EOF) {
if(c=='\n') {
n++;
}
c= fgetc(fp);
}
if( fclose(fp) )
{
printf( "Can Not Close The File!\n" );
return 0;
}
return n;
}
自身觉得自己的代码并不是十分的符合题目要求,虽然在主函数的括号中有写到argc和argv[],但在主函数中并没有运用到。在做这道题的时候自己一开始并没有读懂题目,用了先写后读的方法,最后虽然明白了题意但很懵。在仔细看了赵寅胜同学的代码后,也查阅了关于int main(int argnum, char* args[]) 的书籍和资料,然而还是很懵。最后只是大致明白了它的含义,因此最终选择了这样较为简单的方法。
要求二、学习总结和进度
1、将PTA作业的源代码使用git提交到托管平台上,要求给出上传成功截图和你的git地址。
git地址:(https://git.coding.net/exo07/disizhouzuoye.git)
2、点评3个同学的本周作业(在作业中给出被点评同学博客的链接),并邀请3名同学点评你的作业,无点评作业(你的作业未被3人点评)/或者没有回复同学或老师的点评都倒扣该题分数。
赵寅胜:(http://www.cnblogs.com/2017023960ZYS/p/8952253.html)
董欣:(http://www.cnblogs.com/dx2017/p/8992749.html)
冯子旋:(http://www.cnblogs.com/fengzx/p/8992814.html)
3、请用表格和折线图呈现你本学期的代码行数和所用时间、博客字数和所用时间,包括ACM刷题等其他平时自己练习的代码
4、本学期课程即将结束,请总结下你本课程的收获,回顾第0次作业,你是否实现了你的目标?
答:在本学期感觉自己学了很多,但又感觉像是没学多少,总和起来就是那种学的知识点很多然而自己掌握的都不怎么好的那种程度。
a:在指针方面自己学到了如何去定义指针变量、指针变量的引用、用指针指向数组且进行相应的运算、指针的指向各种类型(指针,字符串,结构体等等),自我感觉前三点掌握的还算熟练以外其他都是需要多加磨炼的。
b:在结构体方面学到了结构体变量的引用和初始化,及结构体数组的应用,感觉这章的知识点较少,因此自己的掌握程度较熟练。
c:在链表这章,自己主要学习到了链表的定义即如何去创建链表及输出链表,而在链表的插入及删除方面属于懂得原理,但实际操作起来的话会需要时间的程度。
d:在文件方面学到了如何去打开和关闭文件,了解了文件的读和写。
回顾第0次作业,自己给自己这一学期设定的目标来看,在对上学期的知识点能够更加熟悉掌握这方面觉得自己是有达到要求的;而在这学期尽量掌握新学的内容方面,感觉自己做的不是很够。而在自己的《第0次作业》中,写到每天会规定至少一个小时的时间去练习和深入了解且不包括PTA作业所需要懂的这点,自己确实是没有做到,可以在每次博客的表格和折线图中也可以看出。而在写PTA时,也没有将时间和写博客园的时间相对应,一般都是在写完PTA之后才开始写的博客园。回顾第0次作业对自己的要求,和现在自身的情况一对比,感觉很内疚。在写第0次作业时,对自己的规划感觉是很满意的,也想每天都要实施下去的,然而却经常会被自己的一些事情打破计划,只能保质保量的完成PTA中的题目。在后面较多的复习的时间内,自己会针对这不足点,将概念及书上例题都尽量做到熟悉和了解,希望在期末考试前,可以做到让自己满意的程度。
5、你对目前的上课和作业方式(上课讲解+PTA+博客)有何意见和建议?
答:对上课讲解+PTA+博客的总体模式并没有什么意见,但就PTA的题目的话,觉得前期的方法较好一点,就是那种一节课讲完后,就对相关知识点的PTA题目进行发布,在下一节课上完以后,再进行第二次发布,而不是那种一次性发布完。当PTA中新的题集一发布里面就有三四道题目时,这样的话会导致同学们一看题数就有可能会做完的话会花费很多时间,且题目肯定比较难的感觉。如果是每道题隔一段时间的话,感觉同学们有可能看到PTA题目时的压力会比较小一点,从而提高同学们的积极性,但如果这样的话,老师应该会更加的辛苦。对PTA+博客的模式感觉是蛮好的,PTA是必要的,而博客也是不可缺的。在博客园中将自己的错误点记录下来,这样积累下来,对我们自身来说也是一笔小小的财富,并且博客园本身也是一个开放的模式,也希望自己可以在其中学到更多的东西。
6、终于我们即将不再是师生。当你结束本课程,你和我就站在同样的位置上,我将不再基于学校授权和知识、经验 (年龄?)上的优势而对你的自由有任何干扰。除发布成绩以外,我最后一次行使教师特权: 请问你有什么要对教师 (我)说的,建议、抱怨、希望……多谢。
答:觉得老师在最后两周的授课中,相较于之前是比较温柔哒。C程序这门课的掌握程度和自己敲的代码数量是呈正比例关系的,并且最终也是以代码的形式呈现出来的,不像网页制作或者是PS这类,效果比较直观。抱怨的话,确实是没有的,老师是很负责任,也很辛苦,希望下学期的相关课程也会是牛老师来教授我们。
C程序第四次作业的更多相关文章
- 第四次作业——WORDSEARCH小游戏
“谁想出来的这么缺德的题目啊!!!!”一个声音在我心中回荡 这个题目很早就在课堂上公布了,我和我的小伙伴都惊呆了! 这是个毛?根本无从下手的感觉 总是觉得这个小游戏不是程序能给出答案的,因为我的第一印 ...
- 《面向对象程序设计》c++第四次作业___calculator plus
c++第四次作业 Calculator Plus git上的作业展示 Calculator 2.0 SourceCode in Git PS:这次作业orz感谢某同学用windows的dev c++帮 ...
- Java第四次作业——面向对象高级特性(继承和多态)
Java第四次作业--面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能, ...
- 【西北师大-2108Java】第十四次作业成绩汇总
[西北师大-2108Java]第十四次作业成绩汇总 作业题目 面向对象程序设计(JAVA) 第16周学习指导及要求 实验目的与要求 (1)掌握Java应用程序的打包操作: (2)掌握线程概念: (3) ...
- 【西北师大-2108Java】第四次作业成绩汇总
[西北师大-2108Java]第四次作业成绩汇总 深入理解程序设计中算法与程序的关系: 深入理解java程序设计中类与对象的关系: 理解OO程序设计的第2个特征:继承.多态: 学会采用继承定义类设计程 ...
- 【OO学习】OO第四单元作业总结及OO课程总结
[OO学习]OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结 这两次作业架构思路上是一样的. 通过将需要使用的UmlElement,封装成Element的子类 ...
- BUAA OO 2019 第四单元作业总结
目录 第四单元总结 总 UML UML 类图 UML 时序图 UML 状态图 架构设计 第十三次作业 第十四次作业 课程总结 历次作业总结 架构设计 面向对象方法理解 测试方法理解与实践 改进建议 尽 ...
- 《ABCD组》第四次作业:项目需求调研与分析
<ABCD组>第四次作业:项目需求调研与分析 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https:// ...
- Java第四次作业,面向对象高级特性(继承和多态)
Java第四次作业-面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能,说 ...
随机推荐
- chrome的url列表里面也找不到chrome://plugins的原因
plugins 页面被移除后,可以访问: chrome://settings/content 调整 Flash.PDF 的设置. 原本 plugins 页面就基本只剩下这两货了,移除掉确实没啥影响. ...
- Django内置模版过滤器
Django内置过滤器总览 可以查询下表来总览Django的内置过滤器: 过滤器 说明 add 加法 addslashes 添加斜杠 capfirst 首字母大写 center 文本居中 cut 切除 ...
- 《剑指offer》第四十题(最小的k个数)
// 面试题40:最小的k个数 // 题目:输入n个整数,找出其中最小的k个数.例如输入4.5.1.6.2.7.3.8 // 这8个数字,则最小的4个数字是1.2.3.4. #include < ...
- UEditor自动调节宽度
UEditor自动调节宽度 一.总结 一句话总结:ueditor是网页的产物,没有API我们照样可以像调网页元素那样调,一样的,这里是改变插件的css样式实现 启示: 百度 文档 引擎 ueditor ...
- Java中classpath配置
Java中classpath配置 一.DOS常用命令 二.DOS常用命令实例 2.1 转换目录 cd 1.6* 2.2 删除文件 del 删除文件(windows删除从里往外删) del *.txt ...
- java final修饰变量时的一种情况
有如下一种场景. 1.在文件PaymentConfig.java中存在如下变量public static final desc="描述" 2.类Test.java中使用了desc变 ...
- amoba读写分离
原文链接:http://www.abcdocker.com/abcdocker/81 Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba for Mysql软件.这个软件致 ...
- Oracle11g温习-第一章:Oracle 体系架构
2013年4月27日 星期六 10:20 1.oracle 网络架构及应用环境 1. ORACLE 实例——包括内存结构与后台进程 2. ORACLE 数据库——物理操作系统文件的集合 3. 了解内存 ...
- OC 归档和解档
#import <Foundation/Foundation.h> #define PATH @"/Users/mac/Desktop/file.txt" int ma ...
- angular2使用ng g component navbar创建组件报错
Error: ELOOP: too many symbolic links encountered, stat 'C:\Users\inn\angulardemo\node_modules\@angu ...