面向对象程序设计教学大纲_第1页
面向对象程序设计教学大纲_第2页
面向对象程序设计教学大纲_第3页
面向对象程序设计教学大纲_第4页
面向对象程序设计教学大纲_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象程序设计教学大纲西北民族大学数学与计算机科学学院制定的时间:二。一二年五月面向对象程序设计教学大纲一、课程基本资料主讲教师: 曹永春、蔡正琦、顿毅杰主教材:C+面向对象程序设计中国铁道出版社,陈维兴、林小茶编著,第 2版, 2009辅助教材:1 .C+编程思想机械工业出版社,美 Bruce Eckel, Chuck Alliso著,刘宗田,袁兆山,潘秋菱等译; 第 1 版, 2011 年2 .C+程序设计教程机械工业出版社,美H.M.Deitel P.J.deitel薛万鹏等译,2000年3 .C+程序设计语言,机械工业出版社,美Bjarne Stroustrup著,裘宗燕译,2005

2、 年4 .C+面向对象程序设计习题解析与上机指导清华大学出版社,陈维兴主编,第 2 版, 2009年实验教材及参考书:同上课程性质:学科选修课学分:4 分课时:72学时,其中理论课54学时,上机实验18学时先修课程:计算机导论、C 语言程序设计课程结构: 多媒体教学,课堂讨论、课内实验、课后作业评价方案: (考核依据、评分的办法、权重的分布)? 平时成绩:10% 课堂表现(课堂提问、考勤、作业等)? 实验成绩:20%(实验报告、实验考试)?期中成绩:20% (闭卷考试).期末成绩:50% (闭卷考试)参考书目:名称编著者出版社出版年月C+编程思想刘宗田,袁兆山,潘秋菱等译机械工业出版社2011

3、 年C+程序设计教程H.M.Deitel, P.J.deitel著,薛万鹏等译机械工业出版社2000 年C+程序设计语百Bjarne Stroustrup著,裘宗燕译机械工业出版社2005 年« C+面向对象程序设计习题解析与上机指导陈维兴主编清华大学出版社2009 年推荐刊物:1、计算机学报2 .软件学报3 .程序员杂志4 .码农周刊5 .快乐码农相关网站:1 .中国计算机学会2 .计算机爱好者协会3c语言中文网5 .中国悠悠期刊网6 .中国知网文献1 .谭浩强.C程序设计.第4版.北京:清华大学出版社,20102 .陈伟兴,林小茶.C+面向对象程序设计.北京:清华大学出版社,20

4、003 .陈伟兴,陈昕.C+面向对象程序设计习题解析与上机指导.北京1青华大学出版 社,2003.4 . Ravi Sethi.Programing Languaes:concepts and constracts.Addison-Wesley Publishing Company,1996.5 . Ronaad J.Norman Qbject-Oriented Systems and Ddesign,1996.6 .郑莉,董源.C+语言程序设计.第2版.北京:清华大学出版社,2001.7 .王燕.面向对象的理论与C+实践.北京:清华大学出版社,1997.8 .张海藩,牟永敏.面向对象程序设计

5、实用教程.北京:清华大学出版社,2001.9 .张国峰.C+语言及其程序设计教程.北京:电子工业出版社,1997.、教学目标、组织形式、考核要求素质、知识和能力目标目标要求及相 应的课程教与学的 方法评定的方法一、思想道德与职业素质目标1 .遵纪守法,树立科学的世界观、人生观、价值观和社会 主义荣辱观。2 .具有良好的思想品德、人文社会科学素养、社会公德和 职业道德。3 .了解与信息技术相关的职业和行业的政策和法律、法 规,具有较强的法制意识和素养。4 .树立终身学习观念,认识到持续自我完善的重要性, 不 断追求卓越。5 .具备良好的科学态度、团队协作精神和创新意识。7 .具有健全的人格、健康

6、的体魄,较强的国防意识。4 .树立终身学习观 念,认识到持续自 我完善的重要性, 不断追求卓越。5 .具备良好的科学 态度、团队协作精 神和创新意识。1、课外兴趣开发;2、阅读相关资 料;3、关注技 术领域新发展。提交的作品 或报告二、知识目标1 .具有一定的人文社会科学知识。2 .掌握与专业相关的数学、自然科学知识以及一定的经济 学和管理学知识。3 .掌握电工和电子技术必要的基本理论、基本知识和基本技能。4 .掌握计算机的系统与结构、基本组成原理和内部工作机 制。5.掌握计算机程序 设计的基础知识 和基本方法。1 .通过课堂授课(理论授课、课 堂演示、课外作 业);2 .课内实验1 .理论考

