[ Foro de Java ]

ayuda con este programa, me pidieron hacerlo todo con if

08-Nov-2020 22:31
Invitado (martinez)
2 Respuestas

Desarrollar un programa menú que permita calcular lo que hay que pagar por n llamadas telefónicas realizadas, los datos por teclear de cada llamada son el tipo y la duración.
El desplegado del menú principal se indica a continuación.
TELEFÓNOS DE MÉXICO
A LOCAL
B NACIONAL
C INTERNACIONAL
TECLEA LA OPCIÓN DESEADA
Si la llamada es LOCAL y si tiene una duración menor a 5 minutos, su costo es de $0.70 el minuto, en caso contrario de $0.80.
Si la llamada es NACIONAL y si tiene una duración menor a 5 minutos, su costo es de $1.50 el minuto, en caso contrario de $1.20.
Si la llamada es INTERNACIONAL y si tiene una duración menor a 5 minutos, su costo es de $2.00 el minuto, en caso contrario de $1.80.
Al final el programa debe desplegar el total a pagar por las llamadas locales, nacionales, internacionales y el gran total.


20-Nov-2020 02:32
Franco Garcia

ok yo lo haria asi:
final static char Local = 'A', NACIONAL = 'B', INTERNACIONAL='C'; // Creas constantes para "Acordarte de los casos // (Con  nombres facilmente identificables)
public static void main(String[] args)
{
char tipo = 0;
int duracion=0;
double total = 0;
int eleccion = 0;
Scanner teclado = new Scanner(System.in);
Do
{
System.out.println("TELEFÓNOS DE MÉXICO\n"+
);
}
While(eleccion != 0);


}


20-Nov-2020 03:07
Franco Garcia

perdon, lo empece a escribir y se me cayo el vaso con agua y te mande cualqueir cosa:
VA DE NUEVO:
import java.util.Scanner;

public class Main
{
final static char LOCAL = 'A', NACIONAL = 'B', INTERNACIONAL='C'; // Creas constantes para "Acordarte de los casos // (Con  nombres facilmente identificables)
public static void main(String[] args)
{
char tipo = 0;
int duracion = 0, eleccion = 1; // eleccion por si quiere cargar otra llamada o NO
double local=0, nacional=0, internacional=0, total = 0;
Scanner teclado = new Scanner(System.in);
do// usamos do while para que lo repita POR LO MENOS 1 vez
{
System.out.println("TELEFÓNOS DE MÉXICO\n"+
  "A LOCAL\n"+
  "B NACIONAL\n"+
  "C INTERNACIONAL");
tipo = teclado.next().charAt(0); // No esta validacion de erroes, si mete cualquier cosa explota. Por ejemplo, numeros. y tiene que ingresar MAYUSCULA Ej: A.
System.out.println("Duracion: ");
duracion = teclado.nextInt();
if(tipo==LOCAL) //
{
if(duracion<5)
{
local += duracion* 0.7;
}
else
{
local += duracion* 0.8;
}
}
else if(tipo==NACIONAL)
{
if(duracion<5)
{
nacional += duracion* 1.5;
}
else
{
nacional += duracion* 1.2; // puse los datos que pasaste, le sale mas barato hacer llamadas largas aca... raro.
}
}
else if(tipo==INTERNACIONAL)
{
if(duracion<5)
{
internacional += duracion* 2.0;
}
else
{
internacional += duracion* 1.8;
}
}
else
{
System.out.println("Opcion incorrecta");
System.out.println("desea probrar de nuevo: [1 = SI] - [0 = NO]");
eleccion = teclado.nextInt(); // de nuevo, sin comprobacion de errores.
}
total = local+nacional+internacional;
System.out.println("RESULTADO: \n"+
  "COSTO LLAMADAS LOCALES = $ "+ local+"\n"+
  "COSTO LLAMADAS NACIONALES = $ "+nacional+"\n"+
  "COSTO LLAMADAS INTERNACIONALES = $ "+internacional+"\n"+
  "TOTAL = $ "+total);
if(eleccion != 0)
{
System.out.println("Desea cargar otra llamada?: [1 = SI] - [0 = NO]");
eleccion = teclado.nextInt();
}
}
while(eleccion != 0);
System.out.println("Gracias por utilizar el programa");
System.exit(0);
}
}






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)