• 20155227第二次预备作业


    第二次预备作业

    你有什么技能比大多人(超过90%以上)更好?针对这个技能的获取你有什么成功的经验?

    并没有

    下学期,我们将要学习《Java程序设计》这门课程了,说实话我是没有信心的,虽然有学习C语言的基础,但是正如我上一篇随笔中谈到的一样,我觉得自己太不专业,这是造成我恐惧的主要原因。尽管如此,勇敢面对才是唯一解决方法。对比着我转笔以及以前的学习经验,我觉得学习Java过程中应该注意以下几点:

    • 学会总结。所有的学习都一样,需要在自己的摸索中前进,然而只顾着仰望星空的人,是不会注意到脚下是否已经是万丈深渊的。总结的本身就是一种智慧的体现。擅长总结的人必会得到提升。转笔的过程也是不断总结的过程,通过总结手与笔接触的点、手发力的方式来获得转笔的“感觉”,有了这种感觉,要熟练起来就只需要我们不断练习了。
    • 学会坚持。凡是新的事情在起头总是这样一来的,起初热心的人很多,而不久就冷淡下来了,撒手不做了,因为他已经明白,不经过一番苦工是做不成的,而只有想做的人,才忍得过这番痛苦。简简单单的转笔,很多人都在开始不久就因为坚持不了而放弃了,可见坚持的不易。所有的学习过程,都是由一点点的坚持堆积起来的成就。想考大学的意愿,让我们在高中坚持高强度的学习,上了大学,我们是不是就没有在继续坚持下去的动力了呢?答案当然是否定的。在大学,兴趣就是最好的动力。我们要培养学习的动力。在学习Java之前,我们应该先简单了解一下Java是一门怎样的课程,不至于在正式学习时还是一个完全的门外汉。我觉得写博客这样的方式也非常好,有助于我们对课程思考,也方便借鉴他人的经验。
    • 给自己定一个恰当的目标。适合自己的才是最好的,不应该好高骛远。

    关于C语言

    1.你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?

    • 工欲善其事,必先利其器。首先要有一个自己熟悉的编程环境。上学期学习C语言时我们统一使用的是codeblocks,给我的感觉是很容易上手,编起程序来也很方便。这给C语言的学习提供了很多便利。

    • 读程序。开始接触C语言时,因为不太熟悉,自己不太敢动手编程序,就会先阅读书上的程序,认真体会所有概念,然后不放过这一章中提到的所有例程,仔细研读,直到每一行都理解了,再找几个编程题目,自己试图写出这段已经读懂的程序。如果写不出来,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到手到擒来为止。这一个比较笨的方法,但感觉比较适合我自己。在读程序的过程中学会编程的思想,形成自己的思路。

    • 反复练习。上学期C语言课下练习的作业比较多,徐小青老师要求我们每天做十五道练习题,虽然很难做到每天坚持,但一学期下来,也有超过两千的得分,也就是编写了两百多道题。在大量的练习中学会运用各知识点。

    2. 目前为止估算自己写过多少行C代码?理解的情况如何?

    上学期编写了两百到三百道题,有超过五千行代码。但是这些题中有不少相似的题,除去这些大概就五千行代码作有。其中有一些题对我来说是很难理解的,是在参考代码或者问过老师同学之后才写出来的,理解度大概在百分之七十左右。在编程方面,我还是很薄弱,很多同学上学期编写了超过四百道题,理解度也都还不错,我觉得我下学期还得再多付出努力才行!

    3.学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?

    数组指针:首先它是一个指针,指向一个数组。
    指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是存储指针的数组。
    函数指针:指向函数的指针包含了函数的地址,可以通过它来调用函数。
    指针函数:当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给函数,以用于需要指针的表达式中。

    4.学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件

    文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。
    流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
    文本文件和二进制文件并无本质的差别,他们的区别在于打开这个文件的程序在对其内容的解释上,我们可以把一个典型的所谓二进制文件当作文本文件来打开,是同样可以的,只是得到的内容就是一些乱七八糟的符号了。反过来,也是同样成立。

    5.学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?

    我不是很清楚什么是面向过程程序设计,只是大致知道
    面向过程的程序设计中:程序=算法+数据结构
    而在面向对象的程序设计中:
    对象=数据结构+算法
    程序=对象+对象+.....
    所以克服了面向过程的设计中存在的问题。

    6.在C语言里面,什么是模块?你写过多个源文件的程序吗?

    按照功能将一个软件切分成许多部分单独开发,然后再组装起来,每一个部分即为模块。我还没有接触过多个源文件的程序。

    7.学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?

    我觉得高内聚是指让一个类或者一个方法专注去做一件事情。低耦合又要求对象,类之间减少耦合性。

    8.学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。

    复制:

     {
        int n,i,a[100],b[100],j;
        printf("输入n:");
        scanf("%d",&n );
        printf("a:
    ");
        for (i=0; i<n; i++) 
        {
            scanf("%d",&a[i]);
         }
        for (j=0; j<n; j++) {
            b[j]=a[j];
            printf("%d",b[j]);
        }
    } 
    

    查找:

    {
    int a[10],i;
    for(i=0;i<n;i++)
    {
    scanf("%d",&a[i]);
    }
    for(i=0;i<n;i++)
    {
    if(a[i]==5)
    printf("有5!");
    }
    return 0;
    }
    

    升序:

    int a[100],n, i,j,temp;
    printf("input n:");
     scanf("%d",&n);
     printf("input a:");
     for(i=0;i<n;i++)
     {
         scanf("%d",&a[i]);
     }
        for(i=0;i<n-1;i++)
        {
            for(j=1;j<n-i;j++)
            {
                if(a[j]<a[j-1])
                {
                    temp=a[j]
                      a[j]=a[j-1];
                    a[j-1]=temp;
                }
    降序思路与升序一样。
    

    9.写一个程序,统计自己C语言共写了多少行代码。

    我不太会写这个程序,参考了一些同学的程序,也上网查了一些资料。

    char  str[4096];
    int StringBracket(char *str)//删除空格和制表符
    {
      int i,j,len;
      len=strlen(str);
      j=0;
      for(i=0; i<len; i++)
      {
       if(str[i]!=' ' && str[i]!='	')
       {
        str[j]=str[i];
        j=j+1;
       }
      }
      str[j]='';
      if(str[0]=='
    ') return 0;
      else return j;
    }
    void   main()
    {
    	int    all=0,zs=0,kg=0,j,k=0;
    	FILE   *fp;
            char   filename[100];
    printf("
    Enter a filepath/filename:
    ");
            gets(filename);
    	fp=fopen(filename, "rt");
            if(fp==NULL)
            {
                  printf("cannot open file
    ");
                  return;
            }
            while (fgets(str,4096,fp))  //读取一行,并判断文件是否结束
            {
    	j=StringBracket(str);
       if(k==0)
    	  {
    	   if(j==0) kg++;
    	   else if(str[0]=='/')
    	   {
    	    if(strstr(str,"/*")) k=1;
                if(strstr(str, "*/"))k=0;
    	    zs++; 
    	    
    	     }
    	  }
    	  else
    	  {
                  if(strstr(str, "*/"))k=0;
                  zs++;
    	 }
    	  all++;
           }
           fclose(fp);
           printf("filename:%s 代码行数:%d 注释行:%d 空行:%d",filename,all-zs-kg,zs,kg);
    }
    

    上学期接触文件的时候太少了,这部分知识实在不太掌握...

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

    所谓断点就是程序被中断的地方。由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。这学期密码学数学基础程序调试时都用到了断点。

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

    具体的目标是能够独立编写比较大规模的程序,能真正形成自己思考问题、编写程序的模式;能不死板的学习Java;能将Java运用到生活中而不仅仅是考试。要达到这些目标,唯有勤学苦练,练得多了、思考足够了,就能提高程序设计的能力,也能锻炼自己的思维。这些过程,也都是循序渐进的,也要根据自己每个阶段的实际情况来做出一些改变。

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

    我以前很少会写文章,总觉得还没有到那个阶段,总觉得时间还很充足,但实际上这些想法都是错误的。像我现在敲着键盘才感觉到自己的写作水平是有多么不足。要提高写作的能力,首先就要多写,多动手,才能减少写作时的胆怯。其次要敢于写。我们都要摒弃写作的一些固定“套路”。很多人写作时都有自己固定的套路,就像写高考作文一样,第一段怎么写,最后一段怎么来结束,都是有一定格式的。格式化的写作能减少不少负担,但是必然也会让我们减少写作时必要的思考,这样也会导致公文内容不够深入,写作人员能力得不到提升。除了写以外,读也是非常重要的。平时的生活中一定要多阅读,阅读后要记录下自己的心得体会,这样在增长见识的同时,也能提高我们动手写文的能力。
    努力出奇迹!

  • 相关阅读:
    程序员必看书籍(转载)
    JBPM的ORACLE脚本
    XFire构建web service客户端的五种方式
    为什么中国出不了facebook和Twitter?
    用dwr封装表单项提交表单
    Java 程序员容易犯的10个SQL错误
    SQL语句优化方法30例
    sqlserver sql语句查看分区记录数、查看记录所在分区
    SQL Case when 的使用方法
    sqlserver sql语句附加 分离数据库
  • 原文地址:https://www.cnblogs.com/guyanlin/p/6184482.html
Copyright © 2020-2023  润新知