• 大小: 10KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: 磁盘调度  C++  QT  

资源简介

磁盘调度算法模拟软件,完整课程设计,C++写的代码,QT写的界面,可直接运行

资源截图

代码片段和文件信息

#include “dialog.h“
#include “ui_dialog.h“
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 



Dialog::Dialog(QWidget *parent) :
    QDialog(parent)
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
//free(Track);

}



Dialog::~Dialog()
{
    delete ui;
}

//退出程序按钮
void Dialog::on_pushButton_2_clicked()
{
   // free(Track);
   // delete [] Track;
    this->close();
}


//选择不同算法,调用不同函数
void Dialog::on_comboBox_currentTextChanged(const QString &arg1)
{
    QString c;
       c=ui->comboBox->currentText();
       if(c==“先来先服务调度算法“)
        {
          FCFS(Track Head);
        }


       if(c==“最短寻道时间优先调度算法“)
       {
          SSTF(TrackHead) ;
       }



       if(c==“扫描调度算法(磁头向磁道递增方向移动)“)
       {
          SCANR(Track Head);
       }



       if(c==“扫描调度算法(磁头向磁道递减方向移动)“)
           {
           SCANL(TrackHead);
       }



       if(c==“循环扫描调度算法(磁头向磁道递增方向移动)“)
           {
           CSCANR(Track Head);
       }



       if(c==“循环扫描调度算法(磁头向磁道递减方向移动)“)
           {
           CSCANL(Track Head);
       }

       if(c==“算法类型“)
           {
           ui->textBrowser_3->setPlainText(““);
       }


}

//按下确认后的操作
void Dialog::on_pushButton_clicked()
{
    ui->textBrowser->setPlainText(““);
    ui->textBrowser_2->setPlainText(““);
    ui->comboBox->setCurrentIndex(0);
    ui->textBrowser_3->setPlainText(““);
    //delete[] Track;
    //free(Track);
    QString ab=this->ui->cidao->text();
    N=ab.toInt();
    if(N<=0||N>=200){
        QMessageBox::critical(this“错误““请输入大于0小于200的磁道数““确定“);
    }
    else{
    QString a;
    QString b;
    int i;
    //srand((unsigned)time(NULL));
   for (i = 0;i < N;i++)
               {
       //Track[i]=1;
                   Track[i] = 1 + (int)(200.0*rand() / (RAND_MAX + 1.0));
                     b.sprintf(“%d“Track[i]);
                     ui->textBrowser_2->insertPlainText(b+“  “);
               }
   Head = 1 + (int)(200.0*rand() / (RAND_MAX + 1.0));
   a.sprintf(“%d“Head);
   ui->textBrowser->insertPlainText(a);

    }
}

//先来先服务调度算法
void Dialog::FCFS(int Track[] int Head){
    ui->textBrowser_3->setPlainText(““);
     int Sum = 0;
     QString b;
     QString c;
     QString D;
     QString F;
     QString G;
         int i;
         int q;
         int a;
         int d;
         d=Head;
         int* Copy = new int[N];
         for (q = 0;q < N;q++)
         {
             Copy[q] = Track[q];
         }
         ui->textBrowser_3->append(“序号        下一磁道号        移动的磁道数“);
       for (i = 0;i < N;i++)
        {
           if (d <= Copy[i])
           {
               a = Copy[i] - d;
           }
           if (d > Copy[i])
           {
               a = d - Copy[i];
           }
           d = 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

    .CA....     22065  2018-06-14 12:53  磁盘调度算法\dialog.cpp

    .CA....       781  2018-06-14 12:53  磁盘调度算法\dialog.h

    .CA....      7061  2018-06-14 12:57  磁盘调度算法\dialog.ui

    .CA....       232  2018-06-14 12:53  磁盘调度算法\main.cpp

    .CA....       999  2018-06-05 20:51  磁盘调度算法\mainwindow.cpp

    .CA....       474  2018-06-05 20:25  磁盘调度算法\mainwindow.h

    .CA....      3793  2018-06-04 10:49  磁盘调度算法\mainwindow.ui

    .CA....      1031  2018-06-14 12:52  磁盘调度算法\untitled1.pro

    .CA....    223788  2018-06-15 07:06  磁盘调度算法\untitled1.pro.user

    .C.D...         0  2018-06-15 07:06  磁盘调度算法

----------- ---------  ---------- -----  ----

               260224                    10


评论

共有 条评论