问题 填空题

阅读下列说明和Java代码,将应填入 (n) 处的字句写在对应栏内。

[说明]

已知某企业欲开发一个家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器如图18-13所示。该遥控器共有4个按钮,编号分别是0~3,按钮0和2能够遥控打开电器1和电器2,按钮1和3则能遥控关闭电器1和电器2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图18-14所示。

在图18-14中,类RomoteController的方法onPressButton(int button)表示当遥控器按键按下时调用的方法,参数为按键的编号;Command接N中的On()和off()方法分别用于控制电器的开与关;Light中的mrnLight(int degree)方法用于调整电灯灯光的强弱,参数degree值为0时表示关灯,值为100时表示开灯,并且将灯光亮度调整到最大;TV中的setChannel(int channel)方法表示设置电视播放的频道,参数channel值为0时表示关闭电视,值为1时表示打开电视并将频道切换为第1频道。

[Java代码]

class Light //电灯类

public void turnLight(int degree)//调整灯光亮度,0表示关灯,100表示亮度最大

class TV//电视机类

Public void setChannel(int channel)//0表示关机,1表示开机并切换到第1频道

interface Command//抽象命令类

void on();

void off();

class RemoteController //遥控器类

protected Command[]commands=new Command[4];

//遥控器有4个按钮,按照编号分别对应4个Command对象

public void onPressButton(int button)

//按钮被按下时执行命令对象中的命令

if(button % 2==0)commands[button].on();

else commands[button].off();

public void setCommand(int button,Command command)

(1) =command;//设置每个按钮对应的命令对象

class LightCommand implements Command //电灯命令类

protected Light light; //指向要控制的电灯对象

public void on()light.turnLight(100);;

public void off()light. (2) :;

public LightCommand(Light light)this.light=light;;

class TVCommand implements Command//电视机命令类

protected Tv tv; //指向要控制的电视机对象

public void on()(tv. (3) ;;

public void off()tv.setChannel(0);;

public TVCommand(TV tv)(this.tv=tv;;

public class rs

public static void main(String[]args)

Light light=new Light();TV tv=new TV(); //创建电灯和电视对象

LightCommand lightCommand=new LightCommand(light);

TVCommand tvCommand=new TVCommand(tv);

RemoteController remoteControllet=new RemoteController();

//设置按钮和命令对象

remoteController.setCommand(0, (4)

…//此处省略设置按钮1、按钮2和按钮3的命令对象代码

本题中,应用命令模式能够有效让类 (5) 和类 (6) 、类 (7) 之间的耦合性降至最小。

(7)处填()。

答案

参考答案:TV

解析:

(5)、(6)、(7)答案顺序可以互换。

问答题

【说明】
某城市电信局受理了许多用户申请在指定电话上开设长话业务。长话包括国内长途和国际长途。电信局保存了长话用户档案和长话业务档案。
长话用户档案的记录格式为

用户编码 用户名 用户地址
  长话业务档案的记录格式为
电话号码 用户编码 国内长途许可标志 国际长途许可标志
  电话用户每次通话的计费数据都自动地记录在电信局程控交换机的磁带上。计费数据的记录格式为
日期 电话号码 受话号码 通话开始时间 通话持续时间
  该电信局为了用计算机自动处理长话收费以提高工作效率,开发了长话计费管理系统。该系统每月能为每个长话用户打印出长话缴费通知单。长话缴费通知单的记录格式为
用户名 用户地址 国内长途话费 国际长途话费 话费总额
  流程图描述了该系统的数据处理过程。
  该系统每天对原始的计费数据进行分类排序,并确定每个通话记录的通话类型(市话/国内长途/国际长途),再根据话费单价文件算出每个通话记录应收取的话费。因此,形成的日计费文件中,增加了两个数据项:通话类型和话费。该系统每日对日计费文件进行累计 (按电话号码和通话类型,对该类型的话费进行累计,得到该电话号码该通话类型的当月话费总计),形成月计费文件。
  月计费文件经过长话出账处理形成长话账单文件。长话账单文件的记录格式为
月份 用户编码 电话号码 国内长途话费 国际长途话费 话费总额
  长话账单文件经过处理5和处理6的处理后,就可以形成长话缴费通知单。
1. 【问题1】
(1)请说明流程图1中的文件F0、F1分别是哪个文件。
(2)处理1和处理5分别按照哪些数据项进行分类

单项选择题 A1/A2型题