欢迎光临112期刊网!
网站首页 > 论文范文 > 教育论文 > 学前教育 > 面向对象程序设计(C++)教学方法探讨

面向对象程序设计(C++)教学方法探讨

日期:2023-01-23 阅读量:0 所属栏目:学前教育


  文章编号:1672-5913(2017)05-0082-03

  中图分类号:G642

  0 引 言

  面向对象程序设计(C++)是计算机专业的一门重要专业基础课程,很多院校一般将其安排在C语言程序设计课程之后,并作为C/C++程序高级开发及Java语言程序设计的先修课程进行设置,因此该课程在程序设计课程中起着承上启下的作用,其重要地位不言而喻,但是在教学过程中,由于学生在先期的C语言程序设计课程中已经基本确立了面向过程的程序设计思想,面对新的程序设计思想,很多学生难以适应新的编程方式,尤其是在入门过程中对类的概念及应用的理解。

  1 面向对象与面向过程的区别

  面向过程是以函数为单位实现的[1],每个函数代表一个独立的动作,完成一个独立的功能,而完成动作的实体都是被动地在函数间传递,实体和动作之间没有紧密联系,实体只是像提线木偶一样被动地接受加工,目标的实现完全由动作的代表――若干个函数贯穿完成;而面向对象是以实体,即对象为单位实现的[1],每个动作完全由明确的实体执行,实体贯穿于程序的整个执行过程,目标的实现则是由多个实体相互协作完成,因此面向对象这种设计方式更加符合人们的思维方式。

  2 类的引入

  在课堂讲授过程中,如果直接引入类的概念及应用方法,难免会导致部分学生在理解上与面向过程产生混淆,从而出现概念上的偏差,影响对后面内容的进一步学习,因此在引入类的概念时,可以结合面向过程程序设计方法中学生熟识的内容进行讲解。

  C语言程序设计是C++语言的先期课程,在学习课程时,学生已经对结构体的使用有了一定了解,而结构体与类之间的区别仅体现在访问控制方式及行为,即成员函数的引入方面。因此,引入类的概念就可以借助于结构体来实现,这样可以让学生通过对日常生活中的一些普通事件进行编程处理,来观察两者之间的区别,如待处理的学生信息包括姓名、年龄和成绩(包括数学、语文和英语3门课程)3种,要求对每位学生的总成绩和平均成绩进行计算统计,试通过使用结构体和类两种方式对学生进行成绩分析,并观察两者之间的区别。

  1)使用结构体方式。

  (1)声明结构体类型。

  struct stud {char name[10]; int age; float score[3];};

  (2)定义计算函数,以计算每位学生的总成绩和平均成绩并输出。

  void CalSum_Avg( struct Stud *s){ …… //中间过程略 }

  (3)在主函数中定义学生结构体数组并赋值。

  struct stud s[N];

  ……//赋值过程略

  (4)对每位学生分别进行函数调用计算结果。

  for( int i=0; i

  CalSum_Avg( &s[i] );

  2)使用类方式。

  (1)声明学生类。

  class stud {

  protected:

  char name[10];

  int age;

  float score[3];

  public:

  void InitStud();//为成员赋值

  void CalSum(); //计算自己的总成绩

  void CalAvg(); //计算自己的平均成绩

  };

  ……//成员函数实现部分略

  (2)在主函数中定义学生对象数组并赋值。

  stud s[N];

  for( int i=0; i

  s[i]. InitStud ();

  (3)让每位学生分别调用相应成员函数计算结果。

  for( int i=0; i

  s[i].CalSum();

  s[i].CalAvg();

  教师可让学生观察上述两种程序设计方法在思路上的区别,体会面向过程与面向对象两种程序设计思想的不同之处,并讨论这两种设计思想中哪种方法更接近人们的行为方式,理解类的定义及使用方法,解释类的访问控制方式;此外,还可以融入以下示例作为过渡。

  3 用结构体实现类的概念的?^渡

  在C++编译器中,使用结构体代替类,以实现上述类的功能,让学生在应用中体会从结构体向类的过渡过程。

  (1)依照类的定义格式,使用结构体方式定义上述学生类。

  struct stud {

  char name[10];

  int age;

  float score[3];

  void InitStud(){ …… }//为成员赋值

  void CalSum(){…… } //计算自己的总成绩

  void CalAvg(){…… } //计算自己的平均成绩

  };

  (2)在主函数中定义学生结构体数组并赋值。

  struct stud s[N];

  for( int i=0; i

  s[i]. InitStud ();

  (3)让每位学生分别调用相应成员函数计算结果。

  for( int i=0; i

  s[i].CalSum();

  s[i].CalAvg();

  }

  教师可让学生观察这种实现方法并对比以上3种实现方式的区别,分析哪些行为应该是公开展现的,哪些是应该隐藏的,由此确定哪些属性或行为应该公开,哪些是不能公开的,从而进一步解释为什么需要设置数据访问控制方式;并理解私有、保护与公有的区别,阐述类的封装与隐藏的意义所在,同时分析并介绍类与结构体在使用上的区别。

  4 概念的强化

  经过上述讲解,学生对类的使用及类与结构体在应用中的区别有了一定了解,初步确立了面向对象的编程思想。为了进一步巩固学习效果,需要在此基础上对上述内容进行强化练习,如可以布置下一个任务,要求学生尝试在学生类中增加实现以下相关内容。

  (1)增加分数统计功能,要求对每位学生的最高成绩及最低成绩进行统计。

  (2)增加对数据成员进行修改赋值的成员函数。

  (3)尝试对学生的年龄进行比较,找出年龄最大的学生,体会保护或私有成员的使用方法,掌握如何对保护或私有成员进行读、写等基本操作。

  5 结 语

  类的概念是面向对象程序设计方法中最基础也是最重要的概念,关系着学生能否进一步理解和运用面向对象程序设计课程的后续内容,因此,讲好类的入门这一节课对于学生能否顺利掌握C++编程语言是相当重要的。我们对面向对象程序设计教学过程中类的概念及应用的引入、比较和强化进行了一定的探索,并在实践教学过程中取得了比较满意的效果,加深了学生对类的理解,为学生学习后续课程知识奠定了良好的基础。

本文链接:http://www.qk112.com/lwfw/jiaoyulunwen/xueqianjiaoyu/217945.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学