7、试;2 .课堂提问、 讨论与课外 作业;3 .实验考试;4 .教师听课 意见反馈。5 .掌握计算机程序设计的基础知识和基本方法。6 .掌握操作系统基本知识、原理,具备操作系统设计和应 用的知识。7 .掌握计算机网络及应用知识,具备网络系统设计和网络 应用的知识。8 .掌握信息处理的基本理论、基本方法,具备息管理系统 设计和开发的知识。9 .掌握数据结构及算法设计与分析的基本知识、基本方法及在相关领域中的实际应用。10 .掌握以系统性的、规范化的、可定量的过程化方法去开发和维护软件系统。11 .掌握计算机图形图像处理的基本知识、基本技术和方 法。12 .掌握嵌入式的相关知识和方法。三、能力目标1

8、 .具有运用工程工作所需的相关数学、自然科学以及经济和管理知识的能力。2 .掌握计算机学科的基本思维方法,并能运用工程基础知 识和本专业的基本理论知识解决问题的能力。3 .掌握设计和实施工程实验的方法,具备一定的工程实践 能力。4 .掌握基本的创新方法,具有综合运用专业知识和技术手 段进行系统开发的能力。5 .掌握文献检索、资料查询及运用现代信息技术获取相关 信息的基本方法。6 .具有一定的组织管理能力、表达能力和人际交往能力以 及在团队中发挥作用的能力。7 .对终身学习有正确的认识,具有不断学习和适应发展的 能力。8 .具有一定的外语应用能力,具有阅读本专业外文文献的 能力。2 .掌握计算机

9、学科 的基本思维方法, 并能运用工程基 础知识和本专业 的基本理论知识 解决问题的能力。5 .掌握文献检索、 资料查询及运用 现代信息技术获 取相关信息的基 本方法。7 .对终身学习有正 确的认识,具有不 断学习和适应发 展的能力。1 .通过课堂授课(理论授课、课 堂演示、课外作 业);2 .课内实验1 .理论考试;2 .课堂提问、 讨论与课外 作业;3 .实验考试。三、学习建议与要求1 .做好课前预习,查阅相关知识。2 .课间认真听讲,对教师讲解内容融会贯通,举一反三。3 .认真完成课后作业。4 .在讨论和提问中巩固理论知识,学习编程思维。四、教学内容概要学时分配各章节内容理论实验总时数卜向

10、对象程序设计概述33C+基础729类和对象(一)11213类和对象(二)8210继承与派生类628卜态性与虚函数628匡算符重载527325C+的输入和输出549合计541872五、正文第一章面向对象程序设计概述教学要点:面向对象的基本概念和典型的语言教学时数:3学时教学内容:2.1 什么是面向对象程序设计2.1.1 新的程序设计范型2.1.2 面向对象程序设计的基本概念2.1.3 面向对象程序设计的基本特征2.2 什么要使用面向对象程序设计2.2.1 传统程序设计方法的局限性2.2.2 面向对象程序设计的主要优点2.3 面向对象程序设计的语言2.3.1 面向对象程序设计语言的发展概况2.3.

11、2 几种典型的面向对象程序设计语言授课方式:多媒体教学,课堂讨论、课内实验、课后作业考核要求:领会和理解面向对象程序设计的4 个基本概念:对象、类、消息和方法,理解面向对象程序设计的4 个基本特征,了解几种典型的面向对象程序设计语言。第二章C+理础教学要点:了解C+的产生和特点,理解C+程序的结构特性,C+程序的编辑、编译、连 接和运行操作,掌握C+在非面向对象方面的扩充。教学时数:7 学时教学内容:2.1 C+的产生和特点2.1.1 C+的产生2.1.2 C+的特点2.2 C+程序的结构特性2.2.1 一个简单的C+示例程序2.2.2 C+程序的结构特性2.2.3 C+程序的编辑、编译和运行

12、2.3 C+程序的编辑、编译、连接和运行2.4 C+在非面向对象方面的扩充2.4.1 注释与续行2.4.2 输入输出流2.4.3 灵活的变量说明2.4.4 结构、联合和枚举名2.4.5 函数原型2.4.6 const 修饰符2.4.7 void 型指针2.4.8 内联函数2.4.9 带有缺省参数值的函数2.4.10 函数重载2.4.11 作用域标识符:2.4.12 无名联合2.4.13 强制类型转换2.4.14 new 和 delete2.4.15 引用授课方式:多媒体教学,课堂讨论、课内实验、课后作业考核要求:了解C+的结构特性,熟练掌握并能综合应用C+在非面向对象方面扩充的应用内容。第三章

