Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

ayuda con un programa que hago en c++

american idol

Bovino adicto
Desde
7 Jul 2008
Mensajes
534
Hola, agradecería a alguien que me ayude con este ejercicio.

Una universidad ha decidido poner servicios de transporte para sus alumnos que van del campus Norte al campus Sur y viceversa. Hay 2 tipos de transporte, en carro o en suburban, el transporte en carro cuesta $150 pesos sin importar la cantidad de personas que vayan en el carro; el transporte en suburban tiene un costo mínimo de $200 si viaja un pasajero o dos, y a partir del tercer pasajero el cobro es de $80 pesos por persona.
Algunos alumnos cuentan con credencial de descuento, con la cual obtienen un 10% de descuento del costo final de su transporte; es decir, primero se calcula el costo del viaje y al final se le aplica el descuento.
Se requiere que realices un programa en C++ que pregunte el tipo de auto que se quiere, después, si se trata de una suburban pregunte la cantidad de pasajeros y calcule el costo del viaje; luego pregunte si el alumno cuenta con credencial de descuento y si es el caso aplique el descuento, finalmente que muestre el costo del viaje.
Ahorita voy en la primera parte donde se pide lo del carro y esto es lo que llevo.

#include <stdio.h>
#include <iostream>

using namespace std;
using std::cin;
using std::cout;

int i,j;
int opcion;
int carro;
int costocarrro;
int suburban;
int costosuburban;
int credencial;
int pasajeros;
int a;
int b;
int totalcarro;
int totalsuburban;

int main ()
{

int opcion;
cout<<"Escoge tu opción de viaje:\n"
<<"A) Viaje en carro.\n"
<<"B) Viaje en suburban.\n"
<<endl;
cin>>opcion;

switch (char)
{
case (a) //si escoge carro
costocarro = 150
resp=1
while (resp==1)
{
printf("Ingresa el número de pasajeros:");
scanf("%d",&carro);
if (carro=>1)
{
costocarro = carro * 150;
}
printf("\n El total a pagar es: %d",costocarro);
}

printf("¿Cuentan con credencial de estudiante? 2=si 3=no");
scanf("%d", &resp);

resp=2
while (resp==2)
{
costocarro= costocarro * .10 - costocarro;
printf("El total a pagar es de: %d", costocarro);
}


resp=3
while (resp==3)
{
printf("el total a pagar es de %d, costocarro);
}
break;


case (b)//el de la suburban.
}

}
Me marca 16 errores, pero no sé que es lo que tengo que modificar. Para hacer este programa me estoy basando en otro que tenia de un curso anterior pero no sé porque me sale mal.

gracias de antemano
 
Bueno hermano, te corrijo todo y te doy un tip.
C++ es orientado a objetos, primero modela tu clase y despues crea en un archivo a parte el que contendra el metodo main que invocará e instanciará la clase.

Honestamente siento tu codigo como espaguetti
 
estas mal en:

switch (char)// bueno como yo lo veo seria en lugar de char seria opcion y opcion declaralo como caracter para que asi puedeas meter "a" o "b"
{
case (a) // me parece qeu tu error aqui es que debes de poner "case 'a':"
costocarro = 150
resp=1
while (resp==1)

bueno eso seria mi respuesta de logica no lo cheque pero asi de vistaso y vi eso este por cierto en lugar de cin o ocupa getch() asi opcion = getch() bueno seria una recomendacion y pues lo que te dijo el chavo "cdar" que si pero pues es lo que tu queires es programacion linael bueno y pues minimo se ayuda no se critica o critica pero ayuda no se deja asi
 
guau men el programa que te pusieron de ejemplo esta tan mal hecho que me rei al leerlo mira como lo vi apenas vas comensando por que, tienes que saber el uso de ciclos y este es un ciclo anidado, es facil pero tienes que tener cuidado

yo en mi caso preguntaria primero

cprintf("Que carro elegiras:%s");

una vez guardado comienzasas con el ciclo, digamos que ala repsuesta la guardaste en "option"

switch(option)
{
case "a": case "A": //se ponen mayusculas para que no lanze error (n.n)
{
}
case "b": case "B":
{
}

ahora seria simplemente en el caso "a" primero preguntas cuantas personas viajaran, despues cuantas personas tienen credencial y ya (n.n)

cprintf("Cuantas personas viajaran:%d"); scanf(%d,&numt); //numt es numero total
crpintf("/n cuantas de ellas tienen tarjeta de estudiante"&d.......

el numero con credencial lo pondre numc y nums sera sin credencial

y luego solo son operaciones y usos de banderas

numt-numc=nums
(numc*150)-(numc*(150*.10)=din1;
(nums*150)=din2
din1+din2=total

y listo n.n sorry por hacerlo al brabaso pero no ganarias nada con que te lo hiciera ya con esto espero que le hayas entendido como es el problemas (n.n) solo es cuestion de anarlizarlo

suerte men :) espero hecherte un poquito la mano pero repito no ganas nada con que te lo hagamos por que no estaremos en tu examen, para hacertelo

"VIVa el codigo libre, mamame esta bill gates" :D
 
Una recomendacion....que es muy util a la hora de realizar cualquier programa.....

haste primero un diagrama de flujo sobre los diversos procesos que conlleva el problema.
Una vez que tengas el diagrama de flujo, haz una prueba de escritorio.

Es mejor realizar las cosas primero en papel, que empezar como loco a tirar codigo a diestra y siniestra (es como aventarce de un avion sin paracaidas).

Suerte brother....ahi la llevas =D

________________________
Leer, preguntar, experimentar....los pasos a seguir para aprender algo
 
Volver
Arriba