最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

面向对象例题

来源:动视网 责编:小OO 时间:2025-10-01 18:36:16
文档

面向对象例题

(1)阅读下列说明和图,完成问题1至问题4,并在答题纸上自行列表写出答案。【说明】在线会议审稿系统(OnlineReviewingSystem,ORS)主要处理会议前期的投稿和审稿事务,其功能描述如下:(1)用户在初始使用系统时,必须在系统中注册(register)成为作者或审稿人。(2)作者登录(login)后提交稿件和浏览稿件审阅结果。提交稿件必须在规定提交时间范围内,其过程为先输入标题和摘要,选择稿件所属主题类型,选择稿件所在位置(存储位置)。上述几步若未完成,则重复;若完成,则上传稿件
推荐度:
导读(1)阅读下列说明和图,完成问题1至问题4,并在答题纸上自行列表写出答案。【说明】在线会议审稿系统(OnlineReviewingSystem,ORS)主要处理会议前期的投稿和审稿事务,其功能描述如下:(1)用户在初始使用系统时,必须在系统中注册(register)成为作者或审稿人。(2)作者登录(login)后提交稿件和浏览稿件审阅结果。提交稿件必须在规定提交时间范围内,其过程为先输入标题和摘要,选择稿件所属主题类型,选择稿件所在位置(存储位置)。上述几步若未完成,则重复;若完成,则上传稿件
(1)阅读下列说明和图,完成问题1至问题4,并在答题纸上自行列表写出答案。

【说明】

在线会议审稿系统(Online Reviewing System, ORS)主要处理会议前期的投稿和审稿事务,其功能描述如下:

(1)用户在初始使用系统时,必须在系统中注册(register)成为作者或审稿人。

(2)作者登录(login)后提交稿件和浏览稿件审阅结果。提交稿件必须在规定提交时间范围内,其过程为先输入标题和摘要,选择稿件所属主题类型,选择稿件所在位置(存储位置)。上述几步若未完成,则重复;若完成,则上传稿件至数据库中,系统发送通知。

(3)审稿人登录后可设置兴趣领域,审阅稿件给出意见,以及罗列录用和(或)拒绝的稿件。

(4)会议委员会是一个特殊的审稿人,可以浏览提交的稿件、给审稿人分配稿件、罗列录用和(或)拒绝的稿件,以及关闭审稿过程。其中关闭审稿过程须包括罗列录用和(或)拒绝的稿件。

系统采用面向对象的方法开发,使用UML进行建模。在建模用例图时,常用的方式是先识别参与者,然后确定参与者如何使用系统来确定用例,每个用例可以构造一个活动图。参与者名称、用例和活动名称分别参见表1、表2和表3。系统的部分用例图和提交稿件的活动图分别如图1和图2所示。

表1 参与者列表

名称说明名称说明
User用户Author作者
Reviewer审稿人PCChair委员会
表2 用例名称列表

名称说明名称说明
login登录系统Register注册
submit paper提交稿件Browse review results浏览稿件审阅结果
close reviewing process关闭审稿过程assign paper to reviewer分配稿件给审稿人
set preferences设定兴趣领域enter review审阅稿件给出意见
list accepted/rejected papers罗列录用和/或拒绝的稿件

browse submitted papers浏览提交的稿件
表3 活动名称列表

名称说明名称说明
select paper location选择稿件位置

upload paper上传稿件
select subject group选择主题类型send notification发送通知
enter title and abstract输入标题和摘要

图1 ORS的用例图

图2 提交稿件过程的活动图

【问题1】(4分)

根据【说明】中的描述,使用表1中的英文名称,给出图1中A1~A4所对应的参与者。

【问题2】(3分)

根据【说明】中的描述,使用表2中的英文名称,给出图1中U1~U3所对应的用例。

【问题3】(4分)

根据【说明】中的描述,给出图1中(1)和(2)所对应的关系及其含义。

【问题4】(4分)

根据【说明】中的描述,使用表2和表3中的英文名称,给出图2中Action1~Action4对应的活动。

答案:

【问题1】(4分)

