当前位置:文档之家› 4章:类图与对象图习题-推荐下载

4章:类图与对象图习题-推荐下载

4章:类图与对象图习题-推荐下载
4章:类图与对象图习题-推荐下载

第4章类图与对象图习题

一、简答题

1. 什么叫对象?

答:对象的本意是指认识的指向物。在计算机软件中,对象用来表示客观事物的一

个实体,它封装了一组属性和操作。从形式上看,对象是一段具有特定语法规则的程

序单元,它能够作为软件系统的一个相对独立的基本单位,在软件中承担确定的服务

职能。

2. 简述实例的概念。

答:实例是类元中的一个元素。

 3. 简述类元的概念。

 答:类元是对聚集一组具有共同特征的实例的模型元素的通称,类、接口、用例、

参与者、关联等都属于类元。类元的名字用标识符来表示,首字母要大写。类元会包

括一组实例。

4. 什么叫类?

答:类是具有相同性质的一组对象的集合,这组对象具有相同的特征、约束和语义。

5. 类有哪几种类型?

答:按阶段分:业务对象,PIM类,PSM类;按作用分:实体类,控制类,界面类。

6. 简述接口的概念。

答:接口是一种类元,聚集了一组需要通过其他类元实现的公共的操作和属性。

二、填空题

1.认识的对象可以是客观中一个具体的(事物),也可以是主观中的一个抽象(观念)。

2.软件中的对象是一段具有特定语法规则的(程序单元),它能够作为软件系统的一个相对独立的基本单位,在软件中承担确定的(服务职能)。

3.类描述具有相同性质的一组对象的(集合),类用(矩形)来表示。

4.按作用,可以把类分为(控制类)、边界类和(实体类)几种类型。

5.接口可以分为(供口)和(需口)两种类型。

三、选择题

1.在认识过程中,下面哪个不是对象的要素(D)

A:认识的指向物 B:认识者

C:认识指向物在认识者主观中的反映 D:认识的背景

2.下面哪一个对对象的说法不正确(B)

A:客观实体 B:事物的对立面

C:认识的指向物 D:软件的一个基本单位

3. 下面属性命名不正确的是(A)

A *BirthDay:Date

B #studentBirthDay:Date=1999-10-21

C -price:float=12.01{R/W}

D +studentName:String=“张敏”

4.指出下面不合适的类名(B)

A:材料 B:事物

C:订单 D:会员

5.下面不是对象图作用的是(A)

A:功能逻辑建模

B:初期分析工具

C:描述业务场景

D:模拟运行场景

四、练习题

1.在一个订货系统中,采购员从供货商处订货,双方需要签订订单,一个采购

员可以订多个供货商的货品,一个供货商也可以给多个采购员供货。分析这个问题,并用类图对这个问题进行建模。

答:

图1

2.一个企业可以雇佣多个人员。企业的性质包括名称、住址、电话、简况。人员的情况包括姓名、年龄、性别、住址、电话、简历等。雇佣的信息包括雇佣的开始日期、截止日期,简要说明等。双方要签订雇佣合同。雇佣还涉及到被雇用人员所从事的工作岗位。分析这个问题,提取这个问题所涉及到类,定义各个类之间的关系,并画出类图。

答:见图2。

3.宾馆客房业务管理提供客房预订、预订变更、客房入住、退房结帐、旅客信息查询几个方面的功能。订房人可以通过电话、短信、网络或面对面等方式预定客房。允许预定人根据自己情况的变化更改预定信息。旅客入住客房前需要出示证件并登记,

并要预交一定的押金。旅客提交押金后,柜台工作人员将在电脑上登记旅客信息,分

配房间,并打印旅客入住单,旅客持入住单到指定客房入住。旅客离开宾馆前需要退房结账。旅客或宾馆管理人员可以随时查询旅客或客房的入住信息。分析这个问题,提取涉及的类,并画出类图。

答:见图3。

图2

图3

4

.根据你的理解,对下图不合理的地方进行修改。

答:

5

.修改下图。

答:

6.某高校中有以下事物:学校、教师、教室、教材、课程、课桌、学生、班级、

学院、讲台、机房、计算机、交换机、社团,试绘制反映这些事物联系的类图。 答:

7.分析书店图书销售管理业务,提取相关的类,并画出的类图。答:

8

.分析超市购物管理业务,提取相关的类,并画出类图。

答:

实验3 类和对象

