Programa Orientado a Objetos en Java con arreglos bidimensionales :)

Iniciado por Neostream, 11 Noviembre 2005, 22:30 PM

0 Miembros y 1 Visitante están viendo este tema.

Neostream

 ;D

Promedio de n estudiantes ( aqui use 5) con arreglos en java :D weeee haber q opinan xD :P


import javax.swing.JOptionPane;
import javax.swing.JTextArea;//Importando la clase JTexArea que sirve para area de texto
import java.io.*;
class Notas{//creando la clase Notas
private double calif[][];//delcaracion de la matriz//
Notas(){//contructor
   calif = new double[5][3];//se le dio valor a la matriz
   }//inicializacion de la matriz
   public void asignar (double valores, int f, int c){
      calif [f][c] = valores;
      }  //asignando a la valores a la matriz
   public    double [] promedio(){
      double pf[]= new double [5];//creando un areglo para todos los promedios (filas)
      for (int filas=0;filas<5;filas ++){//un for para las filas del promedio
         for (int columnas=0;columnas<3;columnas++)//un for para las columnas
            pf[filas]=pf[filas]+calif[filas][columnas];//sumandole a pfilas el valor de calif
         pf[filas]=pf[filas]/3;//dividiendolo la pfilas para sacar el promedio
         }
      return pf;
}
   public double [] camoña(){//metodo para promedio de los 3 examenes por estudiante
      double pc[]= new double  [3];//creando un arrrglo para todas los promedios (columna)
      for (int columnas=0;columnas<3;columnas++){// este for es para la matriz
         for (int filas=0;filas<5;filas++)// este for es para las filas
            pc[columnas]=pc[columnas]+calif[filas][columnas];// operacion para sumar notas por columna
         pc[columnas]=pc[columnas]/5;// operacion para sacar promedio por columna
   }
      return pc;
}
}

class tardanza{public static void main (String args []){//programa principal
   Notas obj=new Notas();// creando espacio en memoria para el objeto obj
   JTextArea salida=new JTextArea();//creando espacio en memoria para el objeto salida de la clase jtextarea
   salida.setText("");// inicializando el area de texto
   String input, nom[]=new String[5];//declaracion de variables
   int filas, columnas, columnaspro;//declaracion de variables
   double valor, cuchitibin []=new double[5] , cuchimitin []=new double[3], moronjonjai=0;//declaracion e inicializacion de arreglos y variables
   for (filas=0;filas<5;filas++){//for para la 5 filas de los nombres y para asignar las calificaciones
      nom[filas]=JOptionPane.showInputDialog(null,"Introduzca el nombre del estudiante");//impresioon para el arreglo nom
      for(columnas=0;columnas<3;columnas++){//for de fila para introducir las 45 calificaciones junto con el for de la fila
         input=JOptionPane.showInputDialog(null," Introduzca la calificacion "+(columnas+1)+" del estudiante "+(filas+1));//este es para la impresion de las 3 columnas de las calificaciones
         valor=Double.parseDouble(input);//se hace la converción de  un string en double
         obj.asignar(valor, filas, columnas);// se asigna los valores
         }
   }
   cuchitibin=obj.promedio();//asignacion a cuchitibin el promedio de la nota de los estudiantes
   cuchimitin=obj.camoña();//asignacion  a cuchimitin el promedio de camoña(nombre del metodo en la clase principal)
   for (columnaspro=0;columnaspro<3;columnaspro++)//for que se usa para el calculo del promedio por gruupo
   moronjonjai=moronjonjai+cuchimitin[columnaspro];//el acumulador que retiene la suma de cuchitimin + moronjonjai
   for (filas=0;filas<5;filas++)//hacer 5 veces las filas del arreglo cuchitibin  y nom
      salida.append("El promedio del estudiante "+ nom[filas]+" es: "+cuchitibin[filas] +"\n");// es para agregar algo al area de texto algo como un texto
   salida.append("El promedio del grupo  es: "+ moronjonjai );// se le agrega el priomedio del grupo
   JOptionPane.showMessageDialog(null,salida);//imprime el area de texto
   
   System.exit(0);   // esta instruccion es para salir del programa al finalizar
}
}






solo se q nada se :D

Casidiablo

Pues que te digo.... si lo hiciste solo y llevas un mes o menos estudiando Java, está muy bien... si llevas más tiempo pos vas un poco colgado.... ademas no es la mejor opcion utilizar arreglos bidimensionales en este caso :'(...

Consejo.... organiza mejor el codigo cuando programes... lo de comentariar casi todo es perfecto, pero debes tabular bien el codigo, para que quede más fácil de leer.

Intenta hacer el mismo programa pero más corto, se puede reducir más de la mitad, te lo aseguro... ;D

Por otro lado debes desde yá estudiar sobre excepciones... por lo menos lo básico, como que cuando el usuario digite algo que no sea un numero en las notas no se rompa el programa, sino se advierta al usuario de esto...

Por lo demás... me gusta que la gente programe en Java, y que se de cuenta de su omnipotencia....


Saludos...

Neostream

 ;D gracias por el comentario se te agradece bro ok llevo 3 clases de arreglos en java los programo asi porque la prof exige exactamente asi es orientado a objeto y no estructurado creo q a eso te refieres al decir que se puede hacer mas corto xD aunque no estaria demas si comentas mas porque habeis dicho q no era la mejor opcion me gustaria saber otras opciones xD ok en realidad lo compilo con el jcreator y lo copie de alla aca asi mismo se pego xD aca alla se ve mas bonito y si serias amable de ponerlo a la mitad no se como hacerlo xD a menos q sea estructurado  :P y hablame de las excepciones xD seria bueno aprender mas pensaba poner un try y un catch pero nose no me complique mas xD la prof no pidio con try ni catch asi q lo deje asi bueno salu2 y gracias POR LOS COMENTARIOS  ;D :-X
solo se q nada se :D

**Adem**

Bueno me gusta bastante aunque estoy acostumbrado que en las clases abstractas solo se declaran lo que se lee y la matriz no se lee se carga de valores que se leyeron....pero me gustaria que me ayudaras con la herencia en java ya que sabes mucho sobre la programacion orientada a obj