Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package Trabajo;
- import javax.swing.JOptionPane;
- //Main
- public class Proyecto {
- /**
- * Metodo inicial.
- */
- public static void main(String[] args) {
- int operacion = Integer.parseInt(JOptionPane.showInputDialog("Ingrese una opcion \n"
- + "1-Conversion \n"
- + "2-Suma \n"
- + "3-Resta \n"
- + "4-Multiplicacion"));
- menuInicio(operacion);
- }
- /**
- * Metodo para sumar resta o multiplicar.
- * @param operacion Codigo es de la opreacion
- * * @Autor Diego Fernando Echverry
- */
- public static void menuInicio(int operacion) {
- if (operacion >= 1 && operacion <= 4) {
- switch (operacion) {
- // Conversion
- case 1:
- int baseOrigen = menuBase(-1);
- String numeroIngresado = ingresarNumero();
- if(!validarNumeroBase(numeroIngresado, baseOrigen)){
- JOptionPane.showMessageDialog(null, "El numero no es válido para la base dada.",
- "Error!", JOptionPane.ERROR_MESSAGE);
- }
- else{
- int baseDestino = menuBase(baseOrigen);
- System.out.println(convertirNumeroBase(baseOrigen, baseDestino, numeroIngresado));
- }
- break;
- // Suma
- case 2:
- int baseOperacion = menuBase(-1);
- String[] datosOperacion = ingresarDatosOperacion();
- System.out.println(sumar(datosOperacion[0], datosOperacion[1], baseOperacion));
- break;
- // Resta
- case 3:
- break;
- // Multiplicacion
- case 4:
- break;
- }
- }
- else {
- JOptionPane.showMessageDialog(null, "Rango Invalido",
- "Error!", JOptionPane.ERROR_MESSAGE);
- }
- }
- private static boolean validarNumeroBase(String numeroIngresado, int baseOrigen) {
- boolean esValido = true;
- switch (baseOrigen) {
- // Binario
- case 1:
- esValido = validarBinario(numeroIngresado);
- break;
- // Octal
- case 2:
- break;
- // Decimal
- case 3:
- break;
- // Hexadecimal
- case 4:
- break;
- }
- return esValido;
- }
- private static boolean validarBinario(String numeroIngresado) {
- return true;
- }
- private static String sumar(String primerOperando, String segundoOperando, int baseOperacion) {
- String retorno = "";
- switch (baseOperacion) {
- // Binario
- case 1:
- retorno = sumarBinarios(primerOperando, segundoOperando);
- break;
- // Octal
- case 2:
- break;
- // Decimal
- case 3:
- break;
- // Hexadecimal
- case 4:
- break;
- }
- return retorno;
- }
- private static String sumarBinarios(String primerOperando,
- String segundoOperando) {
- int primerBinario = Integer.parseInt(primerOperando, 2);
- int segundoBinario = Integer.parseInt(segundoOperando, 2);
- int resultado = primerBinario + segundoBinario;
- return Integer.toBinaryString(resultado);
- }
- public static String[] ingresarDatosOperacion(){
- String primerDato = JOptionPane.showInputDialog("A");
- String segundoDato = JOptionPane.showInputDialog("B");
- return new String[]{primerDato, segundoDato};
- }
- /**
- * Metodo que convierte un numero de una base a otra.
- * @param baseOrigen Base en la que esta escrito el numero que se desea convertir.
- * @param baseDestino Base a la que se desea convertir el metodo.
- * @param numeroIngresado Numero que se desea convertir.
- * @return El numero convertido a la base destino.
- */
- public static String convertirNumeroBase(int baseOrigen, int baseDestino,
- String numeroIngresado) {
- String retorno = "";
- switch (baseOrigen) {
- // Binario
- case 1:
- switch (baseDestino) {
- // Octal
- case 2:
- retorno = convertirBinarioAOctal(numeroIngresado);
- break;
- // Decimal
- case 3:
- break;
- // Hexadecimal
- case 4:
- break;
- }
- break;
- // Octal
- case 2:
- break;
- // Decimal
- case 3:
- break;
- // Hexadecimal
- case 4:
- break;
- }
- System.out.println("baseOrigen " + baseOrigen + " baseDestino " + baseDestino + " numeroIngresado " + numeroIngresado);
- return retorno;
- }
- /**
- * Pasa un numero de binario a octal.
- * @param numeroIngresado Numero a convertir
- * @return Numero convertido.
- */
- public static String convertirBinarioAOctal(String numeroIngresado) {
- int numeroBinario = Integer.parseInt(numeroIngresado, 2);
- return Integer.toOctalString(numeroBinario);
- }
- /**
- Pasa un numero de decimal a hexadecimal.
- * @param numeroIngresado Numero a convertir
- *
- */
- public static String decimalAhexadecimal(int entrada) {
- String digits = "0123456789ABCDEF";
- if (entrada == 0);
- String hexadecimal = "";
- while (entrada > 0) {
- int mod = entrada % 16; // Dígito de la derecha
- hexadecimal = digits.charAt(mod) + hexadecimal; // Concatenación de cadenas
- entrada = entrada / 16;
- }
- return hexadecimal;
- }
- /**
- *
- * Pasa un numero de decimal a Octal.
- * @param numeroIngresado Numero a convertir
- */
- public static String decimalAoctal(int inicio) {
- String acomular = "";
- if (inicio <= 8) {
- acomular += inicio;
- } else {
- int div1 = inicio / 8;
- int div2 = div1 / 8;
- int div3 = div2 / 8;
- int div4 = div3 / 8;
- int div5 = div4 / 8;
- int div6 = div5 / 8;
- int div7 = div6 / 8;
- int div8 = div7 / 8;
- int div9 = div8 / 8;
- int[] arreglo = new int[10];
- arreglo[0] = inicio % 8;
- arreglo[1] = div1 % 8;
- arreglo[2] = div2 % 8;
- arreglo[3] = div3 % 8;
- arreglo[4] = div4 % 8;
- arreglo[5] = div5 % 8;
- arreglo[6] = div6 % 8;
- arreglo[7] = div7 % 8;
- arreglo[8] = div8 % 8;
- arreglo[9] = div9 % 8;
- for (int i = arreglo.length - 1; i >= 0; i--) {
- if (arreglo[i] != 0) {
- acomular += arreglo[i];
- }
- }
- }
- return acomular;
- }
- /**
- *
- * Pasa un numero de decimal a Binario.
- * @param numeroIngresado Numero a convertir
- */
- public static String decimalABinario(int decimal) {
- String binario = "";
- while (decimal > 0) {
- binario = decimal % 2 + binario;
- decimal /= 2;
- }
- return binario;
- }
- /**
- *
- * Pasa un numero de hexadecimal A Decimal.
- * @param numeroIngresado Numero a convertir
- */
- public static int hexadecimalADecimal(String s) {
- String digitos = "0123456789ABCDEF";
- s = s.toUpperCase();
- int decimal = 0;
- for (int i = 0; i < s.length(); i++) {
- char c = s.charAt(i);
- int d = digitos.indexOf(c);
- decimal = 16*decimal + d;
- }
- return decimal;
- }
- /**
- * Pasa un numero de Octal A Decimal.
- * @param numeroIngresado Numero a convertir
- */
- public static void octalADecimal(String base) {
- String cadenaInver = "";
- int b = 0;
- int c = 0;
- for (int i = base.length()-1; i >= 0; i--) {
- cadenaInver += ""+base.charAt(i);
- }
- for (int i = 0; i < cadenaInver.length(); i++) {
- String convertir = "" + cadenaInver.charAt(i);
- b = Integer.parseInt(convertir);
- c += (b * Math.pow(8, i));
- }
- System.out.println(c);
- }
- /**
- * Pasa un numero de Binario A Decimal.
- * @param numeroIngresado Numero a convertir
- */
- public static int binarioADecimal(String base) {
- String cadenaInver = "";
- int b = 0;
- int c = 0;
- for (int i = base.length()-1; i >= 0; i--) {
- cadenaInver += ""+base.charAt(i);
- }
- double[] arreglo;
- for (int i = 0; i <= cadenaInver.length(); i++) {
- arreglo = new double[99];
- arreglo[i] = (Math.pow(2, i));
- for (int m = 0; m < cadenaInver.length(); m++) {
- String convertir = "" + cadenaInver.charAt(m);
- b = Integer.parseInt(convertir);
- c += b * arreglo[m];
- }
- }
- return c;
- }
- /**
- * Menu para seleccionar base en la operación de conversión.
- * @param seleccionado Numero seleccionado anteriormente, si se le pasa un -1 se
- * mostre todas las opciones.
- *
- * @return La base seleccionada por el usuario.
- */
- public static int menuBase(int seleccionado){
- int baseSeleccionada = -1;
- if(seleccionado == -1){
- // 1 binario, 2 octal, 3 decimal, 4 hexadecimal.
- baseSeleccionada = Integer.parseInt(
- JOptionPane.showInputDialog("Ingrese una Base \n"
- + "1 - Binario \n"
- + "2 - Octal \n"
- + "3 - Decimal \n"
- + "4 - Hexadecimal"));
- }
- else{
- String opcionBinario = "1 - Binario \n";
- String opcionOctal = "2 - Octal \n";
- String opcionDecimal = "3 - Decimal \n";
- String opcionHexadecimal = "4 - Hexadecimal";
- String opcionesSeleccionables = "";
- if(seleccionado != 1) opcionesSeleccionables += opcionBinario;
- if(seleccionado != 2) opcionesSeleccionables += opcionOctal;
- if(seleccionado != 3) opcionesSeleccionables += opcionDecimal;
- if(seleccionado != 4) opcionesSeleccionables += opcionHexadecimal;
- baseSeleccionada = Integer.parseInt(JOptionPane.showInputDialog("Ingrese una Base \n"
- + opcionesSeleccionables));
- }
- if(baseSeleccionada <= 0 || baseSeleccionada > 4){
- JOptionPane.showMessageDialog(null, "Rango Invalido",
- "Error!", JOptionPane.ERROR_MESSAGE);
- }
- return baseSeleccionada;
- }
- public static String ingresarNumero(){
- return JOptionPane.showInputDialog("Ingrese el numero en la base origen");
- }
- }
Add Comment
Please, Sign In to add comment