Лабораторная работа №5
Средства проектирования и моделирования сетей.
“Применение JavaApplet при создании WEB страниц.”
Выполнил ст.гр.ВТ-97в
Гиллер Эдуард
Цель работы: изучить основные возможности языка Java для создания динамических Web-страниц.Задание:
Реализовать 8-ричный калькулятор.
Листинг программы
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
class Calc extends java.applet.Applet
{
public void init()
{
setLayout(new BorderLayout());
Calculator Cr = new Calculator();
add("Center",Cr);
}
}
class docalc implements ActionListener {
private double buff=0;
private double buff1=0;
private static int flag3=0;
private static int flag2=0;
private static String str_accum = "";
private static String str_num = "";
private static double accum = 0.0;
private static double num = 0.0;
private static String oper = null;
private double mem = 0;
private int fmem = 0;
private int err = 0;
private void setText(String s)
{
Calculator.tf.setText(s);
Calculator.tf.setCaretPosition(s.length());
}
//=====================================================================================================
int sign=0;int result=0,flag=0,op;
public int HexToDec (String N16)
{
String mas [] =
{
"000",
"001",
"010",
"011",
"100",
"101",
"110",
"111"
};
char ch;
int i,j;
String res1;
res1="";
for(i=0;i=0;j++,i--)
{
ch=res1.charAt(i);
if (ch=='1')
{
temp=1;
for(k=0;k0)
{
N=N10%8; //(int)Остаток от деления
switch (N)
{
case 0: {h16="0";break;}
case 1: {h16="1";break;}
case 2: {h16="2";break;}
case 3: {h16="3";break;}
case 4: {h16="4";break;}
case 5: {h16="5";break;}
case 6: {h16="6";break;}
case 7: {h16="7";break;}
}
res16=h16+res16;
N10=N10/8;
i++;
}
return res16;
}
public String ExpCalc (String s)
{ int sk,i; String H_res;
int d1;
d1=HexToDec(Calculator.tf.getText());
switch (op)
{
case 0:{result=result+d1;break;}
case 1: {result=result-d1;break;}
case 2: {result*=d1;break;}
case 3: {result/=d1;break;}
}
H_res = DecToHex(result);
flag=1;
return H_res;
}
//=====================================================================================================
public void actionPerformed(ActionEvent e)
{
String str = e.getActionCommand();
if (str.equals("1"))
{
if (flag==1) {setText("");flag=0;}
setText(Calculator.tf.getText() + '1');
}
if (str.equals("2"))
{
if (flag==1) {setText("");flag=0;}
setText(Calculator.tf.getText() + '2');
}
if (str.equals("3"))
{
if (flag==1) {setText("");flag=0;}
setText(Calculator.tf.getText() + '3');
}
if (str.equals("4"))
{
if (flag==1) {setText("");flag=0;}
setText(Calculator.tf.getText() + '4');
}
if (str.equals("5"))
{
if (flag==1) {setText("");flag=0;}
setText(Calculator.tf.getText() + '5');
}
if (str.equals("6"))
{
if (flag==1) {setText("");flag=0;}
setText(Calculator.tf.getText() + '6');
}
if (str.equals("7"))
{
if (flag==1) {setText("");flag=0;}
setText(Calculator.tf.getText() + '7');
}
if (str.equals("0"))
{
if (flag==1) {setText("");flag=0;}
setText(Calculator.tf.getText() + '0');
}
if (str.equals("+"))
{
op=0;
result=HexToDec(Calculator.tf.getText());
flag=1;
}
if(str.equals("-"))
{
op=1;
result=HexToDec(Calculator.tf.getText());
flag=1;
}
if (str.equals("/"))
{
op=3;
result=HexToDec(Calculator.tf.getText());
flag=1;
}
if (str.equals("*"))
{
op=2;
result=HexToDec(Calculator.tf.getText());
flag=1;
}
if (str.equals("CE"))
setText("");
if (str.equals("="))
{
setText( ExpCalc(Calculator.tf.getText() ) );
}
}
}
class Calculator extends Panel
{docalc l;
Calculator()
{
l=new docalc();
setup(l);
}
public static TextField tf = null;
public boolean keyDown(Event evt,int key)
{key=key-48;
String st=Integer.toString(key);
System.out.println(key);
switch(key)
{case -5:st="+";
break;
case -3:st="-";
break;
case -38:st="=";
break;
case -1:st="/";
break;
case -6:st="*";
break;
}
l.actionPerformed(new ActionEvent(this,0,st));
return true;
}
private void setup(docalc dc)
{
tf = new TextField(30);
tf.setEditable(false);
tf.setBackground(Color.green);
tf.setForeground(Color.black);
GridBagConstraints gbc = new GridBagConstraints();
setLayout(new GridBagLayout());
gbc.insets = new Insets(2, 2, 2, 2);
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridwidth = 10;
gbc.anchor = GridBagConstraints.WEST;
Panel centerPanel=new Panel();
Panel buttonPanel=new Panel();
buttonPanel.setLayout(new GridLayout(5,4,5,6));
buttonPanel.setBackground(Color.white);
centerPanel.setBackground(Color.white);
//--------------------------------------------------------------
docalc buttonListener = new docalc();
Button b1 = new Button("6");
b1.addActionListener(buttonListener);
buttonPanel.add(b1);
Button b2 = new Button("7");
b2.addActionListener(buttonListener);
buttonPanel.add(b2);
Button b3 = new Button("+");
b3.addActionListener(buttonListener);
buttonPanel.add(b3);
Button b4 = new Button("4");
b4.addActionListener(buttonListener);
buttonPanel.add(b4);
Button b5 = new Button("5");
b5.addActionListener(buttonListener);
buttonPanel.add(b5);
Button b6 = new Button("-");
b6.addActionListener(buttonListener);
buttonPanel.add(b6);
Button b7 = new Button("2");
b7.addActionListener(buttonListener);
buttonPanel.add(b7);
Button b8 = new Button("3");
b8.addActionListener(buttonListener);
buttonPanel.add(b8);
Button b9 = new Button("*");
b9.addActionListener(buttonListener);
buttonPanel.add(b9);
Button b10 = new Button("0");
b10.addActionListener(buttonListener);
buttonPanel.add(b10);
Button b11 = new Button("1");
b11.addActionListener(buttonListener);
buttonPanel.add(b11);
Button b12 = new Button("/");
b12.addActionListener(buttonListener);
buttonPanel.add(b12);
Button b13 = new Button("CE");
b13.addActionListener(buttonListener);
buttonPanel.add(b13);
Button b14 = new Button("=");
b14.addActionListener(buttonListener);
buttonPanel.add(b14);
Button b15 = new Button("+/-");
b15.addActionListener(buttonListener);
buttonPanel.add(b15);
centerPanel.add(tf,gbc);
setLayout(new BorderLayout());
add("Center",centerPanel);
add("South",buttonPanel);
}
}