Clase menuGranja
Corresponde a la segunda parte del trabajo.
Les recuerdo que en las buenas prácticas de programación, se requiere de, al menos, dos clases;
La clase que Plan que contiene el objeto principal, atributos privados y métodos públicos para "tocar" los datos.
La clase "Test" donde encontramos el menu, las entradas y salidas, las opciones y por supuesto la clase main
La clase "Plan" no debe ser manipulada directamente por el usuario!
La clase "Test" tiene métodos y variables estáticas y es la que se "ve"
Incluyo entonces el menu de esta tarea, que por supuesto, corresponde a una clase de tipo "Test"
/**
* @author Chubasco
*/
import java.io.*;
public class menuGranja
{
final static int maxAnimales = 30;
static int numAnimales = 0;
static Animal inventarioGranja[];
/**
* imprime
*/
private static void imprime( String mensaje){
System.out.print(mensaje);
} // imprimeLn
/**
* imprimeLn
*/
private static void imprimeLn( String mensaje){
System.out.println(mensaje);
} // imprimeLn
/**
*
*/
private static int leeInt(String mensaje )
{
int retorno=0;
System.out.print(mensaje);
try {
BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));
// resultado
retorno = Integer.parseInt(in.readLine());
}
catch (Exception e) {
System.out.print("Error al leer teclado");
} // fin del try
return (int)retorno;
}
/**
* leeMenu
* Imprime las opciones y entrega como resultado,
* la opcion selecionada
*/
public static int leeMenu( String mensaje, int maximo)
{
int retorno = 0;
do {
retorno = leeInt(mensaje);
} while ((retorno <1) &&(retorno > maximo)) ;
return retorno ;
}
/**
* menu
* Imprime el menu completo opciones y entrega
* como resultado, la opcion selecionada
*/
public static int menu( )
{
imprimeLn("--------------------------------------\n");
imprimeLn(" Granja");
imprimeLn(" ======");
imprimeLn("1.Crear Animal ");
imprimeLn("2.Mostrar Información");
imprimeLn("3.Comer");
imprimeLn("4.Total Producción");
imprimeLn("5.Total ganado días impares");
imprimeLn("6.Salir.");
return leeMenu("Ingresa opción :", 6);
// imprimeLn("------------------------------------------\n\n");
}
// Opción 1
private static void creaAnimal() {
int a=0;
a=inventarioGranja.length;
if (inventarioGranja.length>numAnimales) {
imprimeLn("Tipo de animal?");
a=leeMenu("1) Gallina / 2) Cabra / 3) Vaca [1/2/3]: ",3);
inventarioGranja[numAnimales++] = new Animal(a-1);
} else {
imprimeLn("No se puede seguir agregando animales");
} // endif
}
// opcion 2
private static void mostrarInformacion(){
String linea = "";
// ;
//
for (int i=0; i < numAnimales; i++) {
linea = (inventarioGranja[i].getTipo()+1)+": "
linea = linea + inventarioGranja[i].getNombreTipo();
imprimeLn( linea );
imprime( "Producción para el mes:" );
inventarioGranja[i].mostrarInformacion();
imprimeLn( "/");
} // for
} // mostrarInformacion();
private static void darDeComer( Animal a )
{
int diaComida = 0;
int cantComida = 0;
do {
diaComida = leeInt("Indique el día que comio :");
} while (( diaComida < 1) && ( diaComida > a.numDias));
do {
cantComida = leeInt("Indique la cantidad comida");
} while ( cantComida <= 0);
a.comer(diaComida,cantComida);
} // darDeComer
/**
* mostrarProduccion
*/
private static void mostrarProduccion(){
String linea;
//
imprimeLn( " Mostrar producción total x animal ");
imprimeLn( " ----------------------------------- ");
for (int i=0; i < numAnimales; i++) {
linea = (i+1)+": "+inventarioGranja[i].getNombreTipo();
imprime( linea );
linea = " - Producción total:"
linea = linea + inventarioGranja[i].totalProduccion();
imprimeLn( linea );
imprimeLn( " -------------------------------- ");
} // fin del for
} // fin de mostrarProduccion()
/**
* mostrarProduccionImpares
*/
private static void mostrarProduccionImpares(){
String linea;
//
imprimeLn( " Mostrar ganancia total x animal ");
imprimeLn( " (sólo días impares) ");
imprimeLn( " ----------------------------------- ");
for (int i=0; i < numAnimales; i++) {
linea = (i+1)+": "+inventarioGranja[i].getNombreTipo()
imprime( linea );
linea = " - Ganancia días impares:";
linea = linea + inventarioGranja[i].totalGanadoDiasImpares();
imprimeLn( linea );
imprimeLn( " -------------------------------- ");
} // fin de for
} // fin de mostrarProduccionImpares
/**
* Bloque principal
*/
public static void main( String[] args)
{
int opcion=0;
inventarioGranja = new Animal[maxAnimales];
do {
opcion = menu();
switch(opcion) {
case(1) : creaAnimal();
break;
case(2) : mostrarInformacion();
break;
case(3) : if ( numAnimales > 0)
darDeComer(inventarioGranja[numAnimales-1]);
else
imprimeLn("No hay animales...");
break;
case(4) : if ( numAnimales > 0)
mostrarProduccion();
else
imprimeLn("No hay animales...");
break;
case(5) :if ( numAnimales > 0)
mostrarProduccionImpares();
else
imprimeLn("No hay animales...");
break;
case(6) : imprimeLn("Saliendo...");
break;
} // end switch
} while (opcion!=6); //
} // main
}
No hay comentarios:
Publicar un comentario