根据【说明】中的描述,使用表1中的英文名称,给出图1中A1~A4所对应的参与者。

A1User(1分)

A2Author(1分)

A3Reviewer(1分)

A4PCChair(1分)

【问题2】(3分)

!!注意:U2和U3的答案可以互换。!!

根据【说明】中的描述,使用表2中的英文名称,给出图1中U1~U3所对应的用例。

U1list accepted / rejected papers(1分)

U2browse submitted papers(1分)

U3assign paper to reviewer(1分)

【问题3】(4分)

根据【说明】中的描述,给出图1中(1)和(2)所对应的关系及其含义。

(1)<>(1分):将常规动作放在一个基本Use Case中,将非常规动作放在其扩展Use Case中。(1分)

(2)<>(1分):两个Use Case,如果其中一个在其事件流中包含了另一个,那么它们间就有包含关系。(1分)

【问题4】(4分)

根据【说明】中的描述,使用表2和表3中的英文名称,给出图2中Action1~Action4对应的活动。

Action1enter title and abstract(1分)

Action2select subject group(1分)

Action3select paper location(1分)

Action4upload paper(1分)

(2)阅读下列说明和图,回答问题1至问题4,将答案填到答题纸的对应栏内。

【说明】

某汽车停车场欲建立一个信息系统,已经调查到的需求如下:

(1)在停车场的入口和出口分别安装一个自动栏杆、一台停车卡打印机/一台读卡器以及一个车辆通过传感器,示意图如图1所示。

图1 自动停车场示意图

(2)当汽车到达入口时,驾驶员按下停车卡打印机的按钮获取停车卡。当驾驶员拿走停车卡后,系统命令栏杆自动抬起;汽车通过入口后,入口处的传感器通知系统发出命令,栏杆自动放下。

(3)在停车场内分布着若干个付款机器。驾驶员将在入口处获取的停车卡插入付款机器,并缴纳停车费。付清停车费之后,将获得一张出场卡,用于离开停车场。

(4)当汽车到达出口时,驾驶员将出场卡插入出口处的读卡器。如果这张卡是有效的,系统命令栏杆自动抬起;汽车通过出口后,出口处的传感器通知系统发出命令,栏杆自动放下。若这张卡是无效的,系统不发出栏杆抬起命令而发出告警信号。

(5)系统自动记录停车场内空闲的停车位的数量。若停车场当前没有车位,系统将在入口处显示“车位已满”信息。这时,停车卡打印机将不再出卡,只允许场内汽车出场。

根据上述描述,采用面向对象方法对其进行分析与设计,得到了如表1所示的用例/类/状态列表、如图2所示的用例图、如图3所示的初始类图,以及如图4所示的描述入口自动栏杆行为的UML状态图。

图2 用例图

图3 初始类图

图4 入口自动栏杆行为的状态图

用例名说明类名说明状态名说明
Car entry汽车进入停车场CentralComputer停车场信息系统Idle空闲状态,汽车可以进入
Car exit汽车离开停车场PaymentMachine付款机器Disable没有车位
Report Statistics记录停车场的相关信息CarPark停车场,保存车位信息Await Entry等待汽车进入
Barrier自动护栏Await Ticket Take等待打印停车卡
Car entry when full没有车位时,汽车请求进入停车场EntryBarrier入口的护栏Await Enable等待停车场内有空闲车位
ExitBarrier出口的护栏
表1 用例/类/状态列表

【问题1】(3分)

根据【说明】中的描述,使用表1给出的用例名称,给出图2中U1、U2和U3所对应的用例。

U1
U2
U3
【问题2】(4分)

根据【说明】中的描述,使用表1给出的类的名称,给出图3中A~D所对应的类。

A
B
C
D
【问题3】(4分)

根据【说明】中的描述,使用表1给出的状态名称,给出图4中S1~S4所对应的状态。

S1
S2
S3
S4
【问题4】(4分)

简要解释图2中用例U1和U3之间的extend关系的内涵。

答案:

阅读下列说明和图,回答问题1至问题4,将答案填到答题纸的对应栏内。

参:

【问题1】(3分)

