1.模拟计算机主板集成各类板卡
模拟实现如下情形:PC包括主板,主板上有5个PCI插槽,可插装显卡、声卡、网卡等PCI设备。
可以实现在主板启动与关机时,依次启动、关闭主板上的各设备。
要求:
1、给出面向对象的设计(类图);
2、给出Java代码实现。
import java.util.ArrayList;
import java.util.List;
class MotherBoard{
private List<Device> devices; //主板上的设备
public MotherBoard(){
this.devices=new ArrayList<Device>(); //设备初始化
}
public void start(){
System.out.println("主板启动");
for(Device device:devices){
device.start();
}
}
public void stop(){
System.out.println("主板关机!");
for(int i=devices.size()-1;i>=0;i--){
devices.get(i).stop(); //设备依次关机
}
}
public void addDevice(Device device){
devices.add(device);
}
public void removeDevice(Device device){
devices.remove(device); //移除设备
}
}
interface Device{
//设备接口
void start(); //启动
void stop(); //关机
}
class VideoCard implements Device{
//显卡
@Override
public void start() {
System.out.println("显卡启动");
}
@Override
public void stop() {
System.out.println("显卡关闭");
}
}
class SoundCard implements Device{
//声卡
@Override
public void start() {
System.out.println("声卡启动");
}
@Override
public void stop() {
System.out.println("声卡关闭");
}
}
class NetCard implements Device{
//网卡
@Override
public void start() {
System.out.println("网卡启动");
}
@Override
public void stop() {
System.out.println("网卡关闭");
}
}
public class PciTest {
public static void main(String[] args) {
MotherBoard motherBoard=new MotherBoard();
VideoCard videoCard=new VideoCard();
SoundCard soundCard=new SoundCard();
NetCard netCard=new NetCard();
motherBoard.addDevice(netCard);
motherBoard.addDevice(videoCard);
motherBoard.addDevice(soundCard);
motherBoard.start();
motherBoard.stop();
}
}
2.赛车游戏
假设某赛车游戏中,汽车有如下内容:车主、品牌、颜色,汽车能够执行启动、前进、后退、停止、熄火等动作。
要求:1、若汽车已经启动,就不能重复启动;
2、若汽车处于熄火状态,就不能执行初启动外的其它动作;
3、能否打印汽车对象信息。
以面向对象完成以上类的设计并使用JAVA语言实现,汽车各功能动作给出提示信息即可。
class Car{
//汽车类
String owner;
String band;
String color;
boolean isStart; //是否启动
public Car(String owner,String band,String color){
this.owner=owner;
this.band=band;
this.color=color;
this.isStart=false;
}
public void start(){
if(isStart==true){
System.out.println("汽车已经启动了!!");
}else{
isStart=true;
System.out.println("汽车成功启动!");
}
}
public void stop(){
if(isStart==true){
System.out.println("汽车停止!");
}else{
System.out.println("汽车未启动或已熄火,无法熄火!");
}
}
public void forward(){
if(isStart==true){
System.out.println("汽车前进!!");
}else{
System.out.println("汽车未启动或已熄火,无法前进");
}
}
public void backward(){
if(isStart==true){
System.out.println("汽车后退!!");
}else{
System.out.println("汽车未启动或已熄火,无法后退");
}
}
public void turnoff(){
if(isStart==true){
System.out.println("汽车成功熄火!");
isStart=false;
}else{
System.out.println("汽车未启动,或已经熄火了!");
}
}
public void printCarInfo(){
System.out.println("owner:"+owner);
System.out.println("band:"+band);
System.out.println("color:"+color);
System.out.println("isStart:"+isStart);
}
}
public class CarTest {
public static void main(String[] args) {
Car c1=new Car("小明","无敌","红色");
c1.printCarInfo();
c1.stop();
c1.start();
System.out.println("------------------");
c1.printCarInfo();
c1.forward();
c1.backward();
c1.stop();
System.out.println("------------------");
c1.printCarInfo();
}
}