题目

题干:编写一个USB接口程序,模拟计算机启动过程和关闭过程启动过程中要加载鼠标、键盘、麦克风等USB设备,具体要求如下:

(1)定义一个接口USB,包含两个抽象方法turnOn()he turnOff(),分别用于表示USB设备的启动和关闭

(2)编写鼠标Mouse、键盘KeyBoard、麦克风Mic类,实现接口中的turnOn()、turnOff()方法,方法中显示“XX设备启动了”或“XX设备关闭了”即可

(3)编写计算机类Computer,要求有一个表示计算机上USB插槽数量的数组;添加USB设备的方法add(USB usb),功能为遍历所有插槽,如果有空闲的就添加一个USB设备

模拟开机启动USB设备的powerOn()方法,功能为遍历所有USB接口,如果连接了USB设备,则启动USB设备,然后显示“计算机开机成功”

模拟关机关闭USB设备的powerOff()方法,功能为遍历所有USB接口,如果连接了USB设备,则关闭USB设备,然后显示“计算机关机成功”

(4)编写测试类,要求建立计算机对象,建立鼠标、键盘、麦克风对象,并添加到计算机中,启动计算机,关闭计算机

输入输出说明:

无输入;

输出:

鼠标启动了

键盘启动了

麦克启动了

计算机开机成功

鼠标关闭了

键盘关闭了

麦克关闭了

计算机关机成功

代码实现

//定义一个接口USB
//包含两个抽象方法turnOn()和turnOff()
//分别用于表示USB设备的启动和关闭
interface usb{
	void turnOn();
	void turnOff();
}
class Mouse implements usb{
	public void turnOn() {
		System.out.println("鼠标设备启动了。");
	}
	public void turnOff() {
		System.out.println("鼠标设备关闭了。");
	}
}
class KeyBoard implements usb{
	public void turnOn() {
		System.out.println("键盘设备启动了。");
	}
	public void turnOff() {
		System.out.println("键盘设备关闭了。");
	}
}
class Mic implements usb{
	public void turnOn() {
		System.out.println("麦克风设备启动了。");
	}
	public void turnOff() {
		System.out.println("麦克风设备关闭了。");
	}
}
class Computer{
	usb arr[]=new usb[3];
	//遍历数组添加usb
	int i=0;
	void add(usb u) {
		if(arr[i]==null) {
			u.turnOn();
			arr[i]=u;//添加进插槽数组
			i++;
			powerOn();//尝试开机
		}
	}
	//模拟开机启动USB设备 遍历所有USB接口
	//如果连接了USB设备,则启动USB设备,然后显示“计算机开机成功”
	void powerOn(){		
		for(int i=0;i<=2;i++)
		{
			if(arr[i]!=null&i==2) {
				System.out.println("计算机开机成功。");
				powerOff();
				}
		}
	}
	//模拟关机关闭USB设备 遍历所有USB接口
	//如果连接了USB设备,则关闭USB设备,然后显示“计算机关机成功”
	void powerOff(){
		int temp=3;//用于计算插槽是否为空
		for(int i=2;i>=0;i--)
		{
			if(arr[i]!=null) {
				usb u;
				u=arr[i];
				u.turnOff();
				arr[i]=null;
				temp--;
			}
		}
		if(temp==0) {
			System.out.println("计算机关机成功。");
		}
	}
}
class Test{
	Computer computer=new Computer();
	Mouse mouse=new Mouse();
	KeyBoard keyboard=new KeyBoard();
	Mic mic=new Mic();
	//添加到计算机中
	void test() {
	computer.add(mouse);
	computer.add(keyboard);
	computer.add(mic);
	}
}
public class usbPort {
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		//Scanner sc=new Scanner(System.in);
		Test t=new Test();
		t.test();//测试
	}
}