作业要求一

实践最简答的项目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程序第四次作业的更多相关文章

  1. 第四次作业——WORDSEARCH小游戏

    “谁想出来的这么缺德的题目啊!!!!”一个声音在我心中回荡 这个题目很早就在课堂上公布了,我和我的小伙伴都惊呆了! 这是个毛?根本无从下手的感觉 总是觉得这个小游戏不是程序能给出答案的,因为我的第一印 ...

  2. 《面向对象程序设计》c++第四次作业___calculator plus

    c++第四次作业 Calculator Plus git上的作业展示 Calculator 2.0 SourceCode in Git PS:这次作业orz感谢某同学用windows的dev c++帮 ...

  3. Java第四次作业——面向对象高级特性(继承和多态)

    Java第四次作业--面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能, ...

  4. 【西北师大-2108Java】第十四次作业成绩汇总

    [西北师大-2108Java]第十四次作业成绩汇总 作业题目 面向对象程序设计(JAVA) 第16周学习指导及要求 实验目的与要求 (1)掌握Java应用程序的打包操作: (2)掌握线程概念: (3) ...

  5. 【西北师大-2108Java】第四次作业成绩汇总

    [西北师大-2108Java]第四次作业成绩汇总 深入理解程序设计中算法与程序的关系: 深入理解java程序设计中类与对象的关系: 理解OO程序设计的第2个特征:继承.多态: 学会采用继承定义类设计程 ...

  6. 【OO学习】OO第四单元作业总结及OO课程总结

    [OO学习]OO第四单元作业总结及OO课程总结 第四单元作业架构设计 第十三次作业 第十四次作业 总结 这两次作业架构思路上是一样的. 通过将需要使用的UmlElement,封装成Element的子类 ...

  7. BUAA OO 2019 第四单元作业总结

    目录 第四单元总结 总 UML UML 类图 UML 时序图 UML 状态图 架构设计 第十三次作业 第十四次作业 课程总结 历次作业总结 架构设计 面向对象方法理解 测试方法理解与实践 改进建议 尽 ...

  8. 《ABCD组》第四次作业:项目需求调研与分析

    <ABCD组>第四次作业:项目需求调研与分析 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https:// ...

  9. Java第四次作业,面向对象高级特性(继承和多态)

    Java第四次作业-面向对象高级特性(继承和多态) (一)学习总结 1.学习使用思维导图对Java面向对象编程的知识点(封装.继承和多态)进行总结. 2.阅读下面程序,分析是否能编译通过?如果不能,说 ...

随机推荐

  1. 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。

    一.需要分析 1.输入为一个字符串和字节数,输出为按字节截取的字符串--->按照字节[byte]截取操作字符串,先将String转换成byte类型 2.汉字不可以截半--->汉字截半的话对 ...

  2. js 中的几个假值

    1. 使用场景 if分支语句   /  短路语句while循环语句for里的第二个语句 2. 6个假值 (都属于 原始类型数据的一部分内容,非原始类型即对象都是真值,如:对象.数组.正则.函数   . ...

  3. 同步代码时忽略maven项目 target目录

    方式一: 在项目代码路径,如: F:\xyx\sl  鼠标右键,“TortoiseSVN”-- >“Settings” -->"Subversion"-->&qu ...

  4. java.lang.UnsupportedClassVersionError: com/my/test/TestUser : Unsupported major.minor version 52.0

    问题原因: 1.执行代码的jdk版本 低于 编译的jdk版本 2.项目用JDK1.8运行过,现在又在本地的eclipse等开发工具或者本地环境变量为低版本的jdk1.7或者jdk1.6下运行,ecli ...

  5. python中的注意事项

    .python 中的 and 从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值: or 也是从左到有计算表达式,返回第一个为真的值: 其中数字 0 是假,其他都是真: 字 ...

  6. hdu2845_最大不连续子段和

    ---恢复内容开始--- Beans Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...

  7. 访问IIS元数据库失败的解决方法

    这两天在调试一个Asp.net程序时,出现了“访问IIS元数据库失败”的错误信息,最后终于摸索出了解决问题的方法.公布如下: 1.依次点击“开始”-“运行”. 2.在“运行”栏内输入 “C:\WIND ...

  8. Eclipse修改已存在的SVN地址

    1.Window---->Show View---->Other...

  9. PHP header函数设置http报文头示例详解

    //定义编码 header( 'Content-Type:text/html;charset=utf-8 '); //Atom header('Content-type: application/at ...

  10. mongodb控制台中文乱码

    问题描述: 使用命令行打开mongo,查询的结果里中文都是乱码,检查了文件编码均正常: 解决方法: 该问题是cmd字体引起的,设置cmd的字体即可,cmd的默认字体是“点阵字体”,选择其他两个均可,如 ...