U1Car entry
U2Car exit
U3Car entry when full
【问题2】(4分)!!C、D答案可以互换!!

ACarPark
BBarrier
CEntryBarrier
DExitBarrier
【问题3】(4分)

S1Idle
S2Await Ticket Take
S3Await Enable
S4Await Entry
【问题4】(4分)

用例之间的扩展关系用于对可选系统行为的用例的一部分建模。通过这种方式,可以把可选行为从必需的行为中分离出来。

(3)阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。

【说明】

已知某唱片播放器不仅可以播放唱片,而且可以连接电脑并把电脑中的歌曲刻录到唱片上(同步歌曲)。连接电脑的过程中还可自动完成充电。

关于唱片,还有以下描述信息:

1.每首歌曲的描述信息包括:歌曲的名字、谱写这首歌曲的艺术家以及演奏这首歌曲的艺术家。只有两首歌曲的这三部分信息完全相同时,才认为它们是同一首歌曲。艺术家可能是一名歌手或一支由2名或2名以上的歌手所组成的乐队。一名歌手可以不属于任何乐队,也可以属于一个或多个乐队。

2.每张唱片由多条音轨构成;一条音轨中只包含一首歌曲或为空,一首歌曲可分布在多条音轨上;同一首歌曲在一张唱片中最多只能出现一次。

3. 每条音轨都有一个开始位置和持续时间。一张唱片上音轨的次序是非常重要的,因此对于任意一条音轨,播放器需要准确地知道,它的下一条音轨和上一条音轨是什么(如果存在的话)。

根据上述描述,采用面向对象方法对其进行分析与设计,得到了如表1-1所示的类列表、如图1-1所示的初始类图以及如图1-2所示的描述播放器行为的UML状态图。

表1-1 类列表

类 名

说 明

Artist艺术家
Song歌曲
Band乐队
Musician歌手
Track音轨
Album唱片

图1-1 初始类图

图1-2 播放器行为UML状态图

【问题1】(6分)

 根据说明中的描述,使用表1-1给出的类的名称,给出图1-1中的A~F所对应的类。

【问题2】(3分)

 根据说明中的描述,给出图1-1中(1)~(6)处的多重度。

【问题3】(4分)

图1-1中缺少了一条关联,请指出这条关联两端所对应的类以及每一端的多重度。

多重度
【问题4】(2分)

根据图1-2所示的播放器行为UML状态图,给出从“关闭”状态到“播放”状态所经过的最短事件序列(假设电池一开始就是有电的)。

答案:

【问题1】(6分)

根据说明中的描述,使用表1-1给出的类的名称,给出图1-1中的A~F所对应的类。

A: Artist    B:  Song     C:  Band     D:  Musician     E: Track      F: Album

【问题2】(3分)

根据说明中的描述,给出图1-1中(1)~(6)处的多重度。

(1) 0..*

(2) 2..*

(3) 0..1

(4) 1..*

(5) 1..*

(6) 1

【问题3】(4分)

图1-1中缺少了一条关联,请指出这条关联两端所对应的类以及每一端的多重度。

多重度
Track 或 分)

0..1
Track 或 分)

0..1
【问题4】(2分)

根据图1-2所示的播放器行为UML状态图,给出从“关闭”状态到“播放”状态所经过的最短事件序列(假设电池一开始就是有电的)。

按任意键, 选择歌曲

(4)阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

某城市的各国家公园周边建造了许多供游客租用的小木屋和营地,为此,该城市设置了一个中心售票处和若干个区域售票处。游客若想租用小木屋或营地,必须前往中心售票处进行预定并用现金支付全额费用。所有的预定操作全部由售票处的工作人员手工完成。现欲开发一信息系统,实现小木屋和营地的预定及管理功能,以取代手工操作。该系统的主要功能描述如下:

1.管理预定申请。游客可以前往任何一个售票处提出预定申请。系统对来自各个售票处的预定申请进行统一管理。

2.预定。预定操作包含登记游客预定信息、计算租用费用、付费等步骤。

3.支付费用。游客付费时可以选择现金和信用卡付款两种方式。使用信用卡支付可以享受3%的折扣,现金支付没有折扣。

