Bom dia pessoal,
Estou postando um trabalho que fiz de java, onde um usuário digita um número de 0 a 1000 e numa caixa de diálogo o número é retornado por extenso. Foi meu primeiro “grande projeto” em java, mas agora que eu estou tentando estudar melhor a linguagem vi que posso aperfeiçoar esse código, até para ficar bem mais legível. Vcs poderiam me ajudar postando códigos do mesmo programa mostrando o que eu poderia estar melhorando (talvez usando herança, polimorfismo, não sei)?
Ficaria muito grato.
Desculpe se o código ficou muito grande. Foi meu primeiro contato com a linguagem. rsrs
import javax.swing.JOptionPane; // importação da biblioteca p/ exibição das janelas gráficas;
public class Extenso { // declaração da classe Extenso;
public static void main(String[] args) { // chamada do método main para iniciar o programa;
int num; // declaração da variável num para capturar o numero digitado;
String U[]; // declaração do vetor unidade;
String d[]; // declaração do vetor dezena;
String c[]; // declaração do vetor centena;
String conv; // declaração da variável de conversão;
//---------------------------------------------------
U = new String[21]; // atribui a variável U um objeto String de 21 posições;
d = new String[11]; // atribui a variável d um objeto String de 11 posições;
c = new String[11]; // atribui a variável c um objeto String de 11 posições;
/*---------------------------------------------------
Cada posição do vetor U recebe um nome de acordo com o numero */
U[0] = "Zero";
U[1] = "Um";
U[2] = "Dois";
U[3] = "Três";
U[4] = "Quatro";
U[5] = "Cinco";
U[6] = "Seis";
U[7] = "Sete";
U[8] = "Oito";
U[9] = "Nove";
U[10] = "Dez";
U[11] = "Onze";
U[12] = "Doze";
U[13] = "Treze";
U[14] = "Quatorze";
U[15] = "Quinze";
U[16] = "Dezesseis";
U[17] = "Dezessete";
U[18] = "Dezoito";
U[19] = "Dezenove";
/*---------------------------------------------------
Cada posição do vetor d recebe um nome de acordo com o numero */
d[2] = "Vinte";
d[3] = "Trinta";
d[4] = "Quarenta";
d[5] = "Cinquenta";
d[6] = "Sessenta";
d[7] = "Setenta";
d[8] = "Oitenta";
d[9] = "Noventa";
/*---------------------------------------------------
Cada posição do vetor c recebe um nome de acordo com o numero */
c[1] = "Cento";
c[2] = "Duzentos";
c[3] = "Trezentos";
c[4] = "Quatrocentos";
c[5] = "Quinhentos";
c[6] = "Seiscentos";
c[7] = "Setecentos";
c[8] = "Oitocentos";
c[9] = "Novecentos";
c[10]= "Mil";
//----------------------------------------------
conv = JOptionPane.showInputDialog("Digite um numero: "); // atribui uma caixa de texto a variavel conv;
num = Integer.parseInt(conv); // converte a variavel
//---------------------------verificações--------------------------------------------------------------------
if (num ==1000){ // verifica se o numero digitado é igual a mil
JOptionPane.showMessageDialog(null,"O numero digitado foi:\n" + c[10]);
} // se for igual exibe o vetor correspondente
//----------------------------------------------------------------------------------------------
if (num > 1000){ // verifica se o numero é maior que mil
JOptionPane.showMessageDialog(null,"O numero digitado não é válido");
} // se for, exibe a mensagem indicada;
//----------------------------------------------------------------------------------------------
if (num<=19){ // verifica se o numero é menor ou igual a 19
JOptionPane.showMessageDialog(null,"O numero digitado foi:\n " + U[num]);
} // se for, exibe o vetor U na posição do numero digitado;
if (num > 19 && num < 100){ // verifica se o numero entra nessas condições respectivamente
int dez = Integer.parseInt(conv.substring(0,1)); // se entrar o numero é dividido em substrings
int uni = Integer.parseInt(conv.substring(1,2)); // o primeiro numero recebe o nome de dez e o segundo uni
if (uni == 0){ // verifica se o segundo numero é igual a zero;
JOptionPane.showMessageDialog(null,"O numero digitado foi:\n " + d[dez]);// se for, apenas exibe a posição
} // do vetor da substring dez;
else { // senão, recebe a posição das substrings dez e uni;
JOptionPane.showMessageDialog(null,"O numero digitado foi:\n " + d[dez] + " e " + U[uni]);
}
}
//---------------------------------------------------------------------------------------------
if (num >99 && num < 1000){// verifica se o numero entra nessas condições;
int cen = Integer.parseInt(conv.substring(0,1));// se entrar, o primeiro numero é atribuido a variavel cen
int dez = Integer.parseInt(conv.substring(1,2));// o segundo é atribuido a variavel dez;
int uni = Integer.parseInt(conv.substring(2,3));// o terceiro é atribuido a variavel uni;
if (cen ==1 && dez == 0 && uni == 0)// essa condição corresponde ao numero cem;
{ c[1]= "Cem";// se for assim, o vetor c[1] recebe a palavra Cem;
JOptionPane.showMessageDialog(null,"O numero digitado foi:\n " + c[cen]);// exibe de acordo com cen;
} else
if (dez == 0 && uni ==0){// verifica o segundo e o terceiro numero;
JOptionPane.showMessageDialog(null,"O numero digitado foi:\n " + c[cen]); // exibe de acordo com cen;
} else
if (dez ==0){ // se o segundo numero for igual a zero, o vetor d não sera exibido;
JOptionPane.showMessageDialog(null,"O numero digitado foi:\n " + c[cen] + " e " + U[uni]);
} else
if (uni == 0){// se o ultimo numero for igual a zero, o vetor U não sera exibido;
JOptionPane.showMessageDialog(null,"O numero digitado foi:\n " + c[cen] + " e " + d[dez]);
} else
if (dez ==1){// se o segundo numero for 1;
int dezeuni = Integer.parseInt(conv.substring(1,3));// dezena e unidade tornam-se uma unica string
JOptionPane.showMessageDialog(null,"O numero digitado foi:\n " + c[cen] + " e " + U[dezeuni]);
}
else { // não passando por nenhuma das condições acima;
JOptionPane.showMessageDialog(null,"O numero digitado foi:\n " + c[cen] + " e " + d[dez]+ " e " + U[uni]);
// sera exibido o vetor c,d e U;
}
}
}
}
. kkkkk