“Año de la universalización de la salud”
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS
Universidad del Perú, Decana de América
FACULTAD DE INGENIERÍA DE SISTEMAS E INFORMÁTICA
ESCUELA ACADÉMICA PROFESIONAL DE SISTEMAS
Laboratorio 4
ALGORÍTMICA Y PROGRAMACIÓN ORIENTADA A OBJETOS
INTEGRANTES
Arce Carhuamaca, Elías Ruben 19200159
Estrella Condor, Joshep Douglas 19200146
Gonza Santibañez, Pamela Sofia 19200017
Guzmán Nolasco, Enrique Eduardo 19200022
Herrera Yzaguirre, Leonardo Deivy 19200225 (Coordinador)
Puyen Huapaya, Jafet Raul 19200039
PROFESOR
Espinoza Domínguez, Robert Elías
Lima, Perú
2020
Ejercicio 4
Una fábrica compuesta de muchos empleados requiere una aplicación OO con operaciones
como mostrar, eliminar y determinar el monto total de planilla de sueldos. Véase el
programa y mejore creando las operaciones buscar empleado, eliminar un determina
empleado. Crear las clases Ventas y Clientes y relaciona con las demás clases. Complete los
diagramas con diagramas de diseño.
Principal
Fabrica
- empleados: Empleado
- nEmpl : entero
+ Fabrica() : nulo
+ redimensionarMas() : nulo
+ redimensionarMenos() : nulo
+ añadirEmpleado() : nulo
+ registrarEmpleado (): Empleado
Venta + mostrarEmpleados() : nulo
- nVenta: entero + buscarEmpleado() : nulo
+ eliminarEmpleado() : nulo
+ Venta(): nulo + planilla() : nulo
+ getNVenta() : entero + encabezado1() : nulo
+ setNVenta(entero): nulo + linea() : nulo
Cliente Empleado
- nombre: cadena - nombre: cadena
+ Cliente (): nulo - cod : entero
+ getNombre (): cadena - salario : real
+ setNombre(cadena): nulo + Empleado : nulo
+ getNombre() : Cadena
+ setNombre(cadena): nulo
+ getCod() : entero
+ setCod(entero) : nulo
+ getSalario() : real
+ setSalario(real) : nulo
+ toString() : cadena
Clase Fabrica public void añadirEmpleado(){
package Ejercicio4; int n;
import [Link]; n=[Link];
Empleado emp;
public class Fabrica { redimensionarMas();
private Empleado empleados[]; emp=registrarEmpleado();
private int nEmpl; empleados[n]=emp;
}
public Fabrica() {
empleados = new Empleado[0]; public Empleado registrarEmpleado(){
} String nom;
int cod;
public void redimensionarMas(){ double sueldo;
int n;
n=[Link]; Scanner entrada = new
n=n+1; Scanner([Link]);
Empleado emp[] = new Empleado[n]; Empleado emp = new Empleado();
for(int i=0; i<[Link]; i++){
emp[i]=empleados[i]; [Link](">> Empleado : ");
} nom=[Link]();
empleados=emp; [Link](nom);
} [Link](">> Codigo : ");
cod=[Link]();
public void redimensionarMenos(){ [Link](cod);
int n;
n=[Link]; [Link](">> Salario : ");
n=n-1; sueldo=[Link]();
Empleado emp[] = new Empleado[n]; [Link](sueldo);
for(int i=0; i<[Link]-1; i++){
emp[i]=empleados[i]; return emp;
}
empleados=emp; }
}
public void eliminarEmpleado(){
public void mostrarEmpleados(){ int cod;
if([Link]>0){ boolean existe=false;
encabezado1();
linea();
Scanner entrada = new Scanner([Link]);
for(int i=0; i<[Link];i++){
[Link](">>>Codigo de empleado a eliminar :
[Link](empleados[i]);
");
}
cod=[Link]();
}
else
for(int i=0;i<[Link];i++){
[Link]("***No hay
if(empleados[i].getCod()==cod){
empleados registrados");
}
if(i<[Link]){
for(int j=i; j<[Link]-1; j++){
public void buscarEmpleado(){
empleados[j]=empleados[j+1];
int cod;
}
boolean existe=false;
}
Scanner entrada = new
redimensionarMenos();
Scanner([Link]);
[Link]("\n\t***Empleado eliminado");
[Link](">>>Codigo de
existe=true;
empleado a buscar : ");
}
cod=[Link]();
}
if(existe!=true){
for(int i=0;i<[Link];i++){
[Link]("\n\t***Empleado no
if(empleados[i].getCod()==cod){
encontrado");
encabezado1();
}
linea();
}
[Link](empleados[i]);
[Link]("\n\t***Empleado
public void planilla(){
encontrado ");
double totSueldo=0;
existe=true;
}
} mostrarEmpleados();
if(existe!=true){ for(int i=0;i<[Link];i++){
[Link]("\n\t***Empleado totSueldo=totSueldo+empleados[i].getSalario();
no registrado"); }
}
}
linea(); Clase Principal
[Link]("TOTAL \t\t\t\t\t\t\t package Ejercicio4;
"+totSueldo); import [Link];
} public class Principal {
public void encabezado1(){ public static void main (String args[]){
[Link]("Codigo \t\t\t Fabrica empresa = new Fabrica();
Nombre\t\t\t Salario(S/)"); int opc;
Scanner entrada = new Scanner([Link]);
} do{
[Link]("\n\n\n\n\n\n\t\t\tMENU ");
public void linea(){ [Link]("1. Registrar Empleado ");
[Link]("========= [Link]("2. Mostrar Empleados");
=============== [Link]("3. Buscar Empleado");
============="); [Link]("4. Eliminar Empleado");
} [Link]("5. Planilla");
} [Link]("6. Salir");
[Link]("Opcion ===> ");
Clase Empleado
package Ejercicio4; opc=[Link]();
public class Empleado {
private String nombre; switch(opc){
private int cod; case 1: empresa.añadirEmpleado(); break;
private double salario; case 2: [Link](); break;
case 3: [Link](); break;
public Empleado() { case 4: [Link](); break;
} case 5: [Link](); break;
public String getNombre() {
return nombre; }
} }while(opc!=6);
public void setNombre(String nombre) {
[Link] = nombre; }
}
public int getCod() { }
return cod;
}
public void setCod(int cod) {
[Link] = cod;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
[Link] = salario;
}
public String toString(){
return
cod+"\t\t\t"+nombre+"\t\t\t"+salario;
}
}
Registro de Empleados:
Mostrar Empleados
Buscar Empleado
Eliminar Empleado
Plantilla
Ejercicio 5
Implementar las clases Fecha, PersonaX y TPersonaX, la clase Persona está asociada a las
clases String y Fecha y la clase TPersonaX muestra un ejemplo de la relación de uso de la
clase PersonaX.
DIAGRAMA DE CLASES (UML)
Código Fuente
Clase Fecha Clase PersonaX
public class Fecha { public class PersonaX {
//Atributos //Atributos
private int dd; String nombre;
private int mm; Fecha fNac;
private int aaaa;
//Métodos
//Métodos public PersonaX() {
public Fecha() {
dd = 1; }
mm = 1;
aaaa = 1997; //Método
} public void setDatos(String nombre, Fecha f)
{
public Fecha(int dia, int mes, int anio) { [Link] = nombre;
dd = dia; fNac = f;
mm = mes; }
aaaa = anio;
} public String toString() {
public String toString() { return nombre + " nacido el dia "
return dd + "/" + mm + "/" + aaaa; + [Link]();
} }
} }
Clase TPeraonaX
public class TPersonaX {
public static void main(String[] args) {
//Creación de objetos
PersonaX p = new PersonaX();
Fecha n = new Fecha(5,9,1946);
//Invocación de método
[Link]("Freddy Mercury", n);
[Link]([Link]+" "+"nacio el "+[Link]());
}
}
Resultado de la Ejecución del programa
Ejercicio 6
Analice el siguiente código lista y luego construya el diagrama de clase, sus relaciones e
implemente todas las operaciones básicas.
DIAGRAMA DE CLASES (UML)
Código Fuente
Clase Nodo Clase Liata
public class Nodo { public class Lista {
private String valor; static Scanner entrada = new
private Nodo siguiente; Scanner([Link]);
private Nodo cabeza;
public Nodo(String cadena) {
valor = cadena;
siguiente = null; //constructor de la clase "Lista"
} public Lista() {
cabeza = null;
//getters para obtener valores del atributo de tipo }
String "valor"
public String darValor() { public void incluir(String nValor) {
return (valor); Nodo aux = new Nodo(nValor);
} if (cabeza == null) {
//getters para obtener valores del atributo de tipo cabeza = aux;
objeto con nombre "siguiente" }
public Nodo darSiguiente() { else{
return (siguiente); Nodo aux2;
} aux2=cabeza;
public void insertarAContinuacion(Nodo while([Link]() !=
siguienteNodo){ null){
siguiente = siguienteNodo; aux2 = [Link]();
} }
}
[Link](aux);
}
}
public void imprimir() {
if(cabeza != null) {
Nodo aux3 = cabeza;
while(aux3 != null) {
[Link]([Link]());
aux3 = [Link]();
}
}
}
public void añadir(){
String cadena;
[Link]("Ingrese la
cadena a añadir: ");
cadena= [Link]();
Clase PruebaLista incluir(cadena);
}
public class PruebaLista {
private static Lista p = new Lista(); public void salir(){
public static void main(String[] args) { [Link]("Gracias por
menu(); usar el programa");
} }
}
public static void menu(){
Scanner entrada = new Scanner([Link]);
int opc;
char respuesta = 0;
//Lista p = new Lista();
do{
do{
[Link]("Ingrese la accion que desee realizar en la lista:");
[Link]("1.Añadir ");
[Link]("[Link]");
[Link]("[Link]");
[Link]("Opcion: ");
opc = [Link]();
}while(opc <1 || opc>3);
switch(opc){
case 1:p.añadir();
break;
case 2:[Link]();
break;
case 3:[Link]();
break;
}
if(opc<3){
[Link]("\nDesea realizar otra accion (s/n): ");
respuesta =[Link]().charAt(0);
[Link]("");
}
}while(respuesta == 's' || respuesta== 'S');
[Link]("Gracias por usar el programa");
}
}
Operaciones Implementadas (Añadir, Imprimir y Salir)