24 mar 2011

Demostración de avance parcial

Taller de Programación Orientada a Objetos 
Semana 8 

Para esta semana les muestro el avance que tengo en mi proyecto, les recuerdo que se trata de un programa que te permita crear gráficas con facilidad de ciertas bases de datos. Sinceramente no llevo muy avanzado mi proyecto, hasta el momento solo hace cosas mediante la terminal, y el aspecto gráfico que sin duda es de lo más importante dado a que se requiere visualizar gráficas, lo iré incorporando poco a poco.

Sigo manejando las clases Menu, Registro, Nuevo, Graficar, Barras, Histograma y Pastel. Donde Menu es la clase principal del programa.

En la siguiente imagen les muestro como están los archivos dentro del paquete proyecto:


Ahora desde el terminal compilare los archivos:
esteban@esteban:~/Documents$ javac proyecto/*.java


Y ahora podemos ver que ya se han creado los archivos .class para que java pueda interpretar el código.


Ejecutando el programa desde el terminal se vería algo así:
esteban@esteban:~/Documents$ java proyecto.Menu p


Me falta ponerle más opciones al menú y agregarle la edición a los parámetros de las gráficas, que pronto estaré agregando, mientras tanto solo es muestra de que ya se logra ingresar de una clase a la otra, y escribe algo en terminal para indicarnos que es lo que se debería de estar haciendo.

Les dejo unos fragmentos del código:
public class Menu {

 public Menu() {
  BufferedReader entrada = null;

  try {
   System.out.println("Seleccione una opcion:");
   Nuevo n = new Nuevo();
   Registro r = new Registro();

   System.out.println("Selecciona el registro
      que quieres graficar:");
   BufferedReader in = new BufferedReader(
     new InputStreamReader(System.in));
   String linea = in.readLine();
   int x = Integer.parseInt(linea);
   if (x == 1) {
    System.out.println("Seleccionado registro 1\n");
    Grafica gra = new Grafica();
    System.out.println("Deseas guardar la grafica: Si/No\n");
   }

  } catch (Exception e) {
   System.err.println("Error");
   System.exit(-1);
  } finally {
   if (entrada != null) {
    try {
        entrada.close();
    } catch (Exception ex) {}
   }
  }
 }

 public static void main(String[] args) {
  System.out.println("Esta es la ventana del Menu\n");

  Menu m = new Menu();

  System.out.println("Cerrar programa\n");

  return;
 }
}
Es la clase Menu, donde la función main crea el mismo Menu, y este es el que nos permitirá ver las opciones disponibles en la ventana principal del programa.

 public Nuevo() {
  try {
   FileWriter fw = new FileWriter("proyecto/nuevo.txt");
   BufferedWriter bw = new BufferedWriter(fw);
   PrintWriter salida = new PrintWriter(bw);
   salida.println("Esteban");
   salida.println("Cecilia");
   salida.println("Roberto");
   salida.println("Juan");
   salida.close();

   System.out.println("Se creo un nuevo archivo\n");
  } catch(java.io.IOException ioex) {
   System.out.println("Se presento el error: " +
    ioex.toString());
  }
 }

 public void agregarColumna() {
 }

 public void visualizar() {
 }
En esta clase Nuevo para un nuevo registro he hecho que el programa cree una lista de nombres simple pero desde el mismo programa, pero esa no es la idea, ya que el usuario es el que ira agregando esa información.

 public Registro() {
  System.out.println("Entra a Registro");
  System.out.println("Ver registros...\n");

  File archivo = null;
  FileReader fr = null;
  BufferedReader br = null;

  try {
   System.out.println("1. Registro de nombres");
   archivo = new File("proyecto/nuevo.txt");
   fr = new FileReader(archivo);
   br = new BufferedReader(fr);
   String linea;
   while((linea = br.readLine()) != null)
    System.out.println(linea);
  } catch(Exception e) {
   e.printStackTrace();
  }
 }
Nos lee los datos que están contenidos en el archivo creado por Nuevo, y es aquí donde se comprobará que bases de datos se tienen disponibles, y poder mostrarlas al usuario.

Es un tanto sencillo pero espero que vaya tomando forma.

2 comentarios:

  1. Esteban yo creo que nuevo no debe de estar como clase, mas bien que sea una función dentro de el menú, además en las clases hijas de histograma, pastel y barra se están repitiendo los mismos métodos entonces para que no los repitas deben de heredar esos métodos de la clase gráfica que es la clase padre :D a y ademas en esta ntrada pusiste que tienes de clase Graficar ... pero en realidad se llama Grafica :D error de dedo pero es importante

    ResponderEliminar
  2. Le voy a dar _dos_ puntos extra a Cecy. A Ramón le doy los ocho que le quedan de los 10 al haber regalado dos a Cecy por omisiones evidentes ;) esperemos que pronto llegue a ser más que un menú el programita.

    ResponderEliminar