Está en la página 1de 13

public class lista_compras {

int codigo;
String productos;
int cantidad;
double precioUnitario;

public lista_compras(){}

public lista_compras(int codigo, String productos, int cantidad, double


precioUnitario) {
this.codigo = codigo;
this.productos = productos;
this.cantidad = cantidad;
this.precioUnitario = precioUnitario;
}

public int getCodigo() {


return codigo;
}
public void setCodigo(int codigo) {
this.codigo = codigo;
}

public String getProductos() {


return productos;
}

public void setProductos(String productos) {


this.productos = productos;
}

public int getCantidad() {


return cantidad;
}

public void setCantidad(int cantidad) {


this.cantidad = cantidad;
}

public double getPrecioUnitario() {


return precioUnitario;
}

public void setPrecioUnitario(double precioUnitario) {


this.precioUnitario = precioUnitario;
}

public double Totalproductos(){


return getPrecioUnitario()*getCantidad();
}

import java.util.ArrayList;
import javax.swing.JOptionPane;

public class frame extends javax.swing.JFrame {

ArrayList<lista_compras> lis = new ArrayList<>();


int cod = 0;

public frame() {
initComponents();
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jPanel1 = new javax.swing.JPanel();


jLabel1 = new javax.swing.JLabel();
jtxtProducto = new javax.swing.JTextField();
jtxtCantidad = new javax.swing.JTextField();
jtxtPrecioUntiario = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jtxtArea = new javax.swing.JTextArea();
jbtnCalcularTotal = new javax.swing.JButton();
jbtnRegistrar = new javax.swing.JButton();
jLabel2 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

jLabel1.setFont(new java.awt.Font("Segoe UI", 0, 24)); // NOI18N


jLabel1.setText(" Factura de Compras");

jtxtProducto.setBorder(javax.swing.BorderFactory.createTitledBorder("Descripcion del
producto"));

jtxtCantidad.setBorder(javax.swing.BorderFactory.createTitledBorder("Cantidad
del producto"));

jtxtPrecioUntiario.setBorder(javax.swing.BorderFactory.createTitledBorder("Precio
unitario"));

jtxtArea.setColumns(20);
jtxtArea.setRows(5);
jScrollPane1.setViewportView(jtxtArea);

jbtnCalcularTotal.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N


jbtnCalcularTotal.setText("Calcular factura total");
jbtnCalcularTotal.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnCalcularTotalActionPerformed(evt);
}
});

jbtnRegistrar.setText("Registrar lista de compras");


jbtnRegistrar.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jbtnRegistrarActionPerformed(evt);
}
});

jLabel2.setIcon(new
javax.swing.ImageIcon(getClass().getResource("/imagenes/print.png"))); // NOI18N

javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);


jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(39, 39, 39)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TR
AILING)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING, false)
.addComponent(jScrollPane1)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jtxtProducto,
javax.swing.GroupLayout.PREFERRED_SIZE, 170,
javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jtxtCantidad,
javax.swing.GroupLayout.PREFERRED_SIZE, 170,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jtxtPrecioUntiario,
javax.swing.GroupLayout.PREFERRED_SIZE, 170,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jbtnCalcularTotal,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(jbtnRegistrar, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(jLabel1)
.addGap(18, 18, 18)
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 41,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(87, 87, 87)))
.addContainerGap(49, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE
ADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(jLabel1))
.addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 62,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BA
SELINE)
.addComponent(jtxtProducto, javax.swing.GroupLayout.PREFERRED_SIZE,
60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jtxtCantidad, javax.swing.GroupLayout.PREFERRED_SIZE,
60, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jtxtPrecioUntiario,
javax.swing.GroupLayout.PREFERRED_SIZE, 60,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE,
210, javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jbtnRegistrar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jbtnCalcularTotal)
.addContainerGap(44, Short.MAX_VALUE))
);

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.Alignment.TRAILING,
javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack();
}// </editor-fold>

private void jbtnCalcularTotalActionPerformed(java.awt.event.ActionEvent evt) {


mostrarFactura();
}

private void jbtnRegistrarActionPerformed(java.awt.event.ActionEvent evt) {


guardarInfo();
}

