You are on page 1of 3

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Facultad de Ingeniería de Sistemas e Informática


Curso: Algorítmica II
Prof. Robert Espinoza

Laboratorio: Arreglos de objetos


Dada la clase Alumno, con los datos: código, nombre y promedio final. Definir un arreglo de
alumnos, para ingresar y agregar por código cuando éste no existe, luego mostrar los alumnos
ingresados. Al ingresar se debe buscar si el código del alumno existe o no en el arreglo, para poder
agregar o no al arreglo. Al añadir un elemento, se actualiza la longitud del arreglo de objetos y
luego se añade el objeto al final.
Pedir el número de alumnos para procesar.

Análisis:
Existen métodos para ingresar, agregar por código, mostrar, buscar alumno por código, actualizar
longitud del arreglo, añadir un objeto.

Clase(s) solución:

Clase Alumno Clase VectorAlumno


Atributos: Atributos:
cod Alumno[] lista
nom nElementos
nota Métodos:
+VectorAlumnos( )
Métodos: +leerAlumno()
+Alumno(….) +agregarAlumno()
+setCod(….) …
+getCod(…)
……………………

Clase Alumno

public class Alumno {


private int cod;
private String nom;
private float nota;

public Alumno() {
}
public void setCod(int codigo){
cod=codigo;
}
public void setNom(String nombre){
nom=nombre;
}
void setNota(float calif){
nota=calif;
}

public int getCod(){


return cod;
}
String getNom(){
return nom;
}
public float getNota(){
1
return nota;
}
public String toString(){
return cod+" "+nom+" "+nota;
}

public void mostrarAlu(){


System.out.printf("%6d", cod);
System.out.printf("%-15s ", nom);
System.out.printf("%6.1f\n", nota);
}
}

Clase VectorAlumno
import java.util.Scanner;

public class VectorAlumno {


private Alumno lista[];

public VectorAlumno() {
lista=new Alumno[0];
}
public Alumno leerAlumno(){
int codigo;
String nombre;
float nota;

Scanner entrada = new Scanner (System.in);

// Se instancia un alumno
Alumno a=new Alumno();

//Se captura los datos de alumno


System.out.print("Codigo ---> ");
codigo=entrada.nextInt();
a.setCod(codigo);

System.out.print("Nombre ---> ");


nombre= entrada.nextLine();
a.setNom(nombre);

System.out.print("Nota ---> ");


nota=entrada.nextDouble();
a.setNota(nota);

return a;
}
public void agregarAlumno(){
int i;
//Se captura la dimencion del vector
i=lista.length;
Alumno a;
redimensionar();
a=leerAlumno();

lista[i]=a;
}

public void insertarlistaPos(Alumno dato, int posi){


int i;
redimensionar();
i=lista.length-1;
if(posi >=0 && posi<lista.length){
while(i>posi){
2
lista[i] = lista[i-1];
i = i-1;
}
lista[posi] = dato;
}
else{
System.out.println("Dimension o Posicion fuera de Rango");
}
}

private void redimensionar() {


int n=lista.length;
n=n+1;
Alumno y[]=new Alumno[n];
for(int i=0;i<lista.length;i=i+1){
y[i]=lista[i];
}
lista=y;
}
public void mostrarVector(){
if(lista.length > 0){
for(int i=0;i<lista.length;i=i+1){
System.out.println(lista[i]);
}
}
else{
System.out.println("Vector vacio...");
}
}
}

Clase principal
public class TVectorAlumno {

public static void main(String ar[]) {


VectorAlumno va=new VectorAlumno();
va.mostrarVector();

va.agregarAlumno();
va.agregarAlumno();
va.mostrarVector();
// Que operaciones puede agregar.
}
}

EJERCICIO

1. Generar una lista de teléfonos. La lista debe ser un objeto que encapsula la matriz de objetos
persona, la clase CPersona define los atributos privados nombre, dirección, teléfono relativos a
una persona, métodos respectivos que en un menú de opciones permita: añadir, eliminar y
buscar en una lista.

You might also like