面向对象的设计方法与C++编程

合集下载

C语言中的面向对象

C语言中的面向对象

C语言中的面向对象(1)-类模拟和多态,继承在面向对象的语言里面,出现了类的概念。

这是编程思想的一种进化。

所谓类:是对特定数据的特定操作的集合体。

所以说类包含了两个范畴:数据和操作。

而C语言中的struct仅仅是数据的集合。

(liyuming1978@)1.实例:下面先从一个小例子看起输出结果:11It is B.c=13It is A.a=1It is B_Fun2.类模拟解说:我在网上看见过一篇文章讲述了类似的思想(据说C++编程思想上有更加详细的解说,可惜我没空看这个了,如果有知道的人说一说吧)。

但是就象C++之父说的:“C++和C 是两种语言”。

所以不要被他们在语法上的类似就混淆使用,那样有可能会导致一些不可预料的事情发生。

其实我很同意这样的观点,本文的目的也不是想用C模拟C++,用一个语言去模拟另外一个语言是完全没有意义的。

我的目的是想解决C语言中,整体框架结构过于分散、以及数据和函数脱节的问题。

C语言的一大问题是结构松散,虽然现在好的大型程序都基本上按照一个功能一个文件的设计方式,但是无法做到更小的颗粒化――原因就在于它的数据和函数的脱节。

类和普通的函数集合的最大区别就在于这里。

类可以实例化,这样相同的函数就可以对应不同的实例化类的变量。

自然语言的一个特点是概括:比如说表。

可以说手表,钟表,秒表等等,这样的描述用面向对象的语言可以说是抽象(继承和多态)。

但是我们更要注意到,即使对应于手表这个种类,还是有表链的长度,表盘的颜色等等细节属性,这样细微的属性如果还用抽象,就无法避免类膨胀的问题。

所以说类用成员变量来描述这样的属性。

这样实例并初始化不同的类,就描述了不同属性的对象。

但是在C语言中,这样做是不可能的(至少语言本身不提供这样的功能)。

C语言中,如果各个函数要共享一个变量,必须使用全局变量(一个文件内)。

但是全局变量不能再次实例化了。

所以通常的办法是定义一个数组。

以往C语言在处理这样的问题的时候通常的办法就是这样,比如说socket的号,handel等等其实都是数组的下标。

c语言程序设计与现代方法

c语言程序设计与现代方法

c语言程序设计与现代方法C语言程序设计与现代方法随着计算机科学和技术的快速发展,C语言作为一种广泛应用的编程语言,对于现代程序设计方法的理解和应用变得越来越重要。

本文将介绍C语言程序设计的现代方法,包括模块化编程、面向对象编程、并发编程和测试驱动开发等方面的内容。

一、模块化编程模块化编程是一种将复杂的程序分解为独立的模块,每个模块完成特定任务的编程方法。

在C语言中,可以通过函数来实现模块化编程。

通过将一个大型程序分解为多个小的函数,可以提高代码的可读性和可维护性。

同时,模块化编程也使得多人协作开发变得更加容易,每个人负责不同的模块,最后进行整合。

二、面向对象编程面向对象编程是一种以对象为基础,通过封装、继承和多态等机制来组织和管理程序的编程方法。

虽然C语言本身并不直接支持面向对象编程,但可以通过结构体和函数指针等技术来实现类似的效果。

通过将数据和操作封装在结构体中,可以实现数据的隐藏和封装,提高代码的可靠性和复用性。

三、并发编程随着多核处理器的普及,程序的并发性变得越来越重要。

并发编程是一种利用多线程或多进程并行执行任务的编程方法。

C语言提供了多线程和进程管理的相关库函数,可以方便地实现并发编程。

通过合理地设计和管理线程或进程,可以提高程序的性能和响应速度。

四、测试驱动开发测试驱动开发是一种在编写代码之前先编写测试用例的开发方法。

通过先编写测试用例,可以明确代码的功能和需求,减少后期的调试和修复工作。

