当前位置:文档之家› 面向对象程序设计概述

面向对象程序设计概述

面向对象程序设计概述
面向对象程序设计概述

1.什么是结构化程序设计方法?这种方法有哪些优点和缺点?

【解答】结构化程序设计方法是指20世纪60年代开始出现的高级语言程序设计方法,由于采用了数据结构化、语句结构化、数据抽象和过程抽象等概念,使程序设计在符合客观事物与逻辑的基础上更进了一步。结构化程序设计的思路是:自顶向下、逐步求精。程序结构由具有一定功能的若干独立的基本模块(单元)组成,各模块之间形成一个树状结构,模块之间的关系比较简单,其功能相对独立,模块化通过子程序的方式实现。结构化程序设计方法使高级语言程序设计开始变得普及,并促进了计算机技术的深入应用。

虽然结构化程序设计方法采用了功能抽象、模块分解与组合,以及自顶向下、逐步求精的方法,能有效地将各种复杂的任务分解为一系列相对容易实现的子任务,有利于软件开发和维护;但与面向对象程序设计方法相比,结构化程序设计存在的主要问题是,程序的数据和对数据的操作相互分离,若数据结构改变,程序的大部分甚至所有相关的处理过程都要进行修改。因此,对于开发大型程序具有一定的难度,软件的可重用性差,维护工作量大,不完全符合人类认识世界的客观规律。

2.面向对象程序设计有哪些重要特点?

【解答】软件设计的目的是为了解决日常生活中存在的各种实际问题,面向对象程序设计与以往各种程序设计方法的根本区别是程序设计的思维方法的不同。它主要具有如下重要特点:

(1)面向对象程序设计实现了较直接地描述客观世界中存在的事物(即对象)及事物之间的相互关系,它所强调的基本原则是直接面对客观事物本身进行抽象,并在此基础上进行软件开发,将人类的思维方式与表达方式直接应用在软件设计中。

(2)面向对象的程序设计将客观事物看作具有属性和行为的对象,通过对客观事物进行抽象来寻找同一类对象的共同属性(静态特征)和行为(动态特征),并在此基础上形成类。

(3)面向对象的程序设计将数据和对数据的操作封装在一起,提高了数据的安全性和隐蔽性。

第1章面向对象程序设计概述

3

(4)面向对象的程序设计通过类的继承与派生机制以及多态性特性,提高了软件代

码的可重用性,因而大大缩减了软件开发的相关费用及软件开发周期,并有效地提高了

软件产品的质量。

(5)面向对象程序设计的抽象性和封装特性,使对象以外的事物不能随意获取对象

的内部属性,有效地避免了外部错误对内部所产生的影响,减轻了软件开发过程中查错

的工作量,减小了排错的难度。

(6)面向对象程序设计较直观地反映了客观世界的真实情况,使软件设计人员能够

将人类认识事物规律所采用的一般思维方法移植到软件设计中。

3.面向对象与面向过程程序设计有哪些不同点?

【解答】面向过程的程序设计方法将客观事物中本质上密切相关、相互依赖的数据

和对数据的操作相互分离,这种实质上的依赖与形式上的分离使得大型程序既难以编写,

也难以调试、修改和维护,代码的可重用性和共享性差。

而面向对象程序设计方法是一种以对象为基础,以事件或消息来驱动对象执行相应

处理的程序设计方法。它将数据及对数据的操作封装在一起,作为一个相互依存、不可

分离的整体——对象;它采用数据抽象和信息隐蔽技术,将这个整体抽象成一种新的数

据类型——类。类中的大多数数据,只能通过本类方法进行操作和处理。面向对象程序

设计以数据为中心而不是以功能为中心来描述系统,因而非常适合于大型应用程序与系

统程序的开发。

在程序结构上,面向对象程序与面向过程程序也有很大的不同。面向过程的程序主

要由顺序结构、选择结构和循环结构组成,程序的基本单位是函数,程序的执行顺序也

是确定的。而面向对象程序由类的定义和类的使用两部分组成,程序的基本单位是类,

在主程序内定义对象,并确定对象之间消息的传递规律,程序中的所有操作都是通过向

对象发送消息来实现的,对象接到消息后,通过消息处理函数完成相应的操作。

4.什么是面向对象方法的封装性?它有何优缺点?

【解答】封装性指将对象的属性和行为代码封装在对象的内部,形成一个独立的单位,并尽可能隐蔽对象的内部细节。封装性是面向对象方法的一个重要原则,C++面向

对象方法的封装特性包含以下两层含义:

第一层含义是将对象的全部属性和行为封装在对象内部,形成一个不可分割的独立

单位。对象的属性值(公有属性值除外)只能由这个对象的行为来读取和修改。

第二层含义是“信息隐蔽”,即尽可能隐蔽对象的内部细节,对外形成一道屏障,

只保留有限的对外接口与外部发生联系。

面向对象方法的封装性具有以下特点:

(1)封装性使对象以外的事物不能随意获取对象的内部属性,有效地避免了外部错

误对它产生的影响,大大减轻了软件开发过程中查错的工作量,减小了排错的难度。

(2)封装性使得当程序需要修改对象内部的数据时,减少了因为内部修改对外部的

影响。

(3)封装性使对象的使用者与设计者可以分开,使用者不必知道对象行为实现的细节,而只使用设计者提供的外部接口即可。

面向对象程序设计与Visual C++ 6.0教程题解与实验指导

4

(4)封装性事实上隐蔽了程序设计的复杂性,提高了代码重用性,降低了软件开发的难度。

(5)面向对象程序设计方法的信息隐蔽作用体现了自然界中事物的相对独立性,程序设计者与使用者只需关心其对外提供的接口,而不必过分注意其内部细节,即主要关注能做什么,如何提供这些服务等。

5.面向对象程序设计为什么要应用继承机制?

