Agenda "Celular"em java (RESOLVIDO)

10 respostas
nathy.skechers

Oieeee galerinha, To precisando de ajuda aqui em um trabalho.
Preciso fazer um programa para controlar uma agenda que possibilite amazenar: Código, nome, telefone, email.
fiz já boa parte, mas como me falta um certo conhecimento em java preciso da ajuda de vcs para dar uma ajeitada nisto pois tem mts erros.

Agradeco desde ja :smiley:

import javax.swing.JOptionPane;
public class AOS {
	public static boolean sair = false;  
	public static final int N = 300;  
	public static int C = 0;  
	public static nome vetor [] = new nome[N]; 

	public static void main(String[] args) {
		menuPrincipal();
		
		String nome [] = new String[N];
		int telefone [] = new int[N];
		float email[] = new float [N];
	}		

	public static void menuPrincipal() {
		int op = 0;

		try{  
			op = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite uma Opção \n" +  
					"\n 1-Incluir contato"  + 
					"\n 2-Consultar por Nome" + 
					"\n 3-Consultar por Código" + 
					"\n 4-Editar contato" +
					"\n 5-Ver Todos Contatos"+ 
					"\n 6-Ver contato por ordem código" +
			"\n 7- Sair"));
		}  
		catch(Exception e){  
			JOptionPane.showMessageDialog(null, "Presta Atenção!!!");  
		}  
		switch (op){  
		case 1:  
			incluirContato();  
			break;  
		case 2:  
			consultarNome();  
			break;  
		case 3:  
			consultarCodigo();  
			break;  			
		case 4
			editar();
			break;			
		case 5: 
			mostrarTodos();
			break;			
		case 6:
			mostrarPorCodigo();
			break;			
		case 7:  
			sair();  
			break;			
		default:  
			JOptionPane.showMessageDialog(null, "Opção Invalida!!");  
		}  
	}  

	public static void incluirContato(){  
		if (vetor[0] == null){  
			menuPrincipal();  
		} 

		nome[C] = JOptionPane.showInputDialog("Informe o nome:");  
		telefone[C] = (int) Float.parseFloat( JOptionPane.showInputDialog("Informe o telefone:"));  
		email[C]= Float.parseFloat(JOptionPane.showInputDialog("Informe o E-mail"));  

		C = C + 1;

	}

	public static void consultarNome(String nome){
		if (vetor[0] == null){  
			menuPrincipal();  
		}  
		String compara = JOptionPane.showInputDialog("Digite o Nome para pesquisa");  
		boolean achei = false;  
		for (int i=0; i < C; i++){  
			if (compara.equals(vetor[i].nome)){  
				JOptionPane.showMessageDialog(null,vetor[i].nome+"Contato"); achei = true;  
			}  

		}  
		if (achei != true) {  
			JOptionPane.showMessageDialog(null, "Contato " + compara+" não encontrado");  
		}  
	}  

	public static void consultarCodigo() {
		if (vetor[0] == null){  
			menuPrincipal();  
		}  

		String compara = JOptionPane.showInputDialog("Digite o código para pesquisa");  
		boolean achei = false;  
		for (int i=0; i < C; i++){  
			if (compara.equals(vetor[i].codigo)){  
				JOptionPane.showMessageDialog(null,"Código " +vetor[i].codigo);  
				achei = true;  
			}  

		}  
		if (achei != true) {  
			JOptionPane.showMessageDialog(null, "Código " + compara+" não encontrado");  
		}  
	}

	public static void editar(String nome){
		if (vetor[0] == null){  
			menuPrincipal();  
		}  
		String compara = JOptionPane.showInputDialog("Digite o contato que deseja ditar");  
		boolean achei = false;  
		for (int i=0; i < C; i++){  
			if (compara.equals(vetor[i].nome)){  
			int opcao = 0;  
			try{  
				opcao = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite uma Opção que deseja editar\n" +  
							"1 - Nome \n" +
							"2 - Telefone \n" +
							"3 - E-mail  \n" +  
							"4 - SAIR"));  
						}  
						catch(Exception e){  
							JOptionPane.showMessageDialog(null, "Preste Atenção!!!");  
						}  
						switch (opcao){  
						case 1:  
							incluirContato();
							break;  
						case 2:  
							pesquisarNome();  
							break;  
						case 3:  
							pesquisarCodigo();  
							break;  
						case 4:  
							sair();  
							break;  
						default:  
							JOptionPane.showMessageDialog(null, "Opção Invalida!!");
						
						}

		public static void mostrarTodos (){
		
	}
	
	public static void mostrarPorCodigo (){
		
	}
			
	public static void sair(){  
				if(JOptionPane.showConfirmDialog(null, "Deseja Realmente Sair?") == 0){  
					sair = true;  
		}
	}
}

