首页 > 其他分享 >10.3

10.3

时间:2025-01-02 15:30:59浏览次数:1  
标签:10.3 void System println new CPU out

软件设计                  石家庄铁道大学信息学院

 

实验12:外观模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解外观模式的动机,掌握该模式的结构;

2、能够利用外观模式解决实际问题。

 
   

 


[实验任务一]:计算机开启

在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法 ,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(read())、操作系统(OS)的载入(load()),如果某一过程发生错误则计算机启动失败。

实验要求:

1.  提交类图;

 

 

2.提交源代码;

// 内存接口

interface Memory {

    void check();

}

 

// 内存实现类

class MemoryImpl implements Memory {

    @Override

    public void check() {

        System.out.println("正在进行内存自检...");

        // 模拟内存自检失败的情况

        if (Math.random() < 0.2) {

            throw new RuntimeException("内存自检出现问题");

        }

        System.out.println("内存自检完成,无异常");

    }

}

 

 

// CPU接口

interface CPU {

    void run();

}

 

// CPU实现类

class CPUImpl implements CPU {

    @Override

    public void run() {

        System.out.println("CPU开始运行...");

        // 模拟CPU运行失败的情况

        if (Math.random() < 0.1) {

            throw new RuntimeException("CPU运行出现问题");

        }

        System.out.println("CPU运行正常");

    }

}

 

 

 

// 硬盘接口

interface HardDisk {

    void read();

}

 

// 硬盘实现类

class HardDiskImpl implements HardDisk {

    @Override

    public void read() {

        System.out.println("正在读取硬盘数据...");

        // 模拟硬盘读取失败的情况

        if (Math.random() < 0.3) {

            throw new RuntimeException("硬盘读取出现问题");

        }

        System.out.println("硬盘数据读取成功");

    }

}

 

 

 

 

// 操作系统接口

interface OperatingSystem {

    void load();

}

 

// 操作系统实现类

class OperatingSystemImpl implements OperatingSystem {

    @Override

    public void load() {

        System.out.println("正在载入操作系统...");

        // 模拟操作系统载入失败的情况

        if (Math.random() < 0.15) {

            throw new RuntimeException("操作系统载入出现问题");

        }

        System.out.println("操作系统载入成功");

    }

}

 

 

 

 

// 外观类

class ComputerFacade {

    private Memory memory;

    private CPU cpu;

    private HardDisk hardDisk;

    private OperatingSystem operatingSystem;

 

    public ComputerFacade() {

        this.memory = new MemoryImpl();

        this.cpu = new CPUImpl();

        this.hardDisk = new HardDiskImpl();

        this.operatingSystem = new OperatingSystemImpl();

    }

 

    public void turnOnComputer() {

        try {

            memory.check();

            cpu.run();

            hardDisk.read();

            operatingSystem.load();

            System.out.println("计算机启动成功!");

        } catch (Exception e) {

            System.out.println("计算机启动失败,原因:" + e.getMessage());

        }

    }

}

 

 

 

public class Main {

    public static void main(String[] args) {

        ComputerFacade computerFacade = new ComputerFacade();

        computerFacade.turnOnComputer();

    }

}

3.注意编程规范。

 

 

标签:10.3,void,System,println,new,CPU,out
From: https://www.cnblogs.com/jais/p/18647866

相关文章

  • 10.31
    今天没课,像是在忙碌的学习节奏中偷得的一抹清闲。早上,我被透过窗帘的阳光轻柔唤醒,没有了平日的匆忙,慢悠悠地洗漱后,给自己煮了一碗热气腾腾的燕麦粥,坐在窗边,看着窗外的绿树和偶尔飞过的小鸟,静静享受这片刻宁静。上午,我戴上耳机听着喜欢的音乐,开始整理电脑里的文件和资料,把各科的......
  • 习题10.3
    importnumpyasnpimportstatsmodels.formula.apiassmfimportmatplotlib.pyplotasplt#加载数据a=np.loadtxt('data10_3.txt')#设置绘图参数plt.rc('text',usetex=True)#启用LaTeX字体plt.rc('font',size=16)#设置字体大小plt.style.......
  • 数学建模习题10.3
    `importnumpyasnpimportstatsmodels.formula.apiassmfimportpylabasplt创建x值序列x=np.arange(17,30,2)加载数据a=np.loadtxt('data10_3.txt')设置图形样式和字体plt.rc('text',usetex=True)plt.rc('font',size=16)plt.style.use(�......
  • 24.10.31 补充日志分析以及打包压缩
    uniq作用:去重,一般与sort搭配使用,单用uniq,是合并相邻两行相同内容参数:-c#统计重复行的次数eg:[root@oldboyedu~]#catuniq.txtoldboylidaolidaolidaolidaooldboyoldboylidaooldboypldboy[root@oldboyedu~]#uniquniq.txtoldboylidaooldboylidaooldboypld......
  • 全能文档压缩软件 NXPowerLite v10.3.1 中文注册版
    NXPowerLiteDesktopEdition是一款专为办公文档优化设计的强大工具,能够无损压缩 Word、Excel、PPT 以及 PDF 文件。它通过智能压缩图片和文字来缩小文件体积,不影响内容质量,使文件传输更快速,也便于存储。这款工具由英国Neuxpower软件公司开发,操作简单,运行高效,是办公人士......
  • ex10.3
    点击查看代码importnumpyasnpimportstatsmodels.formula.apiassmfimportpylabaspltx=np.arange(17,30,2);a=np.loadtxt('F:\python数学建模与算法\源程序\《Python数学建模算法与应用》程序和数据/10第10章回归分析/data10_3.txt')plt.rc('axes',unicod......
  • vue2使用openlayers10.3.0版本组包
     "node-polyfill-webpack-plugin":"2.0.1","@vue/cli-plugin-babel":"~5.0.0","@vue/cli-plugin-eslint":"~5.0.0","@vue/cli-service":"~5.0.0","node-polyfill-webpack-plu......
  • 【Baum-Welch 算法】10.35初始状态分布π的拉格朗日函数对其求偏导数并令结果为0
    本文是将博文【Baum-Welch算法】中的公式单独拿出来做一个详细的解析。公式(10.35)(10.35)(10.35)是用于......
  • 10.31
    次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解工厂方法模式的动机,掌握该模式的结构;2、能够利用工厂方法模式解决实际问题。  [实验任务一]:加密算法目前常用的加密算法有DES(DataEncryptionStandard)和IDEA(InternationalDataEncryptionAlgorithm)国际数据......
  • 10.30
    使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数M,则返回一个Man对象,如果传入参数W,则返回一个Woman对象,如果传入参数R,则返回一个Robot对象。请用程序设计实现上述场景。实验要求:1.画出对应的类图; 2. 提交源代码;//抽象产品类:Person接口publicinterfacePerson{v......