Лабораторная работа №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);

                }
        }





Rambler's Top100