La Red de Conocimientos Pedagógicos - Currículum vitae - Informe de formación JAVA

Informe de formación JAVA

1. Tema de capacitación e introducción:

Tema: aplicación de calculadora java

Introducción: a través de este programa se pueden realizar las funciones básicas de la calculadora. Los programas son subclases de la clase Frame. GridLayout se utiliza para componentes de diseño, y los componentes de botones y cuadros de texto se almacenan en el contenedor de la clase Panel. En el programa también se utiliza una gran cantidad de declaraciones else-if.

2. Descripción del diseño:

Propósito del experimento

A través de capacitación práctica y ejemplos, comprenderemos mejor los conceptos básicos de la programación orientada a objetos y los dominaremos. los métodos y métodos básicos de programación, uso flexible de paquetes, mayor comprensión de las interfaces y competencia en la implementación de eventos en las interfaces. Comprender profundamente y aplicar de manera flexible las características básicas de la programación orientada a objetos, desarrollar un buen estilo de programación y mejorar las habilidades de pensamiento abstracto y lógico.

2. Contenido del experimento

Escribe una aplicación para implementar una calculadora.

Introducción a los tres programas y su implementación funcional

El programa necesita importar java.awt.*, importar java.awt.event.*, importar java.lang.*, e importar paquetes javax .swing.*. ①El marco básico del programa es: primero definir una subclase de la clase Frame y luego declarar el diseño de los tres paneles, es decir, definir tres objetos de las clases GridLayout gl1, gl2 y gl3. Luego hay cuatro objetos p0, p1, p2 y p3 que definen el contenedor de la clase Panel, donde p0 se usa para almacenar el componente del cuadro de texto de visualización, p1 se usa para almacenar los botones de borrar y restablecer, p3 se usa para almacenar los botones numéricos. y botones de operación, p2 Se utiliza para almacenar otros botones de función. ②El proceso de implementación específico es el siguiente: (1) El programa define el objeto tf1 de la clase JTextField, el objeto tf2 de la clase TextField y 26 botones de la clase de botón Inicialice cada objeto en el método de construcción de la clase Counter. organice los paneles de manera adecuada y agréguelos en consecuencia. Cada botón se agrega al contenedor correspondiente, los oyentes se registran mientras se crean instancias de todos los botones y se establece su color de frente.

(2) Una vez completado el diseño correspondiente de cada componente, es decir, después de ejecutar la interfaz visual después de ejecutar el programa, se realizará el proceso de eventos internos del programa, es decir, la implementación de la interfaz. Se define una clase llamada Bt para implementar esta interfaz. El programa implementa métodos específicos para cada botón y componente de cuadro de texto en el método actionPerformed(). En el programa, la declaración else-if se utiliza para implementar eventos de operación de botones y manejar excepciones de eventos.

3. Lista de programas

Importar Java

Importar Java . . lang . Diseño de cada panel

GridLayout gl1, gl2, gl3

Panel p0, p1, p2, P3;

JTextField TF 1;

TextField tf2

Botones b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b16, b12, b13, b14, b15, b16, b17, b18, b. 18

StringBuffer string; //La cadena que se muestra en la pantalla

Double x, y //xey son operandos.

int z; //Z indica en qué operador se hizo clic.

0 significa " ", 1 significa "-", 2 significa "*", 3 significa "/"

Doble m estática; // número memorizado

Contador público ()< / p>

{

GL 1 = new GridLayout(1, 4, 10, 0); // Crea una instancia del diseño de tres paneles

gl2=new GridLayout( 4, 1, 0, 15);

gl3=new GridLayout(4, 5, 10, 15);

TF 1 = new JTextField(27); //Pantalla de visualización

p>

TF 1 . alineación horizontal(JTextField.right);

TF 1 conjunto habilitado(false);

TF 1 ; /p>

tf2 = Nuevo campo de texto (10); //Muestra el valor del índice de memoria.

tf2 . set editable(false);

//Crea una instancia de todos los botones, establece su color de primer plano y registra a los oyentes.

b0 = Nuevo botón ("retroceso");

B0 . establecer primer plano(color . rojo);

B0 . ;

b 1 = Botón nuevo (" CE ");

b 1 . establecer primer plano;

b 1 . Bt());

b2 =Botón nuevo (" C ");

B2 establecer primer plano (color . rojo); new Bt());

b3 = Nuevo botón (" MC ");

B3 . (new Bt());

b4 =Nuevo botón (" MR ");

B4 . establecer primer plano (color . rojo);

B4 . addactionlistener(new Bt());

b5 = Nuevo botón (" MS ");

b5 . . addactionlistener(new Bt());

b6 =Nuevo botón (" M "

B6 . B6 . addactionlistener(new Bt());

b7 =Nuevo botón(" 7 ");

B7 . >B7 . addactionlistener(new Bt());

b8 =Nuevo botón(" 8 ");

b8 . p>b8 . addactionlistener(new Bt());

b9 =Nuevo botón(" 9 ");

B9 .

B9 . addactionlistener(new Bt());

b 10 = Nuevo botón ("/");

b 10 . /p>

b 10 . addactionlistener(new Bt());

b 11 = Nuevo botón (" sqrt ");

b 11 . blue);