10 Respostas

pedromuyala

Bem vinda! :smiley:

:roll: Não sei se vou ajudar muito, mas…

Antes de mais nada acho que deve separar a Pessoa em uma classe própria.
Cria uma classe Pessoa com os atributos e métodos referentes a ela isolando a Agenda da pessoa em sí e posta aí o código.

Vlw.

nathy.skechers

humm, entendo.

mas neste trabalho posso utilizar apenas uma classe

a AOS = Atividade Orientada Supervisionada

posso também utilizar subrotinas: procedimento e funcao, variáveis : locais e globais, parâmetro, variáveis indexadas :matriz e vetor.
alias, posso utilizar apenas estes recursos.

:confused:

Andre_Brito

Ahm… Acho que você não aprendeu OO ainda, né?

Diz onde estão os erros.

Editado.
Alguns erros:
Na linha 6, você tem um vetor do tipo nome. Acho que você quis dizer que é do tipo String. Se for, dentro da main tem um vetor com esse nome. Acho que ele não deveria estar ali. Na verdade, os vetores de email, telefone e nome deveria estar fora da main, pra eles serem utilizados nas outras funções.

nathy.skechers

ahh podi creee uhauahua

vo arruma isso!

na verdade eu tenhu aulas de Algoritmo II nao eh nem programação ainda…

:smiley:

Andre_Brito

Mas é programação :slight_smile:
Com o tempo você vai ver coisas e mais coisas e mais coisas. OO meio que une programação com um pouco de arquitetura e uns conceitos mais interessantes.

Aquilo resolveu o problema?

nathy.skechers

hehehehe…

Ajudou, mas ainda ha muitos erros…

:confused:

mas aos poucos vou vendo aqui…

nathy.skechers

:smiley:
mas Brigadinhaa :!:

nathy.skechers

Bom... dei uma arrumada no aterior ali....
ficou mais ou menos assim..

pequeno problema, qualquer opçao do menu que eu digite ele retorna ao menu principal
o unico que funciona é o 7 (sair)

alguem poderia ajudar?

import javax.swing.JOptionPane;
public class finana {

	public static void main(String[] args) {
		menuPrincipal();
	}		
	  

