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

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

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

原文地址:https://www.cnblogs.com/daydreams/p/6288294.html