4.游客取消预定。预定成功之后,游客可以在任何时间取消余地,但需支付赔偿金,剩余部分则退还给游客。赔偿金的计算规则是,在预定如住时间之前的48小时内取消,支付租赁费用10%的赔偿金;在预定如住时间指头取消,则支付租赁费用50%的赔偿金。

5.自动取消预定。如果遇到恶劣天气(如暴雨、山洪等),系统会自动取消所有的预定,发布取消预定消息,全额退款。

6.信息查询。售票处工作人员查询小木屋和营地的预定情况和使用情况,以判断是否能够批准游客的预定申请。

现采用面向对象方法开发上述系统,得到如表1所示的用例列表和表2所示的类列表。对应的用例图和类图分别如图3和图4所示。

表1 用例列表

用例名说明用例名说明
ManageInquiries管理预订申请ManageCashPayment现金支付
MakeReservation预定ManageCrCardPayment信用卡支付
ManagePayment支付管理GetDiscount计算付款折扣
CancelReservation游客取消预订AutoCancelReservation系统自动取消预定
CheckAvailability信息查询CalculateRefund计算取消预定的赔偿金
PublishMessage发布取消预定消息
表2 类列表

类名说明类名说明
NationalPark国家公园Customer游客
Reservation预定申请ReservationItem预订申请内容
TicketingOfficer售票处CampSite营地
Bungalow小木屋Payment付款
Discount付款折扣CashPayment现金支付
CreditCardPayment信用卡支付Rate租赁费用
【问题1】(6分)

根据说明中的描述与表1,给出图3中UC1-UC6所处对应的用例名称。

【问题2】(7分)

根据说明中的描述与表2,给出图4中C1-C7处所对应的类名。

【问题3】(2分)

对于某些需求量非常大的小木屋或营地,说明中功能4的赔偿金计算规则,不足以弥补取消预定所带来的损失。如果要根据预定的时段以及所预定场地的需求量,设计不用层次的赔偿金计算规则,需要对图4进行怎样的修改?(请用文字说明)

图3 用例图

图4 类图

答案:

【问题1】(6分)

根据说明中的描述与表1,给出图3中UC1-UC6所处对应的用例名称。

UC1:CheckAvailability(信息查询) :MakeReservation(预定)

UC3:GetDiscount(计算付款折扣) :ManageCashPayment(现金支付)

UC5:ManageCrCardPayment(信用卡支付)  UC6:CalculateRefund(计算取消预订的赔偿金)

【注:UC4与UC5可以互换】

【问题2】(7分)

根据说明中的描述与表2,给出图4中C1-C7处所对应的类名。

C1:NationalPark(国家公园) :Rate(租赁费用)

C3:TicketingOfficer(售票处) :payment(付款)

C5:Discount(付款折扣) :CashPayment(现金支付)

C7:CreditCardPayment(信用卡支付)

【注:C6和C7可以互换】

【问题3】(2分)

对于某些需求量非常大的小木屋或营地,说明中功能4的赔偿金计算规则,不足以弥补取消预定所带来的损失。如果要根据预定的时段以及所预定场地的需求量,设计不用层次的赔偿金计算规则,需要对图4进行怎样的修改?(请用文字说明)

依题意,若需要根据预定的时段以及预定场地的需求量,设计不同层次的赔偿金计算规则,则在图中可以增加一个与此相对应的新类,且使该新类与类ReservationItem(预定申请内容)之间存在关联关系;或者是修改类Rate(租赁费用),使其具有计算赔偿金的功能。

(5)阅读下列说明和程序代码,将应填入(n)处的字句填写完整。(问题1和问题2任选一题完成)

策略模式是一种对象行为型模式,它定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。该模式使得算法可于使用它的客户而变化。其结构如图4所示:

图4 策略模式类图

某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征见表3。

表3 需模拟的飞机种类及其特征

飞机种类起飞特征飞行特征
直升机(Helicopter)

垂直起飞(VerticalTakeOff)

亚音速飞行(SubSonicFly)

客机(AirPlane)

长距离起飞(LongDistanceTakeOff)