在C语言中,可以使用各种单元测试框架来实现测试驱动开发。

通过编写和执行测试用例,可以提高代码的质量和稳定性。

总结C语言程序设计与现代方法密不可分,模块化编程、面向对象编程、并发编程和测试驱动开发等方法在实际开发中起到了重要作用。

通过合理运用这些方法,可以提高代码的可读性、可维护性和性能,从而更好地满足现代程序设计的需求。

因此,对于学习和掌握这些现代方法,对于C语言程序员来说至关重要。

金旭亮《C面向对象程序设计》2024完整版发布

金旭亮《C面向对象程序设计》2024完整版发布
案和技术,如分布式文件系统、NoSQL数据 库等,提供数据存储方案在实际应用中的案例和实现方法。
26
图形界面开发基础
GUI开发基本概念
常见GUI开发框架
GUI控件与布局管理
GUI事件处理与交互设计
解释图形用户界面(GUI)的 定义、作用和基本组成元素, 阐述GUI开发的基本原理和流 程。
详细讲解套接字编程的原理和步骤,包括 套接字的创建、绑定、监听、连接、发送 和接收数据等操作。
异步非阻塞网络编程
网络编程实践
探讨异步非阻塞网络编程的优势和实现方 式,如使用事件驱动模型、非阻塞I/O操作 等提高网络通信效率。
通过实例演示网络编程的基本步骤和注意事 项,包括服务器端和客户端的编程实现,处 理粘包、断包等问题。
16
STL标准库使用方法
STL概述及组成
STL(Standard Template Library)是C标准库中的一部分 ,提供了一系列通用的算法、容 器、迭代器和函数对象等组件。 STL具有高效、可移植和易用的特 点,可大大简化C程序的开发过程 。
2024/1/28
STL容器使用方法
STL容器是一组预先定义好的类模 板,用于存储各种类型的数据。 常用的STL容器包括vector、list 、map、set等。使用STL容器时 ,需包含相应的头文件并指定数 据类型。
介绍常见的GUI开发框架和技 术,如Qt、MFC、WPF等, 分析不同框架的优缺点和适用 场景。
详细讲解GUI控件的基本概念 和常用类型,探讨布局管理的 原理和实现方式,如使用容器 控件、布局管理器等。
阐述GUI事件处理的原理和常 用方式,如使用回调函数、事 件监听器等,探讨交互设计的 原则和方法,提供GUI开发实 践中的案例和实现方法。

c语言程序设计与现代方法

c语言程序设计与现代方法

c语言程序设计与现代方法C语言程序设计与现代方法引言C语言是一种广泛应用于计算机科学和软件开发领域的编程语言。

它的设计初衷是为了提供一种高效、可移植、底层的编程语言,使程序员能够直接操作计算机硬件资源。

随着计算机技术的不断进步和发展,C语言的应用也不断演化和创新,现代方法在C语言程序设计中扮演着重要的角色。

一、面向对象编程面向对象编程是一种现代的程序设计方法。

在C语言中,虽然没有内置的面向对象特性,但是可以通过结构体和函数指针等技术来模拟面向对象的概念和功能。

通过面向对象编程,可以更好地组织和管理程序的代码,提高代码的可读性和可维护性。

二、模块化设计模块化设计是现代程序设计的重要思想之一。

在C语言中,可以通过函数和文件的划分来实现模块化设计。

将程序划分为多个模块,每个模块负责特定的功能,通过接口和数据传递来实现模块之间的通信和交互。

模块化设计可以提高代码的复用性和可测试性,减少代码的耦合性。

三、并发编程随着多核处理器的普及,利用并发编程来提高程序的性能和效率成为一种重要的需求。

C语言提供了一些线程库和同步机制来支持并发编程。

通过使用这些现代的并发编程方法,可以充分利用多核处理器的能力,提高程序的并发性和响应能力。

四、异常处理异常处理是现代程序设计中非常重要的一部分。

在C语言中,可以通过错误码和异常处理函数来处理异常情况。

通过合理地设计异常处理机制,可以提高程序的鲁棒性和可靠性,增加程序的容错性。

五、内存管理内存管理是C语言程序设计中一个非常重要的方面。

现代的内存管理方法可以帮助程序有效地利用内存资源,避免内存泄漏和内存溢出等问题。

通过使用动态内存分配和智能指针等技术,可以更好地管理程序的内存使用情况,提高程序的性能和稳定性。

六、测试和调试测试和调试是现代程序设计中必不可少的环节。

在C语言中,可以使用各种测试框架和调试工具来进行程序的测试和调试。

通过合理地设计测试用例和运用调试工具,可以发现并修复程序中的错误和问题,提高程序的质量和可靠性。

浅谈面向对象的程序设计c面向对象程序设计

浅谈面向对象的程序设计c面向对象程序设计

浅谈面向对象的程序设计c面向对象程序设计软件开发过程就是使用计算机语言将人们关心的现实世界的问题映射到计算机世界进行求解的过程。

开发的软件具有良好的可扩充性,软件模块具有可重用性,才能够在激烈的竞争中得以不断发展、完善、生存。

实际上,要设计出好的软件,就要运用好的程序设计方法和程序设计语言。

面向对象技术是一种全新设计和构造软件的技术,它尽可能的模拟人类习惯的思维方式,使开发软件的方法和过程尽可能接近人类认识世界解决问题的方法与过程,把数据和信息相结合,通过增加代码的可重用性、可扩充性和程序自动生成功能来提高编程效率,大大减少了软件维护的开销。

现这种技术已被越来越多的软件设计人员所青睐,成为了当今计算机应用开发领域的主流技术。

1面向过程和面向对象的技术对比 1.1面向过程在面向对象程序设计方法出现之前,开发程序时采用面向过程的方法。

面向过程的程序设计注重高质量的数据结构,注重算法的描述,回答的是“做什么、怎么做”的问题。

基本过程是:采用结构化思想,自顶而下,按功能把一个复杂的系统分解成许多内聚性强、耦合较少的功能模块,最后用代码组合模块,从而实现系统的功能。

例如要编写一个求解矩形面积和周长的程序,采用面向过程的设计方法的一般设计步骤为:①将任务分解为求解矩形面积和求解矩形周长两个子任务。

②编写求解矩形面积和矩形周长的函数。

③在主程序中调用求解矩形面积和矩形周长的函数,完成程序功能。

这种设计方法使得数据和运算相分离,程序被描述为:程序=模块+模块+…,模块=算法+数据结构。

1.2面向对象面向对象的基本思想是把程序看作是相互协作的对象集合,它是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。

侧重于描述系统结构,注重需求分析和设计反复,回答的是“用何做、为何做”的问题。

采用面向对象的设计方法求解矩形面积和周长的设计步骤为:1.2.1通过分析确定系统的核心对象为矩形。

1.2.2编写描述矩形对象的类,包括描述矩形长、宽等属性和求解矩形面积和周长的方法。

C语言面向对象编程及其实现方法

C语言面向对象编程及其实现方法

C语言面向对象编程及其实现方法在计算机编程领域,面向对象编程(Object-Oriented Programming,简称OOP)是一种常用的编程范式。

C语言作为一种强大而灵活的编程语言,在实现面向对象编程方面也有其独特的方法。

本文将介绍C语言面向对象编程的基本概念、实现方法和相关技巧。

一、C语言面向对象编程基本概念1.类和对象面向对象编程的核心是类(Class)和对象(Object)。

类是一种抽象数据类型,描述了一类具有相同属性和方法的对象集合。

对象是类的实例,它具有类所描述的属性和方法。

2.封装封装是面向对象编程的一个重要特性,通过将数据和相关操作封装在类中,实现了数据的隐藏和保护。

只有类内部可以直接访问类的私有成员,外部只能通过类提供的接口访问数据。

