试题详情

试题内容

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如下图所示。

现在采用组合( Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中增加新的餐饮形式,得到如下图所示的类图。其中MenuComponent为抽象类,定义了添加(add)新菜单和打印饭店所有菜单信息(print)的方法接口。类Menu表示饭店提供的每种餐饮形式的菜单,如煎饼屋菜单、咖啡屋菜单等。每种菜单中都可以添加子菜单,例如图中的甜点菜单。类Menultem表示菜单中的菜式。

【Java代码】
import javA.util.*;
(1)  MenuComponent{
protected String name;
(2) ;//添加新菜单
public abstract void print();    //打印菜单信息
public String getName(){ return name;}
}
class Menultem extends MenuComponent{
private double price;
public MenuItem(String name, double price){
this.name= name;  this.price= price;
}
public double getPrice(){return price;)
public void add(MenuComponent menuComponent){ return;)//添加新菜单
public void print(){
System.out.print(" "+ getName());
System.out.println(","+ getPrice());
}
}
class Menu extends MenuComponent{
private ListmenuComponents= new ArrayList();
public Menu(String name){ this.name= name;)
public void add(MenuComponent menuComponent){//添加新菜单
menuComponents. (3);
}
public void print(){
System.out.print("\n"+ getName());
System.out.println(","+"---------------");
Iterator iterator = menuComponents.iterator();
while(iterator.hasNext()){
MenuComponent menuComponent= (MenuComponent)iterator.next();
(4) ;
}
}
}
class MenuTestDrive{
public static void main(String args[]){
MenuComponent   aIIMenus= new Menu("ALL MENUS");
MenuComponent   dinerMenu = new Menu("DINER MENU”);
……//创建更多的Menu对象,此处代码省略
allMenus.add(dinerMenu);   //将dinerMenu添加到餐厅菜单中
……//为餐厅增加更多的菜单,此处代码省略
(5);   //打印饭店所有菜单的信息
}
}
查看答案

软题库参考答案:暂时没有答案(仅供参考)

软题库解析:正在加载....

你可能感兴趣的试题

5题:试题五
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
Facade(外观)模式是一种通过为多个复杂子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。以医院为例,就医时患者需要与医院不同的职能部门交互,完成挂号、门诊、取药等操作。为简化就医流程,设置了一个接待员的职位,代患者完成上述就医步骤,患者则只需与接待员交互即可。如5-1给出了以外观模式实现该场景的类图。

【Java 代码】


2题:阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某房屋租赁公司拟开发一个管理系统用于管理其持有的房屋、租客及员工信息。请根据下述需求描述完成系统的数据库设计。
【需求描述】
1.公司拥有多幢公寓楼,每幢公寓楼有唯一的楼编号和地址。每幢公寓楼中有多套公寓,每套公寓在楼内有唯一的编号(不同公寓楼内的公寓号可相同〉。系统需记录每套公寓的卧室数和卫生间数。
2.员工和租客在系统中有唯一的编号(员工编号和租客编号)。
3.对于每个租客,系统需记录姓名、多个联系电话、一个银行账号(方便自动扣房租)、一个紧急联系人的姓名及联系电话。
4.系统需记录每个员工的姓名、一个联系电话和月工资。员工类别可以是经理或维修工,也可兼任。每个经理可以管理多幢公寓楼。每幢公寓楼必须由一个经理管理。系统需记录每个维修工的业务技能,如:水暖维修、电工、木工等。
5. 租客租赁公寓必须和公司签订租赁合同。一份租赁合同通常由一个或多个租客(合租)与该公寓楼的经理签订,一个租客也可租赁多套公寓。合同内容应包含签订日期、开始
2题:

试题二
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内
【说明】
某省针对每年举行的足球联赛,拟开发一套信息管理系统,以方便管理球队、球员、主教练、主裁判、比赛等信息。
(1)系统需要维护球队、球员、王教练需要维护球队、球员、主教练、主裁判、比赛等信息。
球队信息主要包括:球队编号、名称、成立时间、人数、主场地址、球队主教练
球员信息主要包括:姓名、身份证号、出生日期、身高、家庭住址。
 主教练信息主要包括:姓名、身份证号、出生日期、资格证书号、级别。
 主裁判信息王要包括:姓名、身份证号、出生日期、资格证书号、获取证书时间、级别。
 (2)每支球队有一名主教练和若干名球员。一名主教练只能受聘于一支球队,一名球员只能效力于一支球队。每支球队部有自己的唯一主场场地,且场地不能共用。
 (3)足球联赛采用王客场循环制,一周进行一轮比赛,一轮的所有比赛同时进行。
 (4)一场比赛有两支球队参
5题:阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。
现采用原型模式(Prototype)来实现上述要求,得到如图5-1所示的类图。

【C++代码】
#include
using namespace std;
class  Cloneable{
public:
(1)  ;
};
class  workExperience:public  Cloneable{   //工作经历
private:
string  workData
7题:

试题七
阅读以下说明和C代码,将应填入  (n)  处。
[说明]
在一公文处理系统中,开发者定义了一个公文结构OfficeDoc,其中定义了公文应该具有的属性(字段)。当公文的内容或状态发生变化时,与之相关联的DocExplorer结构的值都需要发生改变。一个OfficeDoc结构能够关联一组DocExplorer结构。当OfficeDoc结构的内容或状态发生变化时,所有与之相关联的DocExplorer结构都将被更新,这种应用被称为观察者模式。以下代码采用C语言实现,能够正确编译通过。
[C代码]
#include <stdio.h>
#define OBS_MAXNUM 20  /*一个OfficeDoc变量最多能够关联的*/
/*DoeExplorer变量的个数*/
typedef void(  (1)  )(struct OfficeDoc*,street DocExplorer*);
struct DocExplorer{
1题:

阅读下列说明和图,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某巴士维修连锁公司欲开发巴士维修系统,以维护与维修相关的信息。该系统的主要功能如下:
1)记录巴士ID和维修问题。巴士到车库进行维修,系统将巴士基本信息和ID记录在巴士列表文件中,将待维修机械问题记录在维修记录文件中,并生成维修订单。
2)确定所需部件。根据维修订单确定维修所需部件,并在部件清单中进行标记。
3)完成维修。机械师根据维修记录文件中的待维修机械问题,完成对巴士的维修,登记维修情况:将机械问题维修情况记录在维修记录文件中,将所用部件记录在部件清单中,并将所用部件清单发送给库存管理系统以对部件使用情况进行监控。巴土司机可查看已维修机械问题。
4)记录维修工时。将机械师提供的维修工时记录在人事档案中,将维修总结发送给主管进行绩效考核。
5)计算维修总成本。计算部件清单中实际所用部件、人事档案中所用维修工时的总成本;将维修工时和所用部件成本详细信息给会计进行计费。
现采用结构化方法对巴士维修系统进行分