Professional Documents
Culture Documents
Practica 4
Practica 4
Resumen:
Esta práctica está destinada a mostrar y ejercitar el uso de los diferentes flujos de
entrada y salida (input-output) disponibles en Java dentro del paquete java.io.
Problema 1:
Problema 2: (*)
Diseñar una “base de datos” de los empleados de una compañía y un sistema que
permita ingresar los datos de la misma por teclado, visualizarlos por pantalla,
obtener el valor de los datos miembros y setear los mismos, todo según los
siguientes lineamientos:
Problema 3: (*)
interface Ordenable{
boolean menor(Ordenable obj);
}
tal que sea posible ordenar Rectángulos, Círculos y Triángulos por su área.
c) Definir una clase Test que tenga un método main() que realice lo siguiente:
Problema 4:
Problema 5:
Problema 6:
Problema 7:
Problema 8:
Se pretende crear una aplicación Java para procesar información acerca de una lista
de libros. De cada libro interesa almacenar información acerca de su título y nombre
del autor.
a) Escriba una clase Libro que pueda ser usada para crear objetos que
representen libros. La clase debe tener un constructor que tome dos
argumentos de tipo String para inicializar el título y autor del libro. Debe
escribir métodos de acceso y actualización para título y autor y un método
toString para mostrar información sobre el libro.
b) Escriba el código de una clase ListaLibros que use un array para
almacenar una lista de objetos Libro. La clase debe tener un constructor
que inicialice una lista de libros vacía, un método para añadir un nuevo
objeto Libro a la lista y un método toString que produzca información
de la lista (cada libro debe listarse en una línea separada). Puede suponer
que el número máximo de libros es 100.
c) Se requiere poder leer información sobre libros que se encuentra en un
archivo texto. En tal archivo cada libro está representado por dos líneas de
texto, la primera donde figura el título y la segunda donde figura el autor
del mismo. La primera línea del archivo contiene un entero que representa
el número de libros listados en el archivo, por ejemplo:
2
Lord of the Rings
Tolkien, J R R
Java in a Nutshell
Flanagan, David
Problema 9
Problema 10:
interface estado{
double peso_teorico();
double IMC();
String estado_segun_OMS();
}
class persona {
private String nombre;
protected double estatura;
protected double peso;
persona(String nom, double altura, double p){
nombre=nom;
estatura=altura;
peso=p;
}
public double IMC(){return ... ;}
public String nombre(){return nombre;}
...
}
class mujer{
private int cantidad_de_hijos;
mujer(String nom, double alto, double peso, int hijos){
...
}
...
}
class hombre{
boolean corpulento;
...
}
class prueba {
public static void main (String [] z)throws IOException,
ClassNotFoundException {
…
}
}
Nota: Para grabar archivos como el que debe leer este programa puede hacer otro
programa utilizando el siguiente código (incompleto):
ObjectOutputStream salida= new ObjectOutputStream(new
FileOutputStream("personas.dat"));
arreglo[0]= new hombre("Javier",1.75,83.0,false);
arreglo[1]= new mujer("Marisa",1.80,72.0,0);
arreglo[2]= new hombre("Juan",1.70,92.0,false);
arreglo[3]= new hombre("Pedro",1.95,110.0,true);
for (int i=0;i<=3;i++) salida.writeObject(arreglo[i]);
Problema 11:
Escribir una clase que posea un método que muestre por pantalla los resultados de
examinar un archivo que contiene objetos de diferentes clases, que cuente el
número de objetos Integer que contiene el mismo y que ignore objetos de otras
clases.
Problema 12:
import java.io.*;
class empleado {
private String nombre;
private int leg;
private int edad;
private int seccion;
private float sueldo;
private static int nro=100;
empleado(){leg=nro++;}
empleado(String n,int e,int sec, float s) {
this();
nombre = n;
edad = e;
seccion = sec;
sueldo = s;
}
void setNombre(String n){nombre=n;}
void setedad(int e){edad=e;}
void setseccion(int d){seccion=d;}
void setsalario(float s){sueldo=s;}
String devnombre(){return nombre;}
int devedad(){return edad;}
int devseccion(){return seccion;}
int devleg(){return leg;}
float devsueldo(){return sueldo;}
public String toString(){
String d="\n NRO.LEGAJO: " + leg + "\nNOMBRE: " + nombre + "\
nEDAD: " + edad;
d += "\nSECCION:" + seccion + "\nSUELDO: " + sueldo;
return d;
}
}
class prueba_empleado {
static String scanf() {
String line;
DataInputStream in=new DataInputStream(System.in);
try {
line=in.readLine();
return line;
}
catch (Exception e){
return "error";
}
}
public static void main(String []args) {
empleado e[]= new empleado [5];
for (int i=0; i<=4;i++){
System.out.println("\nIngrese nombre del empleado ");
String nom=scanf();
System.out.println("\nIngrese edad del empleado ");
String ed=scanf();
int edn=Integer.valueOf(ed).intValue();
System.out.println("\nIngrese sección en la que trabaja
");
String se=scanf();
int nse=Integer.valueOf(se).intValue();
System.out.println("\nIngrese sueldo del empleado ");
String su=scanf();
float sl=Float.valueOf(su).floatValue();
e[i]=new empleado(nom, edn, nse, sl);
}
int opcion=0;
while (opcion!=4) {
// IMPRIME MENU DE OPCIONES
System.out.println("\n1.- SUELDO MINIMO");
System.out.println("\n2.- BUSCAR");
System.out.println("\n3.- SUELDO PROMEDIO");
System.out.println("\n4.- SALIR");
String op=scanf();
opcion =Integer.valueOf(op).intValue();
int i;
switch (opcion) {
case 4:break;
case 1:
//BUSCA EL SUELDO MINIMO
float smin;
smin= e[0].devsueldo();
for(i=0;i<=4;i++) {
if (e[i].devsueldo()<smin)
smin=e[i].devsueldo();
}
// CUENTA LA CANTIDAD DE SUELDOS MINIMOS
int cant=0;
for(i=0;i<=4;i++) {
if (e[i].devsueldo()==smin) cant++;
}
// MUESTRA RESULTADOS
System.out.println("\nEl sueldo mínimo es:"+ smin);
System.out.println (" y se repite " + cant +
"veces");
String x=scanf();
break;
case 2:
System.out.println("\nIngrese sueldo a buscar");
String su=scanf();
float sue=Float.valueOf(su).floatValue();
for(i=0; i<=4 && e[i].devsueldo()!= sue;i++);
if (i==5) System.out.println("-1");
else System.out.println (i);
break;
case 3:
float promedio=0;
for (i=0;i<=4;i++) promedio += e[i].devsueldo();
promedio/=5;
float dif,menordif=e[0].devsueldo();
int imenor=0;
for (i=1;i<=4;i++) {
dif = Math.abs(e[i].devsueldo() - promedio);
if (dif < menordif) {
menordif = dif;
imenor = i;}
}
System.out.println ("\nSueldo promedio: " +
promedio);
System.out.println ("\nEl empleado que difieremenos
del promedio es: \n");
System.out.println(e[imenor]); // SE USA toString
} // cierra el switch
} //cierra el while
} //cierra el main
} // cierra la clase
import java.io.*;
interface Ordenable{
boolean menor(Ordenable obj);//public por defecto
}
abstract class Figura implements Ordenable{
abstract double area();
public boolean menor(Ordenable obj){//las clases que extienden de
Figura implementan Ordenable
Figura o= (Figura) obj;
if (this. area()< o.area())
return true;
else return false;
}