• 基于Java的磁盘调度模拟系统


    目录
    1、 设计目的: 1
    2、 设计内容: 1
    3、设计步骤: 2
    3.1需求分析 2
    3.2 概要设计: 2
    3.2.1 设计思想 2
    3.2.2 抽象数据类型的定义 3
    3.2.3 主程序的流程 4
    3.2.3 各程序模块之间的层次(调用)关系。 4
    3.3详细设计: 5
    3.1.1 函数的调用关系图 6
    3.3.2各程序流程图 7
    3.4调试分析: 10
    3.5 系统测试: 10
    3.6 使用说明: 13
    4、经验与体会: 13
    5、重要数据结构或源程序中的疑难部分说明 13
    3、设计步骤:
    3.1需求分析
    设计主界面以灵活选择某算法,实现以下算法
    1、先来先服务算法(FCFS)
    2、最短寻道时间优先算法(SSTF)
    3、扫描算法(SCAN)
    4、循环扫描算法(CSCAN)
    并求出每种算法的平均寻道长度。
    3.2 概要设计:
    3.2.1 设计思想
    本次课程设计我们是以面向对象的思想为主,利用eclipse为工具实现模拟磁盘调度。程序主要是利用java的swing架构做图形,用冒泡排序方法、FCFS方法、SSTF方法、SCAN方法、CSCAN方法实现功能。利用菜单式的选择界面,方便的用户操作。最终对每一种模拟磁盘调度输出磁头平均移动的磁道数。
    3.2.2 抽象数据类型的定义
    bubble():对输入的磁道进行冒泡排序,FCFS():即先来先服务方法,SSTF()方法:本文转载自http://www.biyezuopin.vip/onews.asp?id=15099最短最短寻道时间函数,SCAN():扫描方法,CSCAN():循环扫描方法。各函数之间有点可以相互调用,共同实现要求。 
    本程序主要用到的数据结构为数组、字符串,包括对字符串的合法性判断,利用数组算磁头移动的平均移动磁道数。

    package caozuoxitongkeshe;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import java.util.Date;
    public class LogPane extends JTabbedPane implements ActionListener{
    private JScrollPane scroll;
    private JTextArea textArea;
    static final LogPane log=new LogPane();
        public LogPane() {
            // TODO 自动生成的构造函数存根
            try {  
                   UIManager
                     .setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
                  } catch (Exception e) {
                   e.printStackTrace();
                  }
    
            textArea=new JTextArea();
            textArea.setLineWrap(true);
            textArea.setFont(new Font("TimesRoman",Font.PLAIN,18));
            scroll=new JScrollPane(textArea);
            add(scroll,BorderLayout.CENTER);
            this.setTitleAt(0, "Log");
            this.setFont(new Font("微软雅黑",Font.BOLD,16));
            this.setEnabled(false);
            textArea.setEditable(false);
        }
    
        public void actionPerformed(ActionEvent arg0) {
    
        }
    
        public void addLog(String log){
            textArea.append(log+"\n");
        }
    
        public static LogPane getLog(){
    
            return log;
        }
    
        public void addLog(String str,Color color){
            Date date=new Date();
            textArea.setForeground(color);
            textArea.append(str+"\t"+date+"\n");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    第三章、组织代码
    用DIV+CSS技术制作一个简单的网页 我的家乡主题
    `AllocConsole` 函数 通过控制台实时看printf日志
    (十六)admin-boot项目之文件存储上传与下载minio
    算法导论 ——分治中求解递归式的三种方法
    Vue 源码解读(3)—— 响应式原理
    【前端设计模式】之责任链模式
    2023华为杯数学建模竞赛E题
    openGauss学习笔记-83 openGauss 数据库管理-内存优化表MOT管理-内存表特性-MOT使用内存和存储规划
    【交通建模】基于模型的自主交通仿真框架附matlab代码
  • 原文地址:https://blog.csdn.net/sheziqiong/article/details/126849149