public void guardarInfo() {

if (jtxtProducto.getText().isEmpty() || jtxtCantidad.getText().isEmpty() ||
jtxtPrecioUntiario.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Complete todos los campos");
} else {
cod++;
String producto = jtxtProducto.getText();
int cantidad = Integer.parseInt(jtxtCantidad.getText());
double precioU = Double.parseDouble(jtxtPrecioUntiario.getText());
lista_compras lista = new lista_compras(cod, producto, cantidad, precioU);
lis.add(lista);
JOptionPane.showMessageDialog(null, "Lista de productos agregados
correctamente");
}

public void mostrarFactura() {


String factura = "Codigo\tProducto\tCantidad\tPrecioU\t\tTotalP\t\n";
double total = calcularTotalRecursivo(0, lis);
for (lista_compras lista : lis) {
factura += lista.getCodigo() + "\t" + lista.getProductos() + "\t\t" +
lista.getCantidad() + "\t\t" + lista.getPrecioUnitario() + "\t\t" + lista.Totalproductos() +
"\n";
}
jtxtArea.setText(factura + "\n\n\nPrecio total de la lista:" + total);
}

public double calcularTotalRecursivo(int i, ArrayList<lista_compras> lista){

if (i==lista.size()) {
return 0;
} else {
return lista.get(i).Totalproductos() + calcularTotalRecursivo(i+1, lista);
}

EJERCICIO 2

public class factorial {

// Escriba un programa recursivo para calcular el factorial de un número no negativo


dado.
public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("--calcular factorial de un numero no negativo dado");


int n = sc.nextInt();
int factorial = factorialRecursivo(n);
System.out.println("el factorial de " + n + " es: " + factorial);

public static int factorialRecursivo(int n) {

if (n == 0) {
return 1;
} else {
return n * factorialRecursivo(n - 1);
}
}

EJERCICIO 3
public class alumnos {

int dni;
String nombre;
String apellido;
int edad;
String genero;
String curso;
String fechadeingreso;

public alumnos(){}

public alumnos(int dni, String nombre, String apellido, int edad, String genero, String
curso, String fechadeingreso) {
this.dni = dni;
this.nombre = nombre;
this.apellido = apellido;
this.edad = edad;
this.genero = genero;
this.curso = curso;
this.fechadeingreso = fechadeingreso;
}

public int getDni() {


return dni;
}
public void setDni(int dni) {
this.dni = dni;
}

public String getNombre() {


return nombre;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public String getApellido() {


return apellido;
}

public void setApellido(String apellido) {


this.apellido = apellido;
}

public int getEdad() {


return edad;
}

public void setEdad(int edad) {


this.edad = edad;
}

public String getGenero() {


return genero;
}

public void setGenero(String genero) {


this.genero = genero;
}

public String getCurso() {


return curso;
}

public void setCurso(String curso) {


this.curso = curso;
}

public String getFechadeingreso() {


return fechadeingreso;
}

public void setFechadeingreso(String fechadeingreso) {


this.fechadeingreso = fechadeingreso;
}

public class contarAlumnos {

public String contarTrabajadores(List<alumnos> lista) {

int contahombres = 0;
int contamujeres = 0;
int contaMate = 0;
int ContaEstructura = 0;
int contaMayores = 0;
int contaMenores = 0;

for (alumnos al : lista) {

switch (al.getGenero()) {

case "masculino" ->


contahombres++;
case "femenino" ->
contamujeres++;
default -> {
}
}
switch (al.getCurso()) {

case "Matematica" ->


contaMate++;
case "Estructura de datos" ->
ContaEstructura++;
default -> {
}

switch (al.getEdad() >= 18 ? "mayor" : "menor") {

case "mayor" ->


contaMayores++;
case "menor" ->
contaMenores++;
default -> {
}
}

}
return """
--CONTEO DE ALUMNOS--
Numero de Alumnos hombres: """ + contahombres
+ "\nNumero de Alumnas mujeres: " + contamujeres
+ "\nNumero de Alumnos en Matematica: " + contaMate
+ "\nNumero de Alumnos en Estructura de datos: " + ContaEstructura
+ "\nNumero de trabajadores mayores de edad: " + contaMayores
+ "\nNumero de trabajadores menores de edad: " + contaMenores;
}

public class quicksort {

public void ordenarQ(alumnos[] array) {


array = quicksort1(array);
}

public alumnos[] quicksort1(alumnos numeros[]) {


return quicksort2(numeros, 0, numeros.length - 1);
}

public alumnos[] quicksort2(alumnos numeros[], int izq, int der) {

if (izq>=der) {
return numeros;
}

int i=izq, d=der;


if (izq!=der) {
int pivote;
alumnos aux;
pivote = izq;

while(izq!=der){
while(numeros[der].getEdad()>=numeros[pivote].getEdad()&&izq<der){
der--;
}
while (numeros[izq].getEdad()< numeros[pivote].getEdad()&& izq < der){
izq++;
}
if (der!=izq) {
aux = numeros[der];
numeros[der]=numeros[izq];
numeros[izq]=aux;
}
}
if (izq==der) {
quicksort2(numeros, i ,izq -1);
quicksort2(numeros, izq+1, d);
}
}else{
return numeros;
}
return numeros;
}

EJERCICIO 4

public class ejercicio4 {

public static void main(String[] args) {

// Crear lista de productos con precios


String[] productos = {"cerdo", "Arroz", "palta", "pepino"};
double[] precios = {20.00, 50.00, 08.00, 80.00};

// Busqueda secuencial recursiva


int indexSecuencial = buscarMasBaratoSecuencial(productos, precios, 0,
precios.length - 1);
System.out.println("El producto mas barato (busqueda secuencial) es: " +
productos[indexSecuencial]);

// Busqueda binaria recursiva


int indexBinario = buscarMasBaratoBinario(productos, precios, 0, precios.length -
1);
System.out.println("El producto mas barato (busqueda binaria) es: " +
productos[indexBinario]);

// Búsqueda secuencial recursiva


public static int buscarMasBaratoSecuencial(String[] productos, double[] precios, int
inicio, int fin) {
if (inicio == fin) {
return inicio;
}
int index = buscarMasBaratoSecuencial(productos, precios, inicio+1, fin);
return precios[inicio] < precios[index] ? inicio : index;
}

// Búsqueda binaria recursiva


public static int buscarMasBaratoBinario(String[] productos, double[] precios, int
inicio, int fin) {
if (inicio == fin) {
return inicio;
}
int medio = (inicio + fin) / 2;
int indexIzquierda = buscarMasBaratoBinario(productos, precios, inicio, medio);
int indexDerecha = buscarMasBaratoBinario(productos, precios, medio+1, fin);
return precios[indexIzquierda] < precios[indexDerecha] ? indexIzquierda :
indexDerecha;
}
}

También podría gustarte