Dúvida sobre calculadora

8 respostas
F

Pessoal, estou criando uma calculadora simples, mas estou com uma dúvida… como faço nessa parte, tipo:

digito os números e a operação matemática + - x /

ai ficaria assim : total += n1 n2 + n3 n4;

eu estou com dúvida na parte do sinal … tipo… como ele vai reconhecer que cliquei no + e vai fazer a soma… ?

da forma que eu fiz eu coloquei dois campos… digitava no campo 1 e no campo 2 … quando clicava no operador matemático ele calculava… mas eu quero deixar so com 1 campo ai tou sem saber como faço essa parte para digitar tais numeros depois clicar no + e digitar o outro numero .

8 Respostas

ViniGodoy

Quando ele clicar no +, guarde o número atual numa variável.

F

é como eu disse. assim:

digita os números

12 “+” 20;

eu sou sem saber como eu faço para dividir o 12 do + e do 20

pedroroxd
.getIndexOf("+");

.substring( 0,  )

.substring()
gRoOve

Uma pergunta, por acaso está usando Swing ou fazendo direto pelo console?
Se estiver usando GUI, basta fazer como o Vini escreveu, quando digitar o primeiro número, mostra na tela, e quando clicar na operação salva o valor do primeiro número. Posta teu código pra gente te ajudar.

pedroroxd
gRoOve:
Uma pergunta, por acaso está usando Swing ou fazendo direto pelo console? Se estiver usando GUI, basta fazer como o Vini escreveu, quando digitar o primeiro número, mostra na tela, e quando clicar na operação salva o valor do primeiro número. Posta teu código pra gente te ajudar.
Ele não quer assim..

Não é dakele tipo:
-Digite um número: 8
-Digite outro número: 5
-Digite a operação: +
-O resultado é 13.

Ele disse:

felipevs:
é como eu disse. assim:

digita os números

12 "+" 20;

eu sou sem saber como eu faço para dividir o 12 do + e do 20

Ou seja, é algo do tipo:
-Digite o que deseja: 8 + 5
-O resultado é 13.

Se não entendi errado.. Se for realmente a operação inteira em uma linha, ficaria algo do tipo:
Scanner scn = new Scanner(System.in); //Criando o Scanner para ler o digitado

		System.out.println("Digite a linha de comando.");
		String linha = scn.nextLine().replace(" ", ""); // Lê a linha (sendo algo do tipo: 9 * 105)

		String[] ops = new String[] { "+", "-", "*", "/" }; //As possíveis operações
		String op = ""; //operação selecionada

		for (int i = 0; i < ops.length; i++) {
			if (linha.contains(ops[i])) { //nesse caso é somente uma operação, então podemos verificar apenas se ele contém uma das ops
				op = ops[i];
				break;
			}
		}

		int num1 = Integer.parseInt(linha.substring(0, linha.indexOf(op))); //acha o primeiro número, passa para int e guarda em uma variável
		int num2 = Integer.parseInt(linha.substring(linha.indexOf(op) + 1)); //acha o segundo número, passa para int e guarda em uma variável

		//Verirfica qual foi a operação desejada, realiza a operação e escreve no console.
		if (op.equals("+"))
			System.out.println(num1 + num2);
		else if (op.equals("-"))
			System.out.println(num1 - num2);
		else if (op.equals("*"))
			System.out.println(num1 * num2);
		else
			System.out.println(num1 / num2);

Ex.:
Digite a linha de comando.
[color=green]104 / 2[/color]
52

pedroroxd

Sugestão:
Depois implemente a solução para fazer algo do tipo:

Digite a linha de comando
[color=green]((104 / 2) * 5) - 3[/color]
O resultado é 257

F

estou usando swing

gRoOve

pedroroxd:
gRoOve:
Uma pergunta, por acaso está usando Swing ou fazendo direto pelo console?
Se estiver usando GUI, basta fazer como o Vini escreveu, quando digitar o primeiro número, mostra na tela, e quando clicar na operação salva o valor do primeiro número. Posta teu código pra gente te ajudar.

Ele não quer assim…

Não é dakele tipo:
-Digite um número: 8
-Digite outro número: 5
-Digite a operação: +
-O resultado é 13.


Mas em nenhum momento eu falei que a calculadora funcionaria assim, leia com atenção o que eu escrevi.
De qualquer forma ele está usando Swing, então tente desenvolver como te falei.
Olhe este tópico, no final dele tem um link para uma vídeo aula ensinando a montar uma calculadora, acho que pode te ajudar.[youtube]

Criado 11 de fevereiro de 2011
Ultima resposta 12 de fev. de 2011
Respostas 8
Participantes 4