13、 类和对象(一)教学要点:理解类和对象的概念,熟练掌握类和对象的定义、构成和使用。重点掌握类成员的访问属性及其使用和构造函数的定义和应用。教学时数:11 学时教学内容:3.1 类的构成3.1.1 从结构到类3.1.2 类的构成3.2 成员函数的定义3.3 对象的定义和使用3.3.1 类与对象的关系3.3.2 对象的定义3.3.3 对象中成员的访问3.3.4 类的作用域和类成员的访问属性3.3.5 对象赋值语句3.4 构造函数与析构函数3.4.1 构造函数3.4.2 成员初始化表3.4.3 带默认参数的构造函数3.4.4 析构函数3.4.5 默认的构造函数和默认的析构函数3.4.6 重载构造函数

14、3.4.7 拷贝构造函数3.4.8 浅拷贝和深拷贝授课方式:多媒体教学,课堂讨论、课内实验、课后作业考核要求:类的构成,对象的定义及使用、成员函数、构造函数与析构函数等内容的相关知识及面向对象初步的编程方法。第四章类和对象(二)教学要点:进一步理解和掌握类和对象的相关内容,包括 this指针的概念、对象数组、对 象指针、string 类、友元、静态成员以及类的组合、共享数据的保护等内容。教学时数:8 学时教学内容:4.1 自引用指针this4.2 对象数组与对象指针4.2.1 对象数组4.2.2 对象指针4.2.3 string 类4.3 向函数传递对象4.3.1 使用对象作为函数参数4.3.

15、2 使用对象指针作为函数参数4.3.3 使用对象引用作为函数参数4.4 静态成员4.4.1 静态数据成员4.4.2 静态成员函数4.4.3 通过普通指针访问静态成员4.5 友元4.5.1 友元函数4.5.2 友元类4.6 类的组合4.7 共享数据的保护4.7.1 常引用4.7.2 常对象4.7.3 常对象成员4.8 C+程序的多文件组成授课方式:多媒体教学,课堂讨论、课内实验、课后作业考核要求:领会并能应用this 指针、掌握对象数组的定义及初始化方式、对象指针的概念及应用、静态成员的作用及定义和使用方式,友元函数和友元类的定义和使用,类的组合编程及对象成员的初始化方法等概念和编程方法。第五章

16、继承与派生类教学要点:熟练掌握派生类定义方式和基类成员在派生类中的访问规则、掌握派生类的构造函数和析构函数的执行顺序和构造规则、理解多继承和虚基类的概念,并能应用于编程、深入理解赋值兼容规则。教学时数:6 学时教学内容:5.1 继承与派生类的概念5.1.1 为什么要使用继承5.1.2 派生类的声明5.1.3 基类成员在派生类中的访问属性5.1.4 派生类对基类成员的访问规则5.2 派生类的构造函数和析构函数5.2.1 派生类构造函数和析构函数的调用顺序5.2.2 派生类构造函数和析构函数的构造规则5.3 调整基类成员在派生类中的访问属性的其它方法5.3.1 同名成员5.3.2 访问声明5.4

17、多继承5.4.1 多继承的声明5.4.2 多继承的构造函数与析构函数5.4.3 虚基类5.4.4 赋值兼容规则授课方式:多媒体教学,课堂讨论、课内实验、课后作业考核要求:熟练掌握派生类定义方式和基类成员在派生类中的访问规则、掌握派生类的构造函数和析构函数的执行顺序和构造规则、理解多继承和虚基类的概念,并能应用 于编程、深入理解赋值兼容规则。第六章多态性与虚函数教学要点:理解多态性概念,区分编译时白多态和运行时的多态及在C+中的实现方法、重点学习C+中实现运行时多态的方法虚函数,掌握虚函数的作用和定义方法并能 够熟练使用,理解纯虚函数和抽象类的概念及定义和使用。教学时数:6 学时教学内容:6.1

18、 多态性概述6.2 虚函数6.2.1 虚函数的引入6.2.2 虚函数的作用和定义6.2.3 虚函数与重载函数的关系6.2.4 多继承与虚函数6.2.5 虚函数举例6.3 纯虚函数和抽象类6.3.1 纯虚函数6.3.2 抽象类授课方式:多媒体教学,课堂讨论、课内实验、课后作业考核要求:深入理解多态性概念,掌握虚函数的作用和定义方法并能够熟练使用,理解纯虚函数和抽象类的概念及定义和使用。第七章运算符重载教学要点:理解运算符重载的含义,掌握运算符重载函数的定义和使用方式,区别友元运算符重载和成员运算符重载两种运算符重载函数的定义方法及相应的调用方法、了解几种常见运算符含义及重载方式、掌握标准类型间的

19、转换。教学时数:5 学时教学内容:7.1 运算符重载7.2 运算符重载函数的两种形式7.2.1 友元运算符重载函数7.2.2 成员运算符重载函数7.2.3 运算符重载应该注意的几个问题7.3 几个常用运算符的重载7.3.1 单目运算符“ +和” “” 的重载7.3.2 赋值运算符“ =的重载”7.4 重载插入运算符和提取运算符7.4.1 重载插入运算符7.4.2 重载提取运算符7.5 类型转换7.5.1 标准类型间的转换授课方式:多媒体教学,课堂讨论、课内实验、课后作业考核要求:理解运算符重载的含义,掌握运算符重载函数的定义和使用方式,区别友元运算符重载和成员运算符重载两种运算符重载函数的定义

20、方法及相应的调用方法、了解几种常见运算符含义及重载方式、掌握标准类型间的转换。第八章模板教学要点:理解模版的概念,掌握函数模板及其声明方法,掌握模板函数及其生成方法,学习类模板的声明与使用方法,区分函数模板和类模板的定义及使用。教学时数:3 学时教学内容:8.1 模板的概念8.2 函数模板与模板函数8.2.1 函数模板的声明8.2.2 函数模板的使用8.3 类模板与模板类8.4 程序举例授课方式:多媒体教学,课堂讨论、课内实验、课后作业考核要求:理解模版的概念,掌握函数模板及其声明方法,掌握模板函数及其生成方法,学习类模板的声明与使用方法。第九章 C+的输入和输出教学要点:熟悉流及流类库的作用

21、,熟练掌握流类库中常用的类及其成员函数的使用方法,掌握重载“ <<和” “ >>的方法。掌握文本文件的打开、关闭及输入输出方法”和二进制文件的打开、关闭及输入输出方法。教学时数:5 学时教学内容9.1 C+为何建立自己的输入输出系统9.2 C+流库及其基本结构9.2.1 C+的流9.2.2 预定义的流对象9.2.3 输入输出流的成员函数9.3 预定义类型输入输出的格式控制9.3.1 用流成员函数进行输入输出格式控制9.3.2 使用预定义的操纵符进行输入输出格式控制9.3.3 使用用户自定义的操纵符进行输入输出格式控制9.4 文件的输入输出9.4.1 文件的概述9.4.2

22、 文件的打开与关闭9.4.3 文件的读写9.4.4 二进制文件的读写9.4.5 程序举例授课方式:多媒体教学,课堂讨论、课内实验、课后作业考核要求:流类库中常用的类及其成员函数的使用方法,掌握控制输出宽度的函数width()和setw(),掌握函数setionsflags()B resetonflags()会设置和恢复对齐方式、精度、大 小写、进制等。掌握文本文件的打开、关闭及输入输出方法和二进制文件的打开、 关闭及输入输出方法。面向对象程序设计课程实验教学大纲1. 实验课名称:面向对象程序设计2. 实验课性质:本课程是计算机科学与技术专业的专业选修课3. 实验教学目的与基本要求:面向对象程序

23、设计是一门实践性很强的专业基础课。开设本实验的目的是使学生掌握C+面向对象程序设计的基本知识和编程方法。结合实际教学过程,通过 实验操作让学生进一步加深对所学知识的深入理解和综合应用能力。通过上机编程练习,让学生学会面向对象程序设计的方法与技术,同时培养学生的面向对象程序设计的思想。4. 适用专业:计算机科学与技术专业(本科)5. 采用教材:主 编 : 陈维兴教材名称:C+面向对象程序设计出版社:中国铁道出版社出版日期:2009 年6. 学时学分 :( 1)课程总学时:72( 2)课程总学分:4( 3)实验课总学时:18 ( 4)实验课总学分:17. 实验项目名称和学时分配序号实验项目名称学时

24、数项目类别项目类型1C+基础练习2设计必做2C+简单程序设计练习2设计必做3类与对象(一)2设计必做4类与对象(二)2设计必做5派生类与继承2设计必做6虚函数与多态性2设计必做7函数模板与类模板2设计选做8输入输出的格式控制2设计必做9文件的输入与输出2设计必做10综合练习4综合选做8. 单项实验的内容和要求实验 C+基础知识【实验内容】 编写一个简单程序,输出“welcome you,”并给程序加一行注释Fist c+ program;2 编写一个完整的包含求解2x 4x 5的值,x为整数,并用主函数调用该函数; 利用重载函数,重载上面的函数,x为浮点数; 编写一个程序,对一个整数数组求和,

