2017《面向对象程序设计》寒假作业一

高超技能学习

有什么技能比大多人(超过70%以上)更好?

- 书法,虽然自己水平不高,但考虑到书法的普及率过低,我还是有自信在这一领域可以超过绝大多数人的。
- 作品嘛。。由于水平不高还没有写过作品,目前只有几张这几天写的还没扔的练习了。
灵飞经节临

般若波罗蜜多心经节临1
般若波罗蜜多心经节临2

法华经节临

针对这个技能的获取有什么成功的经验?

首先需要一个正确的感兴趣的学习方向,如先学习楷书是正确的方向,但是楷书名家如此之多,要学习谁?欧颜柳赵或是其他书家的?
在我选择的时候我选择了我最感兴趣最喜欢的书体,有着兴趣的驱动,使我不至于觉得枯燥而放弃。
此外还需要长久的练习,通过不断的练习逐渐熟悉提按,笔法,结构,章法,水平才能不断提高。
结合对于计算机的学习,我认为我更需要长久的练习。在之前按部就班地学习,做作业,并未感到自己努力不足,可是看到了学长的感想我意识到我的努力还远远不够,特别是知道了轮子哥说他在学校一天要敲10小时代码时,我更觉得我需要保持每天一定的代码量。

C语言学习的调查

怎么学习C语言的?

- 通过教材和课程学习,课下通过作业练习。另外有时候会通过慕课网学习(但是没花太多时间)
## 与高超技能相比,C语言的学习有什么经验和教训?
- 练习的过少。所以我决定要保证每日代码量。
## 目前为止估算自己写过多少行C代码?理解的情况如何?
- 大致在2000行左右,感觉自己还没有完全掌握,还有部分课程没教到的地方不理解。决定在假期去了解。
## 学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
- 分的清数。
- 数组指针是指向数组的指针。
- 函数指针是指向函数的指针。
- 指针数组是类似数组的指针的集合。
- 指针函数就是函数,不过其中有指针。
学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?

- 文件和流的关系我想用水箱来类比,文件就是水箱,存储这"流“这种水,当需要读取数据时,水龙头开启,流便如水一般流出来。

文本文件和二进制文件,区别在于文本文件是可读懂的,而二进制文件无法读懂。

至于如何编译和操作。。。我现在还不会。。。
## 学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
- 面向过程指将程序分成一个一个的过程,逐个设计。运用了模块化的思想方法。
## 在C语言里面,什么是模块?你写过多个源文件的程序吗?
模块指在整个程序中实现一部分功能的一个个函数。
- 暂时还没有写过多个源文件的程序吗。
## 学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
- 知道。这个原则要求一段功能代码要被分为多个小块,每个小块独立工作互不干扰,小块间协作可以实现特定功能。
- 在程序设计尽量把每一个小功能分为一个个函数,最后通过main函数调用。
## 学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
数组A的内容复制到数组B:
#include<stdio.h> #include<string.h> #define A 1000 #define b 2000 int main() { char arraya[A],arrayb[B]; int m,n,i,j; gets(arraya); gets(arrayb); n=strlen(arraya); m=strlen(arrayb); for(i=m,j=0;i<=m+n;i++,j++) arrayb[i]=arraya[j]; printf("%s",arrayb); return 0; }
- 查找整数数组A中有没有数字5
#include<stdio.h> #include<string.h> #define NUMBER 1000 int main() { char array[NUMBER]; int n,i; int judge=0; scanf("%s",array); n=strlen(array); for(i=0;i<n;i++) { if(array[i]=='5') { judge=1; break; } printf("%d",judge); } if(judge==0) printf("no"); else if(judge==1) printf("yes"); return 0; }
- 整数数组A进行排序(由小到大)
#include<stdio.h> #define num 10 int main() { void swap(int a[],int n); int i; int a[num]; scanf("%s",a); swap(a,num); return 0; } void swap(int a[],int n) { int temp,i,j; for(j=0;j<n-1;j++) for(i=0;i<n-1;i++) { if(a[i]>a[i+1]) { temp=a[i]; a[i+1]=a[i]; a[i]=temp; } } }
若要由大到小,只需要对swap函数微调

void swap(int a[],int n) { int temp,i,j; for(j=n-1;j=0;j--) for(i=n-1;i=0;i--) { if(a[i]>a[i-1]) { temp=a[i]; a[i-1]=a[i]; a[i]=temp; } } }
- 写一个程序,统计自己C语言共写了多少行代码。
#include<Windows.h> #include<string.h> #include<stdio.h> int main() { FILE *p; int n; n=0; char add[100],a[100]; gets(add); p=fopen(add,"r"); while(fgets(a,100,p)) { n++; } printf("%d",n); fclose(p); return 0; }
github的链接。。我现在在上传时出了问题,等我解决好之后会补上。

你知道什么是断点吗?给出自己调试程序的例子

程序执行到断点会停止,这样可以找出错误。

对比C语言的学习,你对《面向对象程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?

我想在这门课程的学习中打好程序设计的基础,做一些小程序,让自己逐渐成为一个真正的coder,,而不仅仅是一个只会做题的学生。我觉得要学好编程,提高程序设计能力和计算思维,只有不断地练习。之前我认为看书比敲代码重要,所以看课本的时间多于编程的时间,可是到了考试时,一些语法规范我居然记不清楚了,知道做题的思路,但是不确定是否合乎语法规范。这之后我决定保证敲代码的量,将技能变得精熟。做中学,侧重于在实践中成长,在于不依靠别人的帮助自己解决问题。我认为我应该在遇到困难时先自己尝试解决,在自己解决不了的时候再请教他人。

毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?

我觉得我的写作能力还有很多需要提升。
在以前的写作中。我会想怎么用小众的例子,怎么写华丽的排比,但是知道高考前一段时间我才渐渐觉得,写作应该追求表意清晰,一切例子,词句最终都要为要讲的事情,要讲的道理服务。很多高考优秀文章,词句华丽,举的例子闻所未闻,令人感慨其例子的积累,可是细看却还是没有在文章的深度或者逻辑上有动人之处。
我也读到过一些写得很好的文章,它们有的或许没有鲜亮的词句,有的或许只是列举人尽皆知的例子,可它们的内核却是如此地令人折服。所以,文章的好坏,首先便是要看这篇文章所阐述的道理是否表达地清晰准确,能说服读者,其次才是词句的比拼。所以我今后练习写作会注重文章的结构和逻辑,确保读者能很容易地理解我所传达的意思。

posted @ 2017-01-16 00:26  daydreams  阅读(222)  评论(5)    收藏  举报