Você está na página 1de 5

Programacin II - Hora de laboratorio

Composicin
Se desea realizar un programa para gestionar un supermercado, y para ello se dispone de las
siguientes clases y ficheros:
-

Clase Producto. Representa un producto del supermercado con los atributos:


-

Cdigo del producto (int, entero de 6 dgitos)


Descripcin del producto (String)
Precio unitario (double)
Unidades vendidas (int)
//En lo que llevamos de ao

Los dos primeros dgitos del cdigo del producto indican la seccin a la que pertenecen dentro del
supermercado y los dos ltimos al nmero del producto dentro de la seccin, existen un total de 10
secciones (limpieza, refrescos, consevas, charcuteria, carniceria ) y el nmero mximo de
productos pertenecientes a una seccin es de 25 (estn numerados del 1 al 25 y las secciones del
1 al 10). Hay que tener en cuenta que una seccin no tiene porque tener obligatoriamente 25
productos, puede tener un nmero menor de productos, por ejemplo 7 o 13 ...mximo posible 25.
Clase Compra. Representa un producto comprado por un cliente en el supermercado con los
atributos:
Fecha de Compra (Fecha)
DNI del cliente (String)
Cdigo producto (int)
Unidades compradas (int)
Fecha de Caducidad (Fecha)
Clase Cliente. Representa un cliente con tarjeta de fidelidad al supermercado con los atributos:
DNI del cliente (String)
Nombre del cliente (String)
Direccion (String)
Fecha de Ingreso (Fecha)
//Fecha en la que se le dio de
alta
como cliente habitual
-

Fichero CLIENTES.DAT. Contiene un objeto de la clase Cliente por cada cliente con
carnet de fidelidad al supermercado y esta ordenado por cdigo de cliente.

Fichero PRODUCTOS.DAT. Contiene un objeto de la clase Producto por cada producto


disponible en el supermercado y esta ordenado por cdigo de producto.

Fichero COMPRAS.DAT. Contiene un objeto de la clase Compra por cada compra


realizada en el supermercado por el cliente en el dia de hoy. Hay un objeto en el fichero por
cada producto que compra el cliente y esta ordenado por DNI del cliente.

Se pide crear primero todos los ficheros necesarios (CLIENTES.DAT, PRODUCTOS.DAT,


COMPRAS.DAT) para poder procesar el siguiente programa que estar integrado en la clase
GestinSupermercado, la cual deber contener al menos los mtodos que realicen los

tratamientos que se indican a continuacin. Adems contendr el mtodo main, donde se incluirn
las llamadas a los mtodos, y la declaracin de una estructura de array bidimensional para
almacenar los productos. Por supuesto, se podr declarar cualquier otra estructura y mtodos que
se consideren necesarios.

1. Mtodo almacenarProductos. A partir del fichero de entrada PRODUCTOS.DAT, ubicar


cada producto del fichero en un array bidimensional (10 secciones x 25 productos) cuyo contenido
son objetos de la clase Producto. Ocupando cada producto el elemento del array que le
corresponda segn su seccin y nmero de producto dentro de su seccin.

2. Mtodo obtenerRelacionCompras. Utilizando el fichero COMPRAS.DAT y el array de


productos, se desea por un lado actualizar el atributo Unidades vendidas de cada producto y por
otro lado deseamos obtener un informe con la relacin de las compras hechas por los clientes
durante el da controlando el periodo de validez del producto comprado, con el siguiente formato de
pantalla:
COMPRAS DEL SUPERMERCADO
DNI
PRODUCTO UNIDADES.
Fecha de Caducidad.
18.888.888 detergente
3
16/12/2015
78.000.888 leja
2
11/10/2013
18.888.888 leche
5
13/06/2010
13.222.888 cereales
1
29/10/2012
18.888.888 pan
2
17/03/2010
13.222.888 leche
10
10/05/2010
13.222.888 detergente
2.
16/12/2015
78.000.888 leche
12
10/05/2010
-..

Fecha de Compra
16/12/2009
10/05/2010
19/10/2010
10/05/2010
06/05/2010
07/03/2009
14/10/2010
10/05/2010

3. Mtodo visualizararrayProductos. A partir del array de productos, obtener un informe


organizado por seccin y dentro de seccin por producto que visualice de cada producto la
cantidad vendida en lo que va de ao y el importe que dicha venta ha supuesto a la empresa
indicando adems cual es el porcentaje sobre el total que lleva vendido hasta la fecha.

4. Mtodo InformeVentasCliente. A partir del fichero de Clientes y del fichero de Compras junto
con el array de productos obtener un informe que nos de la relacin de todos los clientes que
hayan hecho alguna compra durante el da y que tengan carnet de clientes fieles y a los que
superen la compra realizada los 300 euros se les grabara en un fichero nuevo (PREMIADOS.DAT)
para enviarles un regalo.

Lo primero que tenis que hacer en esta practica es implementar las clases que van ha
intervenir en el proceso del programa propuesto sobre la composicin y que son:
import java.io.*;
public class Producto implements Serializable
{
private int codigo;
// codigo del producto
private String descripcion
// nombre del producto
private double precio;
// precio unitario
private int unidades;
// unidades vendidas en lo que va de ao
public Producto()
public Producto (String c, String d, double p, int u)
public int getCodigo()
public String getDescripcion()
public double getPrecio()
public int getUnidadesVendidas()
public void setCodigo(int c)
public void setDescripcion(String d)
public void setPrecio(double p)
public void setUnidadesVendidas(int u)
public void mostrar()
}
import java.io.*;
public class Fecha implements Serializable
{
private int dia;
private int mes;
private int anyo;
public Fecha()
public Fecha(int d, int m, int a)
public int getDia()
public int getMes()
public int getAnyo()
public void setDia(int d)
public void setMes(int m)
public void setAnyo(int a)
public void mostrar();
}
import java.io.*;
public class Compra implements Serializable
{
private Fecha fechaCompra;
private String dni;
private int codigo;
private int unidades;
private Fecha fechaCaducidad;

// fecha en la que se compro el producto


// DNI identificativo del cliente
// codigo del producto
// nmero de unidades compradas
// fecha en la que caduca el producto

public Compra()
public Compra(Fecha fCompra, String d, String c, int u, Fecha fCaducidad)
public Fecha getFechaCompra()
public String getDni()
public int getCodigo()
public int getUnidadesCompradas()
public Fecha getFechaCaducidad()
public void setFechaCompra(Fecha fCompra)
public void setDni(String d)
public void setCodigo(int c)
public void setUnidadesCompradas(int u)
public void setFechaCaducidad(Fecha fCaducidad)
public void mostrarPeriodoValidez()
public void mostrar()
}

import java.io.*;
public class Cliente implements Serializable
{
private String dni;
private String nombre;
private String direccion;
private Fecha fechaIngreso;

// DNI identificativo del cliente


// nombre del cliente
// direccin del cliente
// fecha en la que ingreso como cliente fiel

public Cliente()
public Cliente(String d, String nom, String dir, Fecha fIngreso)
public String getDni()
public String getNombre()
public String getDireccion()
public Fecha getFechaIngreso()
public void setDni(String d)
public void setNombre(String nom)
public void setDireccion(String dir)
public void setFechaIngreso(Fecha fIngreso)
public void mostrar()
}

Você também pode gostar