资源简介
磁盘调度算法 操作系统作业 java模拟页磁盘调度,图形界面
调试完全正确!
请放心下载!
代码片段和文件信息
/**
* @(#)mainform.java
*
*
* @author
* @version 1.00 2010/12/27
*/
import java.awt.*;
import javax.swing.*;
import java.sql.*;
import java.awt.event.*;
class mainform implements ActionListener
{ Jframe f;
JTable table;
JTextArea jt;
Connection con;
JButton b1b2b3b4b5b6;
int num;
int kai;
int sum;
int m=0n=0;
int s[]= new int[100];
int s1[]=new int[100];
int c1[]=new int[50];
int c2[]=new int[50];
mainform(){
f=new Jframe(“磁盘调度“);
f.setSize(500300);
f.setBounds(200200700300);
b1=new JButton(“创建磁道“);
b2=new JButton(“先来先服务FCFS“);
b3=new JButton(“最短寻道 SSTF“);
b4=new JButton(“扫描算法 SCAN“);
b5=new JButton(“循环扫描 CSCAN“);
b6=new JButton(“退出“);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
Container con=f.getContentPane();
jt=new JTextArea();
JPanel p=new JPanel();
p.add(b1);
p.add(b2);
p.add(b3);
p.add(b4);
p.add(b5);
p.add(b6);
con.add(p“North“);
con.add(new JScrollPane(jt)“Center“);//添加滚动面板
f.setVisible(true);
f.validate();//来使容器在其包含的组件被添加或修改时,对其组件重新进行布局。
f.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent ev)
{ if(ev.getSource()==b1)
{ creat();
}
else if(ev.getSource()==b2)
{
fcfs();
}
else if(ev.getSource()==b3)
{
sstf();
}
else if(ev.getSource()==b4)
{ scan();
}
else if(ev.getSource()==b5)
{ cscan();
}
else if(ev.getSource()==b6)
{
System.exit(0);
}
}
public void creat(){
double t;
String cs=JOptionPane.showInputDialog(null“请输入从哪个磁道开始:“);
kai=Integer.parseInt(cs);
cs=JOptionPane.showInputDialog(null“请输入磁道的个数:“);
num=Integer.parseInt(cs);
for(int j=0;j {
t = Math.random();
s[j]=(int)(kai*2*t);
for(int i=0;i if(s[j]==s[i])
j--;
}
String stext=“被访问的下一个磁道 磁道号移动距离“+‘\n‘;
for(int i=0;i {stext+=“ “+s[i]+“ “;
stext+=‘\n‘;
}
paixu();
jt.setText(stext);
}
public void paixu(){
int su=kai;
int t;
for(int i=0;i if(su>s[i])
c1[m++]=s[i];
else
c2[n++]=s[i];
for(int i=0;i for(int j=i;j if(c1[i] {t=c1[i];c1[i]=c1[j];c1[j]=t;}
for(int i=0;i for(int j=i;j if(c2[i]>c2[j])
{t=c2[i];c2[i]=c2[j];c2[j]=t;}
}
public void fcfs(){
String stext=“被访问的下一个磁道 磁道号移动距离“+‘\n‘;
int su=kai;
sum=0;
for(int i=0;i { if(su s1[i]=s[i]-su;
else
s1[i]=su-s[i];
su=s[i];
sum+=s1[i];
}
sum=sum/num;
for(int
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6468 2010-12-27 22:58 磁盘调度\mainform.class
文件 5472 2010-12-27 22:58 磁盘调度\mainform.java
文件 5472 2010-12-27 23:00 磁盘调度\mainform1.java
目录 0 2010-12-27 23:03 磁盘调度
----------- --------- ---------- ----- ----
17412 4
- 上一篇:java gps信号接收与解析
- 下一篇:gba
se驱动jar包
评论
共有 条评论