C/Visual C - Ayudanme Programa de C++ sobre ciclos selectivos

   
Vista:

Ayudanme Programa de C++ sobre ciclos selectivos

/*
Una compañia aerea posee las siguientes categorias de pasajes P= Primera, T= Turista
y A=Azul. Por un viaje a europa y estados unidos(lugares con los que opera unicamente),
posee los siguentes precio base, 1500, 900, 650 en cada una de las categorias respectivamente.
Esos precios pueden sufrir un descuento, teniendo en cuenta la edad del pasajero, a
saber: Menores de un año, abonana solo un 10% del precio base, menores de 3 años, abonana el
30% del precio base y menores de 5 años, abonana el 50% del precio base. El equipaje premitido
para cada pasajero para mayor de 5 años son 2 valijas de 12kg cada una, en caso de exederse
de la cantidad de valijas se abonara un recargo de 15.00 por cada una adicional, si se
sobre pasara en el peso estipulado como tope, el adicional es de 2.50 dolares por cada
Kg exedido, se pide calcular para cada pasajero final y por el avion el peso total. Cada
avion es de 20 pasajeros.
*/

Utilice ciclo While....

Lo e intentado una y otra vez pero el programa no me sale ni siquiera logro hacer la primera categoria...ayudenme por favor.

Aca les dejo el programa de lo que llevo.....

#include <stdio.h>
#include <conio.h>

void main()
{
int Edad, Cant_valijas, Pasajeros, Peso, Recargo, Peso_Final_Pasajero, Peso_Final_Avion;
float Precio_Base, Descuento, Precio_Final;
char Categorias;
Pasajeros = 1;
printf("Bienvenido Pasajero\n");
printf("Intruduzca su Categoria, Escriba P, T o A\n");
scanf("%c", & Categorias);
while (Categorias == 'P')
{
printf("Introduzca la Edad\n");
scanf("%d", & Edad);
if (Edad <= 1)
{
Precio_Base = 1500;
Peso_Final_Pasajero = 0;
Peso_Final_Avion = 0;
Descuento = (1500 * 30)/100;
Cant_valijas = 0;
Peso = 0;
Recargo = 0;
Precio_Final = Descuento;
printf("El Precio total es:\n", Precio_Final);
printf("El Peso Total es: 0\n");
printf("El Recargo es: 0\n");
printf("La Cantidad de Valijas son: 0\n");
}
if (Edad <=3)
{
Precio_Base = 1500;
Peso_Final_Pasajero = 0;
Peso_Final_Avion = 0;
Descuento = (1500 * 30)/100;
Cant_valijas = 0;
Peso = 0;
Recargo = 0;
Precio_Final = Descuento;
printf("El Precio total es:450\n");
printf("El Peso Total es: 0\n");
printf("El Recargo es: 0\n");
printf("La Cantidad de Valijas son: 0\n");
}
if (Edad <=5)
{
Precio_Base = 1500;
Peso_Final_Pasajero = 0;
Peso_Final_Avion = 0;
Descuento = (1500 * 50)/100;
Cant_valijas = 0;
Peso = 0;
Recargo = 0;
Precio_Final = Descuento;
printf("El Precio total es:750\n");
printf("El Peso Total es: 0\n");
printf("El Recargo es: 0\n");
printf("La Cantidad de Valijas son: 0\n");
}
if (Edad >=5)
{
Precio_Base = 1500;
printf("Cuantas Valijas tiene el Pasajero?\n");
scanf("%d" , Cant_valijas);
Peso = Cant_valijas * 12;
if (Peso >= 12)
{
Recargo = 15.00;
}
Descuento = (1500 * 50)/100;
Precio_Final = Descuento + Recargo;
printf("El Precio total es:\n" , Precio_Final);
printf("El Peso Total es: %d \n", Peso);
printf("El Recargo es:\n" , Recargo);
printf("La Cantidad de Valijas son: %d \n");
Peso_Final_Pasajero = Peso;
Peso_Final_Avion = Peso;
}
}
getch();
}
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

Ayudanme Programa de C++ sobre ciclos selectivos

Publicado por Juan R. (6 intervenciones) el 29/10/2015 19:04:13
Buenas "Ayuda"

Creo que te has liado básicamente porque no te has tomado un minuto para leerte el enunciado bien. Al final lo de los importes te da más o menos igual (si tienes cantidades fijos, por ejemplo el sueldo base, es mejor que sean constantes #define sueldo_base = 900), ya que por lo que escribes aquí no es lo que se pide. Lo que se te pide es el peso total que lleva un pasajero y el peso total que lleva un avión, no? Entonces lo demás en principio te da igual. Así que yo tengo una propuesta:

webprogram


Si al final necesitas el ejercicio con dinero de billetes y demás, se puede mirar; pero si el enunciado no te lo pide, no te líes, haz lo que pone y punto. En ejercicios como éste igual no es mucho lío programar lo demás, pero a medida que haces cosas más grandes, cuanto más vueltas tratas de darle a algo, más probabilidades tienes que después sea un coñazo de entender.

También, sobre el código que tienes tú. Deberías pensar en utilizar instrucciones switch para separar las condiciones, queda más elegante y más visible que tropecientos if. Por ejemplo, imagínate el tema de categorías, sería algo así

1
2
3
4
5
6
7
8
9
10
11
12
swtich(Caterogarías){
  case 'P':
  tu código
break;
case 'T':
tu código
break;
....
default:
printf("Categoría no válida");
break;
}

Por último, decirte que muchas veces cuando en varias partes del programa usas las mismas instrucciones, muchas veces se puede hacer que éstas sólo se escriban una vez, es optimizar código, queda más elegante y mucho más entendible.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Ayudanme Programa de C++ sobre ciclos selectivos

Publicado por Andrés growlad@gmail.com (2 intervenciones) el 30/10/2015 01:14:07
Oooooo gracias JUAAAAANNNN un SALUDAZOO muchas gracias y bueno creo q es pracica lo que nesecito haha y otra cosita.....en mi colegio aun no hemos dado "swtich" y pues no conocia eso.....pero por lo demas creo q si lo analizo lo entendere..gracias juan....podre contar contigo en otra ocasion? :D?..Saludoss desde Panamá :D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayudanme Programa de C++ sobre ciclos selectivos

Publicado por aguml (173 intervenciones) el 30/10/2015 12:47:49
Si no diste switch puedes usar if...else if...else.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar