文档库 最新最全的文档下载
当前位置:文档库 › 中南大学软件体系结构实验三

中南大学软件体系结构实验三

中南大学软件体系结构实验三
中南大学软件体系结构实验三

实验3 创建型设计模式实验

实验学时: 2

每组人数: 1

实验类型: 3 (1:基础性2:综合性3:设计性4:研究性)

实验要求: 1 (1:必修2:选修3:其它)

实验类别: 3 (1:基础2:专业基础3:专业4:其它)

一、实验目的

1.熟练使用面向对象设计原则对系统进行重构;

2.熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的创建型设计模式,包括简单工厂模式、工厂方法模式、抽象工厂模式和单例模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。

二、实验内容

1.在某图形库API中提供了多种矢量图模板,用户可以基于这些矢量图创建不同的显示图形,图形库设计人员设计的初始类图如下所示:

Circle

+ + + + +init ()

setColor ()

fill ()

setSize ()

display ()

...

: void

: void

: void

: void

: void

Triangle

+

+

+

+

+

init ()

setColor ()

fill ()

setSize ()

display ()

...

: void

: void

: void

: void

: void

Rectangle

+

+

+

+

+

init ()

setColor ()

fill ()

setSize ()

display ()

...

: void

: void

: void

: void

: void

Client

在该图形库中,每个图形类(如Circle、Triangle等)的init()方法用于初始化所创建的图形,setColor()方法用于给图形设置边框颜色,fill()方法用于给图形设置填充颜色,setSize()方法用于设置图形的大小,display()方法用于显示图形。

客户类(Client)在使用该图形库时发现存在如下问题:

①由于在创建窗口时每次只需要使用图形库中的一种图形,因此在更换图形时需要修改客户类源代码;

②在图形库中增加并使用新的图形时需要修改客户类源代码;

③客户类在每次使用图形对象之前需要先创建图形对象,有些图形的创建过程较为复杂,导致客户类代码冗长且难以维护。

现需要根据面向对象设计原则对该系统进行重构,要求如下:

①隔离图形的创建和使用,将图形的创建过程封装在专门的类中,客户类在使用图形时无须直接创建图形对象,甚至不需要关心具体图形类类名;

②客户类能够方便地更换图形或使用新增图形,无须针对具体图形类编程,符合开闭原则。

绘制重构之后的类图并说明在重构过程中所运用的面向对象设计原则。

2.使用简单工厂模式设计一个可以创建不同几何形状(Shape),如圆形(Circle)、矩形(Rectangle)和三角形(Triangle)等的绘图工具类,每个几何图形均具有绘制Draw()和擦除Erase()两个方法,要求在绘制不支持的几何图形时,抛出一个UnsupportedShapeException

异常,绘制类图并编程模拟实现。

3. 现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF图片读取器(GifReader)用于读取GIF格式的图片、JPG 图片读取器(JpgReader)用于读取JPG格式的图片。图片读取器对象通过图片读取器工厂ImageReaderFactory来创建,ImageReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其子类GifReaderFactory和JpgReaderFactory用于创建具体的图片读取器对象。试使用工厂方法模式设计该程序,绘制类图并编程模拟实现。需充分考虑系统的灵活性和可扩展性。

4. 某软件公司欲开发一套界面皮肤库,可以对桌面软件进行界面美化。不同的皮肤将提供视觉效果不同的按钮、文本框、组合框等界面元素,其结构如下图所示:

该皮肤库需要具备良好的灵活性和可扩展性,用户可以自由选择不同的皮肤,开发人员可以在不修改既有代码的基础上增加新的皮肤。试使用抽象工厂模式设计该皮肤库,绘制类图并编程模拟实现。

5. 使用单例模式的思想实现多例模式,确保系统中某个类的对象只能存在有限个,例如两个或三个,设计并编写代码实现一个多例类。

6. 使用单例模式设计一个多文档窗口(注:在Java AWT/Swing开发中可使用JDesktopPane和JInternalFrame来实现),要求在主窗体中某个内部子窗体只能实例化一次,即只能弹出一个相同的子窗体,如下图所示,编程实现该功能。

(注:用C#或C++实现类似功能也可以)

三、实验要求

1. 选择合适的面向对象设计原则对系统进行重构,正确无误地绘制重构之后的类图;

2. 结合实例,正确无误地绘制简单工厂模式、工厂方法模式、抽象工厂模式和单例模式的模式结构图;

3. 使用任意一种面向对象编程语言实现简单工厂模式、工厂方法模式、抽象工厂模式和单例模式实例,代码运行正确无误。

四、实验步骤

1. 选择合适的面向对象设计原则对系统进行重构,使用PowerDesigner绘制重构之后的类图;

2. 结合实例,使用PowerDesigner绘制简单工厂模式实例结构图并用面向对象编程语言实现该模式实例;

3. 结合实例,使用PowerDesigner绘制工厂方法模式实例结构图并用面向对象编程语言实现该模式实例;

4. 结合实例,使用PowerDesigner绘制抽象工厂模式实例结构图并用面向对象编程语言

实现该模式实例;

5. 结合实例,使用PowerDesigner绘制多例模式实例结构图并用面向对象编程语言实现该模式实例;

6. 结合实例,使用PowerDesigner绘制单例模式实例结构图并用面向对象编程语言实现该模式实例。

五、实验结果

1. 重构之后的类图:

重构过程中所使用的面向对象设计原则及简要说明:

单一职责原则

开闭原则

里氏代换原则

依赖倒转原则

2. 类图:

实现代码:

3. 类图:

实现代码:

4. 类图:

实现代码:

5. 类图:

实现代码:

6. 类图:

实现代码:

中南大学软件体系结构实验4-结构型设计模式实验

实验4 结构型设计模式实验 实验学时: 2 每组人数: 1 实验类型: 3 (1:基础性 2:综合性 3:设计性 4:研究性) 实验要求: 1 (1:必修 2:选修 3:其它) 实验类别: 3 (1:基础 2:专业基础 3:专业 4:其它) 一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的结构型设计模式,包括适配器模式、组合模式和外观模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。 二、实验内容 1. 现有一个接口DataOperation定义了排序方法sort(int[]) 和查找方法search(int[], int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch 的binarySearch(int[], int)方法实现了二分查找算法。试使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。绘制类图并编程实现。(要求实现快速排序和二分查找,使用对象适配器实现) 2. Windows Media Player和RealPlayer是两种常用的媒体播放器,它们的API结构和调用方法存在区别。现在你的应用程序需要支持这两种播放器API,而且在将来可能还需要支持新的媒体播放器,请问如何设计该应用程序绘制类图并编程模拟实现。 3. 使用组合模式设计一个杀毒软件(AntiVirus)的框架,该软件既可以对某个文件夹(Folder)杀毒,也可以对某个指定的文件(File)进行杀毒,文件种类包括文本文件TextFile、图片文件ImageFile、视频文件VideoFile。绘制类图并编程模拟实现。 4. 某教育机构组织结构如下图所示:

中南大学数据库习题 复习题目【爆款】.doc

第九章习题 一、选择题(1-10小题为多选题,11-13小题为单选题) 1. 在SQL Server2000中属于表级完整性约束的是(AC )。 A)实体完整性约束B)域完整性约束C)参照完整性约束D)以上三者均是 2. 在SQL Server2000中实现数据完整性的主要方法有(ABCD )。 A)约束B)默认C)规则D)触发器 3. 在SQL Server2000的数据完整性控制中属于声明数据完整性的是(ABC )。 A)约束B)默认C)规则D)触发器 4. 在SQL Server2000的数据完整性控制中属于过程数据完整性的是(AD)。 A)存储过程B)默认C)规则D)触发器 5. 在SQL Server中,以下(AB)约束属于域完整性约束。 A)DEFAULT B)CHECK C)NULL D)FOREIGN KEY 6. SQL Server2000数据库系统中一般采用(ABCD )以及密码存储等技术进行安全控制。 A)用户标识和鉴别B)存取控制C)视图D)触发器 7. SQL Server2000使用权限来加强系统的安全性,语句权限适用的语句有(B )。 A)EXECUTE B)CREATE TABLE C)UPDATE D)SELECT 8. 有关登录帐户、用户、角色三者的叙述中正确的是()。 A)登录帐户是服务器级的,用户是数据库级的 B)用户一定是登录帐户,登录帐户不一定是数据库用户 C)角色是具有一定权限的用户组 D)角色成员继承角色所拥有访问权限 9. SQL Server2000的安全性管理包括()。 A)数据库系统登录管理B)数据库用户管理 C)数据库系统角色管理D)数据库访问权限的管理。 10. SQL Server2000使用权限来加强系统的安全性,通常将权限分为(AC)。 A)对象权限B)用户权限C)语句权限D)隐含权限 11. SQL Server 2000提供了4层安全防线,其中SQL Server2000通过登录账号设置来创建附加安全层,用户只有登录成功,才能与SQL Server2000建立一次连接,属于(B )。 A)操作系统的安全防线B)SQL Server2000的运行安全防线 C)SQL Server2000数据库的安全防线D)SQL Server2000数据库对象的安全防线 12. SQL Server2000中,为便于管理用户及权限,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为(B )。 A)帐户B)角色C)登录D)SQL Server用户 13. 在SQL Server中,有关页的叙述中正确的是()。 A)页是除行外的最小数据单位

软件体系结构KWIC实验

《软件体系结构》 实验:软件体系结构风格之应用

