东北大学 软件设计模式 参考资料

上传人:aop****021 文档编号:137053056 上传时间:2020-07-04 格式:DOC 页数:6 大小:137.50KB
返回 下载 相关 举报
东北大学 软件设计模式 参考资料_第1页
第1页 / 共6页
东北大学 软件设计模式 参考资料_第2页
第2页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《东北大学 软件设计模式 参考资料》由会员分享,可在线阅读,更多相关《东北大学 软件设计模式 参考资料(6页珍藏版)》请在金锄头文库上搜索。

1、一、单选题1. 以下标识符中,正确的是: AA._nName B.sizeof C.16A D.xl02. 在c#程序中,入口函数的正确声明为: BA. static int main().B. static void Main()C.static void main()D.void Main()3. 在C#中,引用命名空间system 的正确语句是: AA. using System;B. #import;C. uses System;D. #include;4. 在C#中,表示一个字符串的变量应使用以下哪条语句定义? BA. CString str; B. string str; C. D

2、im str as string D. char * str; 5. 结构化程序设计的3种结构是: DA. 顺序结构、if结构、for结构B. if结构、ifelse结构、else if结构C. while结构、dowhile结构、foreach结构D. 顺序结构、分支结构、循环结构6. 能正确表示逻辑关系“a=10 或a=10 or a=10|a=10&a=10|a=0 7. 分析下列程序:public class class4private string _sData = ;public string sDataset_sData = value; 在Main 函数中,在成功创建该类的对象

3、obj 后,下列哪些语句是合法的? AA. obj.sData = It is funny!; B. Console.WriteLine(obj.sData); C. obj._sData = 100; D. obj.set(obj.sData); 8. 在类的外部可以被访问的成员是: AA、public成员 B、private成员C、protected成员D、protected internal成员9. 在定义类时,如果希望类的某个方法能够在派生类中进一步进行改进,以处理不同的派生类的需要,则应将该方法声明成_C_。A. sealed 方法B. public 方法C. visual 方法D.

4、 override 方法10. 关于结构类型,下列说法哪些是正确的? AA. 结构是值类型B. 结构中不允许定义带参数的实例构造函数;C. 结构中不允许定义析构函数D. 结构中可以定义成员方法,但是方法内不能使用this 指针11. 判断下列类MyClass 的定义中哪些是合法的抽象类? AA. abstract class MyClass public abstract int getCount(); B. abstract class MyClass abstract int getCount(); C. private abstract class MyClass abstract in

5、t getCount(); D. sealed abstract class MyClass abstract int getCount(); 12. C#中执行下列语句后整型变量X和Y的值是多少? D Int x = 100; Int y = +x;A. x = 100 y = 100B. x = 101 y = 100C. x = 100 y = 101 D. x =101 y = 10113. 在编写c#程序时,若需要对一个数组中的所有元素进行处理,则使用_B_循环体最好? A. while循环B. for each 循环C. do循环D. for 循环14. 下面是几条动态初始化二维数

6、组的语句,指出其中正确的: DA. int arr5=new int4,5;B. int arr6 = new int4, 5;C. int arr7,=new int4,5;D. int, arr8=new int4,5;15. 下面有关析构函数的说法中,不正确的是: DA. 析构函数中不可以包含return语句B. 一个类中只能有一个析构函数C. 析构函数在对象被撤销时,被自动调用D. 用户可以定义有参析构函数16. 下列说法哪个正确? BA. 不需要定义类,就能创建对象B. 属性可以定义为抽象的C. 对象中必须有属性和方法D. 常量不能作为类成员17. 下面有关静态方法的描述中,正确的是

7、: AA. 静态方法属于类,不属于实例B. 静态方法可以直接用类名调用C. 静态方法中,可以访问非静态的局部变量D. 静态方法中,可以访问静态的变量18. 以下描述错误的是:AA. 在C+中支持抽象类,但在C#中不支持抽象类。B. C+中可在头文件中声明类的成员,而在CPP文件中定义类的成员;在C#中没有头文件并且在同一处声明和定义类的成员。C. 在C#中可使用 new 修饰符显式隐藏从基类继承的成员。D. 在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。19. 下列关于构造函数的描述正确的是:CA. 构造函数可以声明返回类型。B. 构造函数不可以用private修饰C.

8、 构造函数必须与类名相同D. 构造函数不能带参数20. 变量x的值为25,要输出x的值,下列正确的语句是:CA. System.Console.writeline(“x”)B. System.Console.WriteLine(“x”)C. System.Console.writeline(“x=0”,x)D. System.Console.writeline(“x=x”)二:判断题1. 软件危机与软件本身的特点有关。( )2. 结构化程序设计的3种基本结构是顺序、循环和选择。( )3. 面向数据流的设计以面向对象分析阶段的数据流图为基础。( )4. 软件测试方法主要白盒测试和黑盒测试两种。(

9、 )5. 螺旋模型包括制定计划、概要设计,详细设计和工程实施四个主要部分。( )6. 变换型数据流图的一般步骤是分析数据、变换数据、打印结果。( )7. 对象通过封装实现信息隐藏,封装的目的就是阻止非法访问。( )8. 在面向对象方法中,对象是对类的抽象,特殊类是对一般类的抽象。( )9. 面向过程方法的缺点是过程和数据结合的过于紧密。( )10. 高耦合是优秀设计的重要标准,有助于使得系统中各部分之间联系紧密。( )11. 消息可以用顺序图和协作图这两种图来表示。( )12. 状态图、顺序图、协作图和部署图属于动态建模机制。( )13. 顺序图描述系统中对象间通过消息进行的交互,强调消息在时

10、间轴上的先后顺序。( )14. 提倡设计模式的根本原因是增强代码复用,增加可维护性。( )15. 里氏代换原则的本质是在同一个继承体系中的对象应该有共同的行为特征。( )16. 工厂方法是抽象工厂模式的扩展。( )17. 提倡设计模式的根本原因是增强代码复用,增加可维护性。( )18. 抽象类不可以被实例化。( )19. 当创建派生类对象时,先执行基类的构造函数,后执行派生类的构造函数。( )20. 虚函数是可由子类继承并重写的函数。( )三:简答题1. 软件危机的主要表现有哪些?答:“已完成”的软件不满足用户的需求;开发进度不能保障;软件开发成本难以准确估算;软件产品的质量没有保证。2. 试

11、简述瀑布模型。答:瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。3. 简述建立动态模型时,构造事件跟踪图的方法。答:动态模型主要由状态图和事件跟踪图构成。各类对象的状态图通过共享事件合并起来,就构成了系统的动态模型,而状态图的构造过程可从事件跟踪图开始。事件跟踪图实质上是扩充的图示脚本,因此,应该对每一个脚本构造一张事件跟踪图。4. 设计模式的基本要素有

12、哪些?答:设计模式的基本要素包括:(1)模式名称:一个助记名,它用一两个词来描述模式的问题、解决方案和效果。(2)问题:描述了应该在何时使用模式。解释设计问题和问题存在的前因后果,它可能描述了特定的设计问题,也可能描述了导致设计方案不灵活的类或对象结构。(3)解决方案:描述设计的组成成分,它们之间的相互关系及各自的职责和协作方式。解决方案一般并不描述特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。 (4)效果:描述了模式应用的效果及使用模式应权衡的问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性

13、或可移植性的影响。5. 什么是创建型设计模式,它的目的是什么?答:创建型设计模式就是用来创建对象的模式,抽象了实例化的过程。创建型模式的目的将具体的对象的实例化操作封装起来,客户端只了解自己需要某个实例,但不必了解该实例的创建过程。这体现了面向对象设计方法中“高内聚,低耦合”的设计原则。四:综合题1. 试举一个例子并设计类适配器模式的UML结构图。(7分)答:有一个 MediaPlayer 接口和一个实现了 MediaPlayer 接口的实体类 AudioPlayer。默认情况下,AudioPlayer 可以播放 mp3 格式的音频文件。还有另一个接口 AdvancedMediaPlayer

14、和实现了 AdvancedMediaPlayer 接口的实体类。该类可以播放 vlc 和 mp4 格式的文件。想要让 AudioPlayer 播放其他格式的音频文件。为了实现这个功能,需要创建一个实现了 MediaPlayer 接口的适配器类 MediaAdapter,并使用 AdvancedMediaPlayer 对象来播放所需的格式。AudioPlayer 使用适配器类 MediaAdapter 传递所需的音频类型,不需要知道能播放所需格式音频的实际类。AdapterPatternDemo,我们的演示类使用 AudioPlayer 类来播放各种格式。2. 定义一个抽象的运动员(Player)基类,具有抽象方法Train方法。然后以该类为基类,派生出BasketballPlayer、FootballPlayer等类。(8分)/ 抽象类:运动员public abstract class Playerpublic abstract void Train();public class BasketballPlayer : Playerpublic override void Train() Console.WriteLine(Baske

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号