INSTITUTO SUPERIOR TECNOLOGICO PRIVADO CIBERTEC
CARRERAS PROFESIONALES
INTRODUCCION A LA ALGORITMIA
SISTEMA DE VENTA DE DISCOS DUROS
PRIMER CICLO
SECCIÓN T1AM
SEMESTRE 2021 – 02
Coordinador:
Luis Guiseppe Escobar Quintana
Integrantes:
Gutierrez Ferro, Marco Antonio
Champi Salinas, Teresa Guadalupe
Rojas Alburqueque, Manuel Angel
Rosales Ascate, Marcos
Verona Rodriguez, Antony
Escobar Quintana, Luis Guiseppe
Ibarra Torres, Diana Patricia
Angelino Granda, Joshua Dario
Informe del Proyecto de Introducción a la Algoritmia 2
CARRERAS PROFESIONALES
CIBERTEC
LIMA, 2021
Índice
Introducción
Justificación
Objetivos
Definición
Entregables
Conclusiones
Recomendaciones
Bibliografía
Informe del Proyecto de Introducción a la Algoritmia 3
Introducción
El programa fue hecho con el fin de administrar la venta de discos duros, modifi-
cación y de sus datos y reportes sobre la venta de cada modelo.
Para este proyecto se emplearon los conocimientos específicos de un grupo de
personas, aunque este tiene ciertas limitaciones.
Tales como:
- El usuario final no puede agregar más modelos u otros datos acerca de
los discos duros.
- Fue desarrollado exclusivamente para la venta de discos duros y no para
otros productos.
- No se considera el stock físico de los discos duros.
- La falta de implementos como botones de impresión, guardar documento,
entre otros.
Justificación
Este programa es aplicable para las empresas o negocios dedicadas a las ven-
tas, ya que le facilitaría obtener a tiempo real el informe de las ventas u otras ac-
ciones, al aplicar este programa las transacciones u operaciones son de manera
eficaz. Además, también ayuda a mejorar la productividad, la rentabilidad de la
fuerza de ventas, identificar los productos vendidos, las cantidades vendidas, las
ventas diarias acumuladas entre otros.
Los beneficiarios directos son:
Trabajadores, parte administrativa de la empresa o negocio, desarrolladores del
programa.
Los beneficiarios indirectos son:
Clientes, servicio del internet, tiendas de computadoras.
Objetivos
La fabricación de nuestro programa sirve para todo aquella empresa que quiere
destacar con más tecnología para los usuarios y poder facilitar las ventas
Generar Reportes : Nuestro programa brinda información detalla sobre un tema
para que las empresas puedan tomar decisiones comerciales informadas.
Porcentaje de Descuento : Nuestro programa también cuenta con el método des-
cuento , una forma más fácil de poder manejar los precios para el usuario
Definición
En esta parte daremos a conocer a grandes rasgos la pantalla principal de nues-
tra aplicación y los diferentes Dialogos en nuestro menu principal.
La imagen que vemos a continuacion es nuestro Menu principal, donde vemos
Archivo, Mantenimiento, Ventas, Configuracion y Ayuda.
Informe del Proyecto de Introducción a la Algoritmia 4
El menu Archivo, tiene la opcion Salir que nos permitira salir de la aplicación y
cerrar nuestra pantalla principal.
Dentro de mantenimiento tendremos 3 SubMenus, Consultar disco duro, Modifi-
car disco duro y Listar discos duros, cada uno tendra una funcionabilidad distinta
que se mostraran a continuacion.
Informe del Proyecto de Introducción a la Algoritmia 5
Consulta Disco Duro nos permitira consultar cualquier modelo de disco de nues-
tra tienda, al cambiar la lista desplegable los valores se actualizaran para dar a
conocer las caracteristicas de este modelo que se selecciono.
Informe del Proyecto de Introducción a la Algoritmia 6
Modificar Disco Duro nos permitira modificar nuestros modelos de disco, cual-
quier caracteristica que este dentro de este formulario podra ser modificado para
luego conveniencia y uso posteriormente.
Informe del Proyecto de Introducción a la Algoritmia 7
Listar disco duro nos permite generar un reporte de la lista de todos nuestros
modelos y sus caracteriscas actuales, si ya han sido modificados anteriormente
estos cambios deberian reflejar en este reporte.
Informe del Proyecto de Introducción a la Algoritmia 8
En el Menu Ventas tendremos las opciones de Vender y Generar Reportes.
Vender nos permitira vender un modelo determinado con una cantidad determi-
nada, al cambiar la lista desplegable el precio sera actualizado según el modelo
seleccionado, luego al ingresar la cantidad, esta generar una boleta de venta.
Informe del Proyecto de Introducción a la Algoritmia 9
Cada 5 ventas realizadas nos indicara un avance de nuestro importe total acu-
mulado y de nuestro porcentaje según la cuorta diaria (formulario que veremos
luego).
Informe del Proyecto de Introducción a la Algoritmia 10
A continuacion se detallan los 4 reportes de subMenu Generar Reportes donde
al cambiar el tipo de reportes este dara un resultado procesando la informacion-
de ventas realiazadas, productos de mayor coste y cantidad optima.
Informe del Proyecto de Introducción a la Algoritmia 11
Informe del Proyecto de Introducción a la Algoritmia 12
El menu Configuracion esta compuesto por los cuatro submenus Configurar Por-
centa de descuento, obsequios, cantidad optima y cuota diaria.
El submenu Configurar Porcentajes de descuento nos permitra modificar los des-
cuentos por cierta cantidad definida en el formulario para hacer las validaciones
de descuentos correspondientes en el formulario de ventas.
Informe del Proyecto de Introducción a la Algoritmia 13
El submenu Configurar Obsequios nos permitira modificar el nombre del obs-
equio y la cantidad que se otargara por cierta cantidad de compras por modelo
de disco duro.
El submenu Configurar Cantidad Optima permite modificar al cantidad optima de
unidades vendidas.
Informe del Proyecto de Introducción a la Algoritmia 14
El submenu Configurar Cuota Diaria nos permite modificar la cuota diaria de
nuestras ventas como se muestra en la imagen.
En el ultimo menu Ayuda, tendremos el submenu Acerca de Tienda.
Informe del Proyecto de Introducción a la Algoritmia 15
En este submenu podremos ver a los autores de la aplicación Tienda que partici-
paron en diferentes etapas de desarrollo.
Informe del Proyecto de Introducción a la Algoritmia 16
Entregables
TIENDA
package cibertec;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.UIManager;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
public class Tienda extends JFrame implements ActionListener {
// Datos mínimos del primer disco duro
public static String modelo0 = "Western Digital My Cloud Home 6TB";
public static double precio0 = 1499.0;
public static double fondo0 = 14.0;
public static double ancho0 = 5.3;
public static double alto0 = 17.5;
public static double capacidad0 = 6;
// Datos mínimos del segundo disco duro
public static String modelo1 = "Western Digital Elements 4TB";
Informe del Proyecto de Introducción a la Algoritmia 17
public static double precio1 = 555.0;
public static double ancho1 = 11.5;
public static double alto1 = 8.2;
public static double fondo1 = 2.1;
public static double capacidad1 = 4;
// Datos mínimos del tercer disco duro
public static String modelo2 = "Toshiba Canvio Basics 4TB";
public static double precio2 = 499.0;
public static double ancho2 = 14.1;
public static double alto2 = 11.1;
public static double fondo2 = 3.8;
public static double capacidad2 = 4;
// Datos mínimos del cuarto disco duro
public static String modelo3 = "Seagate Expansion 4TB";
public static double precio3 = 619.0;
public static double ancho3 = 11.7;
public static double alto3 = 8.0;
public static double fondo3 = 2.1;
public static double capacidad3 = 4;
// Datos mínimos del quinto disco duro
public static String modelo4 = "Seagate Backup Plus Hub 10TB";
public static double precio4 = 1099.0;
public static double ancho4 = 19.8;
public static double alto4 = 11.8;
public static double fondo4 = 4.1;
public static double capacidad4 = 10.0;
// Porcentajes de descuento
public static double porcentaje1 = 7.5;
public static double porcentaje2 = 10.0;
public static double porcentaje3 = 12.5;
public static double porcentaje4 = 15.0;
// Obsequios
public static String tipoObsequio = "Lapicero";
public static int obsequioCantidad1 = 2;
public static int obsequioCantidad2 = 3;
public static int obsequioCantidad3 = 4;
// Cantidad óptima de unidades vendidas por día
public static int cantidadOptima = 10;
// Cuota diaria
public static double cuotaDiaria = 30000;
private static final long serialVersionUID = 1L;
private JPanel contentPane;
private JMenuBar menuBar;
private JMenu mnArchivo;
private JMenu mnMantenimiento;
private JMenu mnVentas;
private JMenu mnConfiguracion;
private JMenu mnAyuda;
private JMenuItem mntmSalir;
private JMenuItem mntmConsultar;
private JMenuItem mntmModificar;
private JMenuItem mntmListar;
private JMenuItem mntmVender;
private JMenuItem mntmGenerarReportes;
private JMenuItem mntmConfigurarDescuentos;
private JMenuItem mntmConfigurarObsequios;
private JMenuItem mntmConfigurarCantidadOptima;
Informe del Proyecto de Introducción a la Algoritmia 18
private JMenuItem mntmConfigurarCuotaDiaria;
private JMenuItem mntmAcercaDeTienda;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClass-
Name());
}
catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Tienda frame = new Tienda();
frame.setVisible(true);
}
catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Tienda() {
setTitle("Tienda 1.0");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 762, 465);
menuBar = new JMenuBar();
setJMenuBar(menuBar);
mnArchivo = new JMenu("Archivo");
menuBar.add(mnArchivo);
mntmSalir = new JMenuItem("Salir");
mntmSalir.addActionListener(this);
mnArchivo.add(mntmSalir);
mnMantenimiento = new JMenu("Mantenimiento");
menuBar.add(mnMantenimiento);
mntmConsultar = new JMenuItem("Consultar disco duro");
mntmConsultar.addActionListener(this);
mnMantenimiento.add(mntmConsultar);
mntmModificar = new JMenuItem("Modificar disco duro");
mntmModificar.addActionListener(this);
mnMantenimiento.add(mntmModificar);
mntmListar = new JMenuItem("Listar discos duros");
mntmListar.addActionListener(this);
mnMantenimiento.add(mntmListar);
Informe del Proyecto de Introducción a la Algoritmia 19
mnVentas = new JMenu("Ventas");
menuBar.add(mnVentas);
mntmVender = new JMenuItem("Vender");
mntmVender.addActionListener(this);
mnVentas.add(mntmVender);
mntmGenerarReportes = new JMenuItem("Generar Reportes");
mntmGenerarReportes.addActionListener(this);
mnVentas.add(mntmGenerarReportes);
mnConfiguracion = new JMenu("Configuraci\u00F3n");
menuBar.add(mnConfiguracion);
mntmConfigurarDescuentos = new JMenuItem("Configurar porcentajes de
descuento");
mntmConfigurarDescuentos.addActionListener(this);
mnConfiguracion.add(mntmConfigurarDescuentos);
mntmConfigurarObsequios = new JMenuItem("Configurar obsequios");
mntmConfigurarObsequios.addActionListener(this);
mnConfiguracion.add(mntmConfigurarObsequios);
mntmConfigurarCantidadOptima = new JMenuItem("Configurar cantidad \
u00F3ptima");
mntmConfigurarCantidadOptima.addActionListener(this);
mnConfiguracion.add(mntmConfigurarCantidadOptima);
mntmConfigurarCuotaDiaria = new JMenuItem("Configurar cuota dia-
ria");
mntmConfigurarCuotaDiaria.addActionListener(this);
mnConfiguracion.add(mntmConfigurarCuotaDiaria);
mnAyuda = new JMenu("Ayuda");
menuBar.add(mnAyuda);
mntmAcercaDeTienda = new JMenuItem("Acerca de tienda");
mntmAcercaDeTienda.addActionListener(this);
mnAyuda.add(mntmAcercaDeTienda);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == mntmConfigurarCuotaDiaria) {
actionPerformedMntmConfigurarCuotaDiaria(e);
}
if (e.getSource() == mntmConfigurarCantidadOptima) {
actionPerformedMntmConfigurarCantidadOptima(e);
}
if (e.getSource() == mntmConfigurarObsequios) {
actionPerformedMntmConfigurarObsequios(e);
}
if (e.getSource() == mntmConfigurarDescuentos) {
actionPerformedMntmConfigurarDescuentos(e);
}
Informe del Proyecto de Introducción a la Algoritmia 20
if (e.getSource() == mntmGenerarReportes) {
actionPerformedMntmGenerarReportes(e);
}
if (e.getSource() == mntmVender) {
actionPerformedMntmVender(e);
}
if (e.getSource() == mntmListar) {
actionPerformedMntmListar(e);
}
if (e.getSource() == mntmModificar) {
actionPerformedMntmModificar(e);
}
if (e.getSource() == mntmConsultar) {
actionPerformedMntmConsultar(e);
}
if (e.getSource() == mntmAcercaDeTienda) {
actionPerformedMntmAcercaDeTienda(e);
}
if (e.getSource() == mntmSalir) {
actionPerformedMntmSalir(e);
}
protected void actionPerformedMntmSalir(ActionEvent e) {
System.exit(0);
}
protected void actionPerformedMntmAcercaDeTienda(ActionEvent e) {
DialogoAcercaDeTienda d = new DialogoAcercaDeTienda();
d.setLocationRelativeTo(this);
d.setVisible(true);
protected void actionPerformedMntmConsultar(ActionEvent e) {
DialogoConsultar d = new DialogoConsultar();
d.setLocationRelativeTo(this);
d.setVisible(true);
}
protected void actionPerformedMntmModificar(ActionEvent e) {
DialogoModificar d = new DialogoModificar();
d.setLocationRelativeTo(this);
d.setVisible(true);
}
protected void actionPerformedMntmListar(ActionEvent e) {
DialogoListar d = new DialogoListar();
d.setLocationRelativeTo(this);
d.setVisible(true);
}
protected void actionPerformedMntmVender(ActionEvent e) {
DialogoVender d = new DialogoVender();
d.setLocationRelativeTo(this);
d.setVisible(true);
}
Informe del Proyecto de Introducción a la Algoritmia 21
protected void actionPerformedMntmGenerarReportes(ActionEvent e) {
DialogoGenerarReportes d = new DialogoGenerarReportes();
d.setLocationRelativeTo(this);
d.setVisible(true);
}
protected void actionPerformedMntmConfigurarDescuentos(ActionEvent e) {
DialogoConfigurarDescuentos d = new DialogoConfigurarDescuentos();
d.setLocationRelativeTo(this);
d.setVisible(true);
}
protected void actionPerformedMntmConfigurarObsequios(ActionEvent e) {
DialogoConfigurarObsequios d = new DialogoConfigurarObsequios();
d.setLocationRelativeTo(this);
d.setVisible(true);
}
protected void actionPerformedMntmConfigurarCantidadOptima(ActionEvent
e) {
DialogoConfigurarCantidadOptima d = new DialogoConfigurarCantida-
dOptima();
d.setLocationRelativeTo(this);
d.setVisible(true);
}
protected void actionPerformedMntmConfigurarCuotaDiaria(ActionEvent e) {
DialogoConfigurarCuotaDiaria d = new DialogoConfigurarCuotaDia-
ria();
d.setLocationRelativeTo(this);
d.setVisible(true);
}
}
DIALOGO CONSULTAR
package cibertec;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.UIManager;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
public class DialogoConsultar extends JDialog implements ActionListener {
/**
*
*/
private static final long serialVersionUID = -103881478511672195L;
private JButton btnCerrar;
private JLabel lblModelo;
private JComboBox<String> cboModelo;
private JLabel lblPrecio;
private JTextField txtPrecio;
Informe del Proyecto de Introducción a la Algoritmia 22
private JLabel lblAncho;
private JTextField txtAncho;
private JLabel lblAlto;
private JTextField txtAlto;
private JLabel lblFondo;
private JTextField txtFondo;
private JLabel lblCapacidad;
private JTextField txtCapacidad;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClass-
Name());
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DialogoConsultar dialog = new DialogoConsultar();
dialog.setDefaultCloseOperation(JDia-
log.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
public DialogoConsultar() {
setTitle("Consultar Disco Duro");
setBounds(100, 100, 450, 210);
getContentPane().setLayout(null);
btnCerrar = new JButton("Cerrar");
btnCerrar.addActionListener(this);
btnCerrar.setBounds(355, 12, 89, 23);
getContentPane().add(btnCerrar);
lblModelo = new JLabel("Modelo");
lblModelo.setBounds(10, 15, 96, 14);
getContentPane().add(lblModelo);
cboModelo = new JComboBox<String>();
cboModelo.setModel(new DefaultComboBoxModel<String>(
new String[] { "Western Digital My Cloud Home 6TB",
"Western Digital Elements 4TB",
"Toshiba Canvio Basics 4TB", "Seagate Expan-
sion 4TB", "Seagate Backup Plus Hub 10TB" }));
cboModelo.addActionListener(this);
cboModelo.setBounds(118, 12, 238, 22);
getContentPane().add(cboModelo);
Informe del Proyecto de Introducción a la Algoritmia 23
lblPrecio = new JLabel("Precio (S/)");
lblPrecio.setBounds(10, 40, 96, 14);
getContentPane().add(lblPrecio);
txtPrecio = new JTextField(Tienda.precio0 + "");
txtPrecio.setEditable(false);
txtPrecio.setBounds(118, 38, 238, 20);
getContentPane().add(txtPrecio);
txtPrecio.setColumns(10);
lblAncho = new JLabel("Ancho (cm)");
lblAncho.setBounds(10, 65, 96, 14);
getContentPane().add(lblAncho);
txtAncho = new JTextField(Tienda.ancho0 + "");
txtAncho.setEditable(false);
txtAncho.setBounds(118, 63, 238, 20);
getContentPane().add(txtAncho);
txtAncho.setColumns(10);
lblAlto = new JLabel("Alto (cm)");
lblAlto.setBounds(10, 90, 96, 14);
getContentPane().add(lblAlto);
txtAlto = new JTextField(Tienda.alto0 + "");
txtAlto.setEditable(false);
txtAlto.setBounds(118, 88, 238, 20);
getContentPane().add(txtAlto);
txtAlto.setColumns(10);
lblFondo = new JLabel("Fondo (cm)");
lblFondo.setBounds(10, 115, 96, 14);
getContentPane().add(lblFondo);
txtFondo = new JTextField(Tienda.fondo0 + "");
txtFondo.setEditable(false);
txtFondo.setBounds(118, 113, 238, 20);
getContentPane().add(txtFondo);
txtFondo.setColumns(10);
lblCapacidad = new JLabel("Capacidad (TB)");
lblCapacidad.setBounds(10, 140, 96, 14);
getContentPane().add(lblCapacidad);
txtCapacidad = new JTextField(Tienda.capacidad0 + "");
txtCapacidad.setEditable(false);
txtCapacidad.setBounds(118, 138, 238, 20);
getContentPane().add(txtCapacidad);
txtCapacidad.setColumns(10);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == cboModelo) {
actionPerformedCboModelo(e);
}
if (e.getSource() == btnCerrar) {
actionPerformedBtnCerrar(e);
Informe del Proyecto de Introducción a la Algoritmia 24
}
}
protected void actionPerformedBtnCerrar(ActionEvent e) {
dispose();
}
int leerModelo() {
return cboModelo.getSelectedIndex();
}
void mostrarModelo(double pre, double anc, double alt, double fon, dou-
ble cap) {
txtPrecio.setText(pre + "");
txtAncho.setText(anc + "");
txtAlto.setText(alt + "");
txtFondo.setText(fon + "");
txtCapacidad.setText(cap + "");
}
protected void actionPerformedCboModelo(ActionEvent e) {
int mod;
mod = leerModelo();
switch (mod) {
case 0:
mostrarModelo(Tienda.precio0, Tienda.ancho0, Tienda.alto0,
Tienda.fondo0, Tienda.capacidad0);
break;
case 1:
mostrarModelo(Tienda.precio1, Tienda.ancho1, Tienda.alto1,
Tienda.fondo1, Tienda.capacidad1);
break;
case 2:
mostrarModelo(Tienda.precio2, Tienda.ancho2, Tienda.alto2,
Tienda.fondo2, Tienda.capacidad2);
break;
case 3:
mostrarModelo(Tienda.precio3, Tienda.ancho3, Tienda.alto3,
Tienda.fondo3, Tienda.capacidad3);
break;
default:
mostrarModelo(Tienda.precio4, Tienda.ancho4, Tienda.alto4,
Tienda.fondo4, Tienda.capacidad4);
}
}
}
DIALOGO MODIFICAR
package cibertec;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.UIManager;
import java.awt.event.ActionListener;
Informe del Proyecto de Introducción a la Algoritmia 25
import java.awt.event.ActionEvent;
import javax.swing.DefaultComboBoxModel;
public class DialogoModificar extends JDialog implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 9026037484515977001L;
private JLabel lblModelo;
private JComboBox<String> cboModelo;
private JButton btnCerrar;
private JButton btnGrabar;
private JLabel lblPrecio;
private JTextField txtPrecio;
private JLabel lblAncho;
private JTextField txtAncho;
private JLabel lblAlto;
private JTextField txtAlto;
private JLabel lblFondo;
private JTextField txtFondo;
private JLabel lblCapacidad;
private JTextField txtCapacidad;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClass-
Name());
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DialogoModificar dialog = new DialogoModificar();
dialog.setDefaultCloseOperation(JDia-
log.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
public DialogoModificar() {
setTitle("Modificar Disco Duro");
setBounds(100, 100, 450, 210);
getContentPane().setLayout(null);
lblModelo = new JLabel("Modelo");
lblModelo.setBounds(10, 20, 106, 14);
getContentPane().add(lblModelo);
Informe del Proyecto de Introducción a la Algoritmia 26
cboModelo = new JComboBox<String>();
cboModelo.addActionListener(this);
cboModelo.setModel(new DefaultComboBoxModel<String>(
new String[] { Tienda.modelo0, Tienda.modelo1, Tienda.-
modelo2, Tienda.modelo3, Tienda.modelo4 }));
cboModelo.setBounds(128, 13, 226, 23);
getContentPane().add(cboModelo);
btnCerrar = new JButton("Cerrar");
btnCerrar.addActionListener(this);
btnCerrar.setBounds(355, 14, 89, 23);
getContentPane().add(btnCerrar);
btnGrabar = new JButton("Grabar");
btnGrabar.addActionListener(this);
btnGrabar.setBounds(355, 42, 89, 23);
getContentPane().add(btnGrabar);
lblPrecio = new JLabel("Precio (S/)");
lblPrecio.setBounds(10, 48, 106, 14);
getContentPane().add(lblPrecio);
txtPrecio = new JTextField(Tienda.precio0 + "");
txtPrecio.setBounds(128, 42, 226, 20);
getContentPane().add(txtPrecio);
txtPrecio.setColumns(10);
lblAncho = new JLabel("Ancho (cm)");
lblAncho.setBounds(10, 73, 106, 14);
getContentPane().add(lblAncho);
txtAncho = new JTextField(Tienda.ancho0 + "");
txtAncho.setBounds(128, 67, 226, 20);
getContentPane().add(txtAncho);
txtAncho.setColumns(10);
lblAlto = new JLabel("Alto (cm)");
lblAlto.setBounds(10, 98, 106, 14);
getContentPane().add(lblAlto);
txtAlto = new JTextField(Tienda.alto0 + "");
txtAlto.setBounds(128, 92, 226, 20);
getContentPane().add(txtAlto);
txtAlto.setColumns(10);
lblFondo = new JLabel("Fondo (cm)");
lblFondo.setBounds(10, 123, 106, 14);
getContentPane().add(lblFondo);
txtFondo = new JTextField(Tienda.fondo0 + "");
txtFondo.setBounds(128, 117, 226, 20);
getContentPane().add(txtFondo);
txtFondo.setColumns(10);
lblCapacidad = new JLabel("Capacidad (TB)");
lblCapacidad.setBounds(10, 148, 106, 14);
getContentPane().add(lblCapacidad);
txtCapacidad = new JTextField(Tienda.capacidad0 + "");
Informe del Proyecto de Introducción a la Algoritmia 27
txtCapacidad.setBounds(128, 142, 226, 20);
getContentPane().add(txtCapacidad);
txtCapacidad.setColumns(10);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == cboModelo) {
actionPerformedCboModelo(e);
}
if (e.getSource() == btnGrabar) {
actionPerformedBtnGrabar(e);
}
if (e.getSource() == btnCerrar) {
actionPerformedBtnCerrar(e);
}
}
protected void actionPerformedBtnCerrar(ActionEvent e) {
dispose();
}
void notificacion(String cad) {
JOptionPane.showMessageDialog(this, cad);
}
double leerPrecio() {
return Double.parseDouble(txtPrecio.getText());
}
double leerAncho() {
return Double.parseDouble(txtAncho.getText());
}
double leerAlto() {
return Double.parseDouble(txtAlto.getText());
}
double leerFondo() {
return Double.parseDouble(txtFondo.getText());
}
double leerCapacidad() {
return Double.parseDouble(txtCapacidad.getText());
}
void enfocarSeleccionarPrecio() {
txtPrecio.requestFocus();
txtPrecio.selectAll();
}
void enfocarSeleccionarAncho() {
txtAncho.requestFocus();
txtAncho.selectAll();
}
void enfocarSeleccionarAlto() {
txtAlto.requestFocus();
txtAlto.selectAll();
Informe del Proyecto de Introducción a la Algoritmia 28
void enfocarSeleccionarFondo() {
txtFondo.requestFocus();
txtFondo.selectAll();
}
void enfocarSeleccionarCapacidad() {
txtCapacidad.requestFocus();
txtCapacidad.selectAll();
}
void datosDisco0(double p, double a, double al, double f, double c) {
Tienda.precio0 = p;
Tienda.ancho0 = a;
Tienda.alto0 = al;
Tienda.fondo0 = f;
Tienda.capacidad0 = c;
}
void datosDisco1(double p, double a, double al, double f, double c) {
Tienda.precio1 = p;
Tienda.ancho1 = a;
Tienda.alto1 = al;
Tienda.fondo1 = f;
Tienda.capacidad1 = c;
}
void datosDisco2(double p, double a, double al, double f, double c) {
Tienda.precio2 = p;
Tienda.ancho2 = a;
Tienda.alto2 = al;
Tienda.fondo2 = f;
Tienda.capacidad2 = c;
}
void datosDisco3(double p, double a, double al, double f, double c) {
Tienda.precio3 = p;
Tienda.ancho3 = a;
Tienda.alto3 = al;
Tienda.fondo3 = f;
Tienda.capacidad3 = c;
}
void datosDisco4(double p, double a, double al, double f, double c) {
Tienda.precio4 = p;
Tienda.ancho4 = a;
Tienda.alto4 = al;
Tienda.fondo4 = f;
Tienda.capacidad4 = c;
}
void grabarDatos(int m, double p, double a, double al, double f, double
c) {
switch (m) {
case 0:
datosDisco0(p, a, al, f, c);
break;
case 1:
Informe del Proyecto de Introducción a la Algoritmia 29
datosDisco1(p, a, al, f, c);
break;
case 2:
datosDisco2(p, a, al, f, c);
break;
case 3:
datosDisco3(p, a, al, f, c);
break;
default:
datosDisco4(p, a, al, f, c);
}
}
protected void actionPerformedBtnGrabar(ActionEvent e) {
try {
int mod;
double pre, anc, alt, fon, cap;
mod = leerModelo();
pre = leerPrecio();
anc = leerAncho();
alt = leerAlto();
fon = leerFondo();
cap = leerCapacidad();
if (pre < 1) {
notificacion("¡PRECIO MINIMO DEBE SER 1!");
enfocarSeleccionarPrecio();
} else if (anc < 1) {
notificacion("¡ANCHO DEBE SER MINIMO 1!");
enfocarSeleccionarAncho();
} else if (alt < 1) {
notificacion("¡ALTO DEBE SER MINIMO 1!");
enfocarSeleccionarAlto();
} else if (fon < 1) {
notificacion("¡FONDO DEBE SER MINIMO 1!");
enfocarSeleccionarFondo();
} else if (cap < 1) {
notificacion("¡CAPACIDAD DEBE SER MINIMO 1!");
enfocarSeleccionarCapacidad();
} else {
grabarDatos(mod, pre, anc, alt, fon, cap);
dispose();
}
} catch (Exception ex) {
notificacion("¡VERIFIQUE QUE LOS DATOS SEAN CORRECTOS!");
}
}
int leerModelo() {
return cboModelo.getSelectedIndex();
}
void mostrarModelo(double pre, double anc, double alt, double fon, dou-
ble cap) {
txtPrecio.setText(pre + "");
txtAncho.setText(anc + "");
txtAlto.setText(alt + "");
txtFondo.setText(fon + "");
txtCapacidad.setText(cap + "");
Informe del Proyecto de Introducción a la Algoritmia 30
protected void actionPerformedCboModelo(ActionEvent e) {
int mod;
mod = leerModelo();
switch (mod) {
case 0:
mostrarModelo(Tienda.precio0, Tienda.ancho0, Tienda.alto0,
Tienda.fondo0, Tienda.capacidad0);
break;
case 1:
mostrarModelo(Tienda.precio1, Tienda.ancho1, Tienda.alto1,
Tienda.fondo1, Tienda.capacidad1);
break;
case 2:
mostrarModelo(Tienda.precio2, Tienda.ancho2, Tienda.alto2,
Tienda.fondo2, Tienda.capacidad2);
break;
case 3:
mostrarModelo(Tienda.precio3, Tienda.ancho3, Tienda.alto3,
Tienda.fondo3, Tienda.capacidad3);
break;
default:
mostrarModelo(Tienda.precio4, Tienda.ancho4, Tienda.alto4,
Tienda.fondo4, Tienda.capacidad4);
}
}
}
DIALOGO LISTAR
package cibertec;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.UIManager;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class DialogoListar extends JDialog implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 4870564956870053681L;
private JTextArea txtS;
private JScrollPane scpScroll;
private JButton btnCerrar;
private JButton btnListar;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClass-
Name());
Informe del Proyecto de Introducción a la Algoritmia 31
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DialogoListar dialog = new DialogoListar();
dialog.setDefaultCloseOperation(JDia-
log.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
public DialogoListar() {
setTitle("Listado de Disco Duro");
setBounds(100, 100, 652, 445);
getContentPane().setLayout(null);
scpScroll = new JScrollPane();
scpScroll.setBounds(10, 23, 616, 324);
getContentPane().add(scpScroll);
txtS = new JTextArea();
scpScroll.setViewportView(txtS);
btnCerrar = new JButton("Cerrar");
btnCerrar.addActionListener(this);
btnCerrar.setBounds(212, 365, 89, 23);
getContentPane().add(btnCerrar);
btnListar = new JButton("Listar");
btnListar.addActionListener(this);
btnListar.setBounds(334, 365, 89, 23);
getContentPane().add(btnListar);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnListar) {
actionPerformedBtnListar(e);
}
if (e.getSource() == btnCerrar) {
actionPerformedBtnCerrar(e);
}
}
protected void actionPerformedBtnCerrar(ActionEvent e) {
dispose();
}
protected void actionPerformedBtnListar(ActionEvent e) {
txtS.setText("LISTADO DE DISCOS DUROS" + "\n\n");
Informe del Proyecto de Introducción a la Algoritmia 32
mostrarDiscoDuro(Tienda.modelo0, Tienda.precio0, Tienda.ancho0,
Tienda.alto0, Tienda.fondo0, Tienda.capacidad0);
mostrarDiscoDuro(Tienda.modelo1, Tienda.precio1, Tienda.ancho1,
Tienda.alto1, Tienda.fondo1, Tienda.capacidad1);
mostrarDiscoDuro(Tienda.modelo2, Tienda.precio2, Tienda.ancho2,
Tienda.alto2, Tienda.fondo2, Tienda.capacidad2);
mostrarDiscoDuro(Tienda.modelo3, Tienda.precio3, Tienda.ancho3,
Tienda.alto3, Tienda.fondo3, Tienda.capacidad3);
mostrarDiscoDuro(Tienda.modelo4, Tienda.precio4, Tienda.ancho4,
Tienda.alto4, Tienda.fondo4, Tienda.capacidad4);
}
void mostrarDiscoDuro(String mod, double pre, double anc, double alt,
double fon, double cap) {
imprimir("Modelo : " + mod);
imprimir("Precio : S/ " + pre + "");
imprimir("Ancho : " + anc + " cm");
imprimir("Alto : " + alt + " cm");
imprimir("Profundidad : " + fon + " cm");
imprimir("Capacidad : " + cap + " TB" + "\n");
}
void imprimir(String cad) {
txtS.append(cad + "\n");
}
}
DIALOGO VENDER
package cibertec;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.UIManager;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JComboBox;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.DefaultComboBoxModel;
public class DialogoVender extends JDialog implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 2481900225816709796L;
private JLabel lblModelo;
private JComboBox<String> cboModelo;
private JLabel lblPrecio;
private JTextField txtPrecio;
private JLabel lblCantidad;
private JTextField txtCantidad;
private JButton btnVender;
private JButton btnCerrar;
private JTextArea txtS;
Informe del Proyecto de Introducción a la Algoritmia 33
private JScrollPane scpScroll;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClass-
Name());
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DialogoVender dialog = new DialogoVender();
dialog.setDefaultCloseOperation(JDia-
log.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
public DialogoVender() {
setTitle("Vender");
setBounds(100, 100, 552, 360);
getContentPane().setLayout(null);
lblModelo = new JLabel("Modelo");
lblModelo.setBounds(10, 11, 117, 14);
getContentPane().add(lblModelo);
cboModelo = new JComboBox<String>();
cboModelo.addActionListener(this);
cboModelo.setModel(new DefaultComboBoxModel<String>(
new String[] { Tienda.modelo0, Tienda.modelo1, Tienda.-
modelo2, Tienda.modelo3, Tienda.modelo4 }));
cboModelo.setBounds(121, 11, 253, 22);
getContentPane().add(cboModelo);
lblPrecio = new JLabel("Precio (S/)");
lblPrecio.setBounds(10, 36, 117, 14);
getContentPane().add(lblPrecio);
txtPrecio = new JTextField(Tienda.precio0 + "");
txtPrecio.setEditable(false);
txtPrecio.setBounds(121, 37, 253, 20);
getContentPane().add(txtPrecio);
txtPrecio.setColumns(10);
lblCantidad = new JLabel("Cantidad");
lblCantidad.setBounds(10, 61, 117, 14);
getContentPane().add(lblCantidad);
Informe del Proyecto de Introducción a la Algoritmia 34
txtCantidad = new JTextField();
txtCantidad.setBounds(121, 62, 253, 20);
getContentPane().add(txtCantidad);
txtCantidad.setColumns(10);
btnVender = new JButton("Vender");
btnVender.addActionListener(this);
btnVender.setBounds(436, 7, 89, 23);
getContentPane().add(btnVender);
btnCerrar = new JButton("Cerrar");
btnCerrar.addActionListener(this);
btnCerrar.setBounds(436, 32, 89, 23);
getContentPane().add(btnCerrar);
scpScroll = new JScrollPane();
scpScroll.setBounds(10, 92, 515, 218);
getContentPane().add(scpScroll);
txtS = new JTextArea();
scpScroll.setViewportView(txtS);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == cboModelo) {
actionPerformedCboModelo(e);
}
if (e.getSource() == btnVender) {
actionPerformedBtnVender(e);
}
if (e.getSource() == btnCerrar) {
actionPerformedBtnCerrar(e);
}
}
protected void actionPerformedBtnCerrar(ActionEvent e) {
dispose();
}
int leerCantidad() {
return Integer.parseInt(txtCantidad.getText());
}
double calcularImporteCompra(int m, double pre0, double pre1, double
pre2, double pre3, double pre4, int c) {
switch (m) {
case 0:
return pre0 * c;
case 1:
return pre1 * c;
case 2:
return pre2 * c;
case 3:
return pre3 * c;
default:
return pre4 * c;
}
Informe del Proyecto de Introducción a la Algoritmia 35
double calcularImporteDescuento(int c, double ic, double p1, double p2,
double p3, double p4) {
if (c <= 5)
return ic * p1 / 100;
else if (c <= 10)
return ic * p2 / 100;
else if (c <= 15)
return ic * p3 / 100;
else
return ic * p4 / 100;
}
double calcularImportePagar(double ic, double id) {
return ic - id;
}
int cantidadObsequio(int c, int oc1, int oc2, int oc3) {
if (c <= 5)
return c * oc1;
else if (c <= 10)
return c * oc2;
else
return c * oc3;
}
void imprimir(String cad) {
txtS.append(cad + "\n");
}
void mostrarResultados(int m, String mod, double pre, int c, double ic,
double id, double ip, String to, int obs) {
txtS.setText("BOLETA DE VENTA" + "\n\n");
imprimir("Modelo : " + mod);
imprimir("Precio : S/." + pre);
imprimir("Cantidad adquirida : " + c);
imprimir("Importe compra : S/." + ic);
imprimir("Importe descuento : S/." + id);
imprimir("Importe pagar : S/." + ip);
imprimir("Tipo de obsequio : " + to);
imprimir("Unidades obsequiadas : " + obs);
}
void enfocarSeleccionarCantidad() {
txtCantidad.requestFocus();
txtCantidad.selectAll();
}
public static int canven;
public static double imptot, pcd;
public static int canven0;
public static int canven1;
public static int canven2;
public static int canven3;
public static int canven4;
public static int canuni0;
public static int canuni1;
public static int canuni2;
Informe del Proyecto de Introducción a la Algoritmia 36
public static int canuni3;
public static int canuni4;
public static double imptot0;
public static double imptot1;
public static double imptot2;
public static double imptot3;
public static double imptot4;
public static double pcd0;
public static double pcd1;
public static double pcd2;
public static double pcd3;
public static double pcd4;
int modsup0;
int modsup1;
int modsup2;
int modsup3;
int modsup4;
public static int modsuptot;
int modinf0;
int modinf1;
int modinf2;
int modinf3;
int modinf4;
public static int modinftot;
int modigu0;
int modigu1;
int modigu2;
int modigu3;
int modigu4;
public static int modigutot;
void notificacion(String cad) {
JOptionPane.showMessageDialog(this, cad);
}
void incrementosVentanaInformacion(double ip, double cd) {
imptot += ip;
canven++;
pcd = 100.0 * (imptot / cd);
}
void modelosSuperiorCantidadOptima(int co) {
if (canuni0 > co)
modsup0 = 1;
else
modsup0 = 0;
if (canuni1 > co)
modsup1 = 1;
else
modsup1 = 0;
if (canuni2 > co)
modsup2 = 1;
else
modsup2 = 0;
if (canuni3 > co)
modsup3 = 1;
else
modsup3 = 0;
if (canuni4 > co)
Informe del Proyecto de Introducción a la Algoritmia 37
modsup4 = 1;
else
modsup4 = 0;
modsuptot = modsup0 + modsup1 + modsup2 + modsup3 + modsup4;
}
void modelosInferiorCantidadOptima(int co) {
if (canuni0 < co)
modinf0 = 1;
else
modinf0 = 0;
if (canuni1 < co)
modinf1 = 1;
else
modinf1 = 0;
if (canuni2 < co)
modinf2 = 1;
else
modinf2 = 0;
if (canuni3 < co)
modinf3 = 1;
else
modinf3 = 0;
if (canuni4 < co)
modinf4 = 1;
else
modinf4 = 0;
modinftot = modinf0 + modinf1 + modinf2 + modinf3 + modinf4;
}
void modelosIgualCantidadOptima(int co) {
if (canuni0 == co)
modigu0 = 1;
else
modigu0 = 0;
if (canuni1 == co)
modigu1 = 1;
else
modigu1 = 0;
if (canuni2 == co)
modigu2 = 1;
else
modigu2 = 0;
if (canuni3 == co)
modigu3 = 1;
else
modigu3 = 0;
if (canuni4 == co)
modigu4 = 1;
else
modigu4 = 0;
modigutot = modigu0 + modigu1 + modigu2 + modigu3 + modigu4;
}
void incrementosVentasPorModelo(int m, int c, double ip, double cd) {
switch (m) {
Informe del Proyecto de Introducción a la Algoritmia 38
case 0:
canven0++;
canuni0 += c;
imptot0 += ip;
pcd0 = 100.0 * imptot0 / cd;
break;
case 1:
canven1++;
canuni1 += c;
imptot1 += ip;
pcd1 = 100.0 * imptot1 / cd;
break;
case 2:
canven2++;
canuni2 += c;
imptot2 += ip;
pcd2 = 100.0 * imptot2 / cd;
break;
case 3:
canven3++;
canuni3 += c;
imptot3 += ip;
pcd3 = 100.0 * imptot3 / cd;
break;
default:
canven4++;
canuni4 += c;
imptot4 += ip;
pcd4 = 100.0 * imptot4 / cd;
}
}
protected void actionPerformedBtnVender(ActionEvent e) {
try {
int can, obs, mod;
double icom, ides, ipag;
mod = leerModelo();
can = leerCantidad();
if (can < 1) {
notificacion("¡CANTIDAD MINIMA DEBE SER 1!");
enfocarSeleccionarCantidad();
} else {
icom = calcularImporteCompra(mod, Tienda.precio0, Tien-
da.precio1, Tienda.precio2, Tienda.precio3,
Tienda.precio4, can);
ides = calcularImporteDescuento(can, icom, Tienda.por-
centaje1, Tienda.porcentaje2, Tienda.porcentaje3,
Tienda.porcentaje4);
ipag = calcularImportePagar(icom, ides);
obs = cantidadObsequio(can, Tienda.obsequioCantidad1,
Tienda.obsequioCantidad2,
Tienda.obsequioCantidad3);
switch (mod) {
case 0:
mostrarResultados(mod, Tienda.modelo0, Tienda.pre-
cio0, can, icom, ides, ipag, Tienda.tipoObsequio,
obs);
break;
Informe del Proyecto de Introducción a la Algoritmia 39
case 1:
mostrarResultados(mod, Tienda.modelo1, Tienda.pre-
cio1, can, icom, ides, ipag, Tienda.tipoObsequio,
obs);
break;
case 2:
mostrarResultados(mod, Tienda.modelo2, Tienda.pre-
cio2, can, icom, ides, ipag, Tienda.tipoObsequio,
obs);
break;
case 3:
mostrarResultados(mod, Tienda.modelo3, Tienda.pre-
cio3, can, icom, ides, ipag, Tienda.tipoObsequio,
obs);
break;
default:
mostrarResultados(mod, Tienda.modelo4, Tienda.pre-
cio4, can, icom, ides, ipag, Tienda.tipoObsequio,
obs);
}
incrementosVentasPorModelo(mod, can, ipag, Tienda.cuota-
Diaria);
modelosSuperiorCantidadOptima(Tienda.cantidadOptima);
modelosInferiorCantidadOptima(Tienda.cantidadOptima);
modelosIgualCantidadOptima(Tienda.cantidadOptima);
incrementosVentanaInformacion(ipag, Tienda.cuotaDiaria);
if (canven % 5 == 0) {
notificacion("Venta Nro " + canven + "\n" + "Impor-
te total general acumulado :S/. " + imptot + "\n"
+ "Porcentaje de la cuota diaria: " + pcd
+ "%");
} else {
}
}
} catch (Exception ex) {
notificacion("¡CANTIDAD DEBE SER ENTERO!");
enfocarSeleccionarCantidad();
}
int leerModelo() {
return cboModelo.getSelectedIndex();
}
void mostrarPrecio(double pre) {
txtPrecio.setText(pre + "");
}
void precioModelo(int m, double p0, double p1, double p2, double p3,
double p4) {
switch (m) {
case 0:
mostrarPrecio(p0);
break;
case 1:
mostrarPrecio(p1);
break;
case 2:
Informe del Proyecto de Introducción a la Algoritmia 40
mostrarPrecio(p2);
break;
case 3:
mostrarPrecio(p3);
break;
default:
mostrarPrecio(p4);
break;
}
}
protected void actionPerformedCboModelo(ActionEvent e) {
int mod;
mod = leerModelo();
precioModelo(mod, Tienda.precio0, Tienda.precio1, Tienda.precio2,
Tienda.precio3, Tienda.precio4);
}
DIALOGO CONFIGURAR DESCUENTOS
package cibertec;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.UIManager;
public class DialogoConfigurarDescuentos extends JDialog implements Action-
Listener {
/**
*
*/
private static final long serialVersionUID = 3501541397091422980L;
private JLabel lblDescuento1;
private JTextField txtDescuento1;
private JLabel lblDescuento2;
private JTextField txtDescuento2;
private JLabel lblDescuento3;
private JTextField txtDescuento3;
private JLabel lblDescuento4;
private JTextField txtDescuento4;
private JButton btnAceptar;
private JButton btnCancelar;
private JLabel lblPorcentaje1;
private JLabel lblPorcentaje2;
private JLabel lblPorcentaje3;
private JLabel lblPorcentaje4;
/**
* Launch the application.
*/
public static void main(String[] args) {
Informe del Proyecto de Introducción a la Algoritmia 41
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClass-
Name());
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DialogoConfigurarDescuentos dialog = new Dialogo-
ConfigurarDescuentos();
dialog.setDefaultCloseOperation(JDia-
log.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
public DialogoConfigurarDescuentos() {
setTitle("Configurar porcentajes de descuento");
setBounds(100, 100, 450, 149);
getContentPane().setLayout(null);
lblDescuento1 = new JLabel("1 a 5 unidades");
lblDescuento1.setBounds(10, 11, 129, 14);
getContentPane().add(lblDescuento1);
txtDescuento1 = new JTextField(Tienda.porcentaje1 + "");
txtDescuento1.setBounds(151, 5, 86, 20);
getContentPane().add(txtDescuento1);
txtDescuento1.setColumns(10);
lblDescuento2 = new JLabel("6 a 10 unidades");
lblDescuento2.setBounds(10, 36, 129, 14);
getContentPane().add(lblDescuento2);
txtDescuento2 = new JTextField(Tienda.porcentaje2 + "");
txtDescuento2.setBounds(151, 30, 86, 20);
getContentPane().add(txtDescuento2);
txtDescuento2.setColumns(10);
lblDescuento3 = new JLabel("11 a 15 unidades");
lblDescuento3.setBounds(10, 61, 129, 14);
getContentPane().add(lblDescuento3);
txtDescuento3 = new JTextField(Tienda.porcentaje3 + "");
txtDescuento3.setBounds(151, 55, 86, 20);
getContentPane().add(txtDescuento3);
txtDescuento3.setColumns(10);
lblDescuento4 = new JLabel("M\u00E1s de 15 unidades");
lblDescuento4.setBounds(10, 86, 129, 14);
getContentPane().add(lblDescuento4);
Informe del Proyecto de Introducción a la Algoritmia 42
txtDescuento4 = new JTextField(Tienda.porcentaje4 + "");
txtDescuento4.setBounds(151, 80, 86, 20);
getContentPane().add(txtDescuento4);
txtDescuento4.setColumns(10);
btnAceptar = new JButton("Aceptar");
btnAceptar.addActionListener(this);
btnAceptar.setBounds(335, 7, 89, 23);
getContentPane().add(btnAceptar);
btnCancelar = new JButton("Cancelar");
btnCancelar.addActionListener(this);
btnCancelar.setBounds(335, 36, 89, 23);
getContentPane().add(btnCancelar);
lblPorcentaje1 = new JLabel("%");
lblPorcentaje1.setBounds(247, 8, 46, 14);
getContentPane().add(lblPorcentaje1);
lblPorcentaje2 = new JLabel("%");
lblPorcentaje2.setBounds(247, 33, 46, 14);
getContentPane().add(lblPorcentaje2);
lblPorcentaje3 = new JLabel("%");
lblPorcentaje3.setBounds(247, 58, 46, 14);
getContentPane().add(lblPorcentaje3);
lblPorcentaje4 = new JLabel("%");
lblPorcentaje4.setBounds(247, 83, 46, 14);
getContentPane().add(lblPorcentaje4);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnAceptar) {
actionPerformedBtnAceptar(e);
}
if (e.getSource() == btnCancelar) {
actionPerformedBtnCancelar(e);
}
}
void notificacion(String cad) {
JOptionPane.showMessageDialog(this, cad);
}
double leerDescuento1() {
return Double.parseDouble(txtDescuento1.getText());
}
double leerDescuento2() {
return Double.parseDouble(txtDescuento2.getText());
}
double leerDescuento3() {
return Double.parseDouble(txtDescuento3.getText());
}
Informe del Proyecto de Introducción a la Algoritmia 43
double leerDescuento4() {
return Double.parseDouble(txtDescuento4.getText());
}
void enfocarSeleccionarDescuento1() {
txtDescuento1.requestFocus();
txtDescuento1.selectAll();
}
void enfocarSeleccionarDescuento2() {
txtDescuento2.requestFocus();
txtDescuento2.selectAll();
}
void enfocarSeleccionarDescuento3() {
txtDescuento3.requestFocus();
txtDescuento3.selectAll();
}
void enfocarSeleccionarDescuento4() {
txtDescuento4.requestFocus();
txtDescuento4.selectAll();
}
protected void actionPerformedBtnAceptar(ActionEvent e) {
try {
double des1, des2, des3, des4;
des1 = leerDescuento1();
des2 = leerDescuento2();
des3 = leerDescuento3();
des4 = leerDescuento4();
if (des1 < 0) {
notificacion("¡PRIMER DESCUENTO DEBE SER MAYOR O IGUAL A
1!");
enfocarSeleccionarDescuento1();
} else if (des2 < 0) {
notificacion("¡SEGUNDO DESCUENTO DEBE SER MAYOR O IGUAL
A 1!");
enfocarSeleccionarDescuento2();
} else if (des3 < 0) {
notificacion("¡TERCER DESCUENTO DEBE SER MAYOR O IGUAL A
1!");
enfocarSeleccionarDescuento3();
} else if (des4 < 0) {
notificacion("¡CUARTO DESCUENTO DEBE SER MAYOR O IGUAL A
1!");
enfocarSeleccionarDescuento4();
} else {
Tienda.porcentaje1 = des1;
Tienda.porcentaje2 = des2;
Tienda.porcentaje3 = des3;
Tienda.porcentaje4 = des4;
dispose();
}
} catch (Exception ex) {
notificacion("¡VERIFIQUE QUE TODOS LOS DATOS SEAN CO-
RRECTOS!");
}
}
Informe del Proyecto de Introducción a la Algoritmia 44
protected void actionPerformedBtnCancelar(ActionEvent e) {
dispose();
}
DIALOGO CONFIGURAR OBSEQUIOS
package cibertec;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.UIManager;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class DialogoConfigurarObsequios extends JDialog implements ActionLis-
tener {
/**
*
*/
private static final long serialVersionUID = 6396570552055985266L;
private JLabel lblTipoDeObsequio;
private JTextField txtTipoDeObsequio;
private JLabel lblCantidad1;
private JTextField txtCantidad1;
private JLabel lblCantidad2;
private JTextField txtCantidad2;
private JLabel lblCantidad3;
private JTextField txtCantidad3;
private JButton btnAceptar;
private JButton btnCancelar;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClass-
Name());
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DialogoConfigurarObsequios dialog = new DialogoCon-
figurarObsequios();
dialog.setDefaultCloseOperation(JDia-
log.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
Informe del Proyecto de Introducción a la Algoritmia 45
}
});
}
/**
* Create the dialog.
*/
public DialogoConfigurarObsequios() {
setTitle("Configurar obsequios");
setBounds(100, 100, 450, 157);
getContentPane().setLayout(null);
lblTipoDeObsequio = new JLabel("Tipo de obsequio");
lblTipoDeObsequio.setBounds(10, 11, 127, 14);
getContentPane().add(lblTipoDeObsequio);
txtTipoDeObsequio = new JTextField(Tienda.tipoObsequio);
txtTipoDeObsequio.setBounds(149, 11, 86, 20);
getContentPane().add(txtTipoDeObsequio);
txtTipoDeObsequio.setColumns(10);
lblCantidad1 = new JLabel("1 a 5 unidades");
lblCantidad1.setBounds(10, 36, 127, 14);
getContentPane().add(lblCantidad1);
txtCantidad1 = new JTextField(Tienda.obsequioCantidad1 + "");
txtCantidad1.setBounds(149, 36, 86, 20);
getContentPane().add(txtCantidad1);
txtCantidad1.setColumns(10);
lblCantidad2 = new JLabel("6 a 10 unidades");
lblCantidad2.setBounds(10, 61, 127, 14);
getContentPane().add(lblCantidad2);
txtCantidad2 = new JTextField(Tienda.obsequioCantidad2 + "");
txtCantidad2.setBounds(149, 61, 86, 20);
getContentPane().add(txtCantidad2);
txtCantidad2.setColumns(10);
lblCantidad3 = new JLabel("M\u00E1s de 11 unidades");
lblCantidad3.setBounds(10, 86, 127, 14);
getContentPane().add(lblCantidad3);
txtCantidad3 = new JTextField(Tienda.obsequioCantidad3 + "");
txtCantidad3.setBounds(149, 86, 86, 20);
getContentPane().add(txtCantidad3);
txtCantidad3.setColumns(10);
btnAceptar = new JButton("Aceptar");
btnAceptar.addActionListener(this);
btnAceptar.setBounds(335, 7, 89, 23);
getContentPane().add(btnAceptar);
btnCancelar = new JButton("Cancelar");
btnCancelar.addActionListener(this);
btnCancelar.setBounds(335, 32, 89, 23);
getContentPane().add(btnCancelar);
}
Informe del Proyecto de Introducción a la Algoritmia 46
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnCancelar) {
actionPerformedBtnCancelar(e);
}
if (e.getSource() == btnAceptar) {
actionPerformedBtnAceptar(e);
}
}
void notificacion(String cad) {
JOptionPane.showMessageDialog(this, cad);
}
String leerTipoDeObsequio() {
return txtTipoDeObsequio.getText();
}
int leerCantidad1() {
return Integer.parseInt(txtCantidad1.getText());
}
int leerCantidad2() {
return Integer.parseInt(txtCantidad2.getText());
}
int leerCantidad3() {
return Integer.parseInt(txtCantidad3.getText());
}
void enfocarSeleccionarTipoDeObsequio() {
txtTipoDeObsequio.requestFocus();
txtTipoDeObsequio.selectAll();
}
void enfocarSeleccionarCantidad1() {
txtCantidad1.requestFocus();
txtCantidad1.selectAll();
}
void enfocarSeleccionarCantidad2() {
txtCantidad2.requestFocus();
txtCantidad2.selectAll();
}
void enfocarSeleccionarCantidad3() {
txtCantidad3.requestFocus();
txtCantidad3.selectAll();
}
protected void actionPerformedBtnAceptar(ActionEvent e) {
try {
String tobs;
int can1, can2, can3;
tobs = leerTipoDeObsequio();
can1 = leerCantidad1();
can2 = leerCantidad2();
can3 = leerCantidad1();
if (tobs.length() == 0) {
Informe del Proyecto de Introducción a la Algoritmia 47
notificacion("¡TIPO DE OBSEQUIO NO PUEDE SER VACIO!");
enfocarSeleccionarTipoDeObsequio();
} else if (can1 < 0) {
notificacion("¡CANTIDAD MINIMA DEBE SER MAYOR O IGUAL A
1!");
enfocarSeleccionarCantidad1();
} else if (can2 < 0) {
notificacion("¡CANTIDAD MINIMA DEBE SER MAYOR O IGUAL A
1!");
enfocarSeleccionarCantidad2();
} else if (can3 < 0) {
notificacion("¡CANTIDAD MINIMA DEBE SER MAYOR O IGUAL A
1!");
enfocarSeleccionarCantidad3();
} else {
Tienda.tipoObsequio = tobs;
Tienda.obsequioCantidad1 = can1;
Tienda.obsequioCantidad2 = can2;
Tienda.obsequioCantidad3 = can3;
dispose();
}
} catch (Exception ex) {
notificacion("¡VERIFIQUE QUE TODOS LOS DATOS SEAN CO-
RRECTOS!");
}
}
protected void actionPerformedBtnCancelar(ActionEvent e) {
dispose();
}
}
DIALOGO GENERAR REPORTES
package cibertec;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JButton;
import javax.swing.UIManager;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.DefaultComboBoxModel;
public class DialogoGenerarReportes extends JDialog implements ActionListener
{
/**
*
*/
private static final long serialVersionUID = -8685856219190026016L;
private JLabel lblTipoDeReporte;
private JComboBox<String> cboTipoDeReporte;
private JButton btnCerrar;
private JTextArea txtS;
private JScrollPane scpScroll;
Informe del Proyecto de Introducción a la Algoritmia 48
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClass-
Name());
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DialogoGenerarReportes dialog = new DialogoGenera-
rReportes();
dialog.setDefaultCloseOperation(JDia-
log.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
public DialogoGenerarReportes() {
setTitle("Generar reportes");
setBounds(100, 100, 704, 450);
getContentPane().setLayout(null);
lblTipoDeReporte = new JLabel("Tipo de reporte");
lblTipoDeReporte.setBounds(10, 11, 140, 14);
getContentPane().add(lblTipoDeReporte);
cboTipoDeReporte = new JComboBox<String>();
cboTipoDeReporte.addActionListener(this);
cboTipoDeReporte.setModel(new DefaultComboBoxModel<String>(
new String[] { "Ventas por modelo", "Raz\u00F3n de pre-
cios en relaci\u00F3n al precio mayor",
"Estad\u00EDstica sobre la cantidad \u00F3pti-
ma", "Estad\u00EDstica sobre el precio" }));
cboTipoDeReporte.setBounds(162, 8, 375, 22);
getContentPane().add(cboTipoDeReporte);
btnCerrar = new JButton("Cerrar");
btnCerrar.addActionListener(this);
btnCerrar.setBounds(589, 7, 89, 23);
getContentPane().add(btnCerrar);
scpScroll = new JScrollPane();
scpScroll.setBounds(10, 47, 666, 353);
getContentPane().add(scpScroll);
txtS = new JTextArea();
scpScroll.setViewportView(txtS);
Informe del Proyecto de Introducción a la Algoritmia 49
public void actionPerformed(ActionEvent e) {
if (e.getSource() == cboTipoDeReporte) {
actionPerformedCboTipoDeReporte(e);
}
if (e.getSource() == btnCerrar) {
actionPerformedBtnCerrar(e);
}
}
protected void actionPerformedBtnCerrar(ActionEvent e) {
dispose();
}
int leerTipoDeReporte() {
return cboTipoDeReporte.getSelectedIndex();
}
void imprimir(String cad) {
txtS.append(cad + "\n");
}
void ventasModelo(String m, int cv, int cu, double itv, double acd) {
imprimir("Modelo : " + m);
imprimir("Cantidad de ventas : " + cv);
imprimir("Cantidad de unidades vendidas : " + cu);
imprimir("Importe total vendido : " + itv);
imprimir("Aporte a la cuota diaria : " + acd + "%" + "\n");
}
void razonPrecio(String m, double pre, double rp) {
imprimir("Modelo : " + m);
imprimir("Precio : " + pre);
imprimir("Razon : " + rp + "\n");
}
double calcularRazonPrecio(double p, double pmay) {
return p / pmay;
}
void estadisticaCantidadOptima(int mst, int mit, int migt) {
imprimir("Cantidad de modelos que superaron la cantidad
optima : " + mst);
imprimir("Cantidad de modelos que no superaron la cantidad
optima : " + mit);
imprimir("Cantidad de modelos que igualaron la cantidad
optima : " + migt);
}
void estadisticaSobrePrecio(double ppro, double pmay, double pmen) {
imprimir("Precio promedio :S/. " + ppro);
imprimir("Precio mayor :S/. " + pmay);
imprimir("Precio menor :S/. " + pmen);
}
double calcularPrecioPromedio(double p0, double p1, double p2, double
p3, double p4) {
Informe del Proyecto de Introducción a la Algoritmia 50
return (p0 + p1 + p2 + p3 + p4) / 5;
}
double calcularPrecioMayor(double p0, double p1, double p2, double p3,
double p4) {
if (p0 >= p1 && p0 >= p2 && p0 >= p3 && p0 >= p4)
return p0;
else if (p1 >= p0 && p1 >= p2 && p1 >= p3 && p1 >= p4)
return p1;
else if (p2 >= p0 && p2 >= p1 && p2 >= p3 && p2 >= p4)
return p2;
else if (p3 >= p0 && p3 >= p1 && p3 >= p2 && p3 >= p4)
return p3;
else
return p4;
}
double calcularPrecioMenor(double p0, double p1, double p2, double p3,
double p4) {
if (p0 <= p1 && p0 <= p2 && p0 <= p3 && p0 <= p4)
return p0;
else if (p1 <= p0 && p1 <= p2 && p1 <= p3 && p1 <= p4)
return p1;
else if (p2 <= p0 && p2 <= p1 && p2 <= p3 && p2 <= p4)
return p2;
else if (p3 <= p0 && p3 <= p1 && p3 <= p2 && p3 <= p4)
return p3;
else
return p4;
}
protected void actionPerformedCboTipoDeReporte(ActionEvent e) {
int mod;
double prepro, premay, premen;
double razpre0, razpre1, razpre2, razpre3, razpre4;
mod = leerTipoDeReporte();
prepro = calcularPrecioPromedio(Tienda.precio0, Tienda.precio1,
Tienda.precio2, Tienda.precio3, Tienda.precio4);
premay = calcularPrecioMayor(Tienda.precio0, Tienda.precio1, Tien-
da.precio2, Tienda.precio3, Tienda.precio4);
premen = calcularPrecioMenor(Tienda.precio0, Tienda.precio1, Tien-
da.precio2, Tienda.precio3, Tienda.precio4);
razpre0 = calcularRazonPrecio(Tienda.precio0, premay);
razpre1 = calcularRazonPrecio(Tienda.precio1, premay);
razpre2 = calcularRazonPrecio(Tienda.precio2, premay);
razpre3 = calcularRazonPrecio(Tienda.precio3, premay);
razpre4 = calcularRazonPrecio(Tienda.precio4, premay);
switch (mod) {
case 0:
txtS.setText("VENTAS POR MODELO" + "\n\n");
ventasModelo(Tienda.modelo0, DialogoVender.canven0, Dialogo-
Vender.canuni0, DialogoVender.imptot0,
DialogoVender.pcd0);
ventasModelo(Tienda.modelo1, DialogoVender.canven1, Dialogo-
Vender.canuni1, DialogoVender.imptot1,
DialogoVender.pcd1);
Informe del Proyecto de Introducción a la Algoritmia 51
ventasModelo(Tienda.modelo2, DialogoVender.canven2, Dialogo-
Vender.canuni2, DialogoVender.imptot2,
DialogoVender.pcd2);
ventasModelo(Tienda.modelo3, DialogoVender.canven3, Dialogo-
Vender.canuni3, DialogoVender.imptot3,
DialogoVender.pcd3);
ventasModelo(Tienda.modelo4, DialogoVender.canven4, Dialogo-
Vender.canuni4, DialogoVender.imptot4,
DialogoVender.pcd4);
break;
case 1:
txtS.setText("RAZON DE PRECIOS EN RELACION AL PRECIO MAYOR" +
"\n\n");
razonPrecio(Tienda.modelo0, Tienda.precio0, razpre0);
razonPrecio(Tienda.modelo1, Tienda.precio1, razpre1);
razonPrecio(Tienda.modelo2, Tienda.precio2, razpre2);
razonPrecio(Tienda.modelo3, Tienda.precio3, razpre3);
razonPrecio(Tienda.modelo4, Tienda.precio4, razpre4);
break;
case 2:
txtS.setText("ESTADISTICA SOBRE LA CANTIDAD OPTIMA" + "\n\
n");
estadisticaCantidadOptima(DialogoVender.modsuptot, Dialogo-
Vender.modinftot, DialogoVender.modigutot);
break;
default:
txtS.setText("ESTADISTICA SOBRE EL PRECIO" + "\n\n");
estadisticaSobrePrecio(prepro, premay, premen);
}
}
DIALOGO CONFIGURAR CANTIDAD OPTIMA
package cibertec;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.UIManager;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class DialogoConfigurarCantidadOptima extends JDialog implements Ac-
tionListener {
/**
*
*/
private static final long serialVersionUID = 8970989136204562151L;
private JLabel lblCantidadOptima;
private JTextField txtCantidadOptima;
private JButton btnAceptar;
private JButton btnCancelar;
/**
Informe del Proyecto de Introducción a la Algoritmia 52
* Launch the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClass-
Name());
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DialogoConfigurarCantidadOptima dialog = new Dialo-
goConfigurarCantidadOptima();
dialog.setDefaultCloseOperation(JDia-
log.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
public DialogoConfigurarCantidadOptima() {
setTitle("Configurar cantidad \u00F3ptima");
setBounds(100, 100, 457, 122);
getContentPane().setLayout(null);
lblCantidadOptima = new JLabel("Cantidad \u00F3ptima de unidades
vendidas");
lblCantidadOptima.setBounds(10, 11, 252, 14);
getContentPane().add(lblCantidadOptima);
txtCantidadOptima = new JTextField(Tienda.cantidadOptima + "");
txtCantidadOptima.setBounds(274, 8, 61, 20);
getContentPane().add(txtCantidadOptima);
txtCantidadOptima.setColumns(10);
btnAceptar = new JButton("Aceptar");
btnAceptar.addActionListener(this);
btnAceptar.setBounds(347, 6, 89, 23);
getContentPane().add(btnAceptar);
btnCancelar = new JButton("Cancelar");
btnCancelar.addActionListener(this);
btnCancelar.setBounds(347, 32, 89, 23);
getContentPane().add(btnCancelar);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnCancelar) {
actionPerformedBtnCancelar(e);
}
if (e.getSource() == btnAceptar) {
Informe del Proyecto de Introducción a la Algoritmia 53
actionPerformedBtnAceptar(e);
}
}
void notificacion(String cad) {
JOptionPane.showMessageDialog(this, cad);
}
int leerCantidadOptima() {
return Integer.parseInt(txtCantidadOptima.getText());
}
void enfocarSeleccionarCantidadOptima() {
txtCantidadOptima.requestFocus();
txtCantidadOptima.selectAll();
}
protected void actionPerformedBtnAceptar(ActionEvent e) {
try {
int cop;
cop = leerCantidadOptima();
if (cop <= 0) {
notificacion("¡CANTIDAD OPTIMA DEBE SER MAYOR O IGUAL A
1!");
enfocarSeleccionarCantidadOptima();
} else {
Tienda.cantidadOptima = cop;
dispose();
}
} catch (Exception ex) {
notificacion("¡CANTIDAD OPTIMA DEBE SER UN NUMERO ENTERO!");
enfocarSeleccionarCantidadOptima();
}
}
protected void actionPerformedBtnCancelar(ActionEvent e) {
dispose();
}
}
DIALOGO CONFIGURAR CUOTA DIARIA
package cibertec;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class DialogoConfigurarCuotaDiaria extends JDialog implements Action-
Listener {
/**
*
*/
private static final long serialVersionUID = 53331221876375189L;
Informe del Proyecto de Introducción a la Algoritmia 54
private JLabel lblCuotaDiaria;
private JTextField txtCuotaDiaria;
private JButton btnAceptar;
private JButton btnCancelar;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DialogoConfigurarCuotaDiaria dialog = new Dialogo-
ConfigurarCuotaDiaria();
dialog.setDefaultCloseOperation(JDia-
log.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
public DialogoConfigurarCuotaDiaria() {
setTitle("Configurar cuota diaria");
setBounds(100, 100, 441, 106);
getContentPane().setLayout(null);
lblCuotaDiaria = new JLabel("Cuota diaria esperada (S/)");
lblCuotaDiaria.setBounds(10, 11, 180, 14);
getContentPane().add(lblCuotaDiaria);
txtCuotaDiaria = new JTextField(Tienda.cuotaDiaria + "");
txtCuotaDiaria.setBounds(202, 8, 86, 20);
getContentPane().add(txtCuotaDiaria);
txtCuotaDiaria.setColumns(10);
btnAceptar = new JButton("Aceptar");
btnAceptar.addActionListener(this);
btnAceptar.setBounds(321, 7, 89, 23);
getContentPane().add(btnAceptar);
btnCancelar = new JButton("Cancelar");
btnCancelar.addActionListener(this);
btnCancelar.setBounds(321, 33, 89, 23);
getContentPane().add(btnCancelar);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnCancelar) {
actionPerformedBtnCancelar(e);
}
if (e.getSource() == btnAceptar) {
actionPerformedBtnAceptar(e);
Informe del Proyecto de Introducción a la Algoritmia 55
}
}
void notificacion(String cad) {
JOptionPane.showMessageDialog(this, cad);
}
double leerCuotaDiaria() {
return Double.parseDouble(txtCuotaDiaria.getText());
}
void enfocarSeleccionarCuotaDiaria() {
txtCuotaDiaria.requestFocus();
txtCuotaDiaria.selectAll();
}
protected void actionPerformedBtnAceptar(ActionEvent e) {
try {
double cdi;
cdi = leerCuotaDiaria();
if (cdi <= 0) {
notificacion("¡CUOTA DIARIA DEBE SER MINIMO 1!");
enfocarSeleccionarCuotaDiaria();
} else {
Tienda.cuotaDiaria = cdi;
dispose();
}
} catch (Exception e2) {
notificacion("¡CUOTA DIARIA DEBE SER UN NUMERO ENTERO!");
enfocarSeleccionarCuotaDiaria();
}
}
protected void actionPerformedBtnCancelar(ActionEvent e) {
dispose();
}
}
DIALOGO ACERCA DE TIENDA
package cibertec;
import java.awt.EventQueue;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.UIManager;
import javax.swing.JSeparator;
import java.awt.Dimension;
import java.awt.Color;
import java.awt.Cursor;
import javax.swing.SwingConstants;
Informe del Proyecto de Introducción a la Algoritmia 56
public class DialogoAcercaDeTienda extends JDialog implements ActionListener
{
/**
*
*/
private static final long serialVersionUID = 1L;
private final JPanel contentPanel = new JPanel();
private JLabel lblTienda;
private JButton btnCerrar;
private JLabel lblAutor;
private JSeparator separator;
private JLabel lblAutorUno;
private JLabel lblAutorDos;
private JLabel lblAutorTres;
private JLabel lblAutorCuatro;
private JLabel lblAutorCinco;
private JLabel lblAutorOcho;
private JLabel lblAutorSeis;
private JLabel lblAutorSiete;
private JLabel lblAutorNueve;
/**
* Launch the application.
*/
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClass-
Name());
} catch (Throwable e) {
e.printStackTrace();
}
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
DialogoAcercaDeTienda dialog = new DialogoAcercaDe-
Tienda();
dialog.setDefaultCloseOperation(JDia-
log.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the dialog.
*/
public DialogoAcercaDeTienda() {
setTitle("Acerca de tienda");
setBounds(100, 100, 529, 438);
getContentPane().setLayout(new BorderLayout());
contentPanel.setCursor(Cursor.getPredefinedCursor(Curso-
r.DEFAULT_CURSOR));
contentPanel.setFont(new Font("Tahoma", Font.PLAIN, 11));
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
Informe del Proyecto de Introducción a la Algoritmia 57
contentPanel.setLayout(null);
lblTienda = new JLabel("Tienda 1.0");
lblTienda.setHorizontalAlignment(SwingConstants.CENTER);
lblTienda.setFont(new Font("Tahoma", Font.BOLD, 14));
lblTienda.setBounds(199, 16, 109, 22);
contentPanel.add(lblTienda);
btnCerrar = new JButton("Cerrar");
btnCerrar.addActionListener(this);
btnCerrar.setBounds(222, 364, 89, 23);
contentPanel.add(btnCerrar);
lblAutor = new JLabel("Autores");
lblAutor.setHorizontalAlignment(SwingConstants.CENTER);
lblAutor.setFont(new Font("Tahoma", Font.PLAIN, 14));
lblAutor.setBounds(171, 57, 171, 19);
contentPanel.add(lblAutor);
separator = new JSeparator();
separator.setForeground(Color.BLACK);
separator.setSize(new Dimension(5, 5));
separator.setPreferredSize(new Dimension(5, 5));
separator.setFont(new Font("Arial Black", Font.PLAIN, 15));
separator.setToolTipText("");
separator.setBounds(10, 44, 504, 15);
contentPanel.add(separator);
lblAutorUno = new JLabel("Gutierrez Ferro, Marco Antonio");
lblAutorUno.setHorizontalAlignment(SwingConstants.CENTER);
lblAutorUno.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblAutorUno.setBounds(90, 88, 344, 19);
contentPanel.add(lblAutorUno);
lblAutorDos = new JLabel("Champi Salinas, Teresa Guadalupe");
lblAutorDos.setHorizontalAlignment(SwingConstants.CENTER);
lblAutorDos.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblAutorDos.setBounds(90, 119, 344, 19);
contentPanel.add(lblAutorDos);
lblAutorTres = new JLabel("Rojas Alburqueque, Manuel Angel");
lblAutorTres.setHorizontalAlignment(SwingConstants.CENTER);
lblAutorTres.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblAutorTres.setBounds(90, 150, 344, 19);
contentPanel.add(lblAutorTres);
lblAutorCuatro = new JLabel("Rosales Ascate, Marcos");
lblAutorCuatro.setHorizontalAlignment(SwingConstants.CENTER);
lblAutorCuatro.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblAutorCuatro.setBounds(90, 181, 344, 19);
contentPanel.add(lblAutorCuatro);
lblAutorCinco = new JLabel("Verona Rodriguez, Antony");
lblAutorCinco.setHorizontalAlignment(SwingConstants.CENTER);
lblAutorCinco.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblAutorCinco.setBounds(90, 212, 344, 19);
contentPanel.add(lblAutorCinco);
lblAutorOcho = new JLabel("Chavez Zegarra, Kall Junior");
Informe del Proyecto de Introducción a la Algoritmia 58
lblAutorOcho.setForeground(Color.ORANGE);
lblAutorOcho.setHorizontalAlignment(SwingConstants.CENTER);
lblAutorOcho.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblAutorOcho.setBounds(90, 305, 344, 19);
contentPanel.add(lblAutorOcho);
lblAutorSeis = new JLabel("Escobar Quintana, Luis Guiseppe");
lblAutorSeis.setHorizontalAlignment(SwingConstants.CENTER);
lblAutorSeis.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblAutorSeis.setBounds(90, 243, 344, 19);
contentPanel.add(lblAutorSeis);
lblAutorSiete = new JLabel("Ibarra Torres, Diana Patricia");
lblAutorSiete.setForeground(Color.RED);
lblAutorSiete.setHorizontalAlignment(SwingConstants.CENTER);
lblAutorSiete.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblAutorSiete.setBounds(90, 274, 344, 19);
contentPanel.add(lblAutorSiete);
lblAutorNueve = new JLabel("Angelino Granda, Joshua Dario");
lblAutorNueve.setForeground(Color.ORANGE);
lblAutorNueve.setHorizontalAlignment(SwingConstants.CENTER);
lblAutorNueve.setFont(new Font("Tahoma", Font.PLAIN, 12));
lblAutorNueve.setBounds(90, 333, 344, 19);
contentPanel.add(lblAutorNueve);
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnCerrar) {
actionPerformedBtnCerrar(e);
}
}
protected void actionPerformedBtnCerrar(ActionEvent e) {
dispose();
}
}
Conclusiones
La elaboración y construcción de este programa nos a permitido determinar las
siguientes conclusiones:
-Se logró aplicar métodos y las diferentes estructuras ( if else, switch) al progra-
ma, encontrándonos con ciertas dificultades en la construcción del algoritmo,
pero que se fueron corrigiendo conforme se iba analizando la construcción de el
mismo(algoritmo) en el transcurso.
-Hemos aprendido a tomar las mejores decisiones y preocupándonos de que el
programa funcione a la perfección, desestimando errores de sintaxis y minimi-
zando códigos innecesarios.
-El trabajo en conjunto ha permitido encontrar pequeños detalles que a la vista
de uno no era tan visible, de esta manera se logró minimizar la posible compleji-
dad del programa en la fase inicial y se pudo aplicar lo aprendido en clase para
su desarrollo.
Informe del Proyecto de Introducción a la Algoritmia 59
Recomendaciones
-La construcción del programa “TIENDA”, sirve como base para la elaboración de
programas futuros, ya que se puede aplicar de manera exitosa en distintos negocios.
-Como todo programa, se pueden añadir mejoras y hacerlo más completo, abaste-
ciéndola de más datos, como también realizar cambios en el algoritmo que permitan
que la interfaz se adapte a nuestras necesidades.
-Siempre es necesario realizar pruebas de escritorio, con el fin de mejorar el algorit-
mo, y tenerla optimizada al 100%.
Como conclusión y recomendación final podemos decir que hemos logrado aplicar
soluciones y resolver dudas, ampliando nuestro conocimiento en como añadir códi-
gos eficazmente a un algoritmo para obtener un programa óptimo y que pueda ser
utilizado como un modelo base de solución y mejora para programas con caracterís-
ticas más amplias y complejas.
Bibliografía
https://www.w3schools.com/java/java_intro.asp