3.继承继承允许一个类派生出另一个类,使得子类继承父类的属性和方法,同时可以根据需要增加新的属性和方法。

继承可以实现代码的重用,提高了软件的可维护性和扩展性。

4.多态多态是指同一操作对于不同的对象,可以有不同的行为。

通过多态,一个函数或方法可以具有多个不同的实现,从而实现了动态绑定和运行时多态性。

二、C语言实现面向对象编程的方法1.结构体和函数C语言中可以使用结构体和函数的组合来实现类和对象的概念。

结构体可以用来定义类的属性,而函数则可以定义类的方法。

通过使用指针来操作对象,可以实现对对象的封装和访问控制。

2.函数指针和回调函数函数指针是一种特殊的指针类型,它可以指向函数的地址。

通过使用函数指针和回调函数,可以在C语言中实现类似于虚函数(virtual function)和多态的功能。

3.宏和预处理器C语言的宏和预处理器可以用来定义类和对象的相关宏,从而简化代码的编写。

宏可以用来定义类的属性和方法,预处理器可以用来生成类的实例。

4.模块化编程面向对象编程倡导的模块化思想也可以在C语言中得到体现。

通过将代码分为不同的模块,每个模块实现特定的功能,可以提高代码的可读性、可维护性和重用性。

面向对象程序设计c++语言

面向对象程序设计c++语言

面向对象程序设计(Object-Oriented Programming,OOP)是一种编程范式,它主张将现实世界的对象抽象为具有数据和行为的程序实体。

C++ 是一种广泛使用的面向对象编程语言,其特点是将 C 语言的程序结构扩展为包含面向对象的特性。

C++ 的面向对象编程核心概念包括:1. 类(Class):类是对象的抽象表示,定义了一组包括数据和方法的结构。

类可以看作是对象的蓝图或模板。