	public static void menuPrincipal() {
		int op,C=0;
		int[] codigo = new int [300]; 
		String nome []= new String[300];
		int telefone [] = new int[300];
		String email[] = new String [300];

		do{
			op = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite uma Opção \n" +  
					"\n 1-Incluir contato"  + 
					"\n 2-Consultar por Nome" + 
					"\n 3-Consultar por Código" + 
					"\n 4-Editar contato" +
					"\n 5-Ver Todos Contatos"+ 
					"\n 6-Ver contato por ordem código" +
			"\n 7- Sair"));
		}
			while (op <=6);
			switch (op){  
			case 1:   
				if(C<300){
					incluirContato(codigo,C, nome, telefone, email);
					C=C+1;
				}
				else
					JOptionPane.showMessageDialog(null, "Limite Esgotado!!");
				break;  
			case 2:  
				String nomePes = JOptionPane.showInputDialog("Digite o nome que deseja Pesquisar:");
				consultarNome(codigo,C, nome, telefone, email, nomePes);
				break;  
			case 3:  
				int codPes=0;
				codPes = Integer.parseInt(JOptionPane.showInputDialog("Digite o código que deseja Pesquisar:"));
				consultarCodigo(codigo,C,nome,telefone,email,codPes);

				break;  			
			case 4:
				int codEditar;
				codEditar = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o código que desejas buscar do contato para edita-lo:"));
				editar(codigo, C, nome,telefone,email, codEditar);
				break;			
			case 5: 
				mostrarTodos(codigo,C, nome, telefone, email);
				break;			
			case 6:
				mostrarPorCodigo(codigo,C, nome, telefone, email);
				break;			
			case 7:  
				sair();  
				break;			
			default:  
				JOptionPane.showMessageDialog(null, "Opção Invalida!!");
			
		
			}
		
	}

		public static void incluirContato(int[] codigo, int C, String [] nome, int []telefone, String [] email){  


			nome [C]= JOptionPane.showInputDialog("Informe o nome:");  
			telefone[C] = Integer.parseInt( JOptionPane.showInputDialog("Informe o telefone:"));
			email[C]= JOptionPane.showInputDialog("Informe o E-mail");  
		}

		public static void consultarNome(int[] codigo, int C, String [] nome, int []telefone, String [] email, String nomePes){

			for(int i=0;i<C;i++){
				if(nome[i].compareTo(nomePes)==0){
					JOptionPane.showMessageDialog(null, "Nome = "+ nome[i] +
							"Código =" + codigo [i]+
							"E-mail =" + email [i]);

					return;
				}
			}
			JOptionPane.showMessageDialog(null,"Nome não cadastrado");
		}  

		public static void consultarCodigo(int[] codigo, int C, String [] nome, int []telefone, String [] email, int codPes){

			for(int i=0;i<C;i++){
				if(codigo[i]== codPes){

					JOptionPane.showMessageDialog(null, "Nome = "+ nome[i] +
							"Código =" + codigo [i]+
							"E-mail =" + email [i]);
					return;
				}				
			}		
			JOptionPane.showMessageDialog(null,"Nome não cadastrado");
		}  
		
		public static void editar(int[] codigo, int C, String [] nome, int []telefone, String [] email, int codEditar){
			for(int i=0;i<C;i++){
				if(codigo[i]== codEditar){
					nome [i]= JOptionPane.showInputDialog("Informe o novo nome:");  
					telefone[i] = Integer.parseInt( JOptionPane.showInputDialog("Informe o novo telefone:"));
					email[i]= JOptionPane.showInputDialog("Informe o novo E-mail");  
					return;
				}
			}
		}
		public static void mostrarTodos(int[] codigo, int C, String [] nome, int []telefone, String [] email){

			JOptionPane.showMessageDialog(null,"Nome :" + nome ); 
			JOptionPane.showMessageDialog(null,"Telefone :" + telefone ); 
			JOptionPane.showMessageDialog(null,"Email :" + email ); 
		}

		public static void mostrarPorCodigo (int[] codigo, int C, String [] nome, int []telefone, String [] email){
			JOptionPane.showMessageDialog(null,"Código :" + C ); 

		}
		public static boolean sair = false;
		public static void sair(){  
			if(JOptionPane.showConfirmDialog(null, "Deseja Realmente Sair?") == 0){  
				sair = true;  
				
			}else{
				
		       menuPrincipal();
			}
		}
	}
>
lina

Oi,

De uma olhada em seu código:

do{ op = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite uma Opção \n" + "\n 1-Incluir contato" + "\n 2-Consultar por Nome" + "\n 3-Consultar por Código" + "\n 4-Editar contato" + "\n 5-Ver Todos Contatos"+ "\n 6-Ver contato por ordem código" + "\n 7- Sair")); } while (op <=6);

Como você está utilizando do{} while{} ele ficará em looping de acordo com a condição de dentro do while.

No seu caso, você está utilizando: op <= 6. Como você está digitando 1, 2, 3, 4 ou 5 ele voltará automaticamente para a condição do{}.

O correto seria colocar esse seu switch depois das opções do menu!

Tchauzin!

nathy.skechers

OK RESOLVIDO
:slight_smile:

Brigadinha!!

Criado 18 de outubro de 2009
Ultima resposta 23 de out. de 2009
Respostas 10
Participantes 4