【解答】在面向对象程序设计中,根据既有类(父类)派生出新类(子类)的现象称为类的继承机制,亦称为继承性。

面向对象方法的继承性是联结类与类的一种层次模型。继承是面向对象程序设计能够提高软件开发效率的重要原因之一。继承意味着派生类中无须重新定义在父类中已经定义的属性和行为,而是自动地、隐含地拥有其父类的全部属性与行为。继承机制允许和鼓励类的重用,派生类既具有自己新定义的属性和行为,又具有继承下来的属性和行为。当派生类又被它更下层的子类继承时,它继承的及自身定义的属性和行为又被下一级子类继承下去。继承是可以传递的,符合自然界中特殊与一般的关系。

继承性具有重要的实际意义,它简化了人们对事物的认识和描述。比如我们认识了飞行器的特征之后,再考虑飞机、飞船和弹道时,由于它们都具有飞行器的共性,于是可以认为它理所当然地具有飞行器的一般本质特征,从而只需把精力用于发现和描述飞机、飞船和导弹独有的特征。

面向对象程序设计中的继承性是对客观世界的直接反映。通过类的继承,能够实现对问题的深入抽象描述,反映人类认识问题的发展过程。

6.什么是面向对象程序设计中的多态性?

【解答】面向对象程序设计的多态性指父类中定义的属性或行为,被派生类继承之后,可以具有不同的数据类型或表现出不同的行为特性。如类中的同名函数可以对应多个具有相似功能的不同函数,可使用相同的调用方式来调用这些具有不同功能的同名函数。

多态性使得同一个属性或行为(如函数)在父类及其各派生类中具有不同的语义,面向对象的多态特性使软件开发更科学、更方便和更符合人类的思维习惯,能有效地提高软件开发效率,缩短开发周期,提高软件可靠性,使所开发的软件更健壮。

7.什么是运行时多态?C++语言是如何实现运行时多态的?

【解答】运行时多态是指,在程序的运行阶段才根据程序运行中产生的信息确定需要调用哪个同名的函数。在C++中,运行时多态是通过继承和虚函数来实现的。

8.什么是面向对象中的消息?一条消息由哪几部分组成?

【解答】在面向对象程序设计中,消息是描述事件发生的信息,是对象之间发出的行为请求。事件一般由多个消息组成。在面向对象方法中,消息是向某个对象提出执行该对象具有的特定服务的申请,不同对象之间通过发送消息向对方提出服务请求,接受消息的对象主动完成所请求的服务。

通常一条消息由接受消息的对象、消息名称和若干消息参数三部分组成。面向对象中的消息机制为不同对象之间提供了一个动态联系的途径,使它们的行为能互相配合,

第1章面向对象程序设计概述

5

构成一个有机的运行系统。

9.为什么说C++是混合型面向对象程序设计语言?

【解答】C++是美国Bell实验室于20世纪80年代在C语言的基础上成功开发出来的,是目前已经得到广泛应用的混合型面向对象程序设计语言。

C++既可以用于结化程序设计,又可以用于面向对象程序设计,因此是一种混合型

面向对象程序设计语言。

C++保留了C语言的全部优点,兼容C语言的语法,弥补了C语言的缺陷,且C

程序不经修改可以直接在C++环境中使用。同时,C++还增加了面向对象的方法与机制,

全面支持面向对象程序设计方法。

10.C++支持多态性主要表现在哪些方面?

【解答】多态性指在一般类中定义的属性或行为,被派生类继承之后,可以具有不

同的数据类型或表现出不同的行为。

C++的多态性分为编译时多态和运行时多态。编译时多态是指在程序的编译阶段由

编译系统根据操作数或返回值不同,确定需要调用哪个同名的函数。运行时多态是指在

程序的运行阶段才根据程序运行中产生的信息,确定需要调用哪个同名的函数。这些同

名函数虽然名称相同但却具有不同的功能,因此将产生不同的操作。在C++中,编译时

多态是通过函数重载和运算符重载实现的,运行时多态是通过继承和虚函数来实现的。

11.面向对象的软件工程包括哪些主要内容?

【解答】面向对象软件开发是目前软件开发的最新方法和程序设计的最新成果,面

向对象的软件工程是面向对象方法在软件工程领域的全面应用,它主要包括以下内容:

◆面向对象分析(OOA);

◆面向对象设计(OOD);

◆面向对象编程(OOP);

◆面向对象测试(OOT);

◆面向对象软件维护(OOSM)。

12.目前常用的面向对象程序设计语言有哪些?各有哪些特点?

【解答】面向对象程序设计语言主要包括以下几种:

◆Simula 67语言;

◆Smalltalk语言;

◆CLU语言;

◆Ada语言;

◆Modula-2语言;

◆LOOPS语言;

◆Flavors语言;

◆CLOS语言;

◆Visual Basic等可视化面向对象语言;

◆C++语言;

◆Java语言。

面向对象程序设计与Visual C++ 6.0教程题解与实验指导

6

Simula 67语言产生于20世纪60年代,具有类和对象的概念,被认为是最早具有面向对象概念的语言。

Smalltalk语言是美国Xerox Palo Alto研究中心于20世纪70年代初推出的面向对象程序设计工具,它完整地体现并进一步丰富了面向对象的概念,被认为是世界上第一个真正面向对象程序设计语言。

CLU、Ada、Modula-2都或多或少地引入了面向对象的概念,LOOPS、Flavors和CLOS是与人工智能语言相结合形成的面向对象程序设计语言。

Visual Basic是Microsoft于1991年在BASIC语言的基础上推出的可视化面向对象编程语言。Visual Basic的产生标志着软件技术一个新时代的开始。在Visual Basic之后,相继产生了Visual C++、Visual J++、Visual FoxPro、Borland Delphi及Power Builder等众多可视化程序语言。

