资源简介
用java实现高响应比优先算法,考虑了空转的情况(即:在前面的进程做完之前后面的进程没有进入)。
代码片段和文件信息
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;
class OS {
Jframe f;JLabel l1l2l3l4l5l6;JTextField t1t2t3t4t5t6;
JButton b;JPanel j1j2j3;JTextArea ta;
void disp()
{
f=new Jframe(“Operation System“);
j1=new JPanel();
j2=new JPanel();
j3=new JPanel();
l1=new JLabel(“请输入作业数:“JLabel.CENTER);
l2=new JLabel(“平均周转时间:“JLabel.CENTER);
l3=new JLabel(“平均带权周转:“JLabel.CENTER);
l4=new JLabel(“进入时间:“JLabel.CENTER);
l5=new JLabel(“运行时间:“JLabel.CENTER);
l6=new JLabel(“运行结果:“JLabel.CENTER);
t1=new JTextField(3);
ta=new JTextArea(6030);
b=new JButton(“开始运算“);
b.addActionListener(new Cal());
j1.add(l1);j1.add(t1);
t2=new JTextField(30);
t3=new JTextField(30);
t4=new JTextField(15);
t5=new JTextField(15);
j1.setLayout(new GridLayout(0 1));
j1.add(l4);
j1.add(t2);
j1.add(l5);
j1.add(t3);
j2.add(l6);
j2.add(ta);
j1.add(l2);
j1.add(t4);
j1.add(l3);
j1.add(t5);
j3.add(b);
f.add(j1“West“);
f.add(j2“Center“);
f.add(j3“South“);
f.setSize(700600);
f.setLocationRelativeTo(null); //居中显示
f.setResizable(false);
f.setVisible(true);
}
class Cal implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String s1s2s3;int workcount;int iindex=0index1=0dbindex=0;int timenow;float dbmaxdb=0intime;boolean flag=false;
int kqjm;
s1=t1.getText();
workcount=Integer.parseInt(s1);//获得作业数
s2=t2.getText();
String x[]=new String[workcount];//获得进入时间
x=s2.split(“ “);
int handin[]=new int[workcount];
for(i=0;i {
handin[i]=Integer.parseInt(x[i])/100*60+Integer.parseInt(x[i])%100;//起始时间
}
s3=t3.getText();
String y[]=new String[workcount];//获得运行时间
y=s3.split(“ “);
int work[]=new int[workcount];
for(i=0;i {
work[i]=Integer.parseInt(y[i])/100*60+Integer.parseInt(y[i])%100;
}
//创建一个job类的实例
myJob job[]=new myJob[workcount];int turn[]=new int[workcount];//存储调度顺序
for(i=0;i {
job[i]=new myJob(handin[i]work[i]falsei0);
// job[i].handin=handin[i];
// job[i].work=work[i];
// job[i].finish=false;
// System.out.print(“ “+handin[i]);
System.out.print(“ “+job[i].handin+job[i].work+job[i].finish+job[i].jobnum);
}
//找到第一个进来的job并输出
for(i=0;i {
if(job[i].handin {
index=i;
}
else if(job[i].handin==job[index].handin)
{
if(job[i].work index=i;
}
}
System.out.print(“ 第一个:“+index+“ “);
timenow=job[index].handin+job[index].work;
System.out.println(“timenow=“+timenow+“ “);
turn[0]=index;
job[index].finish=true;
for(q=0;q {
if(job[q].finish==false&&timenow>job[q].ha
相关资源
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
评论
共有 条评论