class MyClass {// 成员变量和成员函数的声明};1. 对象(Object):是类的一个实例,具有由类定义的数据和方法。

通过类,我们可以创建多个相同类型的对象。

MyClass obj1;MyClass obj2;1. 封装(Encapsulation):封装是将对象的内部结构(数据和方法)与外部环境隔离,提供一种访问和修改对象数据的安全机制。

// 使用 private 和 public 限定符实现封装class MyClass {private:int data;public:void setData(int d) {data = d;}int getData() {return data;}};1. 继承(Inheritance):继承是面向对象编程中重用代码的一种方法,通过继承,一个类可以从另一个类派生出子类,并从基类继承成员变量和成员函数。

class Parent {// 基类(父类)的定义};class Child : public Parent {// 派生类(子类)的定义};1. 多态(Polymorphism):多态是指基类的指针或引用可以指向派生类的对象,并调用派生类重写的虚函数。

class Base {public:virtual void func() {std::cout << "Base::func()" << std::endl;}};class Derived : public Base {public:void func() override {std::cout << "Derived::func()" << std::endl;}};Base* pObj = new Derived;pObj->func(); // 输出 "Derived::func()"以上简要介绍了 C++ 中面向对象程序设计的几个核心概念。

程序设计相关概念CCVC及VC使用

程序设计相关概念CCVC及VC使用
采用自顶向下逐步细化采用自顶向下逐步细化面向对象程序设计方法面向对象程序设计方法当当cc程序达到一定的规模程序达到一定的规模2500025000行以上行以上后维护修改相后维护修改相当困难引入了面向对象程序设计的内容当困难引入了面向对象程序设计的内容c汇编语言
程序
要让计算机按照人们的愿望工作,必须由人们事先 编制好程序,并输入到计算机,让计算机执行程序 才能产生相应的操作结果。
12
C语言
C语言是国际上广泛流行的高级语言。 系统软件、应用软件
1973年贝尔实验室的D.M.Ritchie ,设计出了C语 言,并用之改写了原来用汇编编写的UNIX。
1978年影响深远的名著《The C Programming Language》由 Brian W.Kernighan和Dennis M.Ritchie 合著,被称为标准C。
35
程序执行后,屏幕切换到输出结果的窗口,显 示输出结果。
第1行: 程序的输出 第2行:是VC++在输出完运行结果后由VC++6.0系统 自动加上的一行信息,通知用户∶“按任何一键以便 继续”。
36
计算圆面积
37
38
计算圆周长
#include <stdio.h> #define PI 3.1416 void main() {
每个逻辑步骤有可实现的语句来完成(可行性); 每个步骤间的关系是唯一的(确定性); 算法要能终止(防止死循环)(有穷性)。
3
算法的表示 ➢ 自然语言 ➢伪 代 码 ➢ 图形工具——流 程 图
4
程序流程图
概念:以特定的图形符号加上说明,表示算 法的图 ,称为流程图或框图。
符号及其意义:
流程线
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北京邮电大学200X-200X学年第一学期《面向对象的设计方法与C++编程》期末考试试卷+扩展+复习题试题一:填空题(没空一分,共20分)请在括号内填入你认为正确的内容。

1.软件工程是指导(计算机软件)开发和维护的(工程学科)。

2.应用软件工程方法开发软件系统的根本目的是为了改善下述四项软件品质因素:提高所开发的软件系统的(效率);降低所开发的软件系统的(成本);改善所开发的软件系统的(质量);缩短所开发的软件系统的(开发周期)。

3.抽象的对象模型由(属性)和(方法)两个部分构成。

4.一个消息必须具备的两个要素是(接受消息的对象标识)和(接受消息的对象的方法标识)。

5.一个对象拥有另一个对象的(部分)或(全部)的属性和方法的关系则称为(继承)关系。

6.失去(创建具体对象实例的(制造对象))能力的类成为抽象类。

7.一个类的属性不能出现对象拷贝则被称为(类属性)。

8.面向对象技术的三大特征是(封装)、(继承)和(多态)。

9.共生包容关系中的被包容类对象与包容类对象是(同时连带)生成的。

10.同时出现在两个具有关联关系的对象内的相同属性被称为(连接属性)。

课程复习--补充题:1.软件的生存周期是一个软件产品从(定义)、(开发)、(使用)到(废弃)的时间的总合。

2.C++语言中的静态成员函数是(类方法)的具体实现。

3.连接属性是(关联/链接)关系的两个对象内的属性。

4.边界类与(actor(角色))对呈一一对应关系。

5.复合聚合关系中的(聚合)类对象极其依赖(被聚合)类对象,在实现上往往具有被同时(构造)的特征,因而具有极高的(耦合度)。

试题二:是非判断题(每题1分,共20分)请在题后的括号内填入√(你认为正确时)或×(你认为错误时)。

1.消息必须含有返回信息。

(错)2.一个类必然具有生成对象的能力。

(错)(抽象类不具备)3.在包容关系中的被包容类也具有封装性。

(对)4.关联关系只是一个动作的抽象。

(错)(表示两个类之间的联系,通过这种联系,一个类可以访问到另外一个类的属性和方法。

)5.一个类也可以接收消息。

(对)6.关联关系中的作用名标识了该关联关系的终点对象的恰当地位。

(对)7.状态图是反映整个系统动态运行时状态变化的图形工具。

(对)8.多重继承必然存在不确定问题。

(错)9.候选键是具有关联关系的两个类中属性的一部分。

(对)10.面向对象设计方法的一个重要目标便是实现“可重用软件的设计”。

(对)11.继承关系中的成员覆盖就是重载的一种形式。

(错)(多态的一种)12.一个派生类对象的方法不能访问其继承的基类对象的某些成员是由于这些基类对象的成员不存在于派生类对象中。

(错)(继承的方式不同 public protected private)13.一个派生类对象也可以向其继承的积累对象发消息。

(对)14.状态的自动变迁是由于一个内部的事件所引发的。

(错)(由于一个内部的事件所引发的是条件变迁)15.抽象类是不包含任何属性的类。

(错)16.调用类方法必须向该类的对象发消息。

(错)17.复合包容关系中的被包容对象必须在包容对象被激活的同时构造。

(对)18.继承关系中也存在有关联关系。

(对)19.使用C++语言只能编写面向对象的程序。

(错)(这不是扯淡吗)20.在关联关系的两端插入角色描述(Role Name)有助于对该关联关系的可读性。

(对)试卷添加:1、菱形多重派生结构必然存在多个基类对象问题。

()2、嵌入式聚合包容关系中的被聚合包容的对象必须在包容对象构造的同时构造。

(×)(同时叫复合聚合(包容)关系)3、对于事件流脚本的归纳与抽象可以实现状态图的优化。

(√)4、面向对象的分析方法中存在自顶向下、逐步求精的逻辑分析过程。

(×)5、候选键是具有关联关系的两个类最小属性集合。

(√)6、类方法可以实现消息转发。

(√)7、课程复习--补充题:1.只有属性的类也具有封装性。

(×)2.在面向对象技术系统分析中,问题陈述是获取对象的重要来源。

(√)3.在面向对象技术系统分析中不使用数据流图。

(×)4.一个对象的方法只能改变本对象的属性值。

(×)(对象行为 1.主动:直接改变自身属性值;2.被动:通过访问其他对象而改变自身属性值)5.一个对象内存在另一个对象的关系称为包容关系。

(×)(聚合关系)6.含有定性的属性的类就是抽象类。

(×)(抽象类是包含一种或多种抽象方法的类,它本身不需要构造实例。

定义抽象类后,其它类可以对它进行扩充并且通过实现其中的抽象方法,使抽象类具体化。

)7.当使用一个类方法时,消息是传向一个类的。

(√)8.一个对象所呈现的不同状态称为多态。

(×)(“一个接口,多种实现”,就是同一种事物表现出的多种形态叫做多态)9.静态链接是在面向对象技术语言编译时建立的对象关系。

(√)10.RUP 的开发周期由三个阶段所构成。

(×)(四个初始阶段—细化—构造—交付)11.RUP 中的系统行为是对其全部的外来激励进行作用和反作用。

(√)12.RUP 中的系统行为可以从对象模型中获得。

(×)(用例模型)试题三:单项选择题(每题1分,共16分)下列各题均提供了四个可供选择的答案,但其中只有一个是正确的,请在各题中的括号内填入你认为正确的答案代号A、B、C或D;不填或填错不得分。

1.面向对象技术是(A )。

A.指导构建软件的系列法则B.一种探索可被认同的新理论C.由Grady Booch提出的一种动态的新语言D.基于抽象与模块化原理的新技术2.(B)项目对建模的要求度最小。

A.立交桥B.沙发C.列车D.光盘3.一个模型(C)。

A.对于十分理解其工作内容的团队成员可以不使用B.必须是有结构的和动作的体系C.是一个实例的简化D.一个构建精确计划的原由4.在UML中,使用(A)词汇表示可以将具有共同用途的模型元素组成多个组。

A.PackageB.ClassC.EncapsulationD.Generalization5.最好的模型将与(B)联系在一起。

A.Java-Script代码B.实体C.C++D.与面向对象开发者联系在一起的命题6.使用UML建模时(C)的处理不是其最基本的特征。

A.迭代与增量B.用例驱动C.弹性设计D.以架构为核心7.建模的根本目的是(D)。

A.有助于一个系统的可视化B.获得一个准备构建系统的模板C.见证设计成果D.上述三条的总和8.一个对象的状态(C)。

A.是一个被称为“状态”的属性或属性集B.始终不发生常规的变化C.被描述成对象的属性和关系D.仅是一个对象可能存在的条件9.以下RUP中的(D)是聚焦在结构问题上。

A.用例B.处理C.实现D.逻辑10.短语(B)可以最好的体现泛化关系。

A.is a part ofB.is a kind ofC.is a replica ofD.is an inheritance of11.封装(B)。

A.允许对处于封装态的内容进行直接处理B.涉及到信息的隐藏C.会导致维护成本的提高D.在实现时所引起的改变会影响到客户端12.一个可见的对象行为可以被模型化为该对象的(C)。

A.属性B.责任C.操作D.方法13.多态可以被描绘成(A)。

A.在一个接口上隐藏多个不同实现的形态B.继承C.信息放置形态D.泛化14.将模块与计划合并为一体化的目的是(A)。

A.在可管理的单元上降低一些复杂程度B.建构的模块便于交流C.创建巨大且难于理解的系统D.系统的局部不能独立开发15.Rational推出的RUP方法中所倡导的迭代式开发模式的最根本目的是为了(C)。

A.降低开发成本B.降低开发风险C.减少开发时间D.节省开发的人力资源16.一个类(D)。

A.是一个对象的封装B.表现为一个对象的分层结构C.是一个对象的实例D.是一个对象的抽象定义试卷补充:1、C++语言广泛使用运算符函数的目的是()2、抽象类不定构建对象的原因()3、对象构成封装形态的根本意义()4、利用继承派生关系中的重构手段获得的新系统是为了()5、多态手段的目的()6、最好的模型将于(实体)联系起来试题四:分析题(共30分)1.指出下列对象之间的关系。

(每题1分,共10分)1)软件工程与面向对象的分析与设计方法(包容关系)2)矛与盾(关联关系)3)数字交换系统与通信系统(继承关系)4)人与心脏(包容关系)5)Pentium芯片与Pentium IV芯片(继承关系)6)计算机与磁带机(关联?关系)7)多媒体与三维图形设备(继承关系)8)石油与汽油(关联?关系)(继承派生?)9)道路与车辆(关联关系)10)煤炭与碳元素(继承关系)-- 抽象类->继承课程复习--补充题:·地球与太阳(关联关系)·家庭影院与音箱(包容关系)·信息与印刷品(继承关系)·钥匙与锁(关联关系)·灯泡与灯丝(包容关系)·计算机与打印机(关联关系)·公司与雇员(包容关系)·建筑体与墙(包容关系)2.试在下图给定的括号内写出已知关联联系得作用名(Role Name)。