一、实验目的 通过 KWIC 实例分析,理解和掌握软件体系结构风格设计与实现。 二、实验容 多种软件风格设计与实现之 KWIC 实例: 1.采用主/子程序体系结构风格实现 KWIC 关键词索引系统 2.采用面向对象体系架构风格实现 KWIC 关键词索引系统 3.采用管道过滤 体系架构风格实现 KWIC 关键词索引系统 4.采用事件过程调用体系架构风格实现 KWIC 关键词索引系统 三、实验要求与实验环境 熟练掌握基于主/子程序体系结构风格的 KWIC 关键词索引系统,在此基础上, 完成基于面向对象体系架构风格的 KWIC 关键词索引系统设计与实现。选做基于 管道过滤体系架构风格的 KWIC 关键词索引系统;选做基于事件过程调用体系架 构风格的 KWIC 关键词索引系统。 实验课前完成实验报告的实验目的、实验环境、实验容、实验操作过程等 容;实验课中独立/团队操作完成实验报告的实验操作、实验结果及结论等容;每 人一台 PC 机,所需软件 Win2003/XP 、 UML 工具( EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0 等。 四、实验操作 1、采用主/子程序体系结构风格实现 KWIC 关键词索引系统 主程序/子程序风格(Main Program/Subroutine Style)将系统组织成层次结 构,包括一个主程序和一系列子程序。主程序是系统的控制器,负责调度各子程

序的执行。各子程序又是一个局部的控制器,调度其子程序的执行。设计词汇表: 主程序 main(), 子程序 shift(), sort() 方法,方法的调用,返回构件和连接件类 型: 构件:各类子程序,如 shift(),sort() 连接件:方法的调用基本的计算模型: 子程序有 shift(), sort()方法,shift() 对单词进行移位,sort()方法对单词进行 排序 风格的基本不变性: 主程序有顺序地调用子程序,单线程控制。 KWIC 的主/子程序体系结构风格示意图如下所示: 主程序/子程序风格的重要设计决策与约束有:

中南大学软件学院Java WEB 考点

1、HTTP协议请求报文以及响应报文 2、JAVA Socket编程Socket以及ServerSocket 3、WEB服务器概念Tomcat服务器目录结构和基本配置server.xml文件 4、什么是Servlet? 怎样实现一个自定义Servlet? 5、Servlet基本配置 6、ServletAPI 包括HttpServlet、HttpServletRequest、HttpServletResponse、ServletConfig、 ServletContext 7、service方法以及doGet和doPost方法 8、servlet生命周期 9、怎样获取网页提交的参数? 10、会话HttpSession和Cookie 11、调用一个已定义好的Servlet有哪些方式 12、表单提交数据到Servlet 中文乱码处理 13、客户端页面向服务端servlet传递参数有哪些方式 14、JSP的运行原理以及基本语法 15、JSP隐式对象 16、JavaScript基本语法 17、JavaScript中的对象 18、JavaScript与AJAX 19、基于对象的Javascript以及继承的实现 客户端/服务器的优势在于: 服务器和客户端分摊任务,分别负责部分处理工作; 服务器可以同时为多台客户端服务; 多个客户端可以同时访问服务器上的相同数据。 IP 网络ID:网络ID标识了计算机或网络设备所在的网段; 主机ID:主机ID标识了特定的主机或网络设备 特殊IP地址: 0.0.0.0和127.0.0.1就是两个此类地址,第一个称为缺省路由,后一个是环回地址;127.0.0.1被保留用于用户主机的本地IP话务,它被分配给一个特殊接口,即起到闭合电路作用的环回接口 端口 端口使用一个16位的数字来表示,它的范围是0~65535,1024以下的端口号保留给预定义的服务,如:http使用80端口; https://www.wendangku.net/doc/7216987372.html,包 https://www.wendangku.net/doc/7216987372.html,包可以实现Java的网络功能,

中南大学软件体系结构重要资料

第一章软件体系结构概述(5分) 一、软件体系结构的定义 ●国内普遍接受的定义:软件体系结构包括构件、连接件和约束,它是可预制和可重 构的软件框架结构。 ●软件体系结构= 构件+ 连接件+ 约束 二、软件体系结构的优势 ●容易理解 ●重用 ●控制成本 ●可分析性 第二章软件体系结构风格(10分) 一、软件体系结构风格定义 ●软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。 An architectural style defines a family of systems in terms of a pattern of structural organization. ●体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。 词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连 接件组合起来的。 An architectural style defines a vocabulary of components and connector types, and a set of constraints on how they can be combined. 二、常见的体系结构风格 ●管道和过滤器

?每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。 ?过滤器风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。 ●数据抽象和面向对象组织 ?数据的表示方法和它们的相应操作被封装在一个抽象数据类型或对象中。 ?这种风格的构件是对象或者说是抽象数据类型的实例。 ?对象通过函数和过程的调用来进行交互。 ●基于事件的隐式调用 ?构件不直接调用一个过程,而是触发或广播一个或多个事件。 ?事件的触发者并不知道哪些构件会被这些事件影响。 ●分层系统 ?组织成一个层次结构。 ?每一层都为上一层提供了相应的服务,并且接受下一层提供的服务。 ●仓库系统 ?构件:中心数据结构(仓库)和一些独立构件的集合。 ?仓库和在系统中很重要的外部构件之间的相互作用。 ●过程控制环路 ?源自于控制理论中的模型框架,将事务处理看成输入、加工、输出、反馈、再输入的一个持续的过程模型。 ?通过持续性的加工处理过程将输入数据转换成既定属性的“产品”。 ●C2风格

中南大学数据库考试题库

1?在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的()阶段。 A需求分析 B概念设计 C逻辑设计 D物理设计 参考答案 B 数据库设计步骤: (1)规划(必要性、可行性,总目标) (2)需求分析(分析用户活动,产生业务流程图;确定系统范围,产生系统范围图;分析用户活动涉及的数据,产生数据流程图;分析系统数据,产生数据字典。)(3)概念设计(设计出独立于计算机硬件和DBMS的概念模式。E-R模型是主要设计工具) (4)逻辑结构设计(把概念设计阶段设计好的全局E-R模式转换成与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构,包括数据库模式和外模式)(5)数据库的物理设计(对于给定的数据模型选取一个垠适合应用环境的物理结构的过程。数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法)(6)数据库的实现(建立实际数据库结构;装入试验数据对应用程序进行调试;装入实际数据,进入试运行状态) (7)数据库的运行与维护(维护数据库的安全性与完整性;监测并改善数据库运行性能; 根据用户要求对数据库现有功能进行扩充;及时改正运行中发现的系统错误) 2.关于数据库概念设计阶段的工作目标,下列说法错谋的是 A定义和描述应用系统涉及的信息结构和范围 B定义和描述应用系统中数据的属性特征和数据之间的联系 C描述应用系统的数据需求 D描述需要存储的记录及其数量 参考答案 3. SQL Server 2000的字符型系统数据类型主要包括()。 A int、money、char B char> varchar、text

C datetime、binary> int D char、varchar> int 参考答案 B 4. 具有联系的相关数据按一定的方式组织排列,并构成一定的结构,这种结构即()。 A数据模型 B数据库 C关系模型 D数据库管理系统 参考答案 A 5. 在数据库系统中,下列哪个映像关系用于提供数据与应用程序间的逻辑独立性? A外模式/模式 B模式/内模式 C外模式/内模式 D逻辑模式/内模式 参考答案 B 6. 关系模型的数据结构是 A树 B图 C表 D二维表 参考答案 D 7. 数据字典是数据库管理系统的重要组成部分,其中存储的各类信息通常由 A数据库管理员维护 B程序员维护 C数据库管理系统维护 D—般用户维护 参考答案 A 8. E-R图用于描述数据库的

(完整)中南大学软件学院架构复习大全,推荐文档

●使用Hibernate框架进行ORM,可大幅度减少开发时手工使用SQL和JDBC的出错。优点:简单。缺 点:多了查询,慢(但实际对于一个JAVA EE应用而言,hibernate通常的处理流程是:从数据看里加载记录->将信息发送到表现层供用户修改或删除->将所做修改重新保存到数据库。在这种处理流程下,应用本身就需要两条SQL语句)。 ●iBats---半自动化ORM框架提供了基于JDBC之上的一层简单抽象,是一种基于SQL语句映射的 低级别ORM方案,使用原生态SQL作为查询语言。 ●OGNL是Object Graph Navigation Language,对象图导航语言。ONGL是一种强大的表达式语言,它通 过简单一致的表达式语法来读取和设置Java对象的属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转换等功能。WEB容器是指一种安装在服务端计算机中的特定软件。此类软件遵循HTTP 协议,主要功能是负责侦听指定端口,接收客户端的请求并解析,然后将指定的响应页面发送到客户端。EL表达式EL是一种简单而强大的语言,提供了在JSP脚本元素范围外使用运行时表达式的功能。 Web Services应用程序组件,使用开放协议进行通信,独立的并可自我描述,可通过使用UDDI来发现,可以被其他应用程序使用,XML是其基础。 ●Mybatis一个持久数据映射框架,提供了基于JDBC之上的一层简单抽象,是一种基于SQL语句映射 的低级别ORM方案,使用原生态SQL作为查询语言,用来完成数据持久化MyBaits基本原理:在XML 文件中定义SQL语句,预留参数占位符;在运行时,占位符被指定的参数值取代,参数可能来自参数映射表、JavaBean属性、或者简单的参数对象。在执行SQL查询时,结果字段被映射到对象,映射的方式与参数映射一样。 ●ORM框架ORM, Object-Relational Mapping, 对象-关系数据库映射框架。在关系型数据库和业务实体对 象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只要像平时操作对象一样操作它就可以了。 ●拦截器(Interceptor)是Struts2的一个重要特性。Struts2的大多数核心功能都是通过拦截器来实现的, 如类型转换、对象组装、输入校验、文件上传等。Struts2将其大多数核心功能通过拦截器来实现,而不是分散在Action中实现,有利于系统的解耦,实现“hot-plug”。需要某个功能就“plug-in”一个拦截器,而不需要修改和业务相关的Action代码。编写一个用于安全验证的拦截器第一步:修改UserAction第二步:编写拦截器类AuthenticationInterceptor extends AbstractInterceptor第三步:配置拦截。 ●DI强制将组件的构建和使用分开。(组件的生产、组件的使用、接口的定义、运行时注入)。借 助spring框架,实现工厂的效果。如果类与类之间没有依赖(不能提取接口),则不用IOC(如果横向有依赖,即action与action之间有关系,说明没有设计好)功能太小,也不用IOC,spring是做大系统的。DI有两种最常用的方式:构造注入——保留依赖的先后顺序。Set注入——更多使用步骤:定义组件接口:墨盒接口ink;纸张接口paper;使用接口开发打印机:printer(使用ink和paper接口)组装打印机:在printer里。给ink和paper创建set方法创建或得到ink和paper的实现类。组装——在src下创建applicationContext.xml(依赖注入)。运行打印机 ●Spring框架的一项最基本的功能就是充当创建对象的工厂,具体步骤为:第一步:读取并 分析spring配置文件(如XML配置文件);第二步:通过反射机制,创建并集成上述配置文件中的对象;第三步:将创建的对象传回给应用代码。

中南大学软件体系结构设计模式实验二

中南大学软件体系结构设计模式实验二 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

实验3 设计模式实验二 实验学时: 4 每组人数: 1 实验类型: 3 (1:基础性 2:综合性 3:设计性 4:研究性) 实验要求: 1 (1:必修 2:选修 3:其它) 实验类别: 3 (1:基础 2:专业基础 3:专业 4:其它) 一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的行为型设计模式,包括职责链模式、命令模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。 二、实验内容 1. 某企业的SCM(Supply Chain Management,供应链管理)系统中包含一个采购审批子系统。该企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开董事会讨论决定。如下图所示: 试使用职责链模式设计并模拟实现该系统。 2. 房间中的开关是命令模式的一个实例,现用命令模式来模拟开关的功能,可控制对象包括电灯和电风扇,绘制相应的类图并编程模拟实现。 3. 某软件公司欲开发一个基于Windows平台的公告板系统。系统提供一个主菜单(Menu),在主菜单中包含了一些菜单项(MenuItem),可以通过Menu类的addMenuItem()方法增加菜单项。菜单项的主要方法是click(),每一个菜单项包含一个抽象命令类,具体命令类包括OpenCommand(打开命令),CreateCommand(新建命令),EditCommand(编辑命令)等,命令类具有一个execute()方法,用于调用公告板系统界面类(BoardScreen)的open()、create()、edit()等方法。现使用命令模式设计该系统,使得MenuItem类与BoardScreen类的耦合度降低,绘制类图并编程实现。 4. 某实时在线股票软件需要提供如下功能:当股票购买者所购买的某支股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的所有股民。试使用观察者模式设计并实现该系统,要求绘制相应的类图并编程模拟实现。 5. 某公司欲开发一套机房监控系统,如果机房达到某一指定温度,温度传感器(Thermosensor)将自动传递信号给各种响应设备,例如警示灯(CautionLight)将闪烁(flicker())、报警器(Annunciator)将发出警报(alarm())、安全逃生门(SecurityDoor)将自动开启(open())、隔热门(InsulatedDoor)将自动关闭(close())

中南大学数据库题库03数据表

有职工工资表(职工号、姓名、日期、基本工资、奖金、工资合计),其中“工资合计”等于同一行数据的“基本工资”与“奖金”之和,在职工工资表中插入一行数据时(设一次只插入一行数据)能实现自动计算“工资合计”列的值的代码是( )。 A ALTER TABLE 职工工资表 ADD CHECK(工资合计=基本工资+奖金) B UPDATE 职工工资表SET 工资合计=基本工资+奖金 C INSERT INTO 职工工资表(工资合计) VALUES (基本工资+奖金) D CREATE TRIGGER tgz ON 职工工资表

FOR INSERT AS UPDATE 职工工资表SET 工资合计=a.基本工资+a.奖金 FROM 职工工资表 a JOIN INSERTED b ON a.职工号=b.职工号 AND a.日期=b.日期 参考答案 D 在SQL Server中,有教师表(教师号,姓名,职称,工资)。现要为“教授”的工资增加400。下列语句中正确的是( )。 A UPDATE 教师表SET 工资=工资+400 WHERE 职称= ′教授′ B UPDATE 教师表WITH 工资=工资+400

WHERE 职称= ′教授′ C UPDATE FROM 教师表SET 工资=工资+400 WHERE 职称= ′教授′ D UPDATE 教师表SET 工资+400 WHERE 职称= ′教授′ 参考答案 A 在为student_db数据库的St_Info表录入数据时,常常需要一遍又一遍地输入“男”到学生“性别”列,以下()方法可以解决这个问题。 A 创建一个DEFAULT约束(或默认值) B 创建一个CHECK约束 C 创建一个UNIQUE约束(或唯一值) D 创建一个PRIMARY KEY约束(或主键)

中南大学软件学院软件体系结构实验1UML实验-参考答案

《UML实验》参考答案 1. 某酒店订房系统描述如下: (1) 顾客可以选择在线预订,也可以直接去酒店通过前台服务员预订; (2) 前台服务员可以利用系统直接在前台预订房间; (3) 不管采用哪种预订方式,都需要在预订时支付相应订金; (4) 前台预订可以通过现金或信用卡的形式进行订金支付,但是网上预订只能通过信用卡进行支付; (5) 利用信用卡进行支付时需要和信用卡系统进行通信; (6) 客房部经理可以随时查看客房预订情况和每日收款情况。 绘制该酒店订房系统的用例图。 参考答案: 顾客 在线预订房间 前台预订房间通过现金支付订金 通过信用卡支付订金 查看客房预订情况 查看每日收款情况 2. 根据以下场景绘制用例图: 某企业为了方便员工用餐,为企业餐厅开发了一个订餐系统(COS:Cafeteria Ordering System),企业员工可通过企业联网使用该系统。该系统功能描述如下: (1) 企业的任何员工都可以查看菜单和今日特价; (2) 系统的顾客是注册到系统的员工,可以在线订餐(以下操作均需先登录)、注册工资支付、修改订餐信息和删除订餐信息,在注册工资支付时需要通过工资系统进行身份验证; (3) 餐厅员工是特殊的顾客,可以进行备餐(系统记录备餐信息)、生成付费请求和请求送餐,其中对于注册使用工资支付的顾客生成付费请求并发送给工资系统;

(4) 菜单管理员是餐厅员工的一种,可以管理菜单; (5) 送餐员也是餐厅员工的一种,可以打印送餐说明、记录送餐信息(如送餐时间)以及记录收费(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。 参考答案: <> 查看菜单 查看今日特价 在线订餐 注册工资支付 修改订餐信息 删除订餐信息 工资系统 备餐 生成付费请求 请求送餐 管理菜单 打印送餐说明 记录送餐信息 记录收费 注册 登录

中南大学 软件体系结构重点

需求工程 所有与需求直接相关的活动通称为需求工程。包括需求开发和需求管理。需求开发包括需求的调查,分析和定义,需求管理包括需求的确认、跟踪以及变更控制 C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。 C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络 c/s优点:1、具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受 2、对于硬件和软件的变化有极大的适应性和灵活性,而且易于对系统进行扩充和缩小。 3、将大的应用处理任务分布到许多通过网络连接的低成本计算机上,节约大量费用缺点 缺点: 开发成本较高 客户端程序设计复杂 信息内容和形式单一 用户界面风格不一,使用繁杂,不利于推广使用 软件移植困难 软件维护和升级困难 新技术不能轻易应用 b/s优点:1、实现了零客户端,易于服务升级2、提供了异种机、异种网、异种应用服务器的联机、联网、统一服务的最现实的开放性基础。b/s缺点: B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数 据库处理功能。 系统扩展能力差,安全性难以控制。 在数据查询等响应速度上,远远低于C/S体系结构。 数据的动态交互性不强,不利于在线事务处理(OLTP)应用。适配器模式(Adapter Pattern) :将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作 优点: 1、将目标类和适配者类解耦 2、增加了类的透明性和复用性 3、灵活性和扩展性都非常好

4、类适配器:可以在适配器类中置换一些适配者的方法,使得适配器的灵活性更强。 5、对象适配器:同一个适配器可以把适配者类和它的子类都适配到目标接口。 缺点: 类适配器:不支持多继承的语言,一次最多只能适配一个适配者类,而且目标抽象类只能为抽象类,不能为具体类,其使用有一定的局限性 对象适配器:要想置换适配者类的方法就不容易 适用: 系统需要使用现有的类,而这些类的接口不符合系统的需要。 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类一起工作 桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化 优点: ? 分离抽象接口及其实现部分。 ? 桥接模式有时类似于多继承方案,但是多继承方案违背了类的单 一职责原则(即一个类只有一个变化的原因),复用性比较差, 而且多继承结构中类的个数非常庞大,桥接模式是比多继承方案 更好的解决方法。 ? 桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一 个维度,都不需要修改原有系统。 ? 实现细节对客户透明,可以对用户隐藏实现细节。 缺点: 1、增加系统的理解与设计难度,由于聚合关联关系建立在抽象层,要求开发者针对抽象进行设计与编程。 2、要求正确识别出系统中两个独立变化的维度,因此其使用范围具有一定的局限性 适用: 一个类存在两个独立变化的维度,且这两个维度都需要进行扩展 不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统 一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系 装饰模式(Decorator Pattern) :动态地给一个对象增加一些额外的职责(Responsibility)

中南大学数据库题库04数据查询

成绩表grade中字段st_id代表学号,score代表分数,以下()语句返回成绩表中的最低分。 A SELECT max(score) FROM grade B SELECT TOP 1 score FROM grade ORDER BY score ASC C SELECT st_id, MIN(score) FROM grade D SELECT TOP 1 score FROM grade ORDER BY score DESC 参考答案 B 有教师表(教师号,姓名,所在系,工资),找出系内教师平均工资高于全体教师平均工资的系信息,正确语句是 A SELECT 所在系, AVG(工资) FROM 教师表 WHERE AVG(工资)>(SELECT AVG(工资) FROM 教师表) B SELECT 所在系,AVG(工资) FROM 教师表 WHERE AVG(工资)>(SELECT AVG(工资) FROM 教师表) GROUP BY 工资 C

SELECT 所在系, AVG(工资) FROM 教师表 GROUP BY 所在系 HAVING AVG(工资)>(SELECT AVG(工资) FROM 教师表) D SELECT 所在系,AVG(工资) FROM 教师表 GROUP BY 所在系 WHERE AVG(工资)>(SELECT AVG(工资) FROM 教师表) 参考答案 C 有教师表(教师号,姓名,职称,所在系)和授课表(教师号,课程号,授课学年,授课时数),同一门课程可由多个教师讲授,同一个教师也可讲授多门课程,查询从未被“教授”讲授过的课程的课程号,正确的语句是 A SELECT 课程号FROM 授课表 a JOIN 教师表 b ON a.教师号=b.教师号WHERE 职称!=′教授′ B SELECT 课程号FROM 授课表 a RIGHT OUTTER JOIN 教师表 b ON a.教师号=b.教师号

软件体系结构实验二

南京邮电大学 《软件体系结构》实验报告 实验题目软件体系结构风格之应用 姓名xxx 学号xxx 院系计算机、软件学院 指导老师周国强 2013年12月18日

一、实验目的和要求 实验目的: 通过KWIC实例分析,理解和掌握软件体系结构风格设计与实现。 实验要求: 熟练掌握基于主/子程序体系结构风格的KWIC关键词索引系统,在此基础上,完成基于面向对象体系架构风格的KWIC关键词索引系统设计与实现。选做基于管道过滤体系架构风格的KWIC关键词索引系统;选做基于事件过程调用体系架构风格的KWIC关键词索引系统。 实验课前完成实验报告的实验目的、实验环境、实验内容、实验操作过程等内容;实验课中独立/团队操作完成实验报告的实验操作、实验结果及结论等内容;每人一台PC机,所需软件Win2003/XP、UML工具(EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0等。实验课后完成实验报告的心得体会内容,并及时提交实验报告。 二、实验课时:2 三、实验内容及操作步骤 多种软件风格设计与实现之KWIC实例: 1.采用主/子程序体系结构风格实现KWIC关键词索引系统 public static void input(String inputFile){ fr=null; try { fr=new (inputFile);

} catch ( e) { // TODO Auto-generated catch block e.printStackTrace(); } BufferedReader br=new BufferedReader(fr); textLines=new ArrayList(); try { while(br.ready()){ textLines.add(br.readLine()); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void circularShift(){ shiftedLineIndexes=new ArrayList(); for(int i=0;i1){ if(j==sarray.length-1){ for(int k=0;k<(sarray.length-1);k++){ newLine=newLine+" "+sarray[k]; } } else{ for(int k=j+1;k

中南软件java实验报告2

中南大学软件学院实验报告 课程名称Java面向对象程序设计SSD3 实验项目名称实验2《一维数组》 学生姓名专业班级学号 实验成绩日期 实验学时: 2 每组人数: 1 实验类型: 1 (1:基础性2:综合性3:设计性4:研究性)实验要求: 1 (1:必修2:选修3:其它) 实验类别: 2 (1:基础2:专业基础3:专业4:其它) 一、实验目的 学习一维数组的用法。 二、实验内容 1. (P182, 6.3)编写程序,读取1-100之间的整数,然后计算每个数出现的次数。假 package java_shiyan_two; import java.util.Scanner; public class Jscs_6_3 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.print("Enter the integers between 1 and 100 :");

int list[]=new int[88]; Scanner input=new Scanner(System.in); for (int i=0;i<=list.length;i++){ list[i]=input.nextInt(); if(list[i]==0){ break; } if (list[i]<1||list[i]>100){ System.out.print("WRONG"); continue; } } int[] list1=insertionSort (list); cout(list1); } /* * 数组排序 */ public static int[] insertionSort (int[] list){ int[] result=new int [list.length]; for (int i=0 ;i=0&&list[k]>c;k--){ list[k+1]=list[k]; } list [k+1]=c; } for (int d=0;d

中南大学数据库题库02 SQL Server数据库的管理

在SQL Server 2000中,通过构建永久备份设备可以对数据库进行备份,下列说法正确的是 A 不需要指定备份设备的大小 B 一个数据库一次只能备份在一个设备上 C 每个备份设备都是专属于一个数据库的 D 只能将备份设备建立在磁盘上 参考答案 A 对SQL Server 2000采用的备份和恢复机制,下列说法正确的是 A 在备份和恢复数据库时用户都不能访问数据库 B 在备份和恢复数据库时用户都可以访问数据库 C 在备份时对数据库访问没有限制,但在恢复时只有系统管理员可以访问数据库 D 在备份时对数据库访问没有限制,但在恢复时任何人都不能访问数据库 参考答案 D 在SQL Sever中,创建数据库student,使用的语句是()。

A CREATE TABLE student B CREATE VIEW student C CREATE PROC student D CREAT E DATABASE student 参考答案 D 下面描述错误的是( )。 A 每个数据文件中有且只有一个主数据文件。 B 日志文件可以存在于任意文件组中。 C 主数据文件默认为PRIMARY文件组。 D 文件组是为了更好的实现数据库文件组织。参考答案 B 删除数据库的命令是 A DROP DATABASE B USE DATABASE C CLOSE DATABASE D OPEN DATABASE 参考答案

A 下列说法()不正确。 A 每个数据库可以包含若干个主数据文件 B 主数据文件的扩展名是:mdf C 主数据文件中存放的是数据库的系统信息和用户数据库的数据 D 每个数据库都只包含一个主数据文件 参考答案 A SQL Server 2000 支持4种备份类型:完全备份、()、事务日志备份、文件和文件组备份。 A 差值备份 B 差异备份 C 等差备份 D 磁盘备份 参考答案 B SQL Server 2000 的备份设备是用来存储()备份的存储介质。

中南大学软件工程基础实验报告

中南大学软件工程基础实验报告

————————————————————————————————作者:————————————————————————————————日期:

软件工程基础实验报告 软件工程基础实验报告 指导老师:王春生 姓名: 学号: 专业班级: 完成日期: 2015.6.11 学院:信息科学与工程

目录 实验一熟悉Visio的工作环境-------------------------------------------3 实验二运用Visio建模工具进行功能分析和建模-----------------8实验三完成用例图、uml类图、数据流图(DFD)------------13

实验一熟悉Visio的工作环境 一、实验目的 1.了解visio 工具软件的功能特色、工作环境和基本操作等各方面知识 2.掌握应用Visio工具绘制软件开发图形的基本操作,了解系统开发模板和建模 方法 二、实验内容 1、了解Visio的工作环境 2、了解Visio软件的菜单、工具、绘图等操作 3、按照实验步骤绘制图形,完成用例图、ER图、数据流图 4、了解类图和状态图在visio下的基本绘图操作 5、(选做)绘制状态图* 三、实验步骤 1.绘制用例图 用例图是指由参与者(Actor)、用例(Use Case)以及它们之间的关系构成的用于描述系统功能的动态视图。用例图(User Case)是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。 2.绘制ER图(实体关系图) E-R方法是“实体-联系方法”(Entity-Relationship Approach)的简称。它是描述现实世界概念结构模型的有效方法。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n 或m:n)。 由于Visio 默认的绘图模板并没有E-R图这一项,但是画E-R图必须的基本图形Visio还是有的,所以我们就得先把必要的图形添加到“我的模板”。以添加椭圆和矩形为例,打开Visio,在主界面的选择绘图类型下选择“框图”,然后选择“基本框图”。 完成下面ER图:

中南大学数据库习题 复习题目

第九章习题 一、选择题(1-10小题为多选题,11-13小题为单选题) 1、在SQL Server2000中属于表级完整性约束的就是( AC )。 A)实体完整性约束B)域完整性约束C)参照完整性约束D)以上三者均就是 2、在SQL Server2000中实现数据完整性的主要方法有(ABCD )。 A)约束B)默认C)规则D)触发器 3、在SQL Server2000的数据完整性控制中属于声明数据完整性的就是(ABC )。 A)约束B)默认C)规则D)触发器 4、在SQL Server2000的数据完整性控制中属于过程数据完整性的就是( AD)。 A)存储过程B)默认C)规则D)触发器 5、在SQL Server中,以下( AB)约束属于域完整性约束。 A)DEFAULT B)CHECK C)NULL D)FOREIGN KEY 6、SQL Server2000数据库系统中一般采用( ABCD )以及密码存储等技术进行安全控制。 A)用户标识与鉴别B)存取控制C)视图D)触发器 7、SQL Server2000使用权限来加强系统的安全性,语句权限适用的语句有( B )。 A)EXECUTE B)CREA TE TABLE C)UPDATE D)SELECT 8、有关登录帐户、用户、角色三者的叙述中正确的就是( )。 A)登录帐户就是服务器级的,用户就是数据库级的 B)用户一定就是登录帐户,登录帐户不一定就是数据库用户 C)角色就是具有一定权限的用户组 D)角色成员继承角色所拥有访问权限 9、SQL Server2000的安全性管理包括( )。 A)数据库系统登录管理B)数据库用户管理 C)数据库系统角色管理D)数据库访问权限的管理。 10、SQL Server2000使用权限来加强系统的安全性,通常将权限分为( AC)。 A)对象权限B)用户权限C)语句权限D)隐含权限 11、SQL Server 2000提供了4层安全防线,其中SQL Server2000通过登录账号设置来创建附加安全层,用户只有登录成功,才能与SQL Server2000建立一次连接,属于( B )。 A)操作系统的安全防线B)SQL Server2000的运行安全防线 C)SQL Server2000数据库的安全防线D)SQL Server2000数据库对象的安全防线 12、SQL Server2000中,为便于管理用户及权限,可以将一组具有相同权限的用户组织在一起,这一组具有相同权限的用户就称为(B )。 A)帐户B)角色C)登录D)SQL Server用户 13、在SQL Server中,有关页的叙述中正确的就是( )。 A)页就是除行外的最小数据单位

相关文档
相关文档 最新文档