2022年面向对象程序设计课程教案 .pdf
1 面向对象程序设计课程教案编制日期:2017 年 2 月 5 日授课时间第 1 周课次1、2 授课方式(请打)理论课讨论课实践课习题课其他课时安排4 教学单元:第1章 综合项目初体验、第2章 面向对象思维建立目的、要求:了解课程授课安排了解课程考核比例组成熟练掌握课程案例的游玩流程及功能需求了解什么是面向对象思维了解面向对象与面向过程的区别重点:熟练掌握课程案例的游玩流程及功能需求了解面向对象思维了解面向对象与面向过程的区别难点:了解面向对象思维教学步骤:1、课程介绍2、利用智慧平台讲解选课和学习步骤3、安排学生自主登录网站下载LostCraft 游戏以及HR 服务平台,并安装和熟练掌握游戏4、引入生活中的案例讲解什么是面向对象思维5、通过案例对比区别面向对象与面向过程教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等)1、利用智慧学习平台讲解如何在线选课以及平台使用方法2、通过对生活中的大量案例进行分析,让学生感受到面向对象思维在生活中的运用名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 40 页 -2 作业和思考题:习题:完成在线学习平台中第一、二章的内容学习教学内容板书或旁注第一次课(讲师2 课时)1、讲师自我介绍、课程授课安排说明以及考核细则说明(20 分钟)介绍课程整体安排,包括每周上课次数、周数介绍课程考核细则说明,重点强调旷课部分,若旷课达3 次,则教师考核 30 分全部计为0 分处理班级分组,固定学生上机座位重点说明综合项目答辩事宜:预计5 月份时期,学生可从系部发布的选题中选择一个中小型的综合项目进行UML设计与 C+代码实现,并在夏季小学期开始的第一周进行项目评审答辩,其项目得分归总进夏季小学期总成绩中。2、在线平台的登录与选课以及使用,并让学生现场选课(25 分钟)告知学生在线平台登录网址:http:/ 演示选课流程给学生自主操作进行选课,教师统计平台问题并汇总选课成功后学生开始自主学习平台内容,讲师辅导答疑3、安排学生登录网站下载LostCraft 游戏以及HR 服务平台,并讲解如何安装游戏(15 分钟)告知学生案例下载网址:打开网站后,在“资源下载区域”,查找本教材所涉及的三个案例,如图所示,分别是“LostCraft.zip”、“HRServerPlatform.zip”以及“O2OProject.zip”。安装案例一LostCraft 游戏,选中“LostCraft.zip”压缩包,然后点名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 40 页 -3 击“下载”,将该压缩包下载至本机电脑上,下载完成后进行解压,解压后打开文件夹,可看到如图文件,最后双击“LostCraft.exe”文件,即可运行案例一的程序。安装案例二HR 服务平台项目,首先选中“HRServerPlatform.zip”压缩包,然后点击“下载”,将该压缩包下载至本机电脑上,下载完成后 进 行 解 压,解 压 后 打 开 文 件 夹,可 看 到 如 图 文 件,最 后 双 击“HRServerPlatform.exe”文件,即可运行案例二的程序。安装告知学生案例三O2OProject 为选学内容,不做硬性要求。4、学生自主练习这两个项目,熟练掌握这两个项目的游玩流程(30 分钟)5、布置作业(需在下一次上课前完成):完成在线平台第一章的学习第二次课(讲师2 课时)1、从软件发展现状引入软件规模和复杂度的变化,引出开发思维的转变(5 分钟)2、以现实生活举例,通过案例分析引出什么是面向对象思维(30 分钟)以 ATM为例(10 分钟)首先演示流程式实现过程:插卡、输入密码.总结整个方法的优势(逻辑清晰),以及弊端(扩展性较差,无法添加新功能)-面向过程思维及开发方式。其次演示对象化实现过程:用户、银行卡、ATM机,用户拥有银行卡、卡本身包含卡号、密码、以及所属用户,ATM机包括验证账号、吐钞票等功能.总结整个方法的优势(更符合人的思维模式、项目有很强的的扩展性),以及弊端(从场景中抽取合适的对象需要大量的练习和经验)-面向对象思维及开发方式。总结:面向对象思维重点在于“对象”二字,因此如何从一个场景中抽取对象是面向对象设计的重点。再次给出1 个简单的案例演示抽取对象的能力,并通过分析对象引出类名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 40 页 -4 的概念,表示类与对象之间的关系。小明系列笑话之一(25 分钟)场景描述:李老师站在高三(5)班的教室外,问高三5 班的小明、霜霜和高三6班的李华三人:“你们仨到底在课堂上做什么,给我老实交代。”小明:“指点江山,激扬文字,粪土粪土当年万户侯。”老师:“说人话。”小明:“斗地主。”老师:“外面站一天。”分析案例:提问学生整个案例中涉及到的对象有哪些?对象:李老师、高三5 班、小明、霜霜、高三6 班、李华分析对象本身有哪些特征及行为?李老师:姓名、性别等特征,行为有说话高三 5 班:班级名称、地址小明:姓名、所属班级等特征,行为有说话霜霜:姓名、所属班级等特征高三 6 班:班级名称、地址李华:姓名、所属班级等特征将拥有共同特征及行为的对象归为一类李老师、小明、霜霜、李华-人类高三 5 班、高三 6 班-班级类类与对象之间的关系类是抽象的,而对象是具体的。一个类可以创建出无数个对象。对象可以被创建也可以被销毁。类可以被创建,但不能被销毁。3、通过案例分析最后总结面向对象与面向过程的区别(5 分钟)4、学生利用在线学习平台自主学习,学习内容为第二章,讲师随时进行辅导答疑(45 分钟)名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 40 页 -5 5、布置作业(需在下一次上课前完成):完成在线平台第二章的学习名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 40 页 -6 面向对象程序设计课程教案编制日期:2017 年 2 月 5 日授课时间第 2 周课次3、4 授课方式(请打)理论课讨论课实践课习题课其他课时安排4 教学单元:第 2章 面向对象思维建立、第3章 面向对象思维建模目的、要求:1、掌握面向对象思维的概念及设计模式2、熟练掌握面向对象的设计方式和流程3、掌握并理解类与对象的概念及关系4、了解面向对象与面向过程的区别5、了解并熟练掌握UML类图重点:熟练掌握面向对象的设计方式和流程掌握并理解类与对象的概念及关系UML 类图的绘制难点:熟练掌握如何从复杂的场景中抽取类与对象理解类与对象之间的关系UML 类图中类与类之间的几种关系教学步骤:1、查阅学习平台数据反馈指导课堂(根据学生实际情况进行辅导)2、引入案例讲解面向对象思维和设计方式3、总结案例引入类与对象的概念以及关系4、分析面向对象与面向过程的区别教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等)1、结合案例进行重难知识点分析和讲解2、利用智慧学习平台学生进行自主学习,学习过程中助教进行辅导答疑3、根据在线平台统计的重难点,错误较多的习题,进行辅导讲解。作业和思考题:习题:完成在线学习平台中第三章1-6 小节的内容学习名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 40 页 -7 教学内容板书或旁注第一次课(讲师2 课时)1、讲解在线平台第二章中所有的练习题,一边讲解一遍总结第二章重难点(45 分钟)什么是面向对象思维(10 分钟)什么是类与对象,以及类与对象的关系(15 分钟)类的属性与行为(10 分钟)给学生自主练习和消化的时间,讲师可进行答疑(10 分钟)2、讲解 UML 类图,类图的组成结构以及类图的三种关系:依赖、聚合、继承(25 分钟)类图的组成:类名、属性、行为,访问权限:+、-、#类之间的依赖关系:假设当前某人要过河,需要借用一条船,此时人与船之间的关系就是依赖。首先如果没有船,人无法过河,因此是人依赖船,同时人并不是每天都在使用船过河,因此在该关系中体现出依赖关系的偶然性和临时性,作为依赖方,人有一个使用行为,而船则作为一个函数参数被人使用。总结:依赖就是一个类A 使用到了另一个类B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是类B 的变化会影响到类A。因此类A 依赖类 B,在 UML 类图设计中,依赖关系用由类A 指向类 B 的带箭头虚线表示。类之间的聚合关系:汽车与轮胎的关系是1 对 4 的聚合关系,即汽车是整体,轮胎是部分,汽车一定包括轮胎,即“汽车has a 轮胎”,但轮胎本身离开汽车也是可以单独存在的,这样的关系就是一种聚合关系。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 40 页 -8 总结:聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a 的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。在UML类图设计中,聚合关系以空心菱形加实线箭头表示。类之间的继承关系:图中所表示的含义即为儿子类继承父亲类,由图可知,父亲类中有两个属性,分别是:姓名、年龄。由于儿子类继承父亲类,因此儿子类中不仅把父亲类中所有的属性和行为继承下来,还能扩展自己的新功能,因此儿子类中的属性有3 个,分别是:姓名、年龄以及学历。总结:继承指的是一个类(称为子类)继承另外的一个类(称为父类)的功能,并可以增加它自己的新功能的能力。在UML 类图设计中,继承用一条带空心三角箭头的实线表示,从子类指向父类。3、学生自主学习在线平台第三章1、2 两小节(20 分钟)4、布置作业(需在下一次上课前完成):完成在线平台第三章1、2、3、4小节的学习第二次课(讲师2 课时)1、讲解 LostCraft游戏中所有类的类图设计,从伪类图如何转变为代码。此外,简单讲解构造函数和析构函数的功能,可让学生暂时忽略不计。(30分钟)回顾 LostCraft游戏中四个类:英雄类、技能类、怪物类、场景类名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 40 页 -9 通过类图回顾英雄类所包含的属性和行为,并进行代码映射,最终实现代码式的类图展现。通过类图回顾技能类所包含的属性和行为,并进行代码映射,最终实现代码式的类图展现。通过类图回顾怪物类所包含的属性和行为,并进行代码映射,最终实现代码式的类图展现。通过类图回顾场景类所包含的属性和行为,并进行代码映射,最终实现代码式的类图展现。2、学生自主学习在线平台第三章第5小节内容,讲师随时辅导答疑(60 分钟)3、布置作业(需在下一次上课前完成):完成在线平台第三章5、6 小节的学习名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 40 页 -10 面向对象程序设计课程教案编制日期:2017 年 2 月 5 日授课时间第 3 周课次5、6 授课方式(请打)理论课讨论课实践课习题课其他课时安排4 教学单元:第 3章 面向对象思维建模、第4章 程序设计语言C+初识目的、要求:1、熟练掌握和理解LostCraft 游戏的 UML 设计2、熟练掌握和理解HR 服务平台的UML 设计3、熟练掌握C+与 C 不同的一些语法重点:1、理解 LostCraft 游戏的类图设计2、理解 HR 服务平台的类图设计3、C+语法:输入输出、常量、bool 类型、string 类型难点:1、理解 LostCraft 游戏的类图设计2、理解 HR 服务平台的类图设计教学步骤:1、通过案例分析,讲解整个HR 服务平台中类图的设计2、利用 VS2010 工具演示并讲解C+语法3、学生课堂自主进行练习,教师随堂辅导答疑4、查阅学习平台数据反馈指导课堂(根据学生实际情况进行辅导)教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等)1、利用 VS2010 工具进行代码演示,演示过程中讲解知识点2、利用智慧学习平台进行自主学习,学习过程中助教进行辅导答疑3、根据在线平台统计的重难点,错误较多的习题,进行讲解。作业和思考题:习题:1、完成在线平台第三章全部内容的学习2、完成在线平台第四章1、2、3、4、5 小节内容的学习名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 40 页 -11 教学内容板书或旁注第一次课(讲师2 课时)1、讲解HR 服务平台中所有类的类图设计,尤其是该平台中用户角色、系统界面角色以及数据提供者角色的设计由来与如何实现。(35 分钟)先展示整体类图,然后回顾并总结HR 服务平台之前的设计,3 种角色:用户、系统界面、数据提供者。提问:假设每一个角色是一个类,那应该有3 个类,怎么整体类图里却涉及了8 个类呢?解释原因:将每一个基础角色(User、Category、Job)单独设置成一个类,然后为每一个基础角色添加一个集合,并将每一个集合(UserList、CategoryList、JobList)单独设置成一个类,再加上之前所设计的UI 类和数据提供者DataProvider 类,共 8 个类。以 User 和 UserList 两个类举例,说明两个类之间的关系。以此类推,不再解释Job 和 Category 两个类。解释整体类图,8 个类之间的关系。2、学生自主学习在线平台第三章第7 小节内容,讲师随时辅导答疑(55 分钟)3、布置作业(需在第五章内容学习之前完成):完成在线平台第三章的学习第二次课(讲师2 课时)1、利用 VS2010 编写第一个C+项目,并讲解该项目的框架结构(25 分钟)文件的作用namespace的作用以一个年级有两名“张三”同学为例,如何进行区分?可将两名张三放入不同的班级,每一个班级就相当于一个命名空间。C+中的输入与输出cout 分为 c+out,表示输出,说明在C+中输入和输出均无需进行格式控制说明,直接使用连接符。此时可定义一些变量,然后通过一些简单的输入进行演示。2、学生利用VS2010 工具练习讲师所讲内容,讲师随时辅导答疑(20 分钟)3、利用 VS2010 讲解 C+所存在的一些语法(25 分钟)数据类型中多出来的bool 类型定义一个布尔类型的变量,并进行赋值,布尔类型只能赋值true 或false,然后通过cout 进行输出,观察结果。将该布尔类型放入if 语句中,让学生感受到布尔类型的方便之处。string 类型以及变量的定义定义一个string 类型的变量,并进行赋值,此处提醒学生使用双引号“”,然后运行代码,此时程序提示BUG。解释原因:string 并不是 C+中的基本数据类型,string 这个关键字属于头文件 中,因此使用 string 类型,必须引用头文件。添加头文件,再次运行程序,成功。针对 string 类型的变量进行输入和输出,体现string 类型的优势。常量的定义定义一个常量,讲解常量的定义格式,并通过cout 进行输出演示。4、学生利用VS2010 工具练习讲师所讲内容,讲师随时辅导答疑(20 分钟)5、布置作业(需在下一次上课之前完成):完成在线平台第四章1、2、3、4、5 小节的学习名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 40 页 -13 面向对象程序设计课程教案编制日期:2017 年 2 月 5 日授课时间第 4 周课次7、8 授课方式(请打)理论课讨论课实践课习题课其他课时安排4 教学单元:第 4章 程序设计语言C+初识、第 5章 类与对象的实现目的、要求:1、熟练掌握和理解函数的概念及使用方法,包括函数的声明、实现及调用2、熟练掌握和理解指针的概念及使用方法3、熟练掌握和理解引用的概念及使用方法4、熟练掌握和理解LostCraft游戏中技能类的声明与实现5、熟练掌握和理解对象实例化重点:1、熟练掌握和理解引用的概念及使用方法2、熟练掌握和理解LostCraft 游戏中技能类的声明与实现3、熟练掌握和理解对象实例化难点:1、LostCraft 游戏中技能类的声明与实现2、通过技能类创建多个技能对象,并正确调用对象中的属性和方法教学步骤:1、利用 VS2010 工具演示并讲解C+语法2、学生课堂自主进行练习,教师随堂辅导答疑3、利用 VS2010 工具演示并讲解LostCraft 游戏中技能类的声明与实现,以及对象实例化4、查阅学习平台数据反馈指导课堂(根据学生实际情况进行辅导)教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等)1、利用 VS2010 工具进行代码演示,演示过程中讲解知识点2、利用智慧学习平台进行自主学习,学习过程中助教进行辅导答疑3、根据在线平台统计的重难点,错误较多的习题,进行讲解。作业和思考题:习题:1、完成在线平台第四章全部内容的学习2、完成在线平台第五章LostCraft项目 1、2、3、4 小节的学习名师资料总结-精品资料欢迎下载-名师精心整理-第 13 页,共 40 页 -14 教学内容板书或旁注第一次课(讲师2 课时)1、利用 VS2010工具回顾函数的知识点,包括:无参函数、有参函数以及函数的返回值(15 分钟)编写一个无参函数,回顾函数的基本框架结构,描述函数的声明、实现以及调用。在无参函数的基础上,增加参数,更改为有参函数,然后描述有参函数的调用,区分形式参数和实际参数。在有参函数的基础上,增加返回值,描述有返回值的函数如何接收返回值,并说明return的使用方法。2、利用 VS2010工具回顾指针的知识点,包括:指针的定义及赋值和取值(15分钟)定义一个指针变量,然后通过绘制简单的内存图讲解指针变量。3、学生利用VS2010工具练习讲师所讲内容,讲师随时辅导答疑(15 分钟)4、利用 VS2010工具讲解引用,并比较函数传值、传指针、传引用的区别(25分钟)定义一个变量,通过引用进行赋值,演示运行结果。说明引用实际就是“取别名”。定义一个更改数据的函数,然后通过函数传值、传指针、传引用三种方式进行传递数据,然后通过运行结果比较三者区别。此处可绘制简单的内存图,加强数据传递的理解。5、学生利用VS2010工具练习讲师所讲内容,讲师随时辅导答疑(20 分钟)6、布置作业(需在下一次上课之前完成):完成在线平台第四章全部内容的学习名师资料总结-精品资料欢迎下载-名师精心整理-第 14 页,共 40 页 -15 第二次课(讲师2 课时)1、回顾 LostCraft游戏中设计的四个类,并重点回顾技能类图(10 分钟)2、利用 VS2010工具新建一个LostCraft项目,然后根据类图开始编写技能类,一边编写技能类一边讲解C+中类的实现语法结构(20 分钟)3、实现技能类后在main 函数中进行对象实例化,讲解完后将代码下发给学生做参考。(15 分钟)4、让学生先不要用VS2010进行编程,而是学习在线平台第五章1、2、3 小节的内容,用于巩固之前讲师讲解的知识,讲师可随时辅导答疑。(45 分钟)5、布置作业(需在下一次上课之前完成):完成在线平台第五章LostCraft项目 1、2、3、4 小节的学习名师资料总结-精品资料欢迎下载-名师精心整理-第 15 页,共 40 页 -16 面向对象程序设计课程教案编制日期:2017 年 2 月 6 日授课时间第 5 周课次9、10 授课方式(请打)理论课讨论课实践课习题课其他课时安排4 教学单元:第 5章 类与对象的实现目的、要求:熟练掌握通过类图进行类的声明与实现过程熟练掌握并理解两种方式实现对象实例化熟练掌握并理解销毁对象重点:两种方法实现对象实例化使用 delete关键字销毁对象难点:两种方法实现对象实例化教学步骤:1、利用 VS2010 工具演示并讲解2、学生利用VS2010 工具进行编程训练,讲师随堂辅导答疑3、查阅学习平台数据反馈指导课堂(根据学生实际情况进行辅导)教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等)1、利用 VS2010 工具进行代码演示,演示过程中讲解知识点2、利用智慧学习平台进行自主学习,学习过程中助教进行辅导答疑3、根据在线平台统计的重难点,错误较多的习题,进行讲解。作业和思考题:习题:完成在线平台第五章LostCraft项目所有内容的学习,即1-5 小节名师资料总结-精品资料欢迎下载-名师精心整理-第 16 页,共 40 页 -17 教学内容板书或旁注第一次课(讲师2 课时)1、结合类图,利用 VS2010工具演示LostCraft游戏中其他三个类的声明与实现(所有的函数无需具体实现代码),并针对每个类实例化多个对象。(25分钟)根据类图,利用VS2010 工具实现英雄类的声明,然后将所有的函数进行无具体实现,最后在main 函数中进行对象实例化,测试类是否正确。此过程一边代码编写,一边进行讲解。根据类图,利用VS2010 工具实现怪物类的声明,然后将所有的函数进行无具体实现,最后在main 函数中进行对象实例化,测试类是否正确。此过程一边代码编写,一边进行讲解。根据类图,利用VS2010 工具实现场景类的声明,然后将所有的函数进行无具体实现,最后在main 函数中进行对象实例化,测试类是否正确。此过程一边代码编写,一边进行讲解。注意:建议讲师将该段代码保留,用于下一次方便讲解new关键字。2、让学生先不要用VS2010进行编程,而是学习在线平台第五章第5 小节的内容,讲师可随时辅导答疑。(65 分钟)3、布置作业:完成在线平台第五章LostCraft项目所有内容的学习,即 1-5小节第二次课(讲师2 课时)1、仍然使用LostCraft项目为例,讲解new 与 delete关键字知识点(25分钟)将上一次课程进行对象实例化的地方,进行修改,通过new关键字实现对象实例化,并简单讲解两者区别:不使用 new关键字:在栈中创建一个内存空间存储对象。名师资料总结-精品资料欢迎下载-名师精心整理-第 17 页,共 40 页 -18 使用 new关键字:在栈中创建一个内存空间存储地址,在堆中存储对象。使用 new创建完对象后,回顾知识点:对象可以被创建也可以被销毁。从而引出delete关键字,删除一个对象。并讲解使用delete关键字删除对象的优势。2、学生利用VS2010工具创建一个LostCraft项目,并练习讲师所讲内容,讲师随时辅导答疑(65 分钟)名师资料总结-精品资料欢迎下载-名师精心整理-第 18 页,共 40 页 -19 面向对象程序设计课程教案编制日期:2017 年 2 月 6 日授课时间第 6 周课次11、12 授课方式(请打)理论课讨论课实践课习题课其他课时安排4 教学单元:第 6章 深入面向对象函数(LostCraft 游戏)目的、要求:熟练掌握并理解成员函数熟练掌握并理解函数重载熟练掌握并理解构造函数重点:函数重载的实现条件构造函数的概念、特点以及调用方式难点:构造函数的概念、特点以及调用方式构造函数的重载教学步骤:1、利用 VS2010 工具演示并讲解2、学生利用VS2010 工具进行编程训练,讲师随堂辅导答疑3、查阅学习平台数据反馈指导课堂(根据学生实际情况进行辅导)教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等)1、利用 VS2010 工具进行代码演示,演示过程中讲解知识点2、利用智慧学习平台进行自主学习,学习过程中助教进行辅导答疑3、根据在线平台统计的重难点,错误较多的习题,进行讲解。作业和思考题:习题:1、第一次课结束后完成在线平台第六章(LostCraft游戏)第 1、2 两小节内容2、第二次课结束后完成在线平台第六章(LostCraft游戏)第 3、4 两小节内容名师资料总结-精品资料欢迎下载-名师精心整理-第 19 页,共 40 页 -20 教学内容板书或旁注第一次课(讲师2 课时)1、通过找女朋友案例,利用VS2010工具讲解函数重载。(共计45 分钟)场景描述:某一天深夜,503 宿舍的 4 个男生们照例开起了夜谈会,而这次的主题就是“找女朋友”,这时A男生说道:“我找女朋友的条件很简单,年龄在22 岁以下就行啦!”,B男生听到后撇撇嘴说:“切!要求这么低,我不仅要求年龄在22 岁以下,身高也必须在158cm 以上才行!”,听到这里,C男生调侃道:“如果是这样,那我的要求就是女朋友要年龄22 岁以下,身高在 159.5cm 以上,少一点都不行,哈哈!”,此时一直没说话的D男生终于缓缓开口道:“你们还有要求?我觉得只要是个女的就可以啦!”。从一个场景中设计出类与对象(10 分钟)对象:503 宿舍、男生A、男生 B、男生 C、男生 D 类:宿舍、男生注意:由于该案例中,宿舍该类并无实际作用,因此可忽略不计,所以该案例中只保留“男生”类。男生类属性:姓名、年龄.注意:该类中这些属性也可以暂时忽略不计。男生类行为:找女朋友类的声明与实现(10 分钟)针对上述描述,通过分析我们设计出一个“男生”类,而这跟个男生类中除了应有的属性之外,都有一个共同的行为,即“找女朋友”,代码可见下图所示:名师资料总结-精品资料欢迎下载-名师精心整理-第 20 页,共 40 页 -21 但是,这个类显然不符合我们的实际案例描述,因为我们发现A、B、C、D四个男生虽然都有共同的行为,但是找女朋友的条件却是不同的。A男生:年龄在22 岁以下B男生:年龄在22 岁以下,身高在158cm以上C男生:年龄在22 岁以下,身高在159.5cm 以上D男生:无要求函数重载的声明、实现及调用(15 分钟)说明:虽然是同样的行为“找女朋友”,但是因为条件不同,我们并不会混淆行为和男生的关系,例如:行为是无要求找女朋友的,我们就一定知道是 D男生的行为,因此,将现实的推理映射到我们的代码上,我们可以推断出 实现函数重载的条件为:通过参数列表来区分。通过对比A男生和 B男生,我们发现条件(即参数)个数不同,可以区分函数不同;而通过对比B男生和 C男生,我们发现条件(即参数)类型不同,也可以区分函数不同。参数个数不同:void FindGF(int age);/A男生的条件:年龄void FindGF(int age,int height);/B男生的条件:年龄、身高参数的类型不同:void FindGF(int age,int height);/B男生的条件:年龄、整数身高void FindGF(int age,double height);/C男生的条件:年龄、小数身高注意:仅仅是函数返回值不同并不能区分两个函数。名师资料总结-精品资料欢迎下载-名师精心整理-第 21 页,共 40 页 -22 例如:bool FindGF(int age);/代码 Avoid FindGF(int age);/代码 B 错误说明:上述代码A和代码 B参数列表都一样,都只传了一个int类型的整数,而返回值却不一样,但是他们并不是函数重载,因为在函数调用的时候,我们都是运用FindGF(18)这样就出现了一个问题,仅仅通过调用是无法知道使用的是代码A还是代码B。对象实例化(两种实现方式)(10 分钟)最后,在Boy 类中实现四种函数重载,然后在main 函数中进行对象实例化(利用两种方式实现),能够加深学生对知识点的运用。总结并再次强调函数重载的概念以及实现条件。2、学生利用在线学习平台自主学习,学习内容为第六章(LostCraft游戏)1、2 两小节,讲师随时进行辅导答疑。(45 分钟)3、布置作业(需在下一次上课之前完成):完成在线平台第六章(LostCraft游戏)第1、2 两小节内容。第二次课(讲师2 课时)1、利用 VS2010工具讲解构造函数。(共计35 分钟)回顾 LostCraft 游戏中的4 个类图,并引出构造函数(5 分钟)通过回顾类图发现除了技能类之外,几乎每一个类都有一个初始化 的功能,例如在场景类中的initScenario()函数,该函数在创建场景对象之后调用。同样的道理,我们发现每一个对象在创建之后,都需要手动的进行一些初始化行为。提出问题:有没有一种方法,让我们能够在对象创建的同时,就自动的针对该对象进行初始化行为调用呢?Scenario s;s.initScenario();名师资料总结-精品资料欢迎下载-名师精心整理-第 22 页,共 40 页 -23 构造函数的特点:与类同名、没有返回值(5 分钟)先不讲解构造函数,而是将场景类中的初始化代码更改到构造函数中,然后删除main 函数中的s.initScenario();运行程序展示结果。引出构造函数的特点:与类同名、没有返回值引出构造函数的功能:初始化构造函数的自动调用与对象实例化(10 分钟)强调:如果在类中没有手动定义该类的构造函数,该类也可以进行对象实例化。因为当创建该类的对象时,即使没有手动编写该函数,但程序也会默认存在该类的构造函数,并进行调用,只不过在程序上无体现。构造函数的重载(10 分钟)说明构造函数作为成员函数的一种,也可以实现函数重载,同样通过参数列表不同来区分。编写几个不同的构造函数重载,然后结合对象实例化进行演示。总结构造函数知识点(5 分钟)2、学生利用在线平台自主学习,学习内容为第六章(LostCraft游戏)第 3小节,讲师随时进行辅导答疑(55 分钟)3、布置作业(需在下一次上课之前完成):完成在线平台第六章(LostCraft游戏)第3、4 两小节内容此时,我们可以直接删除Scenario(void)函数,然后再点击“调试”按钮,会发现程序仍然可以运行,并且不会报错,只不过在屏幕上没有任何显示,那是因为程序默认的构造函数是没有实际内容的。名师资料总结-精品资料欢迎下载-名师精心整理-第 23 页,共 40 页 -24 面向对象程序设计课程教案编制日期:2017 年 2 月 7 日授课时间第 7 周课次13、14 授课方式(请打)理论课讨论课实践课习题课其他课时安排4 教学单元:第 6章 深入面向对象函数(LostCraft 游戏)、第 6章 深入面向对象函数(HR 服务平台)目的、要求:能够独立完成LostCraft游戏的编写熟练掌握并理解set/get函数的意义及编程技巧熟练掌握并理解this指针重点:完成 LostCraft游戏 1.0 版本的实现难点:完成 LostCraft游戏 1.0 版本的实现教学步骤:1、利用 VS2010 工具演示并讲解2、学生利用VS2010 工具进行编程训练,讲师随堂辅导答疑3、查阅学习平台数据反馈指导课堂(根据学生实际情况进行辅导)教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等)1、利用 VS2010 工具进行代码演示,演示过程中讲解知识点2、利用智慧学习平台进行自主学习,学习过程中助教进行辅导答疑3、根据在线平台统计的重难点,错误较多的习题,进行讲解。作业和思考题:习题:1、布置作业(需在第九周第二次课结束的时候提交):完成LostCraft1.0版本的实现2、布置作业(需在下一次上课之前完成):完成在线平台第六章(HR服务平台)第1、2、3 三小节内容名师资料总结-精品资料欢迎下载-名师精心整理-第 24 页,共 40 页 -25 教学内容板书或旁注第一次课(讲师2 课时)1、学生利用在线平台自主学习,学习内容为第六章(LostCraft游戏)第 5小节,讲师随时进行辅导答疑(90 分钟)2、布置作业(需在第九周第二次课结束的时候提交):完成LostCraft1.0版本的实现第二次课(讲师2 课时)1、学生利用在线平台自主学习,学习内容为第六章(HR服务平台)第1 小节,讲师随时进行辅导答疑(45 分钟)2、利用 VS2010讲解封装技巧get/set方法,以及this关键字(25 分钟)以 HR项目为主,以User 类为例,首先回顾User 类的基本设计。根据类图写出对应的代码,并对象实例化。然后通过对象直接调用_name和_password 属性,演示private权限下的属性不可外部调用。提出思考:在现实生活中,往往被隐藏的内容也有需要被使用的时候,例如 U盘,数据虽然是被隐藏,但是却可以在特殊的情况下(有电脑的时候)被读取和修改数据。那么在C+中如何体现?修改代码,增加set/get函数,然后进行数据存储/读取的实现。并讲解 set/get函数的使用技巧与优势。提出注意事项:一般建议 set 和 get 函数的命名格式为set+属性名、get+属性名,这样便于理解,但需要强调的是,set 和 get 不过都是函数的名字而已,因此是由用户自己命名,没有强制要求必须使用set 或 get作业提交注意事项:1、不要使用纸质本写代码,而 全 部 提 交 一 个LostCraft项目文件夹即可。2、命名为学生班级加姓名,例如 rj1601_查文君,就表示软件1601班的查文君,计科缩写(jk),网络缩写(wl)。3、作业由班长或学习委员收齐后打成压缩包统一发给讲师,讲师不接受个人的作业提交。名师资料总结-精品资料欢迎下载-名师精心整理-第 25 页,共 40 页 -26 来命名,只要该函数接口是public类型的,功能能够正常实现,函数名是什么无所谓。讲解完 set/get函数以后,在set 函数中修改代码,将形参的名称与 User 类中的属性名称改成一致的,然后提问:此时的赋值语句是谁赋值给谁?引入 thiis指针进行区分,并讲解this指针。3、学生利用VS2010工具练习讲师所讲内容,讲师随时辅导答疑(20 分钟)4、布置作业(需在下一次上课之前完成):完成在线平台第六章(HR服务平台)第1、2、3 三小节内容名师资料总结-精品资料欢迎下载-名师精心整理-第 26 页,共 40 页 -27 面向对象程序设计课程教案编制日期:2017 年 2 月 7 日授课时间第 8 周课次15、16 授课方式(请打)理论课讨论课实践课习题课其他课时安排4 教学单元:第 6章 深入面向对象函数(HR 服务平台)目的、要求:能够独立完成LostCraft游戏的编写熟练掌握并理解set/get函数的意义及编程技巧熟练掌握并理解this指针能够独立完成HR服务平台的编写重点:完成 LostCraft游戏 1.0 版本的实现完成 HR服务平台 1.0 版本的实现难点:完成 LostCraft游戏 1.0 版本的实现完成 HR服务平台 1.0 版本的实现教学步骤:1、利用 VS2010 工具演示并讲解2、学生利用VS2010 工具进行编程训练,讲师随堂辅导答疑3、查阅学习平台数据反馈指导课堂(根据学生实际情况进行辅导)教具及教学手段:(如:举例讲解、多媒体讲解、模型讲解、实物讲解、挂图讲解、音像讲解等)1、利用 VS2010 工具进行代码演示,演示过程中讲解知识点2、利用智慧学习平台进行自主学习,学习过程中助教进行辅导答疑3、根据在线平台统计的重难点,错误较多的习题,进行讲解。作业和思考题:习题:1、布置作业(需在第九周第二次课结束的时候提交):完成LostCraft1.0版本的实现2、布置作业(需在下一次上课之前完成):完成在线平台第六章(HR服务平台)第1、2、3 三小节内容名师资料总结-精品资料欢迎下载-名师精心整理-第 27 页,共 40 页 -28 教学内容板书或旁注第一次课(讲师2 课时)1、讲解析构函数(25 分钟)通过运行程序演示析构函数的特点先运行一段程序,让学生观察运行结果:class Foo public:Foo()cout 我是 Foo 的构造函数 endl;Foo()cout 我在释放Foo 的内存 endl;void Func()cout 您正在调用Foo 的函数 Func Func();delete f;通过运行结果讲解析构函数析构函数也是一个特殊的成员函数,它的作用与构造函数相反,构造函数一般用于完成对象初始化的一些工作,而析构函数一般用于完成对象销毁的一些工作。析构函数与构造函数格式非常类似,但在类名的前天加一个“”符号。在 C+中“”是位 取反 运算符。与构造函数相同,析构函数不能手动调用,而是当对象的生命期结束时,由程序自动执行。注意:在刚刚的main 函数中,我们没有编写f-Foo()这样