C++语言由C语言发展而来,是一种混合型面向对象程序设计语言。Java语言是适合网络应用的面向对象程序设计语言。

13.什么是.NET?

【解答】.NET即https://www.doczj.com/doc/3413178190.html,,是Microsoft于2000年推出的一个新的软件开发平台,是Microsoft为应对网络信息时代的一个重要战略,它定义了一种公用语言子集(CLS),是一种为符合其规范的语言与类库之间提供无缝集成的混合语言。

与以往的Visual Studio 6.0版相比,.NET包含了许多新的编程思想,它统一了编程的类库,提供了对下一代网络通信标准——可扩展置标语言XML的完全支持,功能十分强大,使程序员能够快速创建下一代面向任何设备并与任何平台集成的Internet应用程序,因而使软件设计开发变得更容易、更简单。Microsoft在其软件中添加了手写和语音识别的功能,让人们能够与计算机进行更好的交流。

与Microsoft的其他产品一样,.NET与Windows平台高效集成,其运行库与操作系统已融为一体,.NET再现了一个现代化的、功能强大的集成开发环境。.NET是软件技术的一次革命,它是一种面向网络、支持各种用户终端的开发平台,旨在从根本上改变软件的开发与使用方式。

.NET为使用者与软件开发人员提供了功能强大、种类丰富的管理与开发工具,将Basic、Java、C、C++等语言集成到一个统一的程序框架上,即这些工具都是.NET框架提供的服务。2002年推出的Visual https://www.doczj.com/doc/3413178190.html,是.NET的核心开发工具,包括了Microsoft 提供的各种开发语言,并增加了对新一代计算机语言Visual C#的支持。.NET平台提供了大量的工具与服务,能够最大限度地发掘和使用计算及通信能力。

14.面向对象分析要做的主要工作包括哪些方面?

【解答】面向对象分析包括在深入、全面理解问题本质需求的基础上,确定类与对象、属性,分析对象模式及类对象的关联关系,确定行为等要素。

为全面正确理解问题的实质和要素,在面向对象程序软件开发的分析阶段,系统分析员应与客户一起工作。应从对目标问题的分析和描述入手,建立一个符合系统内在逻辑,能客观反映系统重要特性的准确数学模型。面向对象的系统分析应能很好地反映客观事物本身,直接分析问题中客观存在的事物,建立模型中的对象。无论是分析系统中

《C面向对象程序设计》谭浩强版复习总结

第一章C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

什么是面向对象程序设计

1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。

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.面向对象的程序设计方法有哪些优点? 答:由于对象的概念能够以更接近实际问题的原貌和实质的方式来表述和处理这些问题,所以面向对象的软件开发方法比以往面向过程的方法有更好的灵活性、可重用性和可扩展性,使得上述“分析—设计—实现”的开发过程也更加高效、快捷。

0904064面向对象编程技术课程教学大纲

《面向对象编程技术》课程教学大纲 一、课程基本信息 课程编号:0904064 课程中文名称:面向对象编程技术 课程英文名称:Object-Oriented Programming Technology 课程性质:专业选修课程 考核方式:考查 开课专业:自动化、测控技术与仪器、电气工程及自动化、探测制导与控制技术、生物 医学工程 开课学期:7 总学时: 32 (其中理论32学时,实验0学时) 总学分:2 二、课程目的 本课程的学习目的在于使学生掌握面向对象编程技术,使学生理解面向对象程序设计理论,结合MFC编程和VC6.0软件开发平台,切实掌握C++语言工具。将面向对象程序设计方法正确运用到程序设计实践中,为后续课程设计和软件开发打下扎实基础,并且为以后从事应用软件开发提供合适的工具。 三、教学基本要求(含素质教育与创新能力培养的要求) 1. 了解面向对象程序设计的思想,能够运用C++语言和MFC基础类库进行系统编程,具备软件开发的能力。 2. 掌握C++中类的说明方法,熟练掌握对象说明的方法、访问类对象成员的方法、封装的实现方法。充分理解成员函数重载的概念,掌握成员重载的方法。 3. 深刻理解单一继承、多重继承、两义性、支配规则和虚基类的

概念。 4. 理解运算符重载、模版的概念和含义,了解类运算符和友元运算符。 5. 了解流类库的概念,掌握使用流类库进行文件存取的方法。 6. 熟练掌握常用的MFC基础类库使用方法 四、教学内容与学时分配 第一章面向对象的程序设计方法和C++简介(2学时) 讲授面向对象程序设计的基本思想及基本概念、面向对象的软件开发环境与Visual C++开发平台。 第二章程序设计基础(2学时) C语言知识回顾,包括:数组、函数、结构和指针。 第三章类与对象(2学时) 熟练掌握类的定义、类与结构的区别、类对象说明的方法、访问类对象成员的方法、成员函数的定义和使用方法。 第四章构造函数和析构函数(2学时) 熟练掌握构造函数、析构函数、带参数的构造函数、重载构造函 数、默认构造函数、构造类成员。 第五章继承性和派生类(4学时) 掌握类的层次概念、单一继承、多重继承,派生类的定义和使用方法,派生类的访问权限、构造函数和析构函数的调用顺序。 第六章多态性和虚函数(2学时) 掌握函数重载、运算符重载、虚函数、友元函数。 第七章模板(2学时) 掌握模板的基本概念、定义方法及其分类。 第八章 C++的I/O系统(2学时) 掌握流的定义、格式化的I/O、文件与文件流。 第九章 MFC编程(12学时) 熟练掌握用微软基础类库(MFC)编写Windows应用程序的方法(2

c++面向对象课程设计报告

课程设计报告 课程名称面向对象程序设计 课题名称学生成绩管理系统 专业计算机科学与技术 班级计算机 1001 学号 01 姓名 指导教师李珍辉陈淑红李杰军 2011年 12 月 28 日

湖南工程学院 课程设计任务书 课程名称面向对象程序设计 课题学生成绩管理系统 专业班级计算机1001 学生姓名 学号 01 指导老师李珍辉陈淑红李杰军 审批 任务书下达日期 2011 年 11 月 15 日 任务完成日期 2011 年 12 月 28 日

一、设计内容与设计要求 1.课程设计目的: 面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。 2.课题题目 1)公司库存管理系统 2)高校学籍管理系统 3)高校工资管理系统 4)高校人事管理系统 5)通讯录程序设计 6)学生成绩管理系统 7) 图书管理系统 8)文本编辑器的设计与实现 9)学生考勤管理系统 10)公司人员管理系统 3.设计要求: ⑴设计课题题目:每位同学根据自己学号除以10所得的余数加1选择相 应题号的课题。随意换题者不记成绩。 ⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括 系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。②完 成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模 块图)。③完成系统详细设计:包括数据库需求分析;数据库概念结构设计(E -R图);数据库逻辑结构设计;类层次图;界面设计与各功能模块实现。④系 统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修 改和调整。⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出 每一步的操作步骤。⑥关键源程序(带注释)

