课程名称:面向对象程序设计
课程名称:面向对象程序设计
课程编码:7192401
课程学分:3
课程学时:48学时
适用专业:电子信息工程、通信工程
《面向对象程序设计Ⅱ》
Object Oriented Programming Design
教学大纲
一、课程性质与目的
本课程是为电子信息工程、通信工程开设的专业选修课。面向对象程序设计是新一代编程技术代表,是Windows、数据库等应用系统的编程基础。该项技术对于学生今后从事科研工作具有实际意义。
学生通过本课程的学习,应当建立面向对象的编程思想,掌握类、封装、继承与派生以及多态性等面向对象基本概念和方法,并可以利用面向对象的编程语言(C++)设计程序,了解Java语言的基本功能。教学中不但使学生会使用C++编写程序,更重要的是培养学生运用面向对象思想解决实际问题的能力。
二、教学基本内容及基本要求
第1章 C++知识初步
(一)基本要求
了解:了解C++的编程风格及C++对C语言的扩充。
熟悉:C++程序构架及词法符号约定。
掌握:C++数据类型、运算符、表达式和输入/输出语句;熟练掌握C++各种语句及程序流程控制结构。
(二)教学及考核内容
1.1 从C到C++
.2 最简单的C++程序
.3 C++对C语言的扩充
.4 C++程序的编写和实现
1.5 关于C++上机实践
第2章 类和对象
(一)基本要求
了解:面向对象程序设计的特点。
熟悉:面向对象程序设计的基本过程、常用语言以及各种语言的联系与区别。
掌握:面向对象程序设计中的对象、类、消息等基本概念,类的构造和创
建。
(二)教学及考核内容
2.1 面向对象程序设计方法概述
2.2 类的声明和对象的定义
2.3 类的成员函数
2.4 对象成员的引用
2.5 类和对象的简单应用举例
2.6 类的封装性和信息隐藏
第3章 类与对象的进一步讨论
(一)基本要求
了解:类的模板含义及使用方式。
熟悉:类的静态成员和动态存储分配的原理,友元函数、类对象指针和对象数组的工作原理。
掌握:类的构造函数和析构函数的原理和使用方法。
(二)教学及考核内容
3.1 构造函数
3.2 析构函数
3.3 调用构造函数和析构函数的顺序
3.4 对象数组
3.5 对象指针
3.6 共用数据的保护
3.7 对象的动态建立和释放
3.8 对象的赋值和复制
3.9 静态成员
3.10 友元
3.11 类模板
第4章 运算符重载
(一)基本要求
了解:运算符重载的含义。
熟悉:单目、双目运算符重载含义。
掌握:运算符重载的规则和方法。
(二)教学及考核内容
4.1 什么是运算符重载
4.2 运算符重载的方法
4.3 重载运算符的规则
4.4 运算符重载函数作为类成员函数和友元函数
4.5 重载双目运算符
4.6 重载单目运算符
4.7 重载流插入运算符和流提取运算符
4.8 不同类型数据之间的转换
第5章 继承和派生
(一)基本要求
了解:多重继承设计中二义性产生的原因和避免二义性的方法。
熟悉:多重构造函数与析构函数中使用方法,熟悉虚基类的原理和使用方法。
掌握:类层次、数据抽象和模块化;基类和派生类;多重继承的设计原理和方法。
(二)教学及考核内容
5.1 继承与派生的概念
.2 派生类的声明方式
.3 派生类的构成
5.4 派生类成员的访问属性
5.5 派生类的构造函数和析构函数
5.6 多重继承
5.7 基类与派生类的转换
5.8 继承与组合
5.9 继承在软件开发中的重要意义
第6章 多态性与虚函数
(一)基本要求
了解:了解虚函数方法与多态机制。
熟悉:纯虚函数的使用方法。
掌握:重载与程序的多态性设计的方法。
(二)教学及考核内容
6.1 多态性的概念
6.2 一个典型的例子
6.3 虚函数
6.4 纯虚函数与抽象类
第7章 输入输出流
(一)基本要求
了解:了解输入输出流的含义。
熟悉:C++的输入、输出流。
掌握:C++的标准输入、输出流。
(二)教学及考核内容
7.1 C++的输入和输出
7.2 标准输出流
7.3 标准输入流
7.4 文件操作与文件流
7.5 字符串流
第8章 C++工具
(一)基本要求
了解:了解虚函数方法与多态机制。
熟悉:纯虚函数的使用方法。
掌握:重载与程序的多态性设计的方法。
(二)教学及考核内容
8.1 异常处理
8.2 命名空间
8.3 使用早期的函数库
三、本课程与其它相关课程的联系与分工
先修课程:计算机导论 、 C语言、 数据结构。
后续课程:Java语言程序设计。
四、课程各教学环节和各篇章(节)学时分配
《面向对象程序设计》课程共安排16学时上机,包括以下4个方面的练习:① C++基础知识;② 类;③ 继承;④ 多态性。通过上机练习,使学生理解掌握C++的基本编程方法和程序结构,类、继承、多态等概念,封装、抽象等机制。
学时分配
总学时为48学时,其中讲授32学时,上机16学时。
章 节内 容总课时讲授课时实验课时第1章C++的初步知识440
第2章类与对象844
第3章类与对象的进一步讨论1064
第4章运算符重载44
第5章继承与派生844
第6章多态性与虚函数844
第7章输入输出流22
第8章C++工具44
合 计483216
五、本课程采用的教学方法和教学手段
为了使学生更好地理解和掌握教学内容,每章都会有不少于3道的习题,并通过一定的课外机时,加强对面向对象程序设计概念的理解和算法实现的调试。
课堂教学和计算机教学相结合,使用投影仪演示教学内容。学生每人一台计算机,自己独立完成上机实验。
六、教材及教学参考资料
教材:谭浩强《C++面向对象分析设计》,清华大学出版社,2006
年1月
参考书:王燕《面向对象的理论与C++实践》清华大学出版社 1999年6月
七、本课程的考核方法及成绩评定标准
考查方法:平时考核与期末考试相结合,采用百分制。
考核内容:1、平时包括作业、考勤、设计报告和上机操作结果,共占30%:根据作业中理论知识的准确性、设计报告中方法与步骤的合理性和是否能完成指定的实验内容,以及实际程序演示的综合效果来判断。
2、期末考试占70%:采用闭卷考试,主要考查学生对C++基本理论和方
法是否有清楚的认识,以及运用C++语言与面向对象技术解决实际问题的能力。
八、其它问题的说明
大纲撰写人:孙晶
大纲审阅人:付晓玲
系负责人 :李也白
学院负责人:王景中
制定(修订)日期: 2007年5月
第3章 面向对象程序设计基础
第3章面向对象程序设计基础
第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? 答:类是将一类事物的特性描述出来,然后如果用这个类来定义对象,则该对象就拥有了这个类所描述的所有特性。 在Java系统中,系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合称为一个包,所有包合称为类库。 【2】如何定义方法?在面向对象程序设计中方法有什么作用? 答:方法的定义由两部分组成:方法声明和方法体。 方法的声明如下: 返回值类型方法名(参数类型形式参数1,参数类型形式参数2…){ 程序代码; 返回值; } 在面向对象程序设计中,方法的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) {
studentNo=no; studentName=name; return no; } 答:构造方法的功能是:构造方法是一个特殊的方法,主要用于初始化新创建的对象; 特点:构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 错误之处:(1)构造方法Student()前不能加void,(2)不能用return语句,(3)类名Student 首字母S改成小写s. 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 class Student { String id; String name; String sex; int age; void talk(){
JAVA语言与面向对象程序设计课后习题答案
第1章面向对象软件开发概述 1.简述面向过程问题求解和面向对象问题求解的异同。试列举出面向对象和面向过程的编程语言各两种。 答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更接近于计算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。 面向过程的编程语言:C,Pascal,Foratn。 面向对象的编程语言:C++,Java,C#。 2.简述对象、类和实体及它们之间的相互关系。尝试从日常接触到的人或物中抽象出对象的概念。 答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。类是同种对象的集合与抽象。类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。如果类是抽象的概念,如“电视机”,那么对象就是某一个具体的电视机,如“我家那台电视机”。 3.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学生”,试为这个对象设计状态与行为。 答:对象都具有状态和行为。 对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。 行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。 学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、入学成绩等; 学生的行为:自我介绍、入学注册、选课、参加比赛等。 4.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生”与对象“大学生”是什么关系? 答:对象间可能存在的关系有三种:包含、继承和关联。 对象“班级”与对象“学生”是包含关系。 对象“学生”与对象“大学生”是继承关系。 5.有人说“父母”和“子女”之间是继承的关系。这种说法是否正确?为什么? 答:“父母”和“子女”之间不是面向对象意义上的“继承”关系。因为这里的继承关系是“is a”的关系,“男人”与“人”之间可以说是继承关系。 6.面向对象的软件开发包括哪些过程?OOA模型包括哪三个层次?OOD模型在OOA模型的基础上引入了哪些工作? 答:面向对象的软件开发过程可以大体划分为面向对象的分析(Object Oriented analysis,OOA)、面向对象的设计(Object oriented design,OOD)、面向对象的实现(Object oriented programming,OOP)三个阶段。 面向对象的分析的主要作用是明确用户的需求,并用标准化的面向对象的模型规范地表述这一需求,最后将形成面向对象的分析模型。 面向对象的设计将在OOA模型的基础上引入界面管理、任务管理和数据管理三部分的内容。 7.面向对象的程序设计方法有哪些优点? 答:由于对象的概念能够以更接近实际问题的原貌和实质的方式来表述和处理这些问题,所以面向对象的软件开发方法比以往面向过程的方法有更好的灵活性、可重用性和可扩展性,使得上述“分析—设计—实现”的开发过程也更加高效、快捷。
什么是面向对象程序设计
1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。
面向对象程序设计课程设计
《面向对象程序设计》课程设计 课程代码:*****(采用现行5位数字的课程代码) 课程名称:面向对象程序设计课程设计 设计周数:1周 学分:0.5学分 课程类别:必修课 一、课程设计的目的与任务 面向对象程序设计课程设计是计算机科学与技术、网络工程、信息管理与信息系统等专业集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。通过课程设计,学生可以将本课程所学知识点融会贯通,举一反三,加深实践与理解,提高学生综合运用所学知识的能力;另一方面,在参与一系列子项目的实践过程中,能使学生获得相关项目管理和团队合作等众多方面的实践经验。其目的在于加深对面向对象程序设计理论和基本知识的理解,通过对所选项目的分析、程序算法的设计、运行与调试过程的分析,使学生掌握基本的信息系统分析方法、设计方法和上机操作的各种技巧,对培养学生的逻辑思维能力、团队合作精神、创新能力、动手操作能力各方面素质有提供了良好的实践平台,为后续课程的学习打下一定的基础。 二、本课程设计的基本理论 本课程设计使用面向对象程序设计的方法解决实际问题,涵概了课程的所有重要知识点,如类与对象、继承与组合、虚函数与多态性等。 三、课程设计的形式与基本要求 形式:召开课程设计动员会,根据学生的学习水平和特长进行分组,每组选择指定课程设计的题目和内容。学生在规定的时间内,经过小组的协同工作和指导教师的辅导,完成所选课题的设计,最后由指导教师进行验收及评定。 基本要求:要求学生做好预习,认真分析设计过程中涉及到的算法,并确定所选课题的功能模块,详细描述各模块的具体内容;用流程图描述实现算法,根据算法进行代码的编写,最后进行反复上机调试修改,直到输出正确结果为止。 认真写好课程设计报告,根据每组学生的分工,各自写出对解决问题的详细分析、模块功能、调试结果,最后将课程设计报告上交给指导教师。 四、课程设计的内容 选题一:员工管理信息系统 (1)建立职工信息数据,包括职工编号、姓名、性别、工资、出生时间、部门、参加工作时间和年龄(必须计算得到)。