1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

JAVA - Ajuda tou a dar em doido.

Discussão em 'Programação' iniciada por J[PT], 10 de Janeiro de 2007. (Respostas: 13; Visualizações: 2004)

  1. J[PT]

    J[PT] Power Member

    Boas estou a fazer um projecto em java para um trabalheco de escola...(sim aos 25 anos decidi aprender a programar... mal mas pronto... isto vai com calma...)

    Trata-se de um programa que simula a gestao de uma conta bancaria, mas não consigo efectuar as operações de consulta de movimentos... nem introduzir a apresentação de data de sistema em cada operação... aqui fica a parte do codigo que já desunhei e mais algumas variaveis...

    Um abraço e obrigado desde já se for possivel alguma ajuda... isto de ser noob ninguem nasce ensinado... há que marrar e procurar a ajuda de quem sabe mais...

    Código:
    class Gestao {
    	
    static double saldo;
    static String[] guarda;
    	
    	
    //Metodo main parte principal do programa.
    	
    public static void main (String args[]){
    	
    //Variaveis
    
    int opcao,i=0;
    double saldoCr,saldoDb,limite=0;
    saldo=0;
    guarda=new String[10];
    		
    System.out.println("GESTAO CONTA BANCARIA"); //menu da conta bancaria
    System.out.println("M:.E:.N:.U:.");
    		
    			
    do{ //mostra as opções
    
    	System.out.println("1 - Credito.");
    	System.out.println("2 - Debito.");
    	System.out.println("3 - Limite a Descoberto.");
    	System.out.println("4 - Elimina o ultimo movimento.");
    	System.out.println("5 - Consulta Valor Saldo.");
    	System.out.println("6 - Consulta de movimentos.");
    	System.out.println("7 - Sair.");
    	System.out.print("Escolha uma opcao:  ");
    	opcao=Le.umInt();
    			
    				
    	//switch para escolha das opções
    				
    				
    	switch(opcao){
    					
    case 1:		//case 1 para efectuar um crédito
    		System.out.print("Introduza o montante a Creditar: ");	//introdução de valores	
    		saldoCr=Le.umDouble();	//leitura de valores
    		saldo=saldo+saldoCr;	//Valor do saldo + actualização do valor por soma de montante
    		guarda[i]="C"+saldoCr;	//Guarda Valor introduzido
    		i++;	//operador incrementado					
    		;break;	//Pausa na execução para nova ordem
    
    
    case 2:		//Case 2 para efectuar um débito
    		System.out.print("Introduza o montante a Debitar: ");	//introdução de valores	
    		saldoDb=Le.umDouble(); //leitura de valores
    												
    		if(saldo-saldoDb<-limite){ //condição para que se Debito maior que saldo dar info de valor a descoberto
    		System.out.println("Limite A Descoberto Ultrapassado"); //mensagem de valor a descoberto
    		}else{	//codição para executar debito caso valor de debito menor que saldo
    		saldo=saldo-saldoDb;	//Operação de débito
    		guarda[i]="d"+saldoDb;	//actulização do saldo
    		i++;	//operador incrementado
    			}
    		;break; //Pausa na execução para nova ordem
    
    
    case 3:		//case 3 para mostrar limite a descoberto
    		System.out.print("Limite a descoberto: ");
    		limite=Le.umDouble();						
    		;break;
    
    
    	case 4:
    						
    		String aux=guarda[i-1];	//Consulta o ultimo movimento efectuado indo buscar o mesmo a uma string
    		if(aux.charAt(0)=='d'){	//retira o movimento e faz a operacao.
    		saldo=saldo+Double.parseDouble(aux.substring(1, aux.length()));						
    		guarda[i-1]=null;
    		}else{
    		saldo=saldo-Double.parseDouble(aux.substring(1, aux.length()));						
    		guarda[i-1]=null;							
    		}
    		;break; //Pausa na execução para nova ordem
    
    
    
    case 5:		//Case 5 para apresentar o valor de saldo
    		System.out.println("O saldo e de: "+saldo); //consulta o valor do saldo guardado
    						
    		;break; //Pausa na execução para nova ordem
    
    
    case 6:
    	;break; 
    
    			
    	case 7:System.exit(0);	//Case para terminar o programa
    
    	break;//Pausa na execução para nova ordem
    
    	default:System.out.println("ESCOLHA A OPCAO CORRECTA!!"); //mensagem se opcao incorrecta
    		
    				
    }while(opcao!=0); //intrução para terminar o programa.
    		
    			
    			
    }
    		
    
    }

    Aqui tenho o formatador da DATA ja "desenhado" agora para integrar no código acima é que tenho estado com algumas situações estranhas com erros atrofiantes a compilar em JAVAC ... isto a minha cabecinha já :004: :004:

    Código:
    SimpleDateFormat formatador;
    Date data;
    
    	
    	formatador = new SimpleDateFormat ("dd/MM/yyyy"); // Cria formatador de data
    	data = new Date (); // Obtém data e
    	formatador.format (data); // formata-a
    Outra coisa não faço ideia depois de ler de como posso apresentar os detalhes das operações efectuadas... ai ai...:'( :'(

    Siga lá javardar mais um bocadito se for tendo duvidas vou postando por agora são estas e nao é pouco...:x2: :x2:
     
    Última edição: 10 de Janeiro de 2007
  2. GloriosoSLB

    GloriosoSLB Power Member

    Primeiro de tudo, porque nao crias métodos para as opções do menu?

    É que isso tudo assim ao monte fica confuso. Crias os vários métodos, para as várias opções do menu, e assim fica tudo dividido...
     
  3. J[PT]

    J[PT] Power Member

    É uma hipotese ;-)

    mas queria passar so para os metodos depois de organizar isto...
     
  4. MadOnion

    MadOnion Folding Member

    Quantas classes estás a usar?
    Dava jeito uma classe que representa uma Conta, e outra que representa um Utilizador, mesmo que o teu projecto seja apenas para um Cliente e não para um conjunto de clientes.
    Essa classe então Gestão, devia tratar-se de um banco.

    Para a consulta de movimentos, podes por exemplo guardar numa ArrayList(lista sem limite) de Strings(para guardares o montante, data do movimento, nome, isto se obedecer aos parametros do teu projecto), todas as operações que vais fazendo ao longo do programa. Se for feito um credito, ou debito, ou mesmo eliminação do ultimo movimento(undo() method por exemplo).

    No case7 nao deves ter System.exit(int arg), nao é nada elegante. No while coloca antes while(opcao != 0 || opcao == 7);

    Tem cuidado também com os atributos estaticos, por serem estáticos, e por não serem nem publicos ou privados ou protected ou whatever.

    Como ja foi dito, devias, para cada opção ter um metodo, inclusivé para ler um double(montante).

    Espero ter ajudado em algo,
    Cumps
     
  5. J[PT]

    J[PT] Power Member


    Claro que ajuda e muito... neste momentos o preciso mesmo de que seja orientado a um utilizador e a um banco pelo que não existe necessidade de fazer muito mais, mais a frente poderei integrar varios utilizadores e bancos..

    Neste momento fiz mais um bocadinho e ja da para compilar e ja corre quase tudo...

    Código:
    class GestaoContas {
    	
    	static double saldo;
    	static String[] guarda;
    	
    	
    	//Metodo main parte principal do programa.
    	
    	public static void main (String args[]){
    	
    	//Variaveis
    		//int op=0;
    		int opcao,i=0;
    		double saldoCr=0,saldoDb=0,limite=0;
    		saldo=0;
    		guarda=new String[10];
    		
    		//SimpleDateFormat formatador;
    		//Date data;
    
    
    				//formatador = new SimpleDateFormat ("dd/MM/yyyy"); // Cria formatador de data
    				//data = new Date (); // Obtém data e
    				//formatador.format (data); // formata-a
    		
    			
    			System.out.println("G:.E:.S:.T:.A:.O:. C:.O:.N:.T:.A:. B:.A:.N:.C:.A:.R:.I:.A:."); //menu da conta bancaria
    			System.out.println("                       M:.E:.N:.U:.");
    		
    			
    			do{ //mostra as opções
    				System.out.println ();
    				System.out.println ();
    				System.out.println("1 - Credito.");
    				System.out.println("2 - Debito.");
    				System.out.println("3 - Limite a Descoberto.");
    				System.out.println("4 - Elimina o ultimo movimento.");
    				System.out.println("5 - Consulta Valor Saldo.");
    				System.out.println("6 - Consulta de movimentos.");
    				System.out.println("0 - Sair.");
    				System.out.println ();
    				System.out.println ();
    				System.out.print("Escolha uma opcao:  ");
    				opcao=Le.umInt();
    				
    				//}while (op < 0 || op > 6);	//função do while para limitar /compreender as opções do menu
    				
    				
    				
    				
    				//switch para escolha das opções
    				
    					switch(opcao){
    					
    					case 1:	{	//case 1 para efectuar um crédito
    						System.out.print("Introduza o montante a Creditar: ");	//introdução de valores	
    						saldoCr=Le.umDouble();	//leitura de valores
    						saldo=saldo+saldoCr;	//Valor do saldo + actualização do valor por soma de montante
    						guarda[i]="C"+saldoCr;	//Guarda Valor introduzido
    						i++;}	//operador incrementado					
    						;break;	//Pausa na execução para nova ordem
    
    
    					case 2:		//Case 2 para efectuar um débito
    						System.out.print("Introduza o montante a Debitar: ");	//introdução de valores	
    						saldoDb=Le.umDouble(); //leitura de valores
    												
    						if(saldo-saldoDb<-limite){ //condição para que se Debito maior que saldo dar info de valor a descoberto
    							System.out.println("Limite A Descoberto Ultrapassado"); //mensagem de valor a descoberto
    						}else{	//codição para executar debito caso valor de debito menor que saldo
    							saldo=saldo-saldoDb;	//Operação de débito
    							guarda[i]="d"+saldoDb;	//actulização do saldo
    							i++;	//operador incrementado
    						}
    						;break; //Pausa na execução para nova ordem
    
    
    					case 3:		//case 3 para mostrar limite a descoberto
    						System.out.print("Limite a descoberto: ");
    						limite=Le.umDouble();						
    						;break;
    
    
    					case 4:
    						
    						String aux=guarda[i-1];	//Consulta o ultimo movimento efectuado indo buscar o mesmo a uma string
    						if(aux.charAt(0)=='d'){	//retira o movimento e faz a operacao.
    							saldo=saldo+Double.parseDouble(aux.substring(1, aux.length()));						
    							guarda[i-1]=null;
    						}else{
    							saldo=saldo-Double.parseDouble(aux.substring(1, aux.length()));						
    							guarda[i-1]=null;							
    						}
    						;break; //Pausa na execução para nova ordem
    
    
    
    					case 5:		//Case 5 para apresentar o valor de saldo
    						System.out.println("O saldo e de: "+saldo); //consulta o valor do saldo guardado
    						
    						;break; //Pausa na execução para nova ordem
    
    
    					case 6:
    					;break; 
    
    			
    					case 7:System.exit(0);	//Case para terminar o programa
    
    					break;//Pausa na execução para nova ordem
    
    					default:System.out.println("ESCOLHA A OPCAO CORRECTA!!"); //mensagem se opcao incorrecta
    		
    				
    			}
    		
    		
    		
    		
    		
    		
    		}while(opcao!=0); //intrução para terminar o programa.
    		
    	}
    	}
     
  6. em programacao por objectos tudo e um objecto!! apreendi isto da pior maneira mas apreendi! o melhor que tens a fazer era mesmo fazeres uma classe pra cada coisa que precisa de tal e depois organizares isso em metodos.

    Se quiseres ir ainda mais a frente podes olhar para padroes de desenho, em especial para o padrao de desenho command que e capaz de ajudar nessa situacao.

    Outra coisa, nao faças isto:

    System.out.println ();
    faz antes assim :
    System.out.println ("\n"+"escrevo a opcao ou o que quiser!");
     
    Última edição: 10 de Janeiro de 2007
  7. HecKel

    HecKel The WORM

    Não percebi qual a ideia.

    Já agora, não precisas de separar a string do "\n" do resto, pode ficar tudo dentro de uma só string, por exemplo, "\n xpto blabla\n\n\n\n"

    abraços, HecKel
     
  8. J[PT]

    J[PT] Power Member


    Sinceramente Tb não percebi o porque dessa ideia...

    Todo o caso, eu apenas tenho 2 meses de Java, e cerca de 20Horas de aulas disto...

    Acho que já não está nada mau para tão pouco tempo... tendo em conta que todo o código foi feito à mão com noçoes que vou aprendendo...

    Mas estou a gostar, tirando a parte que muito sinceramente isto me dá cabo dos miolos, mas desporto cerebral é bom :004: :x2:

    Quanto aos metodos, estava a pensar depois mais tarde em separar isto por classes e talves usar 1 ou 2 vectores para armazenar os dados...

    Mas por agora o trabalho já está feito e entregue de qualquer forma não deixo morrer o tópico pois quero aprender mais qq coisa com o pessoal que domina isto.
     
  9. MadOnion

    MadOnion Folding Member

    Boas.
    Como eu já disse, deves ter uma classe Conta em que recebe por exemplo a data de criacao e um Utilizador. E uma classe Utilizador que recebe um nome, idade, morada e b.i.

    Na classe Gestor de Contas ou seja Banco, deves ter um vector de contas e um vector de utilizadores. Facilita-te muito as coisas, e o código fica muito mais bonito, e respeita a essência do java, programação orientada por objectos.

    Eu faria o seguinte:
    Classe Account
    Classe User
    Classe Bank
    Classe RunBank-> aqui está o main() por exemplo:
    PHP:
    public class RunBank {
       public static 
    void main(String[] args) {
       new 
    Bank().run();
       }
    }
    Assumindo que o Bank não tem nada no constructor.
    Vai dando notícias que eu estou de olho no tópico :)

    Edit: Já agora concatenar strings é das operações mais caras do java, é preferivel ter SOP("\nxpto"); que SOP("\n" + "xpto");
     
  10. J[PT]

    J[PT] Power Member

    Cá está ele :-P

    Custou mas foi...



    Código:
    import java.util.Date;
    import java.util.Vector;
    
    
    public class GestaoContas {
    
    	float saldo = 0;
    	float descoberto = 0;
    	public static void main(String[] args) {
    
    		GestaoContas gestao_contas = new GestaoContas(); // chama o gestor de contas (GestaoContas)
    
    	}
    
    	void credita(Float valor) {
    		saldo = saldo + valor;
    	}
    	void debita(Float valor) {
    		saldo = saldo - valor;
    	}	
    	void descoberto(Float valor) {
    		descoberto = valor;
    	}	
    
    	
    	public GestaoContas(){
    		Vector ve_guarda_opera = new Vector(); // cria um objecto do tipo Vector
    		int cont_mov = 1; // inicia o contador de numero de movimentos
    		
    			// para sempre
    		while (true){
    				// imprime o menu
    			GestaoContas.Menu();
    			
    				// le a opcao
    			int opcao = Le.umInt();
    			if (opcao< 0||opcao>7)
    				System.out.println("!!! Por Favor Introduza uma das Opções do Menu(0-7) !!!");
    			if(opcao == 0){System.out.println("Acabou de Sair do Programa GESTÃO DE CONTA BANCÁRIA");// a opcao zero sai do programa
    			
    				break;}
    			Float valor;
    			Operacao opera_escolhida = null;
    			
    			// agora vai pegar na opcao escolhida
    			
    			switch(opcao){
    				case Operacao.CREDITO: // se foi escolhido fazer um credito
    				do{
    					System.out.println("Insira o Valor a Creditar:");
    					 valor = Le.umFloat();					
    					if (valor <0|| valor ==0)
    					System.out.println("Por Favor Credite um valor Positivo!");
    				} while (valor <0|| valor ==0);
    					if (valor >0)
    						System.out.println("Operação Efectuada!");
    					 opera_escolhida = new Operacao(opcao,valor);
    					opera_escolhida.num_mov = cont_mov;
    					cont_mov++;// incrementa o contador de numero de movimentos
    					ve_guarda_opera.add(opera_escolhida);// guarda a opçao no vector da operação escolhida
    					credita(valor);
    					
    					break;
    					
    				case Operacao.DEBITO:// se foi escolhido fazer um debito
    					do{
    						System.out.println("Insira o Valor a Debitar:");
    						valor = Le.umFloat();
    						if (valor <0|| valor ==0){
    						System.out.println("Por favor Introduza um Valor Positivo!");}
    						if(valor > (saldo + descoberto)){
    							System.out.println("O seu Saldo não permite Efectuar essa Operação!!");}
    					} while (valor <0||valor==0||valor > (saldo + descoberto));
    						if (valor >0){
    						System.out.println("Operação Efectuada!");}
    						if(valor > (saldo + descoberto)){
    						System.out.println("O seu Saldo não permite Efectuar essa Operação!!");}
    			
    					opera_escolhida = new Operacao(opcao,valor);
    					opera_escolhida.num_mov = cont_mov;
    					cont_mov++;// incrementa o contador de numero de movimentos					
    					ve_guarda_opera.add(opera_escolhida);// guarda a opcão no vector da operação escolhida
    					debita(valor);
    					break;
    					
    				case Operacao.LIMITE_A_DESCOBERTO: // se foi escolhido fazer um limite a descoberto
    					do{
    						System.out.println("Insira o valor do Limite a descoberto:");
    					 	valor = Le.umFloat();					
    					 	if (valor <0)
    						System.out.println("Por Favor Introduza um Valor Positivo ou nulo!");
    					 } while (valor <0);
    							if (valor >0)
    							System.out.println("Operação Efectuada!");
    					
    					 opera_escolhida = new Operacao(opcao,valor);
    					opera_escolhida.num_mov = cont_mov;
    					cont_mov++;// incrementa o contador de numero de movimentos
    					ve_guarda_opera.add(opera_escolhida);// guarda a opcão no vector da operação escolhida
    					descoberto(valor);
    					break;					
    				case Operacao.CONSULTA_LIMITE:
    					System.out.println("O Valor do Limite a Descoberto é: "+ descoberto+"€");
    				break;
    				
    				case Operacao.CONSULTA_MOVIMENTOS: // se foi pedido para fazer uma consulta de movimentos
    					
    					System.out.println("Consulta de Movimentos a "+new Date());
    					System.out.println("\nNºMov      Data \t Hora\tTipo\tValor ");
    					for(int i = 0; i < ve_guarda_opera.size(); i++){
    						opera_escolhida = (Operacao)ve_guarda_opera.elementAt(i);
    						if(
    								opera_escolhida.tipo == Operacao.CREDITO 
    								||
    								opera_escolhida.tipo == Operacao.DEBITO
    								){
    							opera_escolhida.Imprime();
    						}
    					}
    					System.out.println("\nSaldo:\t"+saldo+ " €");
    					break;			
    					
    				case Operacao.CONSULTA_SALDOS:	// se foi pedido para fazer uma consulta de saldos
    					
    					System.out.println("Saldo a "+ new Date());
    					System.out.println("\nSaldo:€ " +saldo);
    					break;
    				
    				case Operacao.ELIMINA_ULTIMO_MOVIMENTO:
    					Operacao ult_elem_ve = (Operacao) ve_guarda_opera.lastElement();
    					ve_guarda_opera.remove(ult_elem_ve);// apaga o ultimo elemento do vector
    					descoberto = 0;// inicializa todos os movimentos
    					saldo = 0;
    					System.out.println("Operação Efectuada!");
    					//contador_de_numero_de_movimentos --;
    					
    					/*
    						Agora vai executar todas as accoes feitas desde o inicio do programa excepto a ultima (que foi apagada)
    					 */
    					for(int i = 0; i < ve_guarda_opera.size(); i++){
    						opera_escolhida = (Operacao)ve_guarda_opera.elementAt(i);
    						switch(opera_escolhida.tipo){
    						case Operacao.CREDITO:
    							credita(opera_escolhida.valor);
    							break;
    						case Operacao.DEBITO:
    							debita(opera_escolhida.valor);
    							break;
    						case Operacao.LIMITE_A_DESCOBERTO:
    							descoberto(opera_escolhida.valor);
    						
    							break;
    						}
    					}					
    					break;					
    			}
    		}
    
    	}
    
    	public static void Menu() {
    		System.out.println("");
    		System.out.println("GESTÃO DE CONTA BANCÁRIA:");
    		System.out.println("");
    		System.out.println("	MENU");
    		System.out.println("");		
    		System.out.println("1 - Crédito");
    		System.out.println("2 - Débito");
    		System.out.println("3 - Defenir o Limite a Descoberto");
    		System.out.println("4 - Elimina o Último Movimento");
    		System.out.println("5 - Consulta o Saldo");
    		System.out.println("6 - Consulta de Movimentos");
    		System.out.println("7 - Consultar o Valor do Limite a Descoberto");
    		System.out.println("0 - Sair\n");
    		System.out.println("Escolha o Número que corresponde à Opção Desejada:");
    		
    		
    	}
    
    }
    


    Código:
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class Operacao {
    	static final int CREDITO = 1;// a opcao "static final" permite a utilizacao do nome nos "switch"
    	static final int DEBITO = 2;
    	static final int LIMITE_A_DESCOBERTO = 3;
    	static final int ELIMINA_ULTIMO_MOVIMENTO = 4;
    	static final int CONSULTA_SALDOS = 5;
    	static final int CONSULTA_MOVIMENTOS = 6;
    	static final int CONSULTA_LIMITE = 7;
    	int tipo; // tipo da operação
    	float valor; // valor da operação, utilizado apenas nos credito, debito e limite
    	Date data; // altura em que foi feita a operação
    	int num_mov; // numero de movimento
    
    	
    	// construtor
    	public Operacao(int itipo, float ivalor){
    		tipo = itipo;
    		valor = ivalor;
    		data = new Date();
    	}
    	
    	/*
    	 imprime no ecrã na forma pedida 
    	 Exemplo:
    	1	30/46/2006	18:46	C	2132.0
    	2	30/46/2006	18:46	C	21.0
    	3	30/46/2006	18:46	C	212.0
    	4	30/46/2006	18:46	D	32.0
    	 */
    	void Imprime(){
    		SimpleDateFormat dataform;
    
    		dataform = new SimpleDateFormat("dd/mm/yyyy	HH:mm");// cria um objecto da classe SimpleDateFormat
    		
    		String str = dataform.format(data);
    		String p = "";
    		switch (tipo){
    			case CREDITO:
    				p = " C";
    			break;
    			case DEBITO:
    				p = " D";
    			break;
    		}		
    		//imprime a accao da forma que foi pedida no enunciado
    		System.out.println(	 num_mov + "	"+str + "	"+ p + "	" + valor);
    	}
    }
     
  11. J[PT]

    J[PT] Power Member

    bem vou dormir ja deito JAVA por todo o lado...

    Isto foi sempre a bombar...

    FOOOGGGEEEE... nunca pensei nesta idade ainda andar com isto... tou a ficar velhote...
     
  12. MadOnion

    MadOnion Folding Member

    Boas x4nick8r, existem alguns reparos que gostaria de fazer.
    Indo desde o inicio do programa até ao fim:

    float saldo = 0; Convém que seja 0.0, e se alguma vez fizeres, o que acho que não acontece no programa, saldo + 2.0, o resultado é um double e não um float, para forçar o resultado para float teria que ser, saldo + 2.0F, fica a dica :)

    O problema das variáveis static, se por alguma razão criares dois objectos do tipo Operacao, se fizeres uma operação(metodo), num dos objectos, o outro vai sofrer a mesma operação, e isso não é nada bom, em detrimento declara-os apenas private ou public ou protected ou ainda nada, depende do contexto.

    Como eu ja tinha dito anteriormente, cria uma classe por exemplo RunGestaoContas() com o código que deixei num post anterior, em que na classe GestaoContas() deves ter um metodo run() ou outro parecido com o arranque do teu problema.

    O teu programa começa por:
    PHP:
    public static void main(String[] args) {
            
            
    GestaoContas gestao_contas = new GestaoContas(); // chama o gestor de contas (GestaoContas)
            
        
    }
    És obrigado a criar este objecto, para não teres todos os teus metodos da classe static, pelo que seguindo a minha teoria, este pedaço de código é lixo.

    Tem atenção à identação, se estiveres a usar o eclipse, faz CTRL-A, CTRL-I.

    Não conheço o conjunto Le.umInt() e Le.umFloat(), foi uma classe programada por ti?

    Se não tivesses criado aquele objecto no main(), neste pedaço de código basta chamar em vez de GestaoContas.Menu(), apenas Menu().
    PHP:
    while (true){
                
    // imprime o menu
                
    GestaoContas.Menu();
    Já agora os metodos começam todos por letra pequena, os boolean deve começar por verbos e normalmente uma pergunta, por exemplo, isEmpty();
    As constantes devem ser com letra grande, por exemplo, final in CONVERSAO_EURO = 200.482;
    E se tens um metodo ou variavel com mais de uma palavra, deve ser escrito por exemplo: public int returnAdress(), em que as restantes palavras começam com letra Grande, excepto a primeira.

    Quando estás a fazer Float qualquerCoisa, não estás a criar uma variável do tipo float, pois float é um tipo primitivo(vem do C) e deve ser escrito com letra pequena. Float qualquerCoisa, é uma variável(neste caso uma referência) do tipo Float que não está a apontar para nada. Por exemplo:
    PHP:
    Float valor;
    Operacao opera_escolhida null;
    São as mesma coisa, só que de tipos diferentes.

    Isto tudo que eu disse, são Questões de Estilo do Java.
    Tirando uma coisa ou outra, e o código parece-me um bocado confuso, acho que está tudo.
    Falta a pergunta final, o programa funciona em pleno? Antes de entregar é bom verificar se está tudo perfeito.
    Cada programador, é como cada qual, ninguém pensa da mesma maneira, mas com entre-ajuda, as coisas ficam mais facil, pessoalmente não entregaria o código assim, não desprezando de forma alguma todo o trabalho que tiveste.

    Cumps e fica bem:wah:
     
  13. J[PT]

    J[PT] Power Member

    Sim o trabalho ja foi entregue, tudo funcionava dentro do que foi pedido, com alguma protecção para erros. So comentei melhor o que fiz no NOTEPAD ++ que dá um geitão para adicionar uns comentarios...

    A class le.class foi entregue pelo tutor do projecto para nos servirmos dela para fazer isto...

    Fui dos poucos que fez isto a correr de tras pra frente e da frente para tras... com tao poucas horas de java e mesmo dificil.

    Se calhar o proximo passo com o intuito de aprender mais qualquer coisa, talvez criar um interface grafico com o Joptionpane... mas agora preciso de descansar a cabeça uns dias...

    sinceramente agora percebo o que sofre um programador... quase não deve ter vida propria...

    Muito obrigado por todas as ideias que me tens deixado, acredita que ajuda muito e é um alento para continuar a melhorar...
     
  14. MadOnion

    MadOnion Folding Member

    De nada, a comunidade está aqui para ajudar. E no que toca a java, se eu puder ajudar e souber, estarei sempre ao corrente da situação para ajudar quem precisa.

    Cumps e bons projectos :P
     

Partilhar esta Página