25、结果使用内部变量sum存储,同 时对整数中的奇数求和,结果使用内部变量 sum存储,在主程序中将两个结 果输出。本题要求体会和理解作用域运算符的概念和基本使用方法; 编写一个程序动态分配一个浮点空间,输入一个数到该空间中,计算以该书为半径的圆的面积并在屏幕上显示,最后释放该空间,请使用new、 delete运算符;【实验要求】 认真阅读和掌握和本实验相关的教材内容; 按要求编写程序; 上机运行程序; 保存和打印出程序的运行结果,并结合程序进行分析; 将最终程序报盘。 实验二C+简单程序设计练习 【实验内容】 编程要求3100之间的所有素数; 编程列出斐波那契(Fibonacci)数列的前20项

26、。分别用迭代和数组方法 编程; 输入 100 个素数,从小到大排列并输出。【实验要求】 认真阅读和掌握和本实验相关的教材内容; 按要求编写程序; 上机运行程序; 保存和打印出程序的运行结果,并结合程序进行分析; 将最终程序报盘。实验三类与对象(一)【实验内容】 定义一个时间类,时间类中有3 个私有数据成员( Hour、 Minute、 second)和两个公有成员函数(SetTime和Print_time) .SetTime根据传递的3个参 数为对象设置时间;Print_Time 负责将对象表示的时间显示输出。一个时间类的对象,设置时间为9 点 20分 30秒并显示该时间。 使用构造函数代替上

27、面的SetTime 成员函数,并在主函数中使用构造函数设置时间为10 点 40 分 50 秒,并显示该时间; 重载时间类的构造函数(不带参数)使市、分、秒均为0; 在时间类的析构函数中输出“ Good By!e ”; 定义拷贝构造函数并调用;定义一个类Stock,记录一支股票交易的基本信息,信息包括交易日序号(表示本月的第几个交易日,用整数表示)、当日最高价、当日最低价、当日开盘价和当日收盘价。尽量发挥想象力,为该类设计成员函数; 在主函数中建立两个股票对象,分别存储该股票昨天和今天两天的信息,以当日收盘价计算该股票今天的涨幅。实验要求 】 认真阅读和掌握和本实验相关的教材内容; 按要求编写程

28、序; 上机运行程序; 保存和打印出程序的运行结果,并结合程序进行分析; 将最终程序报盘。实验四类与对象(二)【实验内容】使用实验3中的股票类Stock,定义一个对象数组存放连续5个交易日的股票信息。编写一个主函数,计算两个Stock 对象(前后两日)的当日收盘价计算当日涨幅。用指针引用对象数组中的两个对象。在主函数中调用该函数计算从第2 个交易日开始每天的涨幅; 在 Stock 类中定义一个静态数据成员,记录当前Stock 对象的数量;设计一个成员函数Assign_Stock为对象赋值,其中的形式参数是对另一个Stock对象的引用,使用this指针避免对自己的赋值,在主函数中显示用Assign

29、_Stock赋值的对象; 定义一个友元函数计算Stock 对象的当日开盘间是否高于当日收盘价。是,返回真,否则,返回假。【实验要求】 认真阅读和掌握和本实验相关的教材内容; 按要求编写程序; 上机运行程序; 保存和打印出程序的运行结果,并结合程序进行分析; 将最终程序报盘。实验五派生类与继承【实验内容】 定义一个基类MyArray ,基类中可以存放一组整数class MyArrraypublic:MyArray(int leng);MyArray();void Input();void Display();protected:int *alist /指向动态申请的一组空间int length;

30、/ 整数的个数;基类中有构造函数、析构函数、输入数据和输出数据的函数。 定义一个类SortArray 继承自 MyArray, 在该类中定义函数实现排序功能; 定义一个类ReArray 继承自 MyArray, 在该类中定义函数实现逆转功能;定义一个类NewArray继承自SortArray、ReArray,使得该类具有排序、逆 转功能, 在继承的过程中声明为虚基类,体会虚基类在解决二义性问题中的作用。实验要求 】 认真阅读和掌握和本实验相关的教材内容; 按要求编写程序; 上机运行程序; 保存和打印出程序的运行结果,并结合程序进行分析; 将最终程序报盘。实验六虚函数与多态性【实验内容】 定义一个有理数类,并重载比较运算符<、 <=、 =、 !=; 定义一个类Animal , 该类中可以存放动物的名字,并有一个Identify 函数用于显示动物的种类; 定义两个Cat、 Dog 类,都继承自Animal ,并重载Identify 函数,不但要显示动物的种类,、还要显示动物的名字。【实验要求】 认真阅读和掌握和本实验相关的教材内容; 按要求编写程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论