(每图1分,共4分)3.阅读下述C++程序后试在其右侧对应的对象图中填充描述其关系的对象模型符号。

(3分)4.阅读下述C++程序后试在其右侧对应的对象图中填充描述其关系的对象模型符号,并试在题目的下方写出执行本程序的输出结果。

(4分)执行本程序的输出结果是:1 B继承A & B包含A???A* p1 = new B(1); →p1 → p = NULL A* p2 = new B(2, (A*)p1); →p2 → p → p15.某大学推行完全学分制的学籍管理方式,其规定如下:学生在入学后的第一个学年内必须完成学绩分超过23分才能被允许(收到确认通知)进入第二学年的学习,否则将被按照肄业处理,进入第二学年后可以被允许(收到确认通知)进入下一个学年学习的最低学绩分数分别为27、30和30分(含对应分数者)。

完成第四个学年的学绩分30分(含30)以上者可以准许毕业(获得毕业证书)。

若在后三学年中的某一年中没有完成该学年规定的学绩分者,则可以在对应学年中重新学习一年,若仍不能达到规定学绩分者的学籍将被自动按肄业处理。

试据上述脚本绘制出对应的状态图。

(9分)解:本题的状态图如下:亮;外电压为50V 时信号灯呈红色;外电压为100V 时信号灯呈黄色;外电压为150V 时信号灯呈绿色。

在不改变外电压的条件下,该信号灯在呈现黄色或绿色20 秒后会分别自动变回红色或黄色。

若此时改变其外电压则信号灯的颜色仍会呈现为对应电压的颜色(如100V 外电压的作用下变为黄色;在150V 外电压的作用下会变为绿色)。

相关文档
最新文档