Ajuda no seguinte algoritmo!

4 respostas
S

Olá pessoal!!

Estou engatinhando em java mas já comecei a dar os primeiros passos.

Analisando o seguinte algoritmo:

  1. Uma certa Empresa fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de um novo produto lançado no mercado. Para isso, foi solicitado o sexo do entrevistado (M=masculino e F=feminino) e sua resposta (sim ou não). Sabendo-se que foram entrevistadas 50 pessoas, fazer um algoritmo que calcule e escreva:
    a. O número de pessoas que responderam sim;
    b. O número de pessoas que responderam não;

import javax.swing.JOptionPane;

public class pesquisaMercado {
	public static void main(String args[]){
		int x=0,sim=0,nao=0,y=0,masc=0,fem=0,i;
		float porcMasc=0,porcFem=0;
		for (i=0;i<10;i++){
y=(Integer.parseInt(JOptionPane.showInputDialog("DIGITE A OPÇÃO CONFORME O SEU SEXO \n " + "1 - MASCULINO \n " + "2 - FEMININO")));
		if (y==1){
		masc++;
		}if (y==2){
		fem++;
				}
x=(Integer.parseInt(JOptionPane.showInputDialog("VOCÊ APROVA O PRODUTO?\n " + "1 - SIM \n " + "2 - NÃO")));
		if (x==1){
		sim++;
		}if (x==2){
		nao++;
		}
	}
		porcMasc=((masc*100)/10);
		porcFem=((fem*100)/10);
JOptionPane.showMessageDialog(null, "RESULTADO DA PESQUISA \n" +
"TOTAL DE HOMENS PESQUISADOS = "+masc+"\n"+ "TOTAL DE MULHERES PESQUISADAS = "+fem+"\n"+"\n"+ "PARCIAL DA PESQUISA \n" + "MASCULINO = "+porcMasc+"% \n" + "FEMININO "+porcFem+"%" );		
	}
}

Ó código acima esta rodando legal, fiquei bem contente quando consegui implementa-lo, mesmo pq como disse estou engatinhando.

Gostaria de saber o seguinte: quando solito que o usuário digite uma opção tipo: y=(Integer.parseInt(JOptionPane.showInputDialog("DIGITE A OPÇÃO CONFORME O SEU SEXO \n " + "1 - MASCULINO \n " + “2 - FEMININO”)));

como eu poderia fazer para que quando ele digitasse uma opçao que não fosse a 1 e 2 aparecesse uma informação na tela que o informasse “Presta atenção” “Opção Inválida”???

Eu criei uma nova classe assim:

private static void menu() {
      int opcao = 0;
      try{
opcao= Integer.parseInt(JOptionPane.showInputDialog("INFORME O SEU SEXO: \n " + "1 - MASCULINO \n " + "2 - FEMININO"));
			}
	catch (Exception e){
JOptionPane.showMessageDialog(null, "Digite Com ATENÇÃO!");
	switch (opcao){
	case 1:
	masculino();
	break;
	case 2:
	feminino();
	break;
	default:
	JOptionPane.showMessageDialog(null, "Opção Inválida");
	}
	}
	}

Mas não deu certo claro - havia colocado no metodo main o seguinte:

boolean sair = false;
	while (!sair){
	menu();

Enfim não consegui desta forma. Sei que há outras maneiras, talves até bem simples mas to apanhando feio. Se alguém puder me ajudar ficarei muito agradecido.

Valeu a todos

SkFogo

EDIT - Por favor, ponha os tags [ code ] para formatar seu código . É bastante simples, basta usar o botão [ code ] no início e no fim de seu código.

4 Respostas

dsfextreme
private static void menu() {
       int opcao = 0;
       
        try{
           opcao= Integer.parseInt(JOptionPane.showInputDialog("INFORME O SEU SEXO: \n " + "1 - MASCULINO \n " + "2 - FEMININO"));
	switch (opcao){
 		case 1:	masculino();
 			break;
 		case 2:feminino();
 			break;
 		default: JOptionPane.showMessageDialog(null, "Opção Inválida , Digite Com ATENÇÃO!");
 	}
       }catch (Exception e){
        }
 }

Tenta ae !

S

Seguinte cara não da para criar uma condição mais simples, ou seja quando a opção for diferente de 1 e 2 de a mensagem, tipo um boolean??

Desde já valeu!!

SkFogo

peczenyj

que tal usar um combo ?

import javax.swing.JOptionPane;

public class pesquisaMercado {
 	
	public static void main(String args[]){

 		double porcMasc,porcFem;
 		int sim=0,masc=0,nao,fem,total=10;
 		String ask_sex = "DIGITE A OPÇÃO CONFORME O SEU SEXO";
 		String ask_prod = "VOCÊ APROVA O PRODUTO?"; 				

		Object[] sex  = { "masc", "female"};

		Object[] prod = { "sim" , "não"};

		for(int i=0;i<total;i++) {
			Object resp_sex = JOptionPane.showInputDialog(null,
			            ask_sex, "Input",
			            JOptionPane.INFORMATION_MESSAGE, null,
	            		sex, sex[0]);
			
			if(resp_sex.equals(sex[0])) masc++;
				
			Object resp_prod = JOptionPane.showInputDialog(null,
		            ask_prod, "Input",
		            JOptionPane.INFORMATION_MESSAGE, null,
	        		prod, prod[0]);
			
			if(resp_prod.equals(prod[0])) sim++;
		}
		
		fem = total - masc;
		porcMasc = 100.00 * masc/total;
		porcFem  = 100.00 - porcMasc;
		
		JOptionPane.showMessageDialog(null, "RESULTADO DA PESQUISA\n"
				+ "TOTAL DE HOMENS PESQUISADOS = "
				+ masc
				+"\nTOTAL DE MULHERES PESQUISADAS = "
				+ fem 
				+"\n\nPARCIAL DA PESQUISA" 
				+ "\nMASCULINO = "
				+ porcMasc
				+"%\nFEMININO "
				+ porcFem
				+"%" );		
				 
		
		System.exit(0);
 	}
}
S

Grande peczenyj,

Cara agora diz ai, eu na moral manjo muito pouco de java, achei o máximo como ficou a implementação em combo, mas teria como vc me explica com suas palavras pra que serve cada uma das funções como por exemplo:

ask

prod, prod[0]);

if(resp_prod.equals(prod[0])) sim++;

Assim como os demias agradeço desde já sua explicação!!

SkFogo

Criado 19 de junho de 2006
Ultima resposta 20 de jun. de 2006
Respostas 4
Participantes 3