资源简介
Tomasulon模拟器
供大家学习参考
代码片段和文件信息
//请根据你的包路径修改
//package ustc.qyq;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.Reader;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.EtchedBorder;
class node{
private int time;//这条指令需要的时间
private String op;
private String r1;
private String r2;
private String r3;
private int id;
private int barrier;//表示哪条指令让它执行不了
public void node(int i){
this.op = “1“;
this.time = 1;
this.r1 = “1“;
this.r2 = “2“;
this.r3 = “3“;
this.id = -1;
this.barrier = 0;
}
public void setNode(int id int time String op String r1 String r2 String r3){
this.op = op;
this.r1 = r1;
this.r2 = r2;
this.r3 = r3;
this.time = time;
this.id = id;
this.barrier = -1;
}
public int getId(){
return id;
}
public void setBarrier(int barrier){//barrier是指令的id
this.barrier = barrier;
}
public int getBarrier(){
return barrier;
}
public String getOp(){
return op;
}
public String getR1(){
return r1;
}
public String getR2(){
return r2;
}
public String getR3(){
return r3;
}
public int getTime(){
return time;
}
public void timeMinus(){
this.time -= 1;
}
}
/**
* @author yanqing.qyq 2012-2015@USTC
* 模板说明:该模板主要提供依赖Swing组件提供的JPanle,Jframe,JButton等提供的GUI。使用“监听器”模式监听各个Button的事件,从而根据具体事件执行不同方法。
* Tomasulo算法核心需同学们自行完成,见说明(4)
* 对于界面必须修改部分,见说明(1)(2)(3)
*
* (1)说明:根据你的设计完善指令设置中的下拉框内容
* (2)说明:请根据你的设计指定各个面板(指令状态,保留站,Load部件,寄存器部件)的大小
* (3)说明:设置界面默认指令
* (4)说明: Tomasulo算法实现
*/
//不要求写循环
public class Tomasulonew extends Jframe implements ActionListener{
/*
* 界面上有六个面板:
* panel1 : 指令设置
* panel2 : 执行时间设置
* panel3 : 指令状态
* panel4 : 保留站状态
* panel5 : Load部件
* panel6 : 寄存器状态
*/
//========自己定义的=======
private int countIns[] = new int[7];
private String ins[][] = new String[7][5];
//=============
private JPanel panel1panel2panel3panel4panel5panel6;
/*
* 四个操作按钮:步进,进5步,重置,执行
*/
private JButton stepbutstep5butresetbutstartbut;
/*
* 指令选择框
*/
private JComboBox instbox[]=new JComboBox[24];
/*
* 每个面板的名称
*/
private JLabel instl timel tl1tl2tl3tl4reslreglldlinslstepsl;
private int time[]=new int[4];
/*
* 部件执行时间的输入框
*/
private JTextField tt1tt2tt3tt4;
private int intv[][]=new int[6][4]cnowinstnow=0;
private int
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 301 2015-05-18 15:11 Tomasulonew\.classpath
文件 387 2015-05-18 15:11 Tomasulonew\.project
文件 598 2015-05-18 15:11 Tomasulonew\.settings\org.eclipse.jdt.core.prefs
文件 1567 2015-05-31 20:37 Tomasulonew\bin\node.class
文件 19399 2015-05-31 20:37 Tomasulonew\bin\Tomasulonew.class
文件 25789 2015-05-31 20:37 Tomasulonew\src\Tomasulonew.java
目录 0 2015-05-18 15:11 Tomasulonew\.settings
目录 0 2015-05-25 15:46 Tomasulonew\bin
目录 0 2015-05-18 15:12 Tomasulonew\src
目录 0 2015-05-18 15:11 Tomasulonew
----------- --------- ---------- ----- ----
48041 10
- 上一篇:STDLIB.H头文件
- 下一篇:图书馆管理系统Eclipse
评论
共有 条评论