实验3 类和对象的创建与使用 一、实验目的 1、掌握类的定义和对象的创建; 2、掌握构造方法的作用、格式及重载; 3、掌握修饰词对成员存取权限的限制。 4、掌握实例成员、类成员的定义和使用方法。 二、实验内容 1、定义储蓄账户类,并创建对象模拟银行基本操作。 2、两游戏角色决斗。给定二个不同的角色,判定交手的胜负关系。(选做) 3、设计学生类、学校类、录取类,根据学生成绩和学校分数线,判断是否录取。 三、实验步骤 说明:请将第1,3题代码写入实验报告实验步骤处。 1、模拟银行账户功能。 编写程序,模拟银行账户功能。要求如下: 属性:账号、姓名、地址、存款余额、最小余额。 方法:存款、取款、查询。 根据用户操作显示储户相关信息。 如存款操作后,显示储户原有余额、今日存款数额及最终存款余额。 取款时,若取款成功,显示信息提示;若最后余额小于最小余额,拒绝取款,并显示信息提示。具体显示信息可据方便性原则自拟。 public class AccountOperation { public static void main(String [] args) { Account account1=new Account("650101","柳眉","天河学院",800.00); Account account2=new Account("650102","郑杰","天河学院",200.00); account1.transfer(account1,account2,300.0); account1.deposit(300.5); account1.withdraw(200); account1.withdraw(300); account1.query(); System.out.println(account1.toString()); //System.out.println(https://www.doczj.com/doc/007738514.html,); error!! } } class Account { private String account; private String name; private String address; private double balance;

UML实验心得体会

uml实验报告 学院 班级学号姓名 uml实验报告 实验一:用例图 实验结果: 小结实验心得体会: 用例模型用于需求分析阶段,它描述了待开发系统的功能需求,并驱动了需求分析之后 各阶段的开发工作。用例图是uml中用来对系统的动态方面进行建模的7种图之一。用例图 描述了用例、参与者以及它们之间的关系。用例图从用户角度描述系统功能,并指出各功能 的操作者。通过本次实验,我熟悉rational rose建模环境,更加清楚的了解了用例图的语 义和功能,如何清晰明了的识别参与者、用例,学会了如何使用事件流描述用例。同时掌握 了用例间的类属关系、include关系和extend关系的语义、功能和应用。最后通过本次实验 学习了如何使用用例图为系统的上下文以及系统的需求建模。 思考题: 1. 如果要删除参与者、用例,请问是在导航窗口删除,还是在绘图窗口删除? 答:都可以删除,但在绘图窗口中有两种删除方式:一种是只删除参与者、用例,而不 改变其在导航窗口中的存在,另一种是从建模中完全删除。 2. 如果要删除参与者和用例的联系,用例和用例的联系,请问是在绘图中删除,还是在 参与者或用例的设置对话框中删除? 答:都可以删除。 实验二:类对象模型的建立 实验结果: 小结实验心得体会: 类图是面向对象系统建模最常用的图,描述了类图、接口集、协作以及它们之间的关系。 类图描述了系统的静态设计视,该视主要体现系统的功能需求,即系统应该提供给用户的服 务。通过本次实验,加深了我对类图语义的理解和功能的应用,掌握了类之间的联系,关联、 依赖、聚合等,同时基本掌握了在rational rose中绘制类的关联、依赖、泛化关系。 思考题:选中一个模型对象,点击鼠标右键,比较快捷菜单项“edit——delete”与“edit ——delete from model”,它们二者之间区别在哪里? 答:“edit——delete”只是在绘图窗口中删除了模型对象,而“edit——delete from model”则是彻底的删除了模型对象。 实验三:顺序图、协作图 实验结果: 顺序图: 1. 归还图书 2.借出图书 协作图: 1. 归还图书 2. 借出图书 小结实验心得体会: 顺序图描述了对象之间的动态合作关系,它强调对象之间消息发送的时间顺序,同时显 示对象之间的交互。协作图与顺序图是同构的,rose可自动转换。顺序图是强调消息的交互

类图

UML实践----用例图、顺序图、状态图、类图、包图、协作图 2009-01-20 作者:Randy Miller 来源:网络 面向对象的问题的处理的关键是建模问题。建模可以把在复杂世界的许多重要的细节给抽象出。许多建模工具封装了UML(也就是Unified Modeling Language?),这篇课程的目的是展示出UML的精彩之处。 UML中有九种建模的图标,即: ?用例图 ?类图 ?对象图 ?顺序图 ?协作图 ?状态图 ?活动图 ?组件图 ?配置图 本课程中的某些部分包含了这些图的细节信息的页面链接。而且每个部分都有一个小问题,测试一下你对这个部分的理解。 为什么UML很重要? 为了回答这个问题,我们看看建筑行业。设计师设计出房子。施工人员使用这个设计来建造房子。建筑越复杂,设计师和施工人员之间的交流就越重要。蓝图

就成为了这个行业中的设计师和施工人员的必修课。 写软件就好像建造建筑物一样。系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。现在它已经成为了软件行业的一部分了。UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。 UML被应用到面向对象的问题的解决上。想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。一个模型model就是根本问题的抽象。域domain就是问题所处的真实世界。 模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。记住把一个对象想象成“活着的”。对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。对象的属性的值决定了它的状态state。 类Classes是对象的“蓝图”。一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。对象是类的实例instances。 用例图 用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象。强调这个系统是什么而不是这个系统怎么工作。 用例图与情节紧紧相关的。情节scenario是指当某个人与系统进行互动时发生的情况。下面是一个医院门诊部的情节。 “一个病人打电话给门诊部预约一年一次的身体检查。接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录。” 用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和。角色actor是发动与这个工作有关的事件的人或者事情。角色简单的扮演着人或者对象的作用。下面的图是一个门诊部Make Appointment用例。角色是病人。角色与用例的联系是通讯联系communication association(或简称通讯communication)

实验四 类与对象

宁夏师范学院数学与计算机科学学院《面向对象程序设计(C++)》实验报告

}*/ // ~CPU() {cout<<"析构了一个CPU!"<

UML实验报告全

《系统分析与建模》实验指导书__2011__/__2012__年第__二__学期 姓名:____钱秀梅_________ 学号:__ 10030117_____ 班级:_ 10计一_______ 指导教师:___殷凯__________ 计算机科学与技术系编写

系统分析与建模实验指导书―1―计算机科学与技术系 目录 实验0 熟悉软件开发环境 (1) 实验1 用例图设计………………………………………………… 实验2 类和对象图设计 (3) 实验3 交互图设计 (7) 实验4 状态图设计 (9) 实验5 活动图设计 (12) 实验6 包图设计 (15) 实验7 物理图设计 (17) 附录考核登记表 (23)

实验0 熟悉软件开发环境 一、实验目的 学习使用EA开发环境创建模型的一般方法,理解EA界面布局和元素操作的一般技巧。 二、实验环境 软件平台:Microsoft Windows2000 /XP。软件工具:EA 7.5。 三、实验内容与要求 1.学会启动和关闭EA 7.5开发环境。 2.使用目标项目(Project)的向导创建一个项目。 3.了解EA 7.5界面的六大组成部分(菜单Menu、浏览器Browser、文档窗口Document Window、图窗口Diagram Window、日值窗口Log Window和工具栏。 4.在浏览器中实现如下操作:增加模型元素(包括角色、用例、类、组建、图等); 查看现有模型元素;查看现有模型元素之间的关系;移动模型元素;更名模型元 素;访问元素的详细规范。 5.分别在在图中增加删除图元素和在浏览器中增加删除图元素。 四、实验预习和准备 参考相关书籍,能够熟练地安装和使用EA 7.5软件建立模型。 五、实验过程与结果 读者 借书 还书 续借图0-1 用例图

实验:类和对象1

实验一:类和对象 【实验目的】 1.理解对象和类,掌握类的定义及如何创建一个对象; 2.掌握构造方法的运用; 3.掌握方法的定义和参数传递; 4. 掌握类的继承机制。 【实验准备】 一、复习配套教材相关章节的内容; 二、预习本次实验; 【实验内容】 1.编写一个程序,显示水果的定购行情。定义一个带有参数的构造方法,这些参数用于存放产品名,数量和价格。在主程序中输出三种不同的水果。package avage; public class text { String name; int agr; double page; public text(){ } public text(String name,int agr,double page){ https://www.doczj.com/doc/007738514.html,=name; this.agr=agr; this.page=page; } public void evagre(){ System.out.println("水果名为:"+https://www.doczj.com/doc/007738514.html,); System.out.println("水果数量:"+this.agr); System.out.println("水果单价:"+this.page); } } public class text1 { /** * @param args

*/ public static void main(String[] args) { // TODO Auto-generated method stub text s=new text(); https://www.doczj.com/doc/007738514.html,="苹果"; s.agr =10; s.page=1.0; s.evagre(); text c=new text(); https://www.doczj.com/doc/007738514.html,="香蕉"; s.agr =10; s.page=1.0; s.evagre(); text d=new text(); https://www.doczj.com/doc/007738514.html,="橘子"; s.agr =10; s.page=1.0; s.evagre(); 2. 编写一个学生类,封装学生的学号、姓名、成绩等信息。再编写一个主类,

20150528_152805_40_UML-实验报告(03)-类图

北京信息科技大学 实验(上机)报告 课程名称U M L及建模工具学号2012012194姓名李自然成绩_______

附录: 影片租赁源程序 //租赁类的定义 class Rental { private Movie _movie; // 影片 private int _rentDate; // 租赁日期 private int _daysRented; // 租期 public Rental(Movie movie, int daysRented) { _movie = movie; _daysRented = daysRented; } public int getDaysRented() { return _daysRented; } public Movie getMovie() { return _movie; } double getCharge() { return _movie.getCharge(_daysRented); } int getFrequentRenterPoints() { return _movie.getFrequentRenterPoints(_daysRented); } } //顾客类的定义 class Customer { private String _name; // 姓名private String _phone; // 电话号码private Vector _rentals = new Vector(); // 租借纪录

public Customer(String name) { _name = name; } public void addRental(Rental arg) { _rentals.addElement(arg); } public String getName() { return _name; } //输出租赁交易报告 public String statement() { Enumeration rentals = _rentals.elements(); String result = "Rental Record for " + getName() + "\n"; while (rentals.hasMoreElements()) { Rental each = (Rental) rentals.nextElement(); //显示该顾客的每个租赁 result += "\t" + each.getMovie().getTitle()+ "\t" + String.valueOf(each.getCharge()) + "\n"; } //结尾打印(总费用和积分) result += "Amount owed is " + String.valueOf(getTotalCharge()) + "\n"; result += "You earned " + String.valueOf(getTotalFrequentRenterPoints()) + " frequent renter points"; return result; } //已超文本方式输出租赁交易报告 public String htmlStatement() { Enumeration rentals = _rentals.elements(); String result = "

Rentals for " + getName() + "

\n"; while (rentals.hasMoreElements()) { Rental each = (Rental) rentals.nextElement(); //显示该顾客的每个租赁

实验报告_实验3 类与对象

实验报告_实验3 类与对象(学生学号_姓 名) 一、实验目的 1.熟悉类的组成,掌握类的声明方法; 2.理解构造方法的作用,并掌握构造方法的定义; 3.熟练使用访问器和设置器实现信息隐藏和封装; 4.熟悉一般方法、构造方法的重载; 5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式; 7.掌握this关键字的使用以及对象数组的创建和访问; 8.掌握Java包的创建、包成员的各种访问方式; 9.掌握一维数组:声明,创建,初始化,数组元素的访问; 10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。 二、实验内容与步骤 1.请回答下列问题: (1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么? 答:两个PI,floatl类型,静态私有权限 Radius,float;类型,私有权限 (2)类中的“PI”的值可以在程序的方法中更改吗? 答:不可以,因为PI为静态变量 (3)Cirecle类定义了几个方法?它们的访问权限怎样?

答:四个,getRadius(),setRadius(float radius),getPerimeter(),getArea()都是公有权限 2.写出Rectangle类的程序代码: class Rectangle { private float width; private float length; public float getWidth( ) //获取矩形宽度 {return width;} public float getLength( ) //获取矩形长度 {return length;} public float getPerimeter( ) //获取矩形周长 {return 2*(width+length);} public float getArea( ) //获取矩形面积 {return (width*length);} public void setWidth(float w) //设置矩形宽度 {width=w;} public void setLength(float l) //设置矩形长度 {length=l;} } 3.回答下列问题: (1)该程序中有几个类?主类是什么?如果将这两个类放在一个文件中,源程序文件名应是什么?答:两个类:Circle、CircleTest;主类是CircleTest;源程序文件名是CircleTest。

实验一 类和对象

实验一类和对象 Visual C++ 6.0集成开发环境的使用: Visual C++系列产品是微软公司推出的一款优秀的C++集成开发环境,其产品定位为Windows 95/98、NT、2000 系列Win32 系统程序开发,由于其良好的界面和可操作性,被广泛应用。由于2000 年以后,微软全面转向.NET 平台,Visual C++6.0 成为支持标准C/C++规范的最后版本。 1.启动 安装完系统后,可以选择如下两种方式启动 1) 点击Windows “开始”菜单,选择“程序”菜单下“Microsoft Visual Studio 6.0”子菜单下的快捷方式Microsoft Visual C++ 6.0 启动Visual C++ 6.0。 2) 点击Windows “开始”菜单,选择“运行”,输入msdev,即可启动。启动后的界面如下: 图 1 启动界面 2.建立工程

选择“File”菜单下的“New”菜单项或直接按Ctrl+N,启动新建向导,如图2 所示: 图 2 新建向导 选择在“Projects”属性页选择Win32 Console Application,在Project Name 中输入项目名称demo,在Location 中选择项目文件,如图2 中c:\test\demo,项目所有文件将保存在此文件。输入完毕,单击确定按钮,进入下一界面如图3:

图 3 项目类型向导 在图 3 所示界面中选择a simple application,然后点击Finish 按钮,系统显示图4 所示界面。如果想退回上一步可以选择“Back”按钮。 图 4 项目信息 在图 4 中选择OK 按钮,系统完成项目的创建,并保存项目相关的信息。项目的目录结构如图5 所示。 1) Demo.dsw 是项目工作区文件,双击此文件,即可打开此项目; 2) Demo.dsp 为项目文件; 3) demo.cpp 是项目中的一个源程序;stdafx.h 和stdafx.cpp 为自动创建的源程序,一般不用修改。 图 5 目录结构

UML 新编实验指导书(实验三 类图)

天津理工大学华信软件学院 天津理工大学(华信软件学院) 实验指导书 课程名称:软件工程与UML建模 适应课程: (1969216)

上机实验(三)创建类和类图 一、实验目的: 在Rose 环境下创建类和类图, 完成应用案例的类图设计。 二、实验内容: (一)创建类 1)根据“需求陈述”提炼对象和类 2)分析对象,并将对象抽象成类 (二) 创建类图 建立类之间的关系(关联关系、泛化关系、聚集或组合关系、依赖关系等)创建类图。 (三) 综合应用练习。 三、操作步骤: (一) 创建类 1、启动Rose 2003进入后,在左面结构框内右击Logical View; 2、选New 选Class Diagram ,再在Class Diagram下创建类; 3、给类命名(比如Course); 4、增加属性(右击框途中的类,选New Attribute); 5、添加类操作(右击框途中的类,选New Operation); (二) 建立类之间的关系 1.首先关联关系 (使用按钮工具,如果当前工具栏中没有,右击工具栏,然后添加相关按钮) 1) 单项关联; 2) 双向关联。 2.练习聚集和组合 (先建立关联,再右击靠近“整体”方的关联线,选Aggregate选项。) 3.然后泛化关系。 4.最后练习依赖关系。 四.实例练习(不能用课件及教材上的示例,要自己来想。) 1.举实例说明类之间的关联关系。 包括:单、双向关联、一对一关联、一对多关联、多对多关联、自反关联、限定关联和关联类。 2.举实例说明类之间的聚合(组合)关系。 3.举实例说明类之间的泛化(继承)关系。包括:单继承、多继承。 4.举实例说明接口与实现,抽象类与子类等。 五.综合应用: (一)以“学生选课系统”为例建立类图 1.“学生选课系统”涉及到的类: 1) Database类

C++实验二类与对象(附答案)

实验二类与对象 实验目的和要求 1.掌握类、类的数据成员、类的成员函数的定义方式。 2.理解类成员的访问控制方式。 3.掌握对象的定义和操作对象的方法。 4.理解构造函数和析构函数的定义与执行过程。 5.掌握重载构造函数的方法。 6.了解拷贝构造函数的定义方法。 实验容 1.下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。#include class Aa { public: Aa(int i=0) { a=i; cout<<"Constructor "<

(1) #include class Date { void set_date(); void show_date(); int year; int month; int day; }; Date d; int main() { set_date(); show_date(); } void set_date() { cin>>d.year; cin>>d.month; cin>>d.day; } void show_date() { cout< class A { public: void A(int i=0) { m=i; } void show() { cout<

实验四 类与对象

实验四类与对象 一、实验目的 1. 掌握类的声明和使用。 2. 掌握类的声明和对象的声明。 3.复习具有不同访问属性的成员的访问方式。 4. 观察构造函数和析构函数的执行过程。 5.学习类的组合使用方法。 6. 使用 VC++的debug 调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 二、实验任务 1. 声明一个 CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank 为枚举类型CPU_Rank,声明为enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是 MHz 的整型数,voltage为 浮点型的电压值。观察构造函数和析构函数的调用顺序。 2. 声明一个简单的 Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数 run、stop。cpu 为 CPU类的一个对象,ram为RAM 类的 一个对象,cdrom为 CDROM 类的一个对象,声明并实现这个类。 3. (选做)设计一个用于人事管理的 People(人员)类。考虑到通用性,这里只抽象 出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员 函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、 内联成员函数、组合。 三、参考程序 1、#include using namespace std; enumCPU_Rank {P1=1,P2,P3,P4,P5,P6,P7}; class CPU { private: ?CPU_Rank rank; ?int frequency; ?float voltage; public: CPU (CPU_Rank r, intf, float v) ?{ ?rank = r; ?frequency = f; ?voltage = v; ?cout << "构造了一个CPU!" << endl; ?}

UML实验四建立类图

《面向对象技术UML》实验四报告实验名称: 类图的设计 系别: 计算机专业: 11软工班级: 姓名: 学号: 实验日期: 2013 年 4 月 7 日 教师审批签字: 分数: 1. 实验名称: 类图的设计与制作 2. 实验目的: 熟悉使用Rational Rose工具,建立类图。 3. 实验要求: 实验题目选为图书借阅管理系统(P232-233)。根据各自的基本功能要求和可选功能要求,延续实验二所选的用例及其用例描述,完成该用例的类图的设计与制作(包括:类名,属性,操作,类之间的关 系,版型);将实验步骤和屏幕显示记录下来,填写到实验结果栏。 参考“学习资料网站的分析与设计--20130407”提供的案例。主要参考图2.1、2.2,表2.1到2.9。 具体来说,根据某个用例的用例描述,设计出对应的基于协作的类图(含边界类、控制类、实体类。类之间的关系是依赖)和基于数据模式的实体类图(仅含实体类,实体类之间的关系是关联、泛化、组合、聚集等)。

4. 实验步骤: 任务1:环境设置 ①、选择Tools->Options。 ②、选择Diagram标签。 ③、确保选取Show Visibility、Show Stereotypes、Show Operation Signatures、Show All Attributes 和 Show All Operations复选框。 ④、确保取消Suppress Attrtbutes和Suppress operations复选框。 ⑤、选择Notation标签。 ⑥、确保取消Visibility as Icons复选框。 ⑦、单击OK,退出Options 窗口。 任务2:创建类 根据实验二制作的用例,创建该用例要用到的所有类。 ①、右单击浏览器的Logical View。 ②、选择New->C1ass Diagram。 ③、为新框图命名。双击打开新框图。 ④、选择类工具栏“Class”按钮,创建所有的类(自己命名)。 任务3:将版型加进类中(可选做) 根据需要,可以将任务2创建的类赋予相应的版型(stereotype)。版型的类型可以有:boundary型、control 型、entity型。本任务的目的是将一些类具体归纳到边界类、控制类、实体类中之一。 ①、右单击框图中的某个(些)类,从弹出菜单中选择Open Specification。在版型(stereotype)字段中输入boundary,单击OK。 ②、右单击框图中的某个(些)类,从弹出菜单中选择Open Specification。在版型(stereotype)字段中输入control,单击OK。 ③、右单击框图中的某个(些)类,从弹出菜单中选择Open Specification。在版型(stereotype)字段中输入entity,单击OK。 任务4:增加属性 ①、右单击框图中的某个类,从弹出菜单中选择New

UML面向对象设计与分析课后习题答案

分析了UML的几个重要图看看是否可以? 第2章用例图 1.一台自动售货机能提供6种不同的饮料,售货机上有6个不同的按钮,分别对应这6种不同的饮料,顾客通过这些按钮选择不同的饮料。售货机有一个硬币槽和找零槽,分别用来收钱和找钱。现在为这个系统设计一个用例图? 顾客 2.现有一个产品销售系统,其总体需求如下: 系统允许管理员生成存货清单报告。 管理员可以更新存货清单。 销售员记录正常的销售情况。 交易可以使用信用卡或支标,系统需要对其进行验证。 每次交易后都需要更新存货清单。 分析其总体需求,并绘制出其用例图? 3.绘制用例图,为如下的每个事件显示酒店管理系统中的用例,并描述各用例的基本操作流程。 客人预订房间。 客人登记。 客人的承担服务费用。 生成最终账单 客人结账 客人支付账单

第3章类图、对象图和包图 1.创建一个类图。下面给出创建类图所需的信息。 ●学生(student)可以是在校生(undergraduate)或者毕业生(graduate)。 ●在校生可以是助教(tutor)。 ●一名助教指导一名学生。 ●教师和教授属于不同级别的教员。 ●一名教师助理可以协助一名教师和一名教授,一名教师只能有一名教师助理,一名 教授可以有5名教师助理。 ●教师助理是毕业生。 创建类图的步骤如下: (1)将学生可以是在校生或者毕业生建模为3个类:Student、UnderGraduate和Graduate,其中,后两个类是Student类的子类。 (2)为“在校生可以是助教的一种”建立模型,即建立UnderGraduate类的另一个超类Tutor。 (3)通过创建从Tutor到Student的关联(名为tutors),建立一名助教指导一名学生的模型。 (4)将“教师和教授属于不同级别的教员”建模为3个类:Instructor、Teacher和Professor,其中,后两个类是Instructor类的子类。 (5)建立“一名教师助理可以协助一名教师和一名教授,一名教师只能有一名教师助理,一名教授可以有5名教师助理”的模型。创建TeacherAssistant类,并使其与Teacher 类和Professor类都建立关联。 (6)将TeacherAssistant类建模为Graduate类的派生类。

c++类和对象实验报告

实验一类和对象 实验课程名:面向对象程序设计(C++) 专业班级:学号:姓名: 实验时间:实验地点:指导教师: 一、实验目的和要求 (1) 理解类和对象的概念,掌握声明类和定义对象的方法。 (2) 掌握构造函数和析构函数的实现方法。 (3) 初步掌握使用类和对象编制C++程序。 (4) 掌握对象数组、对象指针和string类的使用方法。 (5) 掌握使用对象、对象指针和对象引用作为函数参数的方法。 (6) 掌握类对象作为成员的使用方法。 (7) 掌握静态数据成员和静态成员函数的使用方法。 (8) 理解友元的概念和掌握友元的使用方法。 二、实验内容 1.设计一个静态数组存储结构的顺序表类,要 求编程实现如下任务:建立一个线性表,首先 依次输人数据元素1,2,3,…,10,然后删除 数据元素6,最后依次显示当前线性表中的数 据元素。要求采用顺序表实现,假设该顺序表 的数据元素个数在最坏情况下不会超过50个。实验代码:#include using namespace std; const int MaxSize=100; //100只是示例性的数据,可根据实际问题具体定义 template //定义模板类SeqList class SeqList { public:

SeqList( ) {length=0;} //无参构造函数 SeqList(T a[ ], int n); //有参构造函数 ~SeqList( ) { } //析构函数为空 int Length( ) {return length;} //求线性表的长度 T Get(int i); //按位查找,取线性表的第i个元素 int Locate(T x ); //按值查找,求线性表中值为x的元素序号 void Insert(int i, T x); //在线性表中第i个位置插入值为x的元素 T Delete(int i); //删除线性表的第i个元素 void PrintList( ); //遍历线性表,按序号依次输出各元素 private: T data[MaxSize]; //存放数据元素的数组 int length; //线性表的长度 }; template SeqList::SeqList(T a[ ], int n) { int i; if (n>MaxSize) throw "参数非法";

信息管理系统 UML实验三__类图

实验三.类图 第一题:软件学院打算开发一个学生选课系统。画出系统类图! 1.新的系统允许学生利用局域网上的PC机来注册本学期的课程,并可以查看自己已学的所有课程的所有成绩。新的系统允许教师决定要教哪些课程,并通过管理员更新数据库,教师在学期末登记自己教授的课程的成绩。 2.学院已有课程目录(course catalog)数据库部分,课程目录数据库中保存了所有的课程信息新的学生注册系统将读取课程目录数据库中的课程信息,但不会修改数据库中的课程信息。管理员通过其它系统来维护课程信息 3.在每个学期初,学生可以获取这个学期所开设的所有课程的目录,在课程目录中包含每门课的详细信息,如professor(讲课教师,因为后面约定老师可以有教授、副教授和讲师3种类型), department, prerequisite等。 4.每个学生在一个学期,根据自己所在系的培养计划,必修课必须选,选修课自愿,但一学期不可超过8门课程,不少于3门课程。(第8周周二到周五可以退课,但必须保证本学期课程不少于3门,退课需交纳50/门的费用,由计费系统扣费,扣费成功后,该门课程从学生的选课计划中删除,否则,退课不成功) 5.每门课的学生人数最多为200人,最少为30人,如果选修课学 生人数少于30人,该门课将被取消,必修课无最低人数限制。 在每个学期,有一个选课期,在这个时间段内,学生可以改变他们的选课计划(Schedule),注册系统允许学生在这段时间内可以增加或删除所选课程,选课最后一天只能选课,不可退课,在学期结束的时候,学生可以通过系统查询成绩,由于学生成绩属于敏感信息,因此系统要有安全措施来防止非授权的存取。(学生查询成绩前,需要先评教)。 6.教师可以读取系统来获取他们所教的课程的信息,可以了解哪些学生选了他们的课,也可以登记该门课程的学生成绩。 7.教师分为讲师、副教授、教授。 此系统涉及到得参与者有:①学生;②教师;③管理员;④课程目录数据库;⑤计费系统。 第二题画出系统类图 问题描述: 使用信用卡可以在AMT机上进行取款,针对一次取款,建立其类图。 其中系统涉及的参与者有:①顾客②银行工作人员;③A TM取款机 第三题: 画出系统类图 问题描述: 某购物网站,针对下述问题,建立一个类图:有两种顾客,一种是常客,享受公司的一些优惠待遇;另一种是散户。所以其参与者有:顾客、常客、散客和员工 第四题根据下面的陈述画出类图 1)学生包括本科生、研究生两种。 2)研究生的一部分利用课余时间担任助教。 3)教师包括助教、讲师和教授三种。 4)一名助教可以为一位讲师或一位教授助课,一位讲师只能有一名助教,一位教授可以有5名助教。

C实验报告第四章类与对象