b 11. addactionlistener(new Bt());

b 12 =Nuevo botón(" 4");

b 12. set primer plano(color . azul);

b 12 . addactionlistener(new Bt());

b 13 =Botón nuevo (" 5 ");

>b 13 . establecer primer plano(color . azul);

b 13 . addactionlistener(new Bt());

b 14 =Nuevo botón (" 6 "); p> p>

b 14. establecer primer plano(color. azul);

b 14. addactionlistener(new Bt());

b 15 =Nuevo botón(" * " );

b 15. establecer primer plano(color . rojo);

b 15. addactionlistener(new Bt());

b 16 = Nuevo botón (" ");

b 16. establecer primer plano(color . azul);

b 16. addactionlistener(new Bt());

b 17 =Nuevo botón(" 1 ");

b 17. establecer primer plano(color. azul);

b 17. addactionlistener(new Bt());

b 18 = Nuevo botón(" 2 ");

b 18 . establecer primer plano(color . azul);

b 18 . ;

b 19 =Botón nuevo(" 3 ");

b 19 . establecer primer plano(color . azul); Bt( ));

b20 =Botón nuevo ("-");

b20 . establecer primer plano (color . rojo); new Bt ());

b 21 =Botón nuevo (" 1/X ");

b 21. establecer primer plano(color . azul

b 21. addactionlistener(new Bt());

b22 =Nuevo botón("0");

b22. establecer primer plano(color. azul);

b22 . addactionlistener(new Bt());

b23 =Nuevo botón (" /-"); p>

b23 . addactionlistener(new Bt());

b24 =Nuevo botón (".");

b24 . /p >

b24 . addactionlistener(new Bt());

b25 =Nuevo botón(" "); set foreground(color . rojo); /p >

b25 . addactionlistener(new Bt());

b26 =Nuevo botón(" = ");

b26 . set foreground(color . red);

b26 . addactionlistener(new Bt());

//Crear una instancia de cuatro paneles

p>

p0 = nuevo panel();

p 1 = nuevo panel();

p2 = nuevo panel(); new Panel();

//Crea un área de buffer de cadena vacía.

str = new string buffer();

//Agrega componentes al panel p0 y establece su posición y tamaño en el marco.

P0 . add(TF 1);

p0.setBounds(10, 25, 300, 40);

//Agregar componentes al panel p1, y establecer su posición y tamaño en el marco.

p 1 . establecer diseño(GL 1);

p 1 . >

p 1 . agregar(b 1);

p 1 . p> p>

//Agregue el componente en el panel p2 y establezca su posición y tamaño en el marco.

p2 .establecer diseño(gl2);

p2 . p2 . agregar(b5);

p2 . agregar(B6);

p2.setBounds(10, 110, 40, 150); Agregue el componente en el panel p3 y establezca su posición y tamaño en el marco.

P3 .set layout(gl3); //Establece el diseño de p3

P3 .

P3 . agregar(B9);

P3 . > P3 . agregar(b 12);

P3 . agregar(b 13); b 15);

P3 . agregar(b 16);

P3 . /p>

p>

P3 .añadir(b 19);

P3 . p>

P3 . agregar(b22);

P3 agregar(b23);

P3 agregar(b24);

P3 . (b25);

p>

P3.add(b26);

p3.setBounds(60, 110, 250, 150);

// Establece el diseño en el marco como vacío y agrega 4 paneles.

establecer diseño(nulo);

Agregar (P0);

Agregar (p 1);

Add (P3);

setResizable(false); //Prohibir cambiar el tamaño del marco

//La clase anónima cierra la ventana

addWindowListener(nuevo adaptador de ventana(){

Cierre de ventana vacía pública (WindowEvent e1)

{

system . exit(0);

}

});

establecer fondo(color . gris claro);

setBounds(100, 100, 320, 280);

p>

set visible(true);

}

//Construir el oyente

La clase Bt implementa ActionListener

