資源簡介
磁盤調度算法模擬軟件,完整課程設計,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????????????????{
???????//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??????????{
?????????????Copy[q]?=?Track[q];
?????????}
?????????ui->textBrowser_3->append(“序號????????下一磁道號????????移動的磁道數“);
???????for?(i?=?0;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??磁盤調度算法\unti
????.CA....????223788??2018-06-15?07:06??磁盤調度算法\unti
????.C.D...?????????0??2018-06-15?07:06??磁盤調度算法
-----------?---------??----------?-----??----
???????????????260224????????????????????10
- 上一篇:Ogre嵌入MFC_DEMO
- 下一篇:C++數據結構等價類實現
評論
共有 條評論