📄 experiment2.java
字号:
import java.awt.*;
import java.awt.event.*;
class Canvasoutput extends Canvas
{
int num;
int yournum;
int x=0;
Canvasoutput()
{
setSize(1000,100);
}
public void paint(Graphics g,String a0,String a1,String a2,String a3)
{
g.drawString(a0,10+50*x,30);
g.drawString(a1,10+50*x,50);
g.drawString(a2,10+50*x,70);
g.drawString(a3,10+50*x,90);
x++;
try{
Thread.sleep(1000);
}
catch(InterruptedException e1)
{}
}
}
class LRUFrame extends Frame implements ActionListener
{
TextField textinput,textoutput;
Label label;
Button enterbutton,buttonclear;
Canvasoutput canvasoutput;
GridBagLayout grid;
GridBagConstraints c;
String[] contents;
int number;
LRUFrame(String s)
{
super(s);
contents=new String[30];
grid=new GridBagLayout();
c=new GridBagConstraints();
setLayout(grid);
canvasoutput=new Canvasoutput();
label=new Label(" 请输入页面号");
textinput=new TextField(20);
textoutput=new TextField(50);
textoutput.setEditable(false);
enterbutton=new Button("Start");
buttonclear=new Button("clear");
addComponent(label,0,0,5,1);
addComponent(textinput,0,5,8,1);
addComponent(enterbutton,0,13,1,1);
addComponent(buttonclear,0,15,1,1);
addComponent(canvasoutput,1,0,25,4);
addComponent(textoutput,0,15,10,1);
enterbutton.addActionListener(this);
buttonclear.addActionListener(this);
setBounds(400,400,1000,300);
setVisible(true);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
private void addComponent(Component component,int row,int column,int width,int hight)
{
c.gridx=column;
c.gridy=row;
c.gridwidth=width;
c.gridheight=hight;
grid.setConstraints(component,c);
add(component);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==buttonclear)
{
textinput.setText(null);
textoutput.setText(null);
}
else if(e.getSource()==enterbutton)
{
String input=textinput.getText();
String rorw=" ";
int times=0;
float rat;
number=input.length();
String singlechar[]=new String[number];
int singlenum[]=new int[number];
Graphics g=canvasoutput.getGraphics();
int outint[]=new int[3];
int boo2=0,xu=0;
String outstring[]=new String[3];
String between1=" ";
String between2=" ";
for(int i=0;i<number;i++)
{
singlechar[i]=input.substring(i,i+1);
singlenum[i]=Integer.parseInt(singlechar[i]);
}
for(int i=0;i<number;i++)
{
boo2=0;
if(i==0)
{
outstring[0]=singlechar[0];
outstring[1]=" ";
outstring[2]=" ";
}
else if(i==1)
{
if(outstring[0].equals(singlechar[1]))
{
outstring[1]=" ";
}
else
{
between1=outstring[0];
outstring[0]=singlechar[1];
outstring[1]=between1;
}
}
else if(i==2)
{
for(int j=0;j<=1;j++)
{
if(outstring[j].equals(singlechar[2]))
{
boo2=1;
xu=j;
}
}
if(boo2==1)
{
if(xu==1)
{
between1=outstring[0];
outstring[0]=singlechar[2];
outstring[1]=between1;
}
else
{
outstring[2]=" ";
}
}
else
{
between1=outstring[0];
between2=outstring[1];
outstring[0]=singlechar[2];
outstring[1]=between1;
outstring[2]=between2;
}
}
else
{
for(int j=0;j<=2;j++)
{
if(outstring[j].equals(singlechar[i]))
{
boo2=1;
xu=j;
}
}
if(boo2==1)
{
if(xu==1)
{
between1=outstring[0];
outstring[0]=singlechar[i];
outstring[1]=between1;
}
if(xu==2)
{
between1=outstring[0];
between2=outstring[1];
outstring[0]=singlechar[i];
outstring[1]=between1;
outstring[2]=between2;
}
}
else
{
between1=outstring[0];
between2=outstring[1];
outstring[0]=singlechar[i];
outstring[1]=between1;
outstring[2]=between2;
}
}
if(boo2==1)
{
rorw="命中";
times++;
}
else
{
rorw="不命中";
}
canvasoutput.paint(g,outstring[0],outstring[1],outstring[2],rorw);
}
float number2;
number2=number;
rat=(number2-times)/number2;
textoutput.setText("命中"+times+"次,不命中"+(number-times)+"次,缺页率为"+rat*100+"%");
}
}
}
public class Experiment2
{
public static void main(String args[])
{
new LRUFrame("操作系统第二次实验,256302020苏玮");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -