Sie sind auf Seite 1von 14

UNIVERSIDAD NACIONAL DE

INGENIERÍA
FACULTAD DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

TAREA DE PROGRAMACION

PROFESOR:
Arturo Vilca

ESPECIALIDAD:
Ingeniería Electrónica

INTEGRANTES:

HUAMÁN GUIA Paul Jhefry (20162536H)

2017
PROBLEMA 01:
1. Análisis
Nos piden una programa en la cual tenga 3 campos de textos e
ingresemos 2 números para que en el tercer campo aparezca el
resultado de la operación seleccionada, para cada operación se
crea distintos botones en la cual pueden sumar, restar, dividir,
multiplicar y borrar los campos de texto.
Para el problema necesitaremos:

 3 variables tipo JTexfield para los campos de texto; 2


para los números y 1 para el resultado.
 5 botones de tipo JButton para sumar, restar, dividir y
multiplicar los números y limpiar los campos de texto.
 3 paneles de tipo JPanel para agregar y ubicarlos de
manera ordenada

2. Diagrama UML
Calculadora
-boton1:JButton
-boton2:JButton
-boton3:JButton
-boton4:JButton
-boton5:JButton
-p1:JPanel
-p2:JPanel
-p3:JPanel
-val1:JTextField
-val2:JTextField
-resul:JTextField
+main()
+Calculadora()
+Controles():void
+actionPerformed(ActionEvent e):void
3. Codificación

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Calculadora extends JFrame implements


ActionListener{
private JButton boton1,boton2,boton3,boton4,boton5;
private JTextField val1,val2,resul;
private JPanel p1,p2,p3;

//metodo donde creo y añado los controles


public void Controles(){
//Crear una ventana
Container contenedor = getContentPane();

//inicializamos con borderLayout para


//poder ubicar la posicion de los paneles
contenedor.setLayout( new BorderLayout() );

//creamos 3 paneles
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();

//creamos las etiquetas y agreamos al 1er panel


Label etiqueta1 = new Label("Numero1");
p1.add(etiqueta1);
val1 = new JTextField(10);
p1.add(val1);
Label etiqueta2 = new Label("Numero2");
p1.add(etiqueta2);
val2 = new JTextField(10);
p1.add(val2);

//creamos los botones y agregamos al 2do panel


boton1 = new JButton("+");
p2.add(boton1);
boton1.addActionListener(this);
boton2 = new JButton("-");
p2.add(boton2);
boton2.addActionListener(this);
boton3 = new JButton("x");
p2.add(boton3);
boton3.addActionListener(this);
boton4 = new JButton("/");
p2.add(boton4);
boton4.addActionListener(this);
boton5 = new JButton("Limpiar");
p2.add(boton5);
boton5.addActionListener(this);

//agregamos una etiqueta y al 3er panel


Label etiqueta3 = new Label("Resulatado");
p3.add(etiqueta3);
resul = new JTextField(12);
p3.add(resul);

//ubico cada panel arriba, centro y abajo del


contenedor
contenedor.add(p1,BorderLayout.NORTH);
contenedor.add(p2,BorderLayout.CENTER);
contenedor.add(p3,BorderLayout.SOUTH);
}

public Calculadora(){
//titulo de la ventana
super("Calculadora");

//cargo controles
Controles();

//indico el tamaño de la ventana


setSize(400,200);
setLocationRelativeTo(null);//centra la ventana
setVisible(true);
}

//eventos botones
@Override
public void actionPerformed(ActionEvent e) {
double num1,num2,resu;
String resultado;

//accion para el Boton para la suma


if (e.getSource()==boton1) {
//en caso de que no ingrese ningun dato
saldra un mensaje
if(val1.getText().equals("") ||
val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los
datos están "
+
"incompletos","Error",JOptionPane.ERROR_MESSAGE);
}
//caso contrario se efectuara la operacion
suma
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1+num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}

//accion para el Boton para la resta


if (e.getSource()==boton2) {
//en caso de que no ingrese ningun dato
saldra un mensaje
if(val1.getText().equals("") ||
val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los
datos están"
+ "
incompletos","Error",JOptionPane.ERROR_MESSAGE);
}
//caso contrario se efectuara la operacion
resta
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1-num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}

//accion para el Boton para el producto


if (e.getSource()==boton3) {
//en caso de que no ingrese ningun dato
saldra un mensaje
if(val1.getText().equals("") ||
val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los
datos están incompletos",
"Error",JOptionPane.ERROR_MESSAGE);
}
//caso contrario se efectuara la operacion
producto
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1*num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}

//accion para el Boton para la división


if (e.getSource()==boton4) {
//en caso de que no ingrese ningun dato
saldra un mensaje
if(val1.getText().equals("") ||
val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los datos
están incompletos",
"Error",JOptionPane.ERROR_MESSAGE);
}

//caso contrario se efectuara la operacion


division
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1/num2;
resultado=String.valueOf(resu);
//error en el denominador = 0
if(num2==0){
resul.setText("ERROR");
}
else{
resul.setText(resultado);
}
}
}
//Limpia los campos de texto
if (e.getSource()==boton5){
val1.setText("");
val2.setText("");
resul.setText("");
}
}

public static void main(String[] args) {


Calculadora calc = new Calculadora();
//Instanciamos la clase que creamos

calc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//cerrar ventana
}
}

4. Pruebas:

 Para la suma de los 2 números:

|
 Para la resta de dos números:

 Para el producto de dos números:

 Para la división de dos números:

 Para la división con excepción del denominador 0. Nos da error


ya que no se puede determinar.
 Limpiar los campos de texto
PROBLEMA 02:
1. Análisis
El problema nos pide un programa en la cual convierta la
temperatura Fahrenheit a Kelvin o Celsius tal que depende de un
botón de selección para realizar cualquiera de las dos
conversiones y le resultado nos aparezca en una etiqueta.
Para el problema debemos tener las siguientes variables:

 2 botones de tipo JRadioButton para seleccionar si quiero


convertir de Fahrenheit a Kelvin o de Fahrenheit a Celsius
 1 boton tipo JButton para limpiar el campo de texto.
 3 variables tipo double; una para recibir el dato de
Fahrenheit; la segunda para la operación de Fahrenheit a
Kelvin; la tercera la operación de Fahrenheit a Celsius.
 Creamos 1 etiqueta para el resultado de tipo JLabel
 Un campo de texto de tipo JTextFiel para recibir la
temperatura en Fahrenheit.

2. Diagrama UML

Temperatura
-fahrenheitField: JTextField
-Celsius:double;
-Fahrenheit:double
-Kelvin:double
-fahrButton1:JRadioButton
-celsButton1:JRadioButton
-resetButton:JButton
-resultadoLabel:JLabel
+init():void
+actionPerformed(ActionEvent e):void
3. Codificación

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class Temperatura extends JApplet implements


ActionListener{

private JTextField fahrenheitField;


private double Celsius;
private double Fahrenheit;
private double Kelvin;
private JRadioButton fahrButton1, celsButton1;
private JButton resetButton;
private JLabel resultadoLabel;

@Override
public void init(){
//creo un contenedor para la applet
Container contentPane = getContentPane();

//creo una ventana de las siguientes dimensiones


setSize(400,300);

//creo los paneles y las etiquetas


JLabel fahrenheitLabel, resuLabel,
instructionsLabel;
JPanel fahrenheitPanel, resulPanel;

//creo paneles para ordenarlos de manera


secuencial
fahrenheitPanel = new JPanel();
resulPanel = new JPanel();

//Titulo
instructionsLabel = new JLabel("Conversión de
Temperatura:");

//creo y añado los respectivos


//botones de seleccion a su respectivos paneles
fahrButton1 = new JRadioButton("conversión a
Kelvin");
fahrButton1.addActionListener(this);
fahrenheitPanel.add(fahrButton1);

celsButton1 = new JRadioButton("conversión a


Celsius");
celsButton1.addActionListener(this);
resulPanel.add(celsButton1);

//una etiqueta y un campo de texto añadimos al


panel
fahrenheitLabel = new JLabel("Temperatura en
Fahrenheit:");
fahrenheitField = new JTextField(12);
fahrenheitPanel.add(fahrenheitLabel);
fahrenheitPanel.add(fahrenheitField);

//etiqueta para el resultado


resuLabel = new JLabel("Temperatura
convertida:");
resultadoLabel = new JLabel();
resulPanel.add(resuLabel);

resetButton = new JButton("Limpiar");


resetButton.addActionListener(this);

//añado los botones y paneles al contenedor


contentPane.setLayout(new GridLayout(6, 1));
contentPane.add(instructionsLabel);
contentPane.add(fahrenheitPanel);
contentPane.add(resuLabel);
contentPane.add(resultadoLabel);
contentPane.add(fahrButton1);
contentPane.add(celsButton1);
contentPane.add(resetButton);

@Override
public void actionPerformed(ActionEvent e){
//accion del boton seleccion de FahrenhFeit a
Celsius
if (celsButton1.isSelected()){
//operacion de conversion de Fahrenheit a
Celsius

Fahrenheit=Double.parseDouble(fahrenheitField.getText());
Celsius = ((Fahrenheit - 32) / (1.8));

resultadoLabel.setText(String.valueOf(Celsius));

}
//accion del boton seleccion de FahrenhFeit a
Kelvin
if (fahrButton1.isSelected()){
//operacion de conversion de FahrenhFeit a
Kelvin

Fahrenheit=Double.parseDouble(fahrenheitField.getText());
Kelvin=((Fahrenheit - 32) / (1.8))+273.15;

resultadoLabel.setText(String.valueOf(Kelvin));
}

//accion del boton limpiar


if (e.getSource()==resetButton){
//limpia el campo de texto y la etiqueta de
resultado
fahrenheitField.setText("");
resultadoLabel.setText("");
}
}

}
4. Pruebas

 Conversión de Fahrenheit a Kelvin

 Conversión de Fahrenheit a Celsius

 Limpia el campo de texto

Das könnte Ihnen auch gefallen