Código Java para Facturación de Abonados Telefónicos con Scanner
Clasificado en Informática
Escrito el en
español con un tamaño de 4,28 KB
Programa en Java para la facturación de abonados telefónicos
Código fuente
public class A30307
public static void main(String[] args) throws Exception
{
char res;
String nombre, dir, apell;
int nroAb, tipoLi, tipoTlf, pasos, cUsu = 0;
float impTipoLi, impTipoTlf, impPasos, impTotal, impIva, impPagar;
float medCobrar, acuCobrar = 0, impMax = 0, impMin = 0;
Scanner teclado = new Scanner(System.in);
do {
System.out.print("\nTeclee el número de abonado: ");
nroAb = teclado.nextInt();
teclado.nextLine();
System.out.print("\nTeclee el nombre del abonado: ");
nombre = teclado.nextLine();
System.out.print("\nTeclee los apellidos del abonado: ");
apell = teclado.nextLine();
System.out.print("\nTeclee la dirección del abonado: ");
dir = teclado.nextLine();
System.out.print("\nTeclee el tipo de línea: ");
tipoLi = teclado.nextInt();
System.out.print("\nTeclee el tipo de teléfono: ");
tipoTlf = teclado.nextInt();
System.out.print("\nTeclee el número de pasos: ");
pasos = teclado.nextInt();
while (pasos < 0) {
System.out.print("\nNúmero de pasos " + pasos + " erróneo." +
" Teclee un valor superior o igual a 0: ");
pasos = teclado.nextInt();
}
if (tipoLi < 5)
impTipoLi = 6;
else if (tipoLi <= 10)
impTipoLi = 12;
else
impTipoLi = 18;
// Por tipo de teléfono
switch (tipoTlf) {
case 10: impTipoTlf = 1; break;
case 20: impTipoTlf = 2; break;
case 30: impTipoTlf = 3; break;
default: impTipoTlf = 4;
}
impPasos = pasos * 0.06F;
impTotal = impTipoLi + impTipoTlf + impPasos;
impIva = impTotal * 0.16F;
impPagar = impTotal + impIva;
System.out.printf("\nNúmero de abonado: %04d", nroAb);
System.out.printf("\nApellidos y nombre: %-15s %-15s", apell, nombre);
System.out.printf("\nDirección: %-30s", dir);
System.out.printf("\n Detalle de conceptos Importes");
System.out.printf("\n-----------------------------------------");
System.out.printf("\n1. Cuotas de abono");
System.out.printf("\nTipo de línea: %2d %6.2f", tipoLi, impTipoLi);
System.out.printf("\nTipo teléfono: %2d %6.2f", tipoTlf, impTipoTlf);
System.out.printf("\n2. Servicio automático");
System.out.printf("\nNúmero de pasos: %4d %6.2f", pasos, impPasos);
System.out.printf("\n --------- ");
System.out.printf("\n Total importes: %6.2f", impTotal);
System.out.printf("\nI.V.A. %6.2f", impIva);
System.out.printf("\n --------- ");
System.out.printf("\n Total a pagar: %6.2f", impPagar);
cUsu++;
acuCobrar += impPagar;
if (cUsu == 1) {
impMax = impPagar;
impMin = impPagar;
}
else if (impPagar < impMin)
impMin = impPagar;
else if (impPagar > impMax)
impMax = impPagar;
System.out.println("\nSi quiere tratar otro usuario teclee -S-");
res = (char) System.in.read();
res = Character.toUpperCase(res);
} while (res == 'S');
medCobrar = acuCobrar / cUsu;
System.out.printf("\n RESUMEN DE LA FACTURACIÓN");
System.out.printf("\n--------------------------------------");
System.out.printf("\n1.- Media de importes a cobrar: %6.2f", medCobrar);
System.out.printf("\n2.- Mayor importe a cobrar : %6.2f", impMax);
System.out.printf("\n3.- Menor importe a cobrar : %6.2f", impMin);
}
}