Dev - C++ - Ayuda con este problema

 
Vista:

Ayuda con este problema

Publicado por Eliud (1 intervención) el 30/07/2021 21:17:30
Programa No. 1. Haga un programa en lenguaje C y su respectivo diagrama de flujo para calcular lo que hay que pagar por un conjunto de llamadas telefónicas a la empresa FDP Telecoms, cuya renta de servicios está en $400.00. Por cada llamada se ingresa el tipo (Internacional, Nacional, Local) y la duración en minutos. El criterio que se sigue para calcular el costo de cada llamada es el siguiente:
Internacional: Por los 3 primeros minutos $7.00. Cada minuto adicional $3.00
Nacional: Por los 15 primeros minutos $1.50. A partir del minuto 16 se cobra $2.00 por minuto.
Local: Las primeras 50 llamadas no se cobran. Luego, cada llamada cuesta $0.70
El programa debe mostrar una factura como la que se ve a continuación:
FDP. Telecoms-Factura.
Renta Servicio:$400.00
Llamada Internacional: duración 17min.
Tarifa base: $7.00, Min. Adicionales: (14 min.) $42.00
Subtotal= $49.00
Llamada Nacional: duración 35min.
Tarifa base: $1.50, Min. Adicionales: (20 min.) $40.00
Subtotal= $41.50
Llamadas Locales: 58.
Tarifa base: $0.00, Llamadas Adicionales: (8 min.) $5.60
Subtotal= $5.60
Total a pagar = $400+$49.00+$41.50+$5.60=$496.10




Esto es lo que llevo:


#ifdef __MSDOS__
#include <iostream.h>
#include <stdlib.h>
#else
#include <iostream>
#include <cstdlib>
using namespace std;
#endif
#include <conio.h>

int main (void)
{
int llamadas_locales, tipo_de_llamada;
float duracion_en_minutos, pago_por_la_llamada, total;
char tecla_repetir;
llamadas_locales = 0;
total = 0;
do {
system ("cls");
cout << "Ingresa el valor de duracion en minutos: ";
cin >> duracion_en_minutos;
cin.get();
pago_por_la_llamada=0;
cout << "Selecciona el valor de tipo de llamada." << endl;
cout << "\t1.- Internacional" << endl;
cout << "\t2.- Nacional" << endl;
cout << "\t3.- Local" << endl;
cout << "\t: ";
do {
cin >> tipo_de_llamada;
cin.get();
if (tipo_de_llamada<1||tipo_de_llamada>3)
{
cout << "Valor incorrecto. Ingr\202salo nuevamente.: ";
}
} while (tipo_de_llamada<1||tipo_de_llamada>3);
if(tipo_de_llamada==1&&tipo_de_llamada<=3)
pago_por_la_llamada=duracion_en_minutos*7.0;
if(tipo_de_llamada==1&&tipo_de_llamada>3)
pago_por_la_llamada=3.0*7.0+(duracion_en_minutos-3)*3.0;
if(tipo_de_llamada==2&&tipo_de_llamada<=3)
pago_por_la_llamada=duracion_en_minutos*2.59;
if(tipo_de_llamada==2&&tipo_de_llamada>3)
pago_por_la_llamada=15.0*1.50+(duracion_en_minutos-3)*2.00;
if(tipo_de_llamada==3)
llamadas_locales=llamadas_locales+1;
if(tipo_de_llamada==3&&llamadas_locales>50)
pago_por_la_llamada=0.70;
total=total+pago_por_la_llamada;
cout << "Valor de pago por la llamada: " << pago_por_la_llamada << endl;
cout << endl;
cout << "\250Deseas repetir el proceso? (S/N): ";
do {
tecla_repetir = (char) getch();
} while (tecla_repetir!='s' && tecla_repetir!='n' && tecla_repetir!='S' && tecla_repetir!='N');
cout << endl;
} while (tecla_repetir=='s' || tecla_repetir=='S');
cout << "Valor de llamadas locales: " << llamadas_locales << endl;
cout << "Valor de total: " << total << endl;
system ("pause");
return EXIT_SUCCESS;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder