2023年7月26日发(作者:)
面向对象设计(UML)
实验指导书
电信学院 测控系
戴立红
目 录
实验一:C++程序设计(1)——类和对象 ................................................................................. 1
实验二:C++程序设计(2)——继承 ......................................................................................... 3
实验三:C++程序设计(3)——多态 ......................................................................................... 5
实验四:C++程序设计(4)——模板和运算符重载 ................................................................. 6
实验五:UML建模(1)——用例建模 ...................................................................................... 7
实验六:UML建模(2)——类图建模 ...................................................................................... 9
实验七:UML建模(3)——动态建模 .................................................................................... 10
实验八:UML建模(4)——物理建模 .................................................................................... 12
I 实验一:C++程序设计(1)——类和对象
一、实验教学的目的与基本要求
目的:
1、熟练掌握VC++的编程环境;
2、掌握面向对象的方法以及面向对象程序设计语言C++;
3、重点掌握类和对象基本概念;
4、能够利用所学的面向对象基本概念,用C++编写类和对象程序。
要求:
1、按时参加实验,保证实验出勤率;
2、独立或是在同学及老师指导下完成实验内容;
3、实验之前做好预习及准备工作,掌握实验的基本目的和要求;
4、实验结束后,独立做好实验报告的填写工作。
二、实验内容
以下2个实验内容至少实现1个。
1、定义一个学生类(Student),包含姓名(name)、班级(myClass)、年龄(age)、本课程成绩(courseScore)等属性。要定义构造函数和析构函数。要求输出自己本人的相关信息。
提示:姓名和班级定义成字符数组类型。获得姓名函数以及获得班级函数的返回值类型定义成字符指针。字符串拷贝函数strcpy(d,r)是将后面的r中的内容拷贝到d中。注意使用字符串拷贝函数要包含头文件
2、定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数运行(run)、停止(stop)。在主函数中建立一个CPU类的对象,并显示这个CPU的等级、频率、电压以及运行或停止状态。观察构造函数和析构函数的调用顺序。
提示:等级(rank)定义为enum CPU_Rank={P1=1,P2,P3,P4,P5,P6,P7},频率(frequency)为单位为MHz的整型数,电压(voltage)为浮点型的电压值。定义构造函数,实现对等级、频率和电压的初始赋值,以及用语句进行提示在调用构造函数。定义析构函数,提示在调用析构函数,释放对象所占用的内存空间。此外,
1 要定义相应的成员函数以返回CPU的等级、频率、电压。
2 实验二:C++程序设计(2)——继承
一、实验教学的目的与基本要求
目的:
1、熟练掌握VC++的编程环境;
2、掌握面向对象的方法以及面向对象程序设计语言C++;
3、重点掌握继承基本概念;
4、掌握多重继承中的二义性及其解决方法;
4、能够利用所学的面向对象基本概念,用C++编写单继承和多重继承程序。
要求:
1、按时参加实验,保证实验出勤率;
2、独立或是在同学及老师指导下完成实验内容;
3、实验之前做好预习及准备工作,掌握实验的基本目的和要求;
4、实验结束后,独立做好实验报告的填写工作。
二、实验内容
以下3个实验内容至少实现一个。
1、设计一个抽象类车(Vehicle),由它派生出轿车类(Car)和卡车类(Truck)。轿车类(Car)包含名称(name)、颜色(color)、载客数(passengerNumber)三个数据成员,卡车类(Truck)包含名称(name)、颜色(color)、载重量(passengerWeight)三个数据成员。要求分别输出一辆轿车和一辆卡车的相关信息。
2、设计一个车(Vehicle)基类,具有最大速度(maxSpeed)、重量(weight)等成员变量,运行(run)、停止(stop)等成员函数,由此派生出自行车(Bicycle)类、汽车(Motorcar)类。自行车类有高度(height)等属性,汽车类有座位数(seatNum)等属性。从自行车(Bicycle)和汽车(Motorcar)派生出摩托车(Motorcycle)类。要求,创建一个摩托车对象,显示其最大速度,重量,高度,座位数,运行及停止状态。
3、设计一个家具类(Furniture),具有私有的数据成员为重量(weight)。有两种家具:沙发(Sofa)和床(Bed)。沙发类中有成员函数(watch)用于显示沙发的作用是观看。床类中有成员函数(sleep)用于显示床的作用是睡觉。此外还有沙发床(SofaBed),有两个成员函数(collapse)和(expand),分别显示摊开放是张床,张开
3 时是沙发。在主函数中定义沙发床的对象,首先将其张开,然后观看,接着摊开,然后睡觉,最后设置重量并显示其重量。
4 实验三:C++程序设计(3)——多态
一、实验教学的目的与基本要求
目的:
1、熟练掌握VC++的编程环境;
2、掌握面向对象的方法以及面向对象程序设计语言C++;
3、重点掌握多态基本概念,以及用虚函数实现多态的方法;
4、能够利用所学的面向对象基本概念,用C++编写多态程序。
要求:
1、按时参加实验,保证实验出勤率;
2、独立或是在同学及老师指导下完成实验内容;
3、实验之前做好预习及准备工作,掌握实验的基本目的和要求;
4、实验结束后,独立做好实验报告的填写工作。
二、实验内容
要求用虚函数实现。以下3个实验题目至少实现一个。
1、设计三种水果(苹果、香蕉和桔子),显示三种水果的名称。
2、设计一个动物类(Animal),和其两个派生类老虎(Tiger)和羊(Sheep),设计动物叫声函数soar()以及饮食函数eat(),分别输出老虎和羊的叫声(mie咩)和饮食。
3、设计一个汽车类Motor,该类具有可载人数passengerNum、轮胎数wheelNum、马力数power、生产厂家Make和车主owner五个数据成员,根据Motor类派生出Car类、Bus类和Truck类。其中Bus类除继承基类的数据成员外,还具有表示车厢节数的数据成员number;Truck类除继承基类的数据成员之外,还具有表示载重量的数据成员weight。每个类都具有成员函数display,用于输出各类对象的相关信息。
5 实验四:C++程序设计(4)——模板和运算符重载
一、实验教学的目的与基本要求
目的:
1、熟练掌握VC++的编程环境;
2、掌握面向对象的方法以及面向对象程序设计语言C++;
3、重点掌握多态、类模板和函数模板以及运算符重载的基本概念;
4、能够利用所学的面向对象基本概念,用C++编写类模板和函数模板以及运算符重载的程序。
要求:
1、按时参加实验,保证实验出勤率;
2、独立或是在同学及老师指导下完成实验内容;
3、实验之前做好预习及准备工作,掌握实验的基本目的和要求;
4、实验结束后,独立做好实验报告的填写工作。
二、实验内容
以下实验内容中1和2必做题,3为选做题。
1、使用类模板实现返回类内两个数据成员的值,数据成员可以是任意类型的,并且要求两个数据成员的类型可以不同。
提示:定义两个模板参数。
2、使用函数模板实现任意类型的两个数的求和运算,并编写主测试程序实现两个整型数相加,两个实型数相加。
3、运算符重载
设计一个学生类Student,包括姓名和三门课的成绩score1,score2,score3,利用重载运算符“+”求出所有学生每门课的总成绩以及每门课的平均成绩。
6 实验五:UML建模(1)——用例建模
一、实验教学的目的与基本要求
目的:
1、熟练掌握Rational Rose/Visio的使用环境;
2、掌握面向对象的方法以及UML建模的基本思想;
3、掌握UML各种图的表示方法及建模步骤;
4、能够利用所学的UML基本知识,能够进行用例图设计。
要求:
1、按时参加实验,保证实验出勤率;
2、独立或是在同学及老师指导下完成实验内容;
3、实验之前做好预习及准备工作,掌握实验的基本目的和要求;
4、实验结束后,独立做好实验报告的填写工作。
二、实验内容
以下实验内容中,1和2为必做题,3为选做题。
1、对简易教学管理系统进行分析和建模,画出相应的UML用例图。
简易教学管理系统包括两个主要功能:选课管理和成绩管理。
其中成绩管理包括下面的功能:
学生使用该系统可以查询学生成绩。
教师使用该系统可以查询学生成绩,也可以查询课程成绩。
管理员使用该系统进行学生成绩管理和成绩统计。
注意在进行以上各种操作前都要进行身份验证。如果忘记了自己的密码,则可以找回密码。
提示:上述几个基本用例和身份验证用例之间为包含关系,而找回密码用例和身份验证用例之间为扩展关系。
其中选课管理包括下面的功能:
学生使用该系统进行选课注册,并将选课注册的结果送交给财务系统。
教师使用该系统可以查询课程信息。
注意在进行以上各种操作前都要进行身份验证。如果忘记了自己的密码,
7 则可以找回密码。
管理员使用该系统管理老师信息、管理学生信息、管理课程信息、管理开设课程。此外,系统中允许管理员对课程信息和开设课程进行导出、打印。
提示:管理课程信息和管理开设课程这两个用例分别与导出信息以及打印信息之间为扩展关系。
2、绘制下述银行系统的用例图。银行职员(Clerk)登录银行系统,在登录时需要进行身份验证。职员可以对客户(Customer)的账户进行管理,包括创建新的账户,修改账户和删除账户。客户依赖于银行职员实现相应的需求:存款、取款和转账。转账又包括本行转账和跨行转账两种。其中跨行转账要和另外一家银行(Bank)交互。
3、绘制简单即时聊天系统的用例图。以下为其简单的需求分析:
(1)客户端的需求
用户首先要在聊天系统中注册成为会员,然后才能登录该系统。在系统中可以进行修改个人信息,好友管理和聊天管理的操作。其中,好友管理包含了新增好友,删除好友和好友上下线提示三个功能;在删除好友时,首先应执行查找好友的功能。同时,聊天管理也包含了私聊和群聊的功能。最后,用户使用完本系统应退出聊天系统。
(2)服务器端的需求
系统管理员首先登录系统,然后可以进行服务器维护和服务器状态监视。其中服务器维护包含了启动服务器和停止服务器的功能。服务器状态监视包含了查看在线用户和查看系统日志的功能。最后,系统管理员退出系统。
8 实验六:UML建模(2)——类图建模
一、实验教学的目的与基本要求
目的:
1、熟练掌握Rational Rose/Visio的使用环境;
2、掌握面向对象的方法以及UML建模的基本思想;
3、掌握UML各种图的表示方法及建模步骤;
4、能够利用所学的UML基本知识,能够进行类图设计。
要求:
1、按时参加实验,保证实验出勤率;
2、独立或是在同学及老师指导下完成实验内容;
3、实验之前做好预习及准备工作,掌握实验的基本目的和要求;
4、实验结束后,独立做好实验报告的填写工作。
二、实验内容
以下实验内容中,1和2为必做题,3题为选做题。
1、画出下述的UML类图。神舟六号飞船是神舟飞船系列的一种,它由轨道舱、返回舱、推进舱和逃逸救生塔等组成。航天员可以在返回舱内驾驶飞船,轨道舱则是航天员工作和休息的场所。在紧急情况下,可以利用逃逸救生塔逃生。在飞船两侧有多个太阳能电池翼,可以为飞船提供电能。
2、系统中有两种车:小汽车和自行车。其中小汽车由轮胎和发动机组成。SUV(Sport
Utility Vehicle运动型多用途汽车)是一种小汽车。学生使用自行车。班级由学生组成。学生都有相应的身份证与其对应。绘制该系统的类图。
3、下面是一个学校中的类图。语义如下:学校有多个系,每个系有多个老师,一个老师可以讲多门课,一门课也可以有多个老师来讲,一个学生只能在一个学校上课,一个学校至少有一名学生,每个学生可以选多门课。
9 实验七:UML建模(3)——动态建模
一、实验教学的目的与基本要求
目的:
1、熟练掌握Rational Rose/Visio的使用环境;
2、掌握面向对象的方法以及UML建模的基本思想;
3、掌握UML各种图的表示方法及建模步骤;
4、能够利用所学的UML基本知识,能够进行动态模型设计。
要求:
1、按时参加实验,保证实验出勤率;
2、独立或是在同学及老师指导下完成实验内容;
3、实验之前做好预习及准备工作,掌握实验的基本目的和要求;
4、实验结束后,独立做好实验报告的填写工作。
二、实验内容
以下实验内容中,1和2题至少做一个,3和4题至少做一个,5题为必做题。
1、首先学生向课程发送消息要求查看课程信息。然后学生向课程发送消息要求选择课程。接着课程向服务器发送消息要求提交课程,如果选课人数已满,服务器向学生发送消息通知重选;如果选课人数未满,服务器向选课通知单发送消息要求打印通知单。画出相应的顺序图和协作图。
2、首先图书管理员向图书对象发送消息,要求获取图书信息。然后图书对象向读者对象发送消息,要求获取读者信息。最后,图书管理员向读者对象发送消息,记录返还。画出读者还书相应的顺序图和协作图。
3、采用泳道和分支技术绘制下列描述的活动图。客户服务系统中“客户来电”用例对应的活动图。当客户来电事件发生后,进入来电咨询活动,如果受理,则客户服务人员查询客户信息,否则活动结束。当查询客户信息时,如果查询不到客户,则新增加一个客户的信息。接着判断咨询类型,咨询类型有三种:咨询、报修、投诉。如果是咨询,判断能否回答问题,如果能则直接处理;否则由维护人员跟进。如果是报修,则进行故障处理。如果是投诉,则进行投诉处理。咨询
10 处理结束后,填写咨询处理结果,整个活动的流程结束。
4、采用泳道、并列和分支技术,绘制预约图书的活动图。首先借阅者登录系统中,然后自助系统验证登录信息。如果验证失败,则借阅者登录失败,活动结束。如果验证通过,则借阅者搜索图书,接着一方面查看图书信息,另一方面预约图书。最后借阅者退出系统。
5、绘制聊天系统中用户的状态图。当用户没有注册系统时,处于未注册状态。当用户注册后进入未登录状态,当登录系统后,处于已登录状态。当用户退出系统时处于未登录状态。当用户处于已登录状态时,进行各种操作时处于各种操作状态。当进入个人信息界面后处于修改个人信息状态;当进入聊天界面后处于聊天状态;当进入删除好友界面后处于删除好友状态;当进入查找好友界面后处于查找好友状态,在此状态下如果有添加好友的事件发生则进入新增好友状态。
11 实验八:UML建模(4)——物理建模
一、实验教学的目的与基本要求
目的:
1、熟练掌握Rational Rose/Visio的使用环境;
2、掌握面向对象的方法以及UML建模的基本思想;
3、掌握UML各种图的表示方法及建模步骤;
4、能够利用所学的UML基本知识,能够进行物理模型设计。
要求:
1、按时参加实验,保证实验出勤率;
2、独立或是在同学及老师指导下完成实验内容;
3、实验之前做好预习及准备工作,掌握实验的基本目的和要求;
4、实验结束后,独立做好实验报告的填写工作。
二、实验内容
以下3个实验内容均为必做题。
1、画出下述图书管理系统的构件图:系统中有图书管理系统、借/还书处理、信息查询、图书信息、借阅信息、图书资源管理、身份验证7个构件。其中图书管理系统构件依赖于信息查询、图书信息、借阅信息、图书资源管理4个构件。信息查询构件依赖于图书信息、借阅信息2个构件。
2、画出下述系统的部署图:系统中有UserClient,FireWall,App Server,DB Server,Web Server,FTP Server and SessionServer六个节点。其中UserClient为用户客户端,为用户个人PC,预装有浏览器。FireWall为防火墙。用户端对所有服务器的操作通过防火墙过滤。App Server为应用程序服务器,用于实现与系统应用相关的控制功能。DB Server为数据库服务器,用于存储系统中所需要的数据。其中App Server与DB Server之间通过TCP/IP协议进行通信。Web Server为网络服务器,用于提供互联网信息服务,即IIS(Internet Information Server),用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事,主要包括3个B2CWeb和1个
12 B2BWeb。其中Web Server与DB Server通过TCP/IP协议进行通信。FTP Server and
Session Server为FTP服务器和会话服务器,网站所有的图片都统一上传到FTP服务器上,同时B2CWeb下的Session统一转移到此服务器上。其中Web Server与FTP Server and SessionServer之间通过TCP/IP协议进行通信。
3、绘制下述大学生管理系统的构件图和部署图。有一个客户浏览器Client
Browser,一个应用服务器Application Server,一个数据库服务器Database Server,以及一个主应用程序Mainframe。其中Client Browser和Application Server之间通过HTTP协议进行通信。Application Server和Database Server通过java数据库JDBC连接。Application Server和Mainframe之间通过Web Services连接。
在Client Browser中实现学生管理应用程序构件Student Administration。在Application Server中实现学生Student,研讨会Seminar,课程表Schedule三个构件。在Database Server中实现基础构件Persistence和学校的数据库构件University
DB。在Mainframe中实现课程管理构件Course Management。其中构件之间的依赖关系如下:Student Administration构件依赖于Student,Seminar和Schedule三个构件;Student,Seminar和Schedule三个构件依赖于Persistence构件;Persistence构件依赖于University DB构件提供的接口JDBC;此外Schedule构件还依赖于Course Management构件。
13
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690352997a336748.html
评论列表(0条)