{

Operación pública no válida ejecutada (evento de operación e2)

{

Pruebe {

If(e2. getSourCE()= =b1)//Seleccione "CE" para borrar.

{

TF 1. settext(" 0 "); //Borrar la pantalla.

str . setlength(0); //Borrar el área del buffer de cadena para prepararse para recibir nuevos operandos de entrada.

}

De lo contrario, if(e2.getSource()==b2)//Seleccione "c" para borrar.

{

TF 1. settext(" 0 "); //Borrar la pantalla.

str .setlength(0);

}

De lo contrario, if(e2.getSource()==b23)//Haga clic en "/-" para seleccionar entrada Si el operando es positivo o negativo.

{

x = double . parse double(TF 1 . gettext() . trim());

TF 1 . ));

}

Else if(e2.getSource()==b25)//Haga clic en el botón más para obtener los valores de x y z y borre el valor. de y

{

x = double . parse double(TF 1 . gettext() . trim()); ; //Borrar el área del buffer para recibir otro nuevo operando

y = 0d

z = 0;

}

Else if (e2. getSource()==b20)//Haga clic en el botón menos para obtener los valores de x y z y borre el valor de y

{

x =. doble . analizar doble(TF 1. .gettext().trim());

str .setlength(0);

y = 0d

z = 1;

}

else if(E2 . getsource()= = b 15)//Haga clic en el botón multiplicar para obtener el valor de x y z, y borre el valor de y.

{

x = double . parse double(TF 1 . gettext() . trim());

str . p>

p>

y = 0d

z = 2;

}

si no(E2 . getsource()= = b 10)//sencillo Presione el botón División para obtener el valor x y el valor z, y deje el valor y en blanco.

{

x = double . parse double(TF 1 . gettext() . trim());

str . p>

p>

y = 0d

z = 3;

}

Si no, if(e2.getSource()==b26 )//Haga clic en el botón etc. para generar los resultados del cálculo.

{

str .setlength(0);

interruptor(z)

{

Caso 0; :TF 1 . settext(" (x y)); Romper;

Caso 1: TF 1 . settext(" (x-y)); Romper;

Caso 2: TF 1 . settext(" (x * y)); break;

Caso 3: TF 1. settext(" (x/y));

}

}

De lo contrario, if(e2.getSource()==b24)//Haga clic en el botón "." para ingresar un decimal.

{

if(tf1.getText().Trim().indexOf("."))!=-1)//Determine si la cadena contiene un punto decimal.

{

}

De lo contrario//Si no se cuenta, pequeño.

{

If (tf1.gettext().Trim().equals(" 0 ")//Si se muestra inicialmente como 0.

{

str . setlength(0);

TF 1 . settext((str . append(" 0 " E2 . getactioncommand())).toString()

}

Elseif (tf1.gettext(). trim().quals(" ")//Si inicialmente está vacío, no hagas nada.

{

}

Otros

{

TF 1. settext(str. append(E2. getactioncommand()).toString()) ;

}

}

y = 0d

}

si no(E2 . getsource() = = b 11 )//Encuentra la raíz cuadrada.

{

x = double . parse double(TF 1 . gettext().

trim());

Tf1.setText("Formato de número de excepción");

if(x lt; 0)

Tf1.setText("Negativo número Sin raíz cuadrada");

Otro

TF 1 . settext(" math . sqrt(x));

str .

p>

y = 0d

}

else if(E2 . getsource()= = b 16)//Haga clic en el botón "" . >{

x = doble . parse double(TF 1 . gettext() . trim()

TF 1 . /p>

p>

str . setlength(0);

y = 0d

}

else if(E2 . getsource( )= = b 21) //Haga clic en el botón "1/X".

{

x = double . parse double(TF 1 . gettext() . trim());

If (x==0)

{

Tf1.setText ("El divisor no puede ser cero");

}

Otros

{

TF 1 . settext(" (1/x));

}

str . setlength(0);

y = 0d

}

De lo contrario, if(e2.getSource()==b3)//MC es para borrar la memoria

{

<. p> m = 0d

tf2 . settext(" ");

str . if( e2.getSource()==b4)//MR se refiere a los datos almacenados que se llaman

{

if(tf2.getText().trim()!= " ") //Número de memoria

{

TF 1. settext(" m);

}

}

Else if(e2.getSource()==b5)//MS son los datos almacenados y mostrados.

{

m = double . parse double(TF 1 . gettext() . trim());

tf2 .

TF 1 . settext(" 0 ");

str . .getSource()==b6)//M Para agregar el número mostrado a los datos almacenados, haga clic en MR para ver el nuevo número.

{

m = m doble . parse double(TF 1 . gettext() . trim()

}

De lo contrario//Seleccione otros botones.

{

If(e2.getSource()==b22)//Si se selecciona la tecla numérica "0",

{

Si (tf1.gettext().Trim().

igual (" 0 ") // Si se muestra cero, no haga nada.

{

}

Otros

{

TF 1 . settext(str . append(E2 . getactioncommand());

y = double . parse double(TF 1 . gettext() . trim()

}

}

Else if(e2.getSource()==b0)//El botón "Retroceso" está seleccionado.

{

if (!Tf1.gettext().trim().equals(" 0 ")//Si la pantalla no es cero.

{

if(str.length()!=1)

{

TF 1 . , str. length()). toString()); // Puede provocar una excepción de cadena fuera de límites

}

Otros

{

TF 1 . settext(" 0 ");

str . >

y = double . parse double(TF 1 . gettext(). trim()

}

Else//Otras claves numéricas

{

TF 1 . settext(str . append(E2 . getactioncommand()) . toString()

y = double . . trim() );

}

}

}

catch(NumberFormatException e){

Tf1.setText( "Formato de número de excepción");

}

catch(StringIndexOutOfBoundsException e){

Tf1.setText("Índice de cadena fuera de límites" );

}

}

}

Public static void main(String args[])

{

nuevo contador();

}

}

4. Resultados de la depuración

5. experiencia