Nombre: Menu de Opciones usando Switch Case & GUI
Descripción:
Recuerdan los primeros Menús que hacíamos en C++ con Switch Case??? Pues aquí esta nuevamente pero ahora en Java. JA Gran diferencia cierto. :-P pero en fin este sistema tiene 7 funciones diferentes y maneja Arreglos para almacenar los datos del programa(rustico no?). Las funciones son: 1.- Agregar Registro (Si tiene 10 elementos te avisa que el array ya esta lleno) 2.- Eliminar Registros (Te da la opción de que selecciones la posición del registro a eliminar, si la posición seleccionada sale del rango del array te avisa, si el array esta vacío te notifica también) 3.- Actualizar Registro (Actualiza los datos del array en la posición seleccionada por el usuario, si la posición seleccionada sale del rango del array te avisa, si el array esta vacío te notifica también) 4.- Ordenar de manera Ascendente con el método de la burbuja 5.- Ordenar de manera Descendente con el método de la burbuja 6.- Búsqueda (Busca un valor X en el Array y te notifica cuantos elementos coinciden y en que posición se encuentra, Si el Array esta vacío te notifica, Si no se encontraron coincidencias también te notifica) En este programa se usa: ciclo For, Ciclo Do While, Switch Case, Operadores lógicos, Funcion Array.length para saber el tamaño de un arreglo, Redimensionar Arreglos, System.exit (0) para evitar que se quede colgado el programa, uso del Try, uso de GUI, entre otras cosas mas. Espero les sea de utilidad…. OJO NO cuenta con control de errores
URL: http://www.mygnet.net/codigos/java/analisisnumericos/menu_de_opciones_usando_switch_case_gui.1617
Código Fuente:
import java.io.*;
import javax.swing.JOptionPane;
public class menu{
//Sistema creado por LSC Jairo Arturo Segura Morales utilizando GUI
//Aplicando cuadros de Mensaje, Input Box, manejo de operaciones básicas, un sencillo menú y métodos de ordenamiento usando el metodo de la burbuja OJO: NO cuenta con control de errores
public static void main(String args[]){
String StrCadena, StrValor, StrPrintValue="Empty";
int i=0,n=0;
int elemento1=0,elemento2=0;
int [ ] ArrRegistros = new int[0];
int [ ] ArrTemporal = new int[0];
//Control de errores
try{
do {
//Mostramos un InputBox al Usuario para que seleccione la operacion que desea realizar
StrCadena = JOptionPane.showInputDialog(null,"Menú: Seleccione la operación que desea realizar en esta Aplicación.nn1.- Agregar Registron2.- Eliminar Registron3.- Actualizar Registron4.- Sort Order ASCn5.- Sort Order DESCn6.- Buscar Registron7.- Salir del Programa","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.INFORMATION_MESSAGE);
//Hacemos la operacion seleccionada por el usuario usando un Switch Case y convirtiendo el valor Cadena a Entero
switch (Integer.parseInt(StrCadena)){
case 1:
//Vemos si nuestro Arreglo esta vacio o No
if (ArrRegistros.length<=9){
if (ArrRegistros.length==0){
//Si nuestro arreglo esta Vacio entonces creamos un Registro Nuevo en el primer Arreglo
ArrRegistros = new int[1];
//Obtenemos el valor a almacenar en la posicion N
StrValor = JOptionPane.showInputDialog(null,"Numero a Almacenar en la posición: 1","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.QUESTION_MESSAGE);
//Paso el valor tecleado al arreglo
ArrRegistros[0] = Integer.parseInt(StrValor);
//Creo mi cadena para mostrar al usuario
StrPrintValue = "Numero de Registros "+ArrRegistros.length+"nnPosition 1:"+ArrRegistros[0];
}
else if(ArrRegistros.length>0){
ArrTemporal = new int[ArrRegistros.length + 1];
StrPrintValue = "Numero de Registros "+ArrTemporal.length+"nn";
for (i=0;i<=(ArrRegistros.length -1);i++){
ArrTemporal[i]=ArrRegistros[i];
}
//Obtenemos el valor a almacenar en la posicion N
StrValor = JOptionPane.showInputDialog(null,"Numero a Almacenar en la posición: "+(ArrTemporal.length),"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.QUESTION_MESSAGE);
ArrTemporal[ArrTemporal.length - 1] = Integer.parseInt(StrValor);
ArrRegistros = new int[ArrTemporal.length];
for (i=0;i<=(ArrTemporal.length - 1);i++){
ArrRegistros[i]=ArrTemporal[i];
StrPrintValue = StrPrintValue+"Position "+(i+1)+": "+ArrRegistros[i]+"n";
}
}
JOptionPane.showMessageDialog(null,StrPrintValue,"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.INFORMATION_MESSAGE);
}
else if(ArrRegistros.length==10){
StrPrintValue = "Numero de Registros "+ArrTemporal.length+"n";
for (i=0;i<=(ArrRegistros.length - 1);i++){
StrPrintValue = StrPrintValue+"Position "+(i+1)+": "+ArrRegistros[i]+"n";
}
JOptionPane.showMessageDialog(null,"Todos los Espacios del Array estan llenos, Si desea anexar otro elemento use n la Opción Eliminar Registronn"+StrPrintValue,"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.ERROR_MESSAGE);
}
break;
case 2:
//Vemos si nuestro Arreglo esta vacio o No
if (ArrRegistros.length>1){
//Si nuestro arreglo NO esta Vacio entonces preguntamos al usuario ke registro desea eliminar y le mostramos los datos existentes
StrPrintValue = "Numero de Registros "+ArrRegistros.length+"nn";
for (i=0;i<=(ArrRegistros.length - 1);i++){
StrPrintValue = StrPrintValue+"Position "+(i+1)+": "+ArrRegistros[i]+"n";
}
//Obtenemos el valor a Eliminar en la posicion N
StrValor = JOptionPane.showInputDialog(null,"Cual es la posición del Registro que desea Eliminar. "+StrPrintValue,"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.QUESTION_MESSAGE);
elemento1 = Integer.parseInt(StrValor) - 1;
if (elemento1<=ArrRegistros.length-1){
for (i = elemento1;i<=(ArrRegistros.length - 1);i++){
if (i != ArrRegistros.length-1) {
ArrTemporal[i]=ArrRegistros[i + 1];
}
}
ArrRegistros = new int[ArrTemporal.length - 1];
StrPrintValue = "Numero de Registros "+ArrRegistros.length+"nn";
for (i = 0;i<=(ArrRegistros.length - 1);i++){
ArrRegistros[i]=ArrTemporal[i];
StrPrintValue = StrPrintValue+"Position "+(i+1)+": "+ArrRegistros[i]+"n";
}
ArrTemporal = new int[ArrRegistros.length];
for (i = 0;i<=(ArrRegistros.length - 1);i++){
ArrTemporal[i]=ArrRegistros[i];
}
JOptionPane.showMessageDialog(null,"Registro Eliminado Exitosamente! "+StrPrintValue,"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.INFORMATION_MESSAGE);
}
else
JOptionPane.showMessageDialog(null,"La Posición Seleccionada No existe en este arreglo. Please try Again!!!.","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.ERROR_MESSAGE);
}
else if (ArrRegistros.length==1){
ArrRegistros = new int[0];
ArrTemporal = new int[0];
JOptionPane.showMessageDialog(null,"El Arreglo se encuentra Vacio. ArrRegistros is Empty.","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.INFORMATION_MESSAGE);
}
else
JOptionPane.showMessageDialog(null,"No hay Registros para Eliminar. ArrRegistros is Empty Please try Again.","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.ERROR_MESSAGE);
break;
case 3:
//Vemos si nuestro Arreglo esta vacio o No
if (ArrRegistros.length>=1){
//Si nuestro arreglo NO esta Vacio entonces preguntamos al usuario ke registro desea Modificar y le mostramos los datos existentes
StrPrintValue = "Numero de Registros "+ArrRegistros.length+"nn";
for (i=0;i<=(ArrRegistros.length - 1);i++){
StrPrintValue = StrPrintValue+"Position "+(i+1)+": "+ArrRegistros[i]+"n";
}
StrValor = JOptionPane.showInputDialog(null,"Cual es la posición del Registro que desea Modificar. "+StrPrintValue,"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.QUESTION_MESSAGE);
if (Integer.parseInt(StrValor)<=ArrRegistros.length){
n = Integer.parseInt(StrValor);
StrValor = JOptionPane.showInputDialog(null,"Nuevo Valor de la Posición: "+n,"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.QUESTION_MESSAGE);
ArrRegistros[n-1] = Integer.parseInt(StrValor);
StrPrintValue = "Numero de Registros "+ArrRegistros.length+"nn";
for (i=0;i<=(ArrRegistros.length - 1);i++){
StrPrintValue = StrPrintValue+"Position "+(i+1)+": "+ArrRegistros[i]+"n";
}
JOptionPane.showMessageDialog(null,"Registro Modificado Exitosamente! "+StrPrintValue,"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.INFORMATION_MESSAGE);
}
else
JOptionPane.showMessageDialog(null,"La Posición Seleccionada No existe en este arreglo. Please try Again!!!.","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.ERROR_MESSAGE);
}
else
JOptionPane.showMessageDialog(null,"No hay Registros para Modificar. ArrRegistros is Empty Please try Again.","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.ERROR_MESSAGE);
break;
case 4:
//Vemos si nuestro Arreglo esta vacio o No
if (ArrRegistros.length>=1){
for (i=0;i<=(ArrRegistros.length - 1);i++){
for(n=0;n<=(ArrRegistros.length - 2);n++){
//REVISAR
elemento1=ArrRegistros[n + 1];
elemento2=ArrRegistros[n];
if (elemento1 < elemento2) {
ArrRegistros[n] = elemento1;
ArrRegistros[n+1] = elemento2;
}
}
}
StrPrintValue = "Numero de Registros "+ArrRegistros.length+"nn";
for (i=0;i<=(ArrRegistros.length - 1);i++){
StrPrintValue = StrPrintValue+"Position "+(i+1)+": "+ArrRegistros[i]+"n";
}
JOptionPane.showMessageDialog(null,"Registros Ordenados Exitosamente! "+StrPrintValue,"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.INFORMATION_MESSAGE);
}
else
JOptionPane.showMessageDialog(null,"No hay Registros para Ordenar. ArrRegistros is Empty Please try Again.","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.ERROR_MESSAGE);
break;
case 5:
//Vemos si nuestro Arreglo esta vacio o No
if (ArrRegistros.length>=1){
for (i=0;i<=(ArrRegistros.length - 1);i++){
for(n=0;n<=(ArrRegistros.length - 2);n++){
//REVISAR
elemento1=ArrRegistros[n + 1];
elemento2=ArrRegistros[n];
if (elemento1 > elemento2) {
ArrRegistros[n] = elemento1;
ArrRegistros[n+1] = elemento2;
}
}
}
StrPrintValue = "Numero de Registros "+ArrRegistros.length+"nn";
for (i=0;i<=(ArrRegistros.length - 1);i++){
StrPrintValue = StrPrintValue+"Position "+(i+1)+": "+ArrRegistros[i]+"n";
}
JOptionPane.showMessageDialog(null,"Registros Ordenados Exitosamente! "+StrPrintValue,"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.INFORMATION_MESSAGE);
}
else
JOptionPane.showMessageDialog(null,"No hay Registros para Ordenar. ArrRegistros is Empty Please try Again.","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.ERROR_MESSAGE);
break;
case 6:
//Vemos si nuestro Arreglo esta vacio o No
if (ArrRegistros.length>=1){
StrPrintValue = "";
elemento1=0;
StrValor = JOptionPane.showInputDialog(null,"Digite el Numero que desea Buscar en el Arreglo. ArrRegistros Contains: "+ArrRegistros.length+" elements.","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.INFORMATION_MESSAGE);
for (i=0;i<=(ArrRegistros.length - 1);i++){
if (Integer.parseInt(StrValor)==ArrRegistros[i]){
StrPrintValue = StrPrintValue+"Position "+(i+1)+": "+ArrRegistros[i]+"n";
elemento1=elemento1+1;
}
}
if (StrPrintValue != ""){
JOptionPane.showMessageDialog(null,"La Busqueda a culminado Satisfactoriamente!n"+elemento1+" items Matchnn"+StrPrintValue,"Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.INFORMATION_MESSAGE);
}
else
JOptionPane.showMessageDialog(null,"No Match! This value not Exist in this Array, Please try Again","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.WARNING_MESSAGE);
}
else
JOptionPane.showMessageDialog(null,"No hay Registros para Disponibles para Efectuar la Busqueda. ArrRegistros is Empty Please try Again.","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.ERROR_MESSAGE);
break;
case 7:
System.exit (0);
break;
//Si el usuario teclea otra opcion que no se encuentra en el menu
default:
JOptionPane.showMessageDialog(null,"Opción NO Valida Intente nuevamente","Operaciones Básicas con Arrays - by Jairo Arturo Segura",JOptionPane.ERROR_MESSAGE);
break;
}
}while(Integer.parseInt(StrCadena) != 7);
System.exit (0);
}
catch(Exception e){}
System.exit (0);
}
}