Minha intenção foi criar um código para oferecer descontos de acordo com o numero de indicações, dependendo do curso:
exemplo
a pessoa escolhe ingles o curso é 120 reais, se ela conseguir 6 indicações a formula vai ser [color=red]// 6 a 10 1% por indicação
// 1,2 é 1% de 120!![/color]
ou seja 1.6 * indicações!
Mas esse não é o problema no código, eu ultilizei if else para limitar a quantidade de indicações de acordo com o desconto,
se ( indicações > 5 e indicaçoes < 10)
pessoa recebe 1.2 reais por indicação
na lógica seria perfeito, porém olha o pepino que acontece no código:
eu coloco o numero de indicações > indica = 15
no programa deveria calcular somente o ultimo if, pois [color=#444444]15 > 11 e < 21.[/color][color=darkred] [/color]
Más o programa calcula o desconto de todos ifs :shock:
if ((indica > 11) && (indica <21))
Eu não quero resposta pronta, se alguém souber onde está o pepino, por favor me de uma dica!!
Grato
package escolainglesrepete;
import javax.swing.JOptionPane;
public class EscolaInglesRepete {
public static void main(String[] args) {
String nome,curso,nome2;
int indica, codigoaluno, codcurso,numeroindicacao,loops=0,nloop;
double desconto,total;
do
{
codigoaluno = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o código do aluno: "));
nome = JOptionPane.showInputDialog(null, "Digite o nome do aluno :");
JOptionPane.showMessageDialog(null, "Tabela de Cursos:" +
"\n 1- Inglês." +
"\n 2-Espanhol" +
"\n 3-Mandarim", "Cursos", JOptionPane.INFORMATION_MESSAGE);
codcurso = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite o código do curso: "));
indica = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite a quantidade de indicações do aluno " + nome));
switch (codcurso)
{
case (1): // curso ingles faça o calculo com 120R$
if (indica < 6)
{
desconto = 0.6 * indica; // o desconto será de 0.6 reais por indicação!!
total = 120.0 - desconto;
JOptionPane.showMessageDialog(null, "O aluno " + nome + " tem direito há " + "R$, " + desconto + "de desconto, "
+ "sua parcela será de : "+"R%" + total );
}
else
if ((indica > 5) && (indica <11));
{
// 6 a 10 1% por indicação
// 1,2 é 1% de 120!!
desconto = 1.2 * indica; // Usa ponto não virgula!!
/* o desconto sera de 1,2 reais vezes o numero de indicações!!
* Exemplo .. 6 indicaçoes
*
* 1,2 * 6 = 7,6 reais! se o aluno tiver 6 indicações seu desconto será de 7,2 reais
*
* Segue este mesmo raciocinio para todos os ifs a seguir
*
* Abate 7,2 reais do total da parcela que é 120!
*/
total = 120.0 - desconto;
JOptionPane.showMessageDialog(null, "O aluno " + nome + " tem direito há " + "R$, " + desconto + " de desconto. "
+ "Sua parcela será de : "+"R$" + total );
}
if ((indica > 11) && (indica <21)); // 30 % é o limite maximo de desconto, portanto 20 indicações equivalem a 30 % de 120.
{
desconto = 1.8 * indica; // 1.8 é 1,5% de 120, o desconto será de 1.8 reais vezes o numero de indicações, para conseguir
// 30% o maximo permitido, será 20 indicações, ao passar disso o desconto será de 30% de 120 é igual a 36 reais.
total = 120.0 - desconto;
JOptionPane.showMessageDialog(null, "O aluno " + nome + " tem direito há " + "R$, " + desconto + " de desconto. "
+ "Sua parcela será de : "+"R$" + total );
}
}
nloop = JOptionPane.showConfirmDialog(null, "Novo aluno ?", "Cadastro", JOptionPane.YES_NO_OPTION);
}
while ( nloop ==0);
}
}