Está en la página 1de 14

Universidad de las Fuerzas Armadas

Nombre: Francisco Alejandro Vásquez Fierro Fecha: 12 de junio del 2018


Curso: 2° A
NRC: 2183
Carrera: Mecatrónica

Diseñar un programa en el cual, a través de la herencia, compartir información entre tres


tipos de clases que comparten datos miembros en común. Las salidas del programa
deberán mostrar el estado de la persona buscado por el usuario. También mostrar el
número de personas con más de 25 años y mostrar el estado de la persona de mayor y
menor edad.

import java.util.*;

class persona{
private String nombre,cedula;
private int edad;

public void iniciapersona(String nom,String ced,int ed) {

nombre=nom; cedula=ced; edad=ed;

public String getNombre() {


return nombre;
}

public String getCedula() {


return cedula;
}

public int getEdad() {


return edad;
}

class alumno extends persona{


private String ide;

public void iniciaAlumno(String nom,String ced,String


id,int ed) {
ide=id;
iniciapersona(nom,ced,ed);

public void muestraAlumno() {

System.out.println("\nEl nombre del alumno es:


"+getNombre()+"\nLa cédula es: "+getCedula()+
"\nLa edad es:"+getEdad()+"\nEl ide
es:"+ide);
}

class docente extends persona{


private String título;

public void iniciaDocente(String nom,String ced,int


ed,String tit) {
título=tit;
iniciapersona(nom,ced,ed);

}
public void muestraDocente() {

System.out.println("\nEl nombre del docente es:


"+getNombre()+"\nLa cédula es: "+getCedula()+
"\nLa edad es:"+getEdad()+"\nEl título que
posee es: "+título);

class administrativo extends persona{


private int categoria;

public void iniciaAdministrativo(String nom,String ced,int


ed,int cat) {
categoria=cat;
iniciapersona(nom,ced,ed);

}
public void muestraAdministrativo() {

System.out.println("\nEl nombre del docente es:


"+getNombre()+"\nLa cédula es: "+getCedula()+
"\nLa edad es:"+getEdad()+"\nEl título que
posee es: "+categoria);

public class deberHerencia {

public static void main(String[] args) {

String ced,nom,id,tit;
int n=0,m=0,p=0,ed,a=1,cat;

Scanner tec=new Scanner(System.in);

//Arreglo alumnos

do{
try{

System.out.println("Ingrese el número de
alumnos con los que va a trabajar.");
n=tec.nextInt();
}
catch(Exception e){
System.out.println("Error: "+e);
}
finally{
tec.nextLine();
}
if(n<2){
System.out.println("El número de alumnos
tiene que ser mayor a dos.");
}
}while(n<2);

alumno A[]=new alumno[n];

for(int i=0;i<n;i++) {
System.out.println("");
System.out.println("Ingrese los datos del alumno
"+a);
System.out.println("Ingrese el nombre.");
nom=tec.next();

do{
System.out.println("Ingrese el número de
cédula.");
ced=tec.next();
if(ced.length()!=10){
System.out.println("Debe tener
exactamente 10 caracteres.");
}
}while(ced.length()!=10);

do{
System.out.println("Ingrese la edad:");
ed=tec.nextInt();
if(ed<5 || ed>60){
System.out.println("La edad debe
estar entre 5 y 60 años");
}
}while(ed<5 || ed>60);

System.out.println("Ingrese el ide.");
id=tec.next();

A[i]=new alumno();

A[i].iniciaAlumno(nom, ced, id, ed);


a++;

//arreglo docentes

do{
try{
System.out.println("");
System.out.println("Ingrese el número de
docentes con los que va a trabajar.");
m=tec.nextInt();
}
catch(Exception e){
System.out.println("Error: "+e);
}
finally{
tec.nextLine();
}
if(m<2){
System.out.println("El número de docentes
tiene que ser mayor a dos.");
}
}while(m<2);

docente D[]=new docente[m];

a=1;
for(int i=0;i<m;i++) {

System.out.println("");
System.out.println("Ingrese los datos del
docente "+a);
System.out.println("Ingrese el nombre.");
nom=tec.next();

do{
System.out.println("Ingrese el número de
cédula.");
ced=tec.next();
if(ced.length()!=10){
System.out.println("Debe tener
exactamente 10 caracteres.");
}
}while(ced.length()!=10);

do{
System.out.println("Ingrese la edad:");
ed=tec.nextInt();
if(ed<18 || ed>60){
System.out.println("La edad debe
estar entre 18 y 60 años");
}
}while(ed<18 || ed>60);

System.out.println("Ingrese el título que


posee.");
tit=tec.next();

D[i]=new docente();

D[i].iniciaDocente(nom, ced, ed, tit);


a++;

//arreglo administrativos

do{
try{
System.out.println("");
System.out.println("Ingrese el número de
administrativos con los que va a trabajar.");
p=tec.nextInt();
}
catch(Exception e){
System.out.println("Error: "+e);
}
finally{
tec.nextLine();
}
if(p<2){
System.out.println("El número de docentes
tiene que ser mayor a dos.");
}
}while(p<2);

administrativo Ad[]=new administrativo[p];

a=1;

for(int i=0;i<p;i++) {

System.out.println("");
System.out.println("Ingrese los datos del
administrativo "+a);
System.out.println("Ingrese el nombre.");
nom=tec.next();

do{
System.out.println("Ingrese el número de
cédula.");
ced=tec.next();
if(ced.length()!=10){
System.out.println("Debe tener
exactamente 10 caracteres.");
}
}while(ced.length()!=10);

do{
System.out.println("Ingrese la edad:");
ed=tec.nextInt();
if(ed<18 || ed>60){
System.out.println("La edad debe
estar entre 18 y 60 años");
}
}while(ed<18 || ed>60);

do {
System.out.println("Ingrese el grado de
categoria que posee.");
cat=tec.nextInt();
if(cat<1 || cat>3) System.out.println("Una
categoria no puede ser mayor a 3.");
}while(cat<1 || cat>3);

Ad[i]=new administrativo();
Ad[i].iniciaAdministrativo(nom, ced, ed, cat);
a++;

//estado de la persona buscada por cédula

System.out.println("Ingrese la cédula de la persona


que quiere buscar.");

String busced=tec.next();

a=0;
for(int i=0;i<n;i++) {
if(A[i].getCedula().equals(busced)) {
System.out.println("el estado de la
persona es:");
A[i].muestraAlumno();
a++;

for(int i=0;i<m;i++) {
if(D[i].getCedula().equals(busced)) {
System.out.println("el estado de la
persona es:");
D[i].muestraDocente();
a++;

}
}

for(int i=0;i<p;i++) {
if(Ad[i].getCedula().equals(busced)) {
System.out.println("el estado de la
persona es:");
Ad[i].muestraAdministrativo();
a++;

}
}

if(a==0) System.out.println("No existe la cédula


buscada!!!!");

//cuantas personas superan los 25 años

a=0;

for(int i=0;i<n;i++) {
if(A[i].getEdad()>25)
a++;
}

for(int i=0;i<m;i++) {
if(D[i].getEdad()>25)
a++;
}
for(int i=0;i<p;i++) {
if(Ad[i].getEdad()>25)
a++;
}

System.out.println("El número de personas que


superaron los 25 años son: "+a);

//persona con mayor y menor edad

//mayor

int comedad=0;

for(int i=0;i<n;i++) {
if(comedad<A[i].getEdad())
comedad=A[i].getEdad();
}

for(int i=0;i<m;i++) {
if(comedad<D[i].getEdad())
comedad=D[i].getEdad();
}

for(int i=0;i<p;i++) {
if(comedad<Ad[i].getEdad())
comedad=Ad[i].getEdad();
}

for(int i=0;i<n;i++) {
if(comedad==A[i].getEdad()) {
System.out.println("La o las personas con
mayor edad tiene el estado");
A[i].muestraAlumno();
}

for(int i=0;i<m;i++) {
if(comedad==D[i].getEdad()) {
System.out.println("La o las personas con
mayor edad tiene el estado");
D[i].muestraDocente();
}
}
for(int i=0;i<p;i++) {
if(comedad==Ad[i].getEdad()) {
System.out.println("La o las personas con
mayor edad tiene el estado");
Ad[i].muestraAdministrativo();
}
}

// menor

comedad=9999999;

for(int i=0;i<n;i++) {
if(comedad>A[i].getEdad())
comedad=A[i].getEdad();
}

for(int i=0;i<m;i++) {
if(comedad>D[i].getEdad())
comedad=D[i].getEdad();
}

for(int i=0;i<p;i++) {
if(comedad>Ad[i].getEdad())
comedad=Ad[i].getEdad();
}

for(int i=0;i<n;i++) {
if(comedad==A[i].getEdad()) {
System.out.println("La o las personas con
menor edad tiene el estado");
A[i].muestraAlumno();
}

for(int i=0;i<m;i++) {
if(comedad==D[i].getEdad()) {
System.out.println("");
System.out.println("La o las personas con
menor edad tiene el estado");
D[i].muestraDocente();
}
}

for(int i=0;i<p;i++) {
if(comedad==Ad[i].getEdad()) {
System.out.println("");
System.out.println("La o las personas con
menor edad tiene el estado");
Ad[i].muestraAdministrativo();
}

También podría gustarte