第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(){

《面向对象程序设计》教学大纲资料

面向对象程序设计教学大纲西北民族大学数学与计算机科学学院 制定的时间:二〇一二年五月

面向对象程序设计教学大纲 一、课程基本资料 主讲教师:曹永春、蔡正琦、顿毅杰 主教材:《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年 4.《C++面向对象程序设计习题解析与上机指导》清华大学出版社,陈维兴主编,第2版,2009年 实验教材及参考书: 同上 课程性质:学科选修课 学分:4分 课时:72学时,其中理论课54学时,上机实验18学时 先修课程:计算机导论、C语言程序设计 课程结构:多媒体教学,课堂讨论、课内实验、课后作业 评价方案:(考核依据、评分的办法、权重的分布) ?平时成绩:10% 课堂表现(课堂提问、考勤、作业等) ?实验成绩:20%(实验报告、实验考试)

?期中成绩:20%(闭卷考试) .期末成绩:50%(闭卷考试) 参考书目: 名称编著者出版社出版年月《C++编程思想》刘宗田,袁兆山,潘 机械工业出版社2011年 秋菱等译 机械工业出版社2000年 《C++程序设计教程》H.M.Deitel, P.J.deitel 著,薛万鹏等译 《C++程序设计语言》Bjarne Stroustrup 机械工业出版社2005年 著,裘宗燕译 陈维兴主编清华大学出版社2009年 《C++面向对象程序设计 习题解析与上机指导》 推荐刊物: 1、《计算机学报》 2.《软件学报》 3.《程序员杂志》 4.《码农周刊》 5.《快乐码农》 相关网站: 1. 中国计算机学会https://www.doczj.com/doc/3413178190.html,/sites/ccf/ 2. 计算机爱好者协会https://www.doczj.com/doc/3413178190.html,/forum.php 3.C语言中文网https://www.doczj.com/doc/3413178190.html,/cpp 5.中国悠悠期刊网https://www.doczj.com/doc/3413178190.html,/ 6. 中国知网https://www.doczj.com/doc/3413178190.html,/ 文献 1.谭浩强.C程序设计.第4版.北京:清华大学出版社,2010

面向对象程序设计教学大纲

《面向对象程序设计》课程教学大纲 一课程说明 1.课程基本情况 课程名称:Java程序设计 英文名称:Java Programming 课程编号:2413223 开课专业:计算机科学与技术 开课学期:5 学分/周学时:4/4 课程类型:专业限选 2.课程性质(本课程在该专业的地位作用) 面向对象的程序设计是基于数据的,尽管数据和动作在软件的结构中最终都会发挥作用,但是从软件系统的整个生命周期来看,在一定程度上功能是易变的,而数据是相对稳定的。面向对象的程序设计抓住软件系统中相对稳定的因素,即数据,采用数据抽象和信息隐蔽的技术,减少了程序变化所带来的冲击和影响。并且,面向对象程序设计鼓励对现有代码的复用,而且使代码复用成为可能。另外,面向对象程序设计中的继承、多态及封装性,使得软件系统的构造有了技术准则的指导,使软件系统的质量得到进一步的提高。 3.本课程的教学目的和任务 Java 不依赖平台的特点使得它受到广泛的关注,Java已成为网络时代最重要的编程语言之一。目前,Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言,因为很多新的技术领域都涉及到了Java语言,国内外许多大学已将Java语言列入了本科教学计划,掌握Java 已经成为共识。《Java程序设计》是软件工程专业、计算机科学与技术等相关专业的一门重要的程序设计语言课程。通过本课程的学习,要求学生达到:理解Java 的平台无关、面向对象、多线程等特性;掌握Java语言的面向对象的程序设计方法;掌握Java中的网络编程、多线程程序设计、GUI设计等编程技巧;培养

学生应用Java解决和处理实际问题的思维方法与基本能力。 4.本课程与相关课程的关系、教材体系特点及具体要求 先修课程:《计算机应用基础》、《C语言程序设计》。 后续课程:《专业课程实践训练》、《Java语言课程设计》。 其他课程:《JSP》、《Java 网络编》、《J2EE》。 5.教学时数及课时分配 二教材及主要参考书 教材: 《Java面向对象程序设计》,耿祥义编著,清华大学出版社,2011年。 参考书: 《Java教程》(英文版,第二版),Roger Garside John Mariani编著,机械工业出版社,2003 《Java 2实用教程》(第三版),耿祥义编著,清华大学出版社,2006。 《Java 大学教程》,耿祥义,电子工业出版社,2004。 《Java 2实用教程(第三版)实验指导与习题解答》,张跃平耿祥义,清华

《面向对象程序设计C++》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(A) 班级:姓名:学号:分数: 试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。 (答题纸在本套试卷的第10页上) 一、选择题(每小题2分,共40分) 1、C++是()。 A. 面向对象的程序设计语言 B. 面向过程的程序设计语言 C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D. 非结构化的程序设计语言 2、面向对象程序设计思想的主要特征中不包括()。 A. 封装性 B. 多态性 C. 继承性 D. 功能分解,逐步求精 3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入: Microsoft Visual Studio 6.0! 所得的结果是str=()。 A. Microsoft Visual Studio 6.0! B. Microsoft C. Microsoft Visual D. Microsoft Visual Studio 6.0 4、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A. testDefaulParam(5); B. testDefaulParam(5,8); C. testDefaulParam(5,'#'); D. testDefaulParam(0,0,'*'); 5、下列语句中,将函数int sum(int x, int y)正确重载的是()。 A. float sum(int x, int y); B. int sum(int a, int b);

完成Java面向对象程序设计实验课的心得体会范文

Java面向对象程序设计实验课的心得体会经过这几周对Java面向对象程序设计的学习,让我更加了解到Java学习的重要性。 在实验课上,我们完成多个实验,在这个阶段的学习中,我从认识到熟悉,而后到能够自主运用。通过对Java的了解,我发现它确实有很多方便之处,它集抽象性、封装性、继承性和多态性于一体,实现了代码重用和代码扩充,提高了软件开发的效率。对于我们这个专业来说学好Java语言是很重要的,所以在实验的过程中我都尽力理解java编程思想、掌握基本技巧,尽量学到最多的知识。 学习程序设计的基本目的就是培养描述实际问题的程序化解决方案的关键技能,Java面向对象程序设计是一门实践性比较强的课程,在实际中,我们必须把理论和实践结合起来。在实验中,我们理解理论课上的知识,然后运用到实际的操作中,我们必须在现有的理论的基础上,进行实践。多次实验后,也让我看到了现在学习的一个很大弱点:只听不练,永远不会熟练运用;空记技巧,忽略思想,会在多变的习题中十分无奈。 Java思想:Java是一门面向对向语言,他定义一切都是对象面向对象,就是面对现实; 现实中的一切都是对象,他们有分类,就产生了“类”; 他们有不同,类和类之间的不同,使用类来区分; 同一个类中不同的对象的区别,使用成员区分。

所以,面向对象的内部逻辑是分类。 面向对象编程思想就象数学上的一些概念,如:空间、群、环、域等 原始的编程思想就象古典数学,人们只在一个集合上探讨问题,没有系统的方法(即运算)定义,于是仁者见仁、智者见智,这样在一定程度上造成了理论的一种混乱局面,不利于科学的发展。于是近代数学向公理化发展,这是什么意思呢?就是说,人们除了在限定论域(即上面的集合,面向对象也有此概念)外,还在此论域上加进了一套通用的、公认的运算(方法);集合加上集合上定义的运算就构成了数学上的空间、群等,在计算机领域里,就变成为“类”。这种集合上定义了操作的东西利用起来就方便多了,这使得人们讨论问题时都在给定集合的运算能力上下工夫,即有通用性可事半功倍。 面向对象的编程思想就要想近世代数的分析思想,首先要确定“论域”,即工程所涉及到的所有的“对象”,然后要分类处理,把隶属同一类别的对象集合在一起(做成一个集合),定义他们之间的运算性质及可以进行的操作,这样就构建了一个类,当然以后用到这个类的对象时都要通过已经定义了的操作来完成各项功能,这就是常要求的类的“类的成员变量要通过共有函数来操作”。 我想真正的面向对象编程思想不应该是编程思想,应该是面向对象的分析方法才对! 我的理解: 1、将分析过程为抽象的过程:简言之:分成多个小问题(组成部分),

面向对象程序设计C++课后题答案

第一章:面向对象程序设计概述 [1_1]什么是面向对象程序设计? 面向对象程序设计是一种新型的程序设计范型。这种范型的主要特征是: 程序=对象+消息。 面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。 面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。 [1_2]什么是类?什么是对象?对象与类的关系是什么? 在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。对象可以认为是:数据+操作 在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。 类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。 在面向对象程序设计中,总是先声明类,再由类生成对象。类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。 [1_3]现实世界中的对象有哪些特征?请举例说明。 对象是现实世界中的一个实体,其具有以下一些特征: (1)每一个对象必须有一个名字以区别于其他对象。

(2)需要用属性来描述它的某些特性。 (3)有一组操作,每一个操作决定了对象的一种行为。 (4)对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。例如:雇员刘名是一个对象 对象名:刘名 对象的属性: 年龄:36 生日:1966.10.1 工资:2000 部门:人事部 对象的操作:吃饭开车 [1_4]什么是消息?消息具有什么性质? 在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。当对象接收到发向它的消息时,就调用有关的方法,执行相应的操作。消息是一个对象要求另一个对象执行某个操作的规格的说明,通过消息传递才能完成对象之间的相互请求或相互协作。消息具有以下3个性质: (1)同一个对象可以接收不同形式的多个消息,做出不同的响应。 (2)相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的。(3)消息的发送可以不考虑具体的接收者,对象可以响应消息,也可以不响应。[1_5]什么是方法?消息和方法的关系是什么? 在面向对象程序设计中,要求某一对象作某一操作时,就向该对象发送一个响应的消息,当对象接收到发向它的消息时,就调用有关的方法,执行响应的操作。方法就是对象所能执行的操作。方法包括界面和方法体两部分。方法的界面也就是消息的模式,它给出了方法的调用协议;方法体则是实现某种操作的一系列计算步骤,也就是一段程序。在C++语言中方法是通过函数来实现的,称为成员函数。消息和方法的关系是:对象根据接收到的消息,调用相应的方法;反过来,有了方法,对象才能响应相应的消息。 [1_6]什么是封装和抽象?请举例说明。

面向对象程序设计完整版

Object- Orien ted Programmi ng C++ 主讲成长生 东华大学计算机科学与技术学院

第一章概述 § 1.1 面向对象程序设计的基本思想 C++是基于C语言发展的,又冲破C语言局限的面向对象的程序设计语言。它与Java 语言都作为当前计算机科学的主流语言, 越来越受到用户的欢迎。 要弄清楚什么是面向对象的程序设计, 首先了解和回顾传统的 ( Pascal(或C))结构化程序设计方法及其设计思想、程序结构及特点。SP(Structure Programming)是60 年代诞生的针对当时爆发的所谓”软件危机” , 为此发展形成了现代软件工程学的基础。 SP的总的设计思想是: . 自顶向下、层次化 . 逐步求精、精细化 程序结构是按功能划分基本模块的树型结构, 使模块间的关系尽可能简单独立。因此SP的程序的基本特点是: . 按层次组织模块(战略上划分战役) . 每一模块只有一个入口, 一个出口 ?代码和数据分离(程序=数据结构+算法) 归纳得到: SP 把数据和过程(代码、函数)分离为相互独立的实体, 用数据代表问题空间中的客体借以表示实际问题中的信 息; 程序代码则用来处理加工这些数据。程序员在编程时 必须时刻考虑所要处理的数据结构和类型。对不同的数据格式即使要作同样

的处理计算, 或者要对相同的数据格式作不同的处理都必须编写不同的程序(如两个整型数和两个浮点数相加)。这样的编程方法,即传统的SP方法设计出来的程序或系统其可重用的成分很少。其次把数据和代码作为不同的分离实体时, 总存在着用错误的数据调用正确的程序模块, 或用正确的数据调用错误的程序模块的危险, 从而使数据与程序始终保持兼容, 已成为程序员 的一个沉重的负担。在开发一个大型软件课题中, 当工程进入到 后期若用户改变了方案要求, 很容易使技术人员的前期工作受到摧毁性的打击,使其前功尽弃。为克服以上的弊端或者该SP方法难以控制处理的矛盾而产生了面向对象程序设计方法, 即Object —Oriented Programming ----------- OOP从二十世纪六十年代提出对象 的雏形, 到七十年代美国国防部的专用语言Ada 语言, 直到当前国际上流行的高品味的Java 和C++(Tc++,Balandc++ 及Vc++), , 应该讲OOP方法与技术吸取了SP的一切优点,同时又正视和顺应现实世界由物质和意识二部分组成。映射到面向对象的解空间就是: 具体事物—对象; 抽象概念—类。 OOP的基本原理是用问题领域的模型来模拟大千世界,从而设计出尽可能直接、自然地表示问题求解方法的软件, 这样的软件由对象组成, 而对象则是完整反映客观世界事物具有不可分割的静态属性(”数据结构” )与动态行为(”方法” )的。而且它们是既有联系又

52 面向对象程序设计的基本概念

一、教学目标 1、知识与技能 (1)认识面向对象程序设计中对象、类的概念及其特征。 (2)认识面向对象程序设计中类、对象和实例的关系。 2、过程与方法 (1)能够举例说明现实世界与程序世界的对象及其特征。 (2)能够举例说明现实世界与程序世界的类及其特征。。 (3)能够画图表示类、对象和实例三者的关系。 3、情感态度和价值观 (1)能关注面向对象程序设计的基本概念。 (2)能产生对对象、类等的认识的愿望。 (3)能认识到掌握对象、类的概念是学习面向对象程序设计的前提。 二、重点难点 教学重点: (1)对象及其特征。 (2)类及其特征。。 教学难点: (1)类及其特征。 (2)类的继承。 (3)类、对象和实例的关系。 三、教学环境 1、教材处理 教材选自广东教育出版社的信息技术(选修一)《算法与程序设计》第五章第二节,本节以理论为主。面向对象程序设计涉及到一些基本的概念,认识和理解类、对象的基本概念,以及类、对象和实例之间的关系是掌握面向对象程序设计的基础,是进一步学习面向对象功能实现的的前提。内容编排尽量贯彻原教材的意图展开。 教学方法采用讲解、学生自主学习和合作学习相结合的学习方法。 2、预备知识 学生已认识面向对象程序设计的基本思想,初步了解了类、对象等概念,通过比较得知两种程序设计方法的优劣所在。有了这些基础,学习者明显产生了想进一步学习面向对象设计知识的欲望。 3、硬件要求 本节内容是纯理论,可在普通教室上,也可选在多媒体电脑教室中完成,以供学生实践。 4、所需课时:1课时 四、教学过程 导入:1、简要介绍本节课的教学目标:紧密联系现实生活中的实例理解面向对象程序设计中的主要概念如对象、类及其关系,知道这些概念在面向对象思想中的重要性。 2、联系实际生活提问导入:现实生活中我们经常说到“类”这个概念,如人类、花类、鸟类等等。“人类”又可分为黑人、黄种人、白人等小类,这些小类可以具体到某个人如张三、李四、王五等。前面我们提到计算机软件的开发过程就是人们使用计算机语言将现实世界映射到计算机世界的过程。那么这些概念在面向对象程序设计中是采用怎样的机制来实现映射的呢?这节课我们来作充分的探讨。 (一)对象

面向对象程序设计基本概念

面向对象程序设计基本概念 面向对象设计是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,是建立在“对象”概念基础上的方法学。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。 对象:对象是要研究的任何事物。从一本书到一家图书馆,单的整数到整数列庞大的数据库、极其复杂的自动化工厂、航天飞机都可看作对象,它不仅能表示有形的实体,也能表示无形的(抽象的)规则、计划或事件。对象由数据(描述事物的属性)和作用于数据的操作(体现事物的行为)构成一独立整体。从程序设计者来看,对象是一个程序模块,从用户来看,对象为他们提供所希望的行为。 类:类是对象的模板。即类是对一组有相同数据和相同操作的对象的定义,一个类所包含的方法和数据描述一组对象的共同属性和行为。类是在对象之上的抽象,对象则是类的具体化,是类的实例。类可有其子类,也可有其它类,形成类层次结构。 消息:消息是对象之间进行通信的一种规格说明。一般它由三部分组成:接收消息的对象、消息名及实际变元。 面向对象主要特征: 封装性:封装是一种信息隐蔽技术,它体现于类的说明,是对象的重要特性。封装使数据和加工该数据的方法(函数)封装为一个整体,以实现独立性很强的模块,使得用户只能见到对象的外特性(对象能接受哪些消息,具有那些处理能力),而对象的内特性(保存内部状态的私有数据和实现加工能力的算法)对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。 继承性:继承性是子类自动共享父类之间数据和方法的机制。它由类的派生功能体现。一个类直接继承其它类的全部描述,同时可修改和扩充。继承具有传递性。继承分为单继承(一个子类只有一父类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,如果没继承性机制,则类对象中数据、方法就会出现大量重复。继承不仅支持系统的可重用性,而且还促进系统的可扩充性。 多态性:对象根据所接收的消息而做出动作。同一消息为不同的对象接受时可产生完全不同的行动,这种现象称为多态性。利用多态性用户可发送一个通用的信息,而将所有的实现细节都留给接受消息的对象自行决定,如是,同一消息即可调用不同的方法。例如:Print消息被发送给一图或表时调用的打印方法与将同样的Print消息发送给一正文文件而调用的打印方法会完全不同。多态性的实现受到继承性的支持,利用类继承的层次关系,把具有通用功能的协议存放在类层次中尽可能高的地方,而将实现这一功能的不同方法置于较低层次,这样,在这些低层次上生成的对象就能给通用消息以不同的响应。在OOPL中可通过在派生类中重定义基类函数(定义为重载函数或虚函数)来实现多态性。

面向对象程序设计实验教学大纲

《面向对象程序设计》实验教学大纲 课程总学时:64学分:4 实验学时:16实验个数: 6个实验学分:1分 课程性质:专业必修课适用专业:计算机类专业 教材及参考书:《C++语言程序设计(第四版)》,郑莉、董渊编著,北京:清华大学出版社,2011 大纲执笔人:大纲审定人: 一、实验课的性质与任务 本课程实验大纲是面向计算机专业学生开设的《C++程序设计》实验课计划指导大纲,是依据《面向对象程序设计》课程教学计划指导大纲编制。本课程主要讲述了利用C++进行程序设计的思想和方法,既有面向过程和面向对象的程序设计的理论知识,又包括极强的实践应用能力的培养。本实验大纲力求结合该课程教学计划大纲的相应内容,由浅入深的指导学生了解和掌握如何利用C++程序设计语言进行程序设计,提高学生的动手能力,做到理论和实践相结合,培养学生理解,分析程序,编写,调试程序的能力,使之能把程序设计应用到今后的专业学习中。 二、实验目的与要求 1.实验目的 通过本课程的学习,使学生掌握面向过程的程序设计思想和编程思路,初步掌握面向对象的程序设计思想,学会调试程序,能独立编写实用的小型程序。 2.实验要求 (1)学生应该自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程习惯; (2)应独立完成所布置习题。为保证尽量在统一安排的上机时间内编译运行通过程序, 学生应事先设计好程序。 面向对象程序设计实验课程(071016) 序号实 验 编 号 实验名称 学 时 必 做 选 做 学 分 数 实验类型 内容提要 基 本 操 作 验 证 综 合 设 计 1 1 类与对象 4 √√函数重载,类的设计与使用 2 2 C++程序的结 构 2 √√ 作用域与生 存期,静态成 员 3 3 数组、指针与 字符串 4 √√ 三种常见编 程元素的使 用 4 4 继承与派生 2 √√派生类的设

面向对象程序设计概述

1.什么是结构化程序设计方法?这种方法有哪些优点和缺点? 【解答】结构化程序设计方法是指20世纪60年代开始出现的高级语言程序设计方法,由于采用了数据结构化、语句结构化、数据抽象和过程抽象等概念,使程序设计在符合客观事物与逻辑的基础上更进了一步。结构化程序设计的思路是:自顶向下、逐步求精。程序结构由具有一定功能的若干独立的基本模块(单元)组成,各模块之间形成一个树状结构,模块之间的关系比较简单,其功能相对独立,模块化通过子程序的方式实现。结构化程序设计方法使高级语言程序设计开始变得普及,并促进了计算机技术的深入应用。 虽然结构化程序设计方法采用了功能抽象、模块分解与组合,以及自顶向下、逐步求精的方法,能有效地将各种复杂的任务分解为一系列相对容易实现的子任务,有利于软件开发和维护;但与面向对象程序设计方法相比,结构化程序设计存在的主要问题是,程序的数据和对数据的操作相互分离,若数据结构改变,程序的大部分甚至所有相关的处理过程都要进行修改。因此,对于开发大型程序具有一定的难度,软件的可重用性差,维护工作量大,不完全符合人类认识世界的客观规律。 2.面向对象程序设计有哪些重要特点? 【解答】软件设计的目的是为了解决日常生活中存在的各种实际问题,面向对象程序设计与以往各种程序设计方法的根本区别是程序设计的思维方法的不同。它主要具有如下重要特点: (1)面向对象程序设计实现了较直接地描述客观世界中存在的事物(即对象)及事物之间的相互关系,它所强调的基本原则是直接面对客观事物本身进行抽象,并在此基础上进行软件开发,将人类的思维方式与表达方式直接应用在软件设计中。 (2)面向对象的程序设计将客观事物看作具有属性和行为的对象,通过对客观事物进行抽象来寻找同一类对象的共同属性(静态特征)和行为(动态特征),并在此基础上形成类。 (3)面向对象的程序设计将数据和对数据的操作封装在一起,提高了数据的安全性和隐蔽性。

面向对象程序设计实践教学大纲

《面向对象程序设计实践》课程教学大纲 课程代码:030732038 课程英文名称:Object Oriented Programming Practice 课程总学时:12 讲课:2 实验:10 上机:0 适用专业:电子信息学科学与技术专业 大纲编写(修订)时间:2017.5 一、大纲使用说明 (一)、课程地位及教学目标 本课程是电子信息科学与技术专业本科生的一门重要的专业基础课, 是《面向对象程序设计》课程的辅助教学环节,以锻炼学生面向对象的编程能力为目的,巩固课堂所学知识点,加深对课程中所学理论知识的理解,依据《面向对象程序设计》课程教学计划指导大纲编制。本课程主要利用C++进行程序设计的思想和方法,既有面向过程和面向对象的程序设计的理论知识,又包括极强的实践应用能力的培养。本课程大纲力求结合该《面向对象程序设计》课程教学大纲的相应内容,由浅入深的指导学生了解和掌握如何利用C++程序设计语言进行程序设计,提高学生的动手能力,做到理论和实践相结合,培养学生理解,分析程序,编写,调试程序的能力,使之能把程序设计应用到今后的专业学习中。 (二)知识、能力及技能方面的基本要求 1.基本知识:学会使用通用的C++软件集成开发环境,介绍建立C++程序的基本方法,通过面对像对象理论课程各知识点针对性的专项训练,培养工程化的软件设计习惯。 2.基本理论和方法: (1)熟悉VisualC++、DevC++等软件开发环境,并掌握基本控制台程序设计方法; (2)熟悉C++新增的语言特性,如bool、const常数、特殊函数、引用、new、异常等; (3)掌握类的定义方法、掌握对象的定义和使用; (4)掌握对象的构造、析构函数的定义方法和规则,掌握this指针、静态成员、友元等; (5)掌握继承机制中基类、派生的定义方法,掌握不同权限的成员定义、了解多继承的方法, 了解复制兼容性; (6)掌握虚函数的定义,掌握积累指针指向派生类对象,并且调用虚函数的方法; (7)掌握运算符重载的设计方法,了解模板和STL技术; (8)了解Windows程序设计的基础方法。 3.基本技能:主要培养学生基于C++语言的面向对象编程技能,要求学生能够建立新的程序工程,能够使用已有类,能够编写新的类,掌握继承机制,会使用虚函数和运算符重载,能够编写简单Windows程序,能熟练使用编程软件的各种工具,会单步调试程序,能够发布程序作品等。 (三)实施说明 1.教学方法:本课程主要培养学生的动手能力,使学生在编程的训练中,验证书本上的理论知识,真正掌握面向对象程序设计的实现方法,进一步理解面向对象系统的理论,并能将面向对象程序设计思想应用到问题的求解过程中。教师在讲解过程中应深入浅出、抓住编程实践中普遍存在的问题,联系实际、结合实例,才能收到较好的效果。 2.教学手段:本课程包含2学时理论课时,建议指导教师选择在实验室授课,配合电子白板、多媒体等辅助教学系统,可以更加直观、有效的引导学生学习编程软件的使用方法,演示例子程序及典型BUG的解决办法。

面向对象程序设计教程_(马石安版)

第1章习题答案 名词解释 抽象:抽象(Abstract)就是忽略事物中与当前目标无关的非本质特征,而强调与当前目标有关的本质特征,从而找出事物的共性,并把具有共性的事物划为一类。面向对象方法中的抽象,是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 封装:面向对象方法中的封装就是把将抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息:消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 填空题 (1) 面向过程的结构化程序设计方法面向对象程序设计方法 (2) 顺序选择循环 (3) 程序=数据结构+算法程序=对象+消息 (4) 过程类 (5) 抽象性封装性继承性多态性 选择题 (1) B (2) C (3) D (4) C (5) D (6) A (7) A (8) B C (9) A D 判断题 (1) t (2) f (3) f (4)f (5) t (6) f (7) f (8) t 简答题 (1) 结构化程序设计方法着眼于系统要实现的功能,从系统的输入和输出出发,分析系统要做哪些事情,进而考虑如何做这些事情,自顶向下地对系统的功能进行分解,来建立系统的功能结构和相应的程序模块结构,有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。 随着程序规模与复杂性的增长,这种面向过程的结构化程序设计方法存在明显的不足之处。首先是数据安全性问题,由于数据被每个模块所共用,因此是不安全的,一旦出错,很难查明原因。其次是可维护性及可重用性差,它把数据结构和算法分离为相互独立的实体,一旦数据结构需要改变时,常常要涉及整个程序,修改工作量极大并容易产生新的错误。每一种相对于老问题的新方法都要带来额外的开销。另外,图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。 (2) 面向对象的程序设计方法中,将程序设计为一组相互协作的对象(Object)而不是一组相互协作的函数。在程序中,属性用数据表示,用来描述对象静态特征;行为用程序代码实现,用来描述对象动态特征。可见,在面向对象的程序设计方法中,对象是数据结构和算法的封装体。对象之间存在各种联系,它们之间通过消息进行通信。程序可表示为: 程序=对象+消息 在面向对象程序设计中,它着重于类的设计。类正是面向对象语言的基本程序模块,通过类的设计,来完成实体的建模任务。类通过一个简单的外部接口,与外界发生关系。一个类中的操作不会处理到另一个类中的数据,这样程序模块的独立性、数据的安全性就有了良好的保障。程序的执行取决于事件发生的顺序,由顺序产生的消息来驱动程序的执行。不必预先确定消息产生的顺序,更符合客观世界的实际。并且面向对象程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。

相关主题
文本预览
相关文档 最新文档