C++实验报告 实验4 类与对象 一、实验目的 1、掌握类的声明和使用 2、掌握类的声明和对象的声明 3、复习具有不同访问属性的成员的访问方式 4、观察构造函数和析构函数的执行过程 5、学习类的组合使用方法 6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序 二、实验任务 1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。观察构造函数好析构函数的调用顺序。 2、声明一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom 等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。 3、设计一个用于人事管理的People类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号等。其中出生日期声明为一个日期类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、组合。 三、实验内容 任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。在用debug单步调试后,明白其中道理。 源程序:

实验四-类与对象

实验四类与对象 1.实验目的 1、使用类来封装对象的属性和行为; 2、掌握对象的组合以及参数传递; 3、掌握类变量与实例变量,以及类方法与实例方法的区别 2.实验内容 1、参考教科书,完成下面实验: 1)实验1 Tank类 2)实验2 计算机与光盘 3)实验3 家族的姓氏 4)实验4 三角形、梯形和圆形的类封装 5)实验5 实例成员与类成员 2、完成习题: 1)根据要求修改实验1,改进speedUP方法,使得Tank类的对象加速时不能将speed值超过220;增加一个刹车方法:void brake(),Tank类的对象调用它能将speed的值变成0。 2)根据要求修改实验2,主类中再增加一个CD的对象,然后将计算机中的数据(data数组)复制到CD对象中。 3、提高题 编写储蓄账户类及测试类,模拟存款,参考以下运行方式: (1)新开5个储蓄账户,各储蓄账户的编号、户名在新开储蓄账户时初始化,假设每位用户新开储蓄账户时都存入了一笔钱。 (2)提示用户从键盘输入储蓄账户编号。 (3)若输入的储蓄账户编号与新开的5个储蓄账户编号之一匹配,则提示用户从键盘输入存款金额,存款金额必须大于0,否则显示错误提示,直到用户输入的存款金额大于0为止。 (4)相应储蓄账户的余额被更新。 (5)存款完成后,提示存款成功,显示该储蓄账户的编号、户名、余额。 (6)若输入的储蓄账户编号与新开的5个储蓄账户编号均无法匹配,显示错误提示,并询问是否还要继续存款。 (7)用户输入yes,继续执行步骤(2),否则显示退出信息。 最基本要求:绘制UML类图;储蓄账户的余额必须确保大于等于0。 3.实验步骤 参考教材中相关的实验。 4.评分标准

UML实验报告

一、实验目的 熟悉软件建模工具PowerDesigner的安装和使用,使用PowerDesigner绘制用例图,熟悉用例文档的编写,掌握系统需求模型的构造过程;学习使用PowerDesigner绘制类图。 二、实验内容 1. 根据如下场景构造需求模型,使用PowerDesigner绘制用例图,撰写用例“在线预订客房”和“前台预订客房”的用例描述文档,并进行模型检查。 某酒店订房系统描述如下: (1) 顾客可以选择在线预订,也可以直接去酒店通过前台服务员预订; (2) 前台服务员可以利用系统直接在前台预订房间; (3) 不管采用哪种预订方式,都需要在预订时交相应订金; (4) 前台预订可以通过现金或信用卡的形式进行订金支付,但是网上预订只能通过信用卡进行支付; (5) 利用信用卡进行支付时需要和信用卡系统进行通信; (6) 客房部经理可以随时查看客房预订情况和每日收款情况。 2. 某电话公司决定开发一个客户信息管理系统,系统功能如下: (1) 浏览客户信息:任何使用Internet的网络用户都可以浏览电话公司所有的客户信息(包括姓名、住址、电话号码等)。 (2) 登录:电话公司授予每个客户一个账号。拥有授权账号的客户可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册。公司管理人员也可以通过登录对客户信息进行管理。 (3) 修改个人信息:客户在系统中注册后,可以发送电子邮件或者使用系统提供的页面对个人信息进行修改。 (4) 删除客户信息:只有公司的管理人员才能删除不再接受公司服务的客户的信息。 绘制该系统的用例图。 3. 根据如下描述绘制类图: 某商场会员管理系统包含一个会员类(Member),会员的基本信息包括会员编号、会员姓名、联系电话、电子邮箱、地址等,会员可分为金卡会员(GoldMember)和银卡会员(SilverMember)两种,不同类型的会员在购物时可以享受不同的折扣;每个会员可以拥有一个或多个订单(Order),每一个订单又可以包含至少一条商品销售信息(ProductItem),商品销售信息包括订单编号、商品编号、商品数量、商品单价和折扣等;每一条商品销售信息对应一类商品(Product),商品信息包括商品编号、商品名称、商品单价、商品库存量、商品产地等。

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