亚音速飞行(SubSonicFly)

歼击机(Fighter)

长距离起飞(LongDistanceTakeOff)

超音速飞行(SuperSonicFly)

鹞式战斗机(Harrier)

垂直起飞(VerticalTakeOff)

超音速飞行(SuperSonicFly)

为支持将来模拟更多种类的飞机,采用策略设计模式设计的类图如图5所示。

图5 飞机飞行模拟系统类图

在图5中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,fly()和takeoff()分别表示不同飞机都具有飞行特征和起飞特征;类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行行为与起飞行为;类SubSonicfly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff和LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。

【问题1】(7分)Java代码

interface FlyBehavior {

    public void fly();

};

class SubSonicFly implements FlyBehavior{

    public void fly() { System.out.println("亚音速飞行!"); }

};

class SuperSonicFly implements FlyBehavior{

    public void fly() { System.out.println("超音速飞行"); }

};

interface TakeOffBehavior {

    public void takeOff();

};

class VerticalTakeOff implements TakeOffBehavior{

    public void takeOff() { System.out.println("垂直起飞!"); }

};

class LongDistanceTakeOff implements TakeOffBehavior{

    public void takeOff() { System.out.println("长距离起飞!"); }

};

abstract class AirCraft{

    protected     (1)        ;

    protected     (2)        ; //(1)、(2)可互换

    public void fly() {    (3)        ;}

    public void takeOff() {     (4)        ;}

};

class Helicopter     (5)      Aircraft{

    public Helicopter() {

        flyBehavior= new      (6)      ;

        takeOffBehavior=new     (7)     ;

    }

}

//其他代码省略

【问题2】(7分)C++代码

#include 

using namespace std;

class FlyBehavior {

    public: virtual void fly()=0;

};

class SubsonicFly: public FlyBehavior {

    public: void fly() { cout << "亚音速飞行!" << endl; }

};

class SuperFly: public FlyBehavior {

    public: void fly() { cout << "超音速飞行!" << endl; }

};

class TakeOffBehavior {

    public: virtual void TakeOff()=0;

};

class VerticalTakeOff: TakeOffBehavior {

    public: void TakeOff() { cout << "垂直起飞!" << endl; }

};

class LongDistanceTakeOff {

    public: void TakeOff() { cout << "长距离起飞!" << endl; }

};

class AirCraft {

    protected:

             (1)         ;

             (2)         ;//(1)、(2)可互换

    public:

        void fly() {    (3)         ;}

        void TakeOff() {   (4)         ;}

};

class Helicopter: public Aircraft {

    public:

        Helicopter() {

            flyBehavior = new    (5)         ;

            takeOffBehavior = new     (6)       ;

        }

           (7)          {

            if (!flyBehavior) delete flyBehavior;

            if (!takeOffBehavior) delete takeOffBehavior;

        }

};

//其他代码省略   

答案

【问题1】(7分)Java代码

(1)FlyBehavior flybehavior

(2)TakeOffBehavior takeOffBehavior

(3)flyBehavior.fly()

(4)takeOffBehavior.takeOff()

(5)extends

(6)SubsonicFly()

(7)V(1、2可互换)

【问题2】(7分)C++代码

(1)FlyBehavior *flyBehavior

(2)TakeOffBehavior *takeOffBehavior

(3)flyBehavior->fly()

(4)takeOffBehavior->takeOff()

(5)SubSonicFly()

(6)VerticalTakeOff()

(7)~、2可互换)

文档

面向对象例题

(1)阅读下列说明和图,完成问题1至问题4,并在答题纸上自行列表写出答案。【说明】在线会议审稿系统(OnlineReviewingSystem,ORS)主要处理会议前期的投稿和审稿事务,其功能描述如下:(1)用户在初始使用系统时,必须在系统中注册(register)成为作者或审稿人。(2)作者登录(login)后提交稿件和浏览稿件审阅结果。提交稿件必须在规定提交时间范围内,其过程为先输入标题和摘要,选择稿件所属主题类型,选择稿件所在位置(存储位置)。上述几步若未完成,则重复;若完成,则上传稿件
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top