Está en la página 1de 4

Proyectos integradores, grupales.

Ciclo 2023

Pautas generales:

1- Pueden conformar grupos de hasta 3 integrantes.


2- Cuando el proyecto se encuentra finalizado, es decir compila y ejecuta, se entrega en clase
presencial (de ser posible) para mostrarle al docente su ejecución. Luego se debe enviar por
mail, en una carpeta ZIP , cada uno de los archivos que contienen la definición de una clase,
y la aplicación, más un archivo Word con el diagrama de clases UML.
3- Podrán entregar el proyecto hasta 3 veces: es decir pueden hacer correcciones 2 veces. La
tercer entrega ya lleva la nota definitiva (aprobado o desaprobado).
4- En caso de estar aprobado, el docente pautará la fecha del coloquio grupal oral. El mismo
podrá ser presencial o virtual.
5- Si el proyecto NO compila o no ejecuta, no se acepta la entrega. Las consultas son previas a
la entrega. Cada entrega que hacen (presencial o virtual) se contabiliza.

Desarrollo:

En cada proyecto se espera que:

- Se haga el diagrama de clases UML


- Se diseñe e implemente cada una de las clases completas (es decir, con los métodos
completos aún cuando en la aplicación no se los utilice)
- Se haga la aplicación donde se crean y cargan los objetos intervinientes (se puede usar carga
desde archivo de texto, NO es obligatorio). Por ejemplo: si el proyecto es sobre un
supermercado que tiene productos y proveedores, deberán crear el supermercado, cargarle
algunos productos y algunos proveedores para luego poder dar respuesta a las opciones del
menú solicitado. Si el enunciado no lo solicita, no deben simular atención de clientes y
proveedores, ni ventas, ni reposiciones, etc.. (para acotar la longitud del desarrollo)
- Se presenta el menú de opciones solicitado en el problema y se implementan las funciones
que dan respuesta a esos ítems. En la mayoría de los casos, deben desarrollar funciones
nuevas que invocan métodos de las clases diseñadas. En menor escala, se invocan desde el
menú los métodos ya implementados en las clases. La idea es que NO pongan adentro de
las clases como métodos todos los requerimientos del menú porque simplifican la solución y
personalizan las clases en base al enunciado (y conceptualmente es erróneo!). La aplicación
debe plantear lógica de resolución haciendo uso de las clases intervinientes.
- Pueden usar herencia si desean agregar alguna clase (como Persona). NO es requisito. Pero
de hacerlo, debe estar en el diagrama UML y correctamente programado.
- Es obligación que implementen al menos un manejador de excepciones, que se pide en
forma explícita en cada proyecto. Si desean agregar otros, no hay problema.
Proyecto 1:

Una empresa constructora tiene varias obras en ejecución y 8 grupos de obreros que trabajan en las
obras. De cada obra se conoce el nombre y dni del propietario, código interno (se lo asigna el
sistema), tipo de obra (construcción, remodelación, ampliación, etc.), el tiempo estimado de
ejecución (expresado en días), estado de avance (porcentaje), el nro de grupo de obreros asignado a
la misma y el costo. De cada obrero se almacena su nombre y apellido, dni, nro legajo, cargo
(capataz, albañil, peón, plomero, electricista, etc.) y grupo al que pertenece. De cada grupo de
obreros se conoce el código de obra en la que están trabajando (0 en caso de no estar asignado a
ninguna obra) y los integrantes.

Se deberá desarrollar una aplicación, utilizando las clases que considere necesarias, que resuelva las
funcionalidades que se muestran en el siguiente menú:

a) Contratar un obrero nuevo (se agrega a la empresa y a un grupo)


b) Eliminar un obrero (se elimina de la empresa y de su grupo)
c) Listado de obreros
d) Listado de obras
e) Agregar una obra y asignarle un grupo de obreros. Se debe verificar que haya grupo libre; en
caso contrario se debe levantar una excepción que informe lo sucedido.
f) Modificar el estado de avance de una obra. Si el estado de avance llega al 100% la obra debe
darse por finalizada, se elimina del listado de obras en ejecución y se guarda en obras
finalizadas
g) Listado de obras finalizadas

Proyecto 2:

En una panadería y confitería se tienen almacenados los pedidos de servicios de catering para
cumpleaños de 15, casamientos, bautismos, etc.. De los pedidos se almacena: el número de pedido
(código que genera el sistema), el dni del cliente, fecha del evento, el detalle de gastos de comida,
mozos, mantelería, bebidas, costo total, seña (20% del total) y saldo. De cada cliente que contrata un
servicio se registra su nombre y apellido, dni, teléfono y dirección. Un cliente puede tener más de un
pedido registrado. De cada servicio ofrecido se almacena nombre del servicio, tipo de servicio
(comida, bebida, personal de atención, blanco y mantelería), descripción (detalle de lo que incluye el
servicio), costo individual.

Se deberá desarrollar una aplicación, utilizando las clases que considere necesarias, que resuelva las
funcionalidades que se muestran en el siguiente menú:

a- Agregar un servicio
b- Eliminar un servicio.
c- Tomar un pedido. El cliente puede incluir en su pedido un solo servicio o varios. Si el cliente
ya existe, solo se registra el pedido. Si es cliente nuevo, debe agregarse a la base de datos de
clientes. La confitería toma hasta 2 pedidos para la misma fecha. En caso de que ya tenga los
2 pedidos registrados, se levanta una excepción indicando lo ocurrido.
d- Registrar el pago de un cliente. El cliente puede abonar una parte y achicar el saldo de un
pedido o abonar el total adeudado. Se debe ingresar el número del pedido y monto a
abonar.
e- Dar de baja un pedido. Considerar 2 casos: baja por solicitud del cliente o baja por
realización del pedido.
I. En caso que el cliente solicite la cancelación con más de un mes de anticipación
a la fecha del servicio, no se le reintegra la seña. En otro caso, el cliente debe
abonar el servicio completo.
II. Si la fecha actual coincide con la fecha de realización del pedido y el saldo es 0,
se borra el pedido.
f- Listado de clientes
g- Listado de pedidos

Proyecto 3:

Una Biblioteca tiene un archivo con la información de los libros prestados. De los préstamos se
conoce: código de libro, dni del socio, título del libro, fecha del préstamo y fecha de devolución. De
cada socio se registra su dni, nombre y apellido, teléfono, dirección y lista de libros prestados (a lo
sumo 3). De cada libro se almacena su código, título, autor, editorial y estado (prestado o
disponible). Los libros se prestan por 15 días.

Se deberá desarrollar una aplicación, utilizando las clases que considere necesarias, que resuelva las
funcionalidades que se muestran en el siguiente menú:

a- Agregar un libro nuevo a la biblioteca. El sistema le asigna un código.


b- Eliminar un libro de la biblioteca. Se debe verificar que el libro no esté prestado.
c- Prestar un libro. El socio ingresa su dni y el código del libro solicitado. El sistema debe
verificar que el libro esté disponible y que el socio no tenga ya 3 libros prestados. En caso de
éxito se agrega el libro prestado a la lista de libros prestados, se modifica el estado del libro
y se agrega el libro al listado de libros prestados al socio. Si el libro está prestado o el socio
ya tiene los 3 libros prestados, se debe levantar una excepción indicando que el préstamo no
se puede realizar.
d- Devolver un libro. Se modifica el estado del libro, se elimina el libro de la lista de libros
prestados del socio y de la lista de libros en préstamo de la biblioteca.
e- Dar de alta un socio
f- Dar de baja un socio
g- Listado de libros prestados
h- Listado de libros de la biblioteca
i- Listado de socios

Proyecto 4:

Un Club almacena la información de los niños y las niñas de distintas edades que practican deportes
(básquet, vóley, fútbol, patín). De cada uno de ellos se conoce: nombre, edad, deporte, categoría,
información acerca de si es socio o no, y último mes pago. La cuota tiene un descuento del 30% para
quienes son socios del club. De cada deporte se conoce por categoría: el nombre del entrenador, el
cupo, la cantidad de inscriptos, el costo de la cuota, días y horarios de entrenamiento.

Se deberá desarrollar una aplicación, utilizando las clases que considere necesarias, que resuelva las
funcionalidades que se muestran en el siguiente menú:

a- Dar de alta a un entrenador


b- Dar de baja a un entrenador
c- Dar de alta a un niño/niña en un deporte. Validar que haya cupo usando una excpeción.
d- Dar de baja a un niño/niña en un deporte
e- Simular el pago de una cuota. Se le debe aplicar el descuento si es socio y registrar el mes de
pago.
f- Listado de inscriptos:
I. por deporte
II. por deporte y categoría
III. total
g- Listado de deudores. Se debe informar todos los inscriptos cuyo último mes pago sea menor
que el actual.

También podría gustarte