C/Visual C - Ayuda con c++ Urgente

 
Vista:

Ayuda con c++ Urgente

Publicado por Sago7 (1 intervención) el 23/05/2001 16:12:18
Alguien me puede ayudar con esto!!!!!!!!!!.

Necesito el codigo fuente de un programa en c++ que solucione el siguiente problema:

Una línea aérea necesita un programa que permita conocer la cantidad de pasajeros que viajan de una ciudad a otra y obtener un listado por pantalla de todos los pasajeros ordenados en forma alfabética ascendente por apellido y un listado de los pasajeros que tengan igual ciudad de origen e igual ciudad de destino, además deberá poder eliminar un pasajero de la lista. Para realizar lo antes mencionado se debe:
1-Construir una lista enlazada con N cantidad de nodos. El usuario deberá dar la instrucción de terminar el ingreso de nodos.
2-Cada nodo deberá ontener la siguiente información: Rut del pasajero,nombre y apellido, nombre de la ciudad de origen y nombre de la ciudad de destino.
-------------------------
UF!!!!!...No saben lo que me ha costado hacer esto......
Ojalá alguien me pueda ayudar!!!

De antemano muchas gracias!!!!:

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
Imágen de perfil de Alejandro

Programa de gestión de pasajeros de una línea aérea

Publicado por Alejandro (913 intervenciones) el 25/09/2024 19:16:32
Aquí tienes un ejemplo de código en C++ que resuelve el problema planteado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <string>
#include <list>
#include <algorithm>
 
struct Pasajero {
    std::string rut;
    std::string nombre;
    std::string apellido;
    std::string ciudadOrigen;
    std::string ciudadDestino;
};
 
bool compararPorApellido(const Pasajero& p1, const Pasajero& p2) {
    return p1.apellido < p2.apellido;
}
 
void mostrarPasajeros(const std::list<Pasajero>& pasajeros) {
    for (const auto& pasajero : pasajeros) {
        std::cout << "Rut: " << pasajero.rut << std::endl;
        std::cout << "Nombre: " << pasajero.nombre << std::endl;
        std::cout << "Apellido: " << pasajero.apellido << std::endl;
        std::cout << "Ciudad de origen: " << pasajero.ciudadOrigen << std::endl;
        std::cout << "Ciudad de destino: " << pasajero.ciudadDestino << std::endl;
        std::cout << "-------------------------" << std::endl;
    }
}
 
int main() {
    std::list<Pasajero> pasajeros;
    char opcion;
 
    do {
        Pasajero nuevoPasajero;
        std::cout << "Ingrese el Rut del pasajero: ";
        std::cin >> nuevoPasajero.rut;
        std::cout << "Ingrese el nombre del pasajero: ";
        std::cin >> nuevoPasajero.nombre;
        std::cout << "Ingrese el apellido del pasajero: ";
        std::cin >> nuevoPasajero.apellido;
        std::cout << "Ingrese la ciudad de origen: ";
        std::cin >> nuevoPasajero.ciudadOrigen;
        std::cout << "Ingrese la ciudad de destino: ";
        std::cin >> nuevoPasajero.ciudadDestino;
 
        pasajeros.push_back(nuevoPasajero);
 
        std::cout << "¿Desea ingresar otro pasajero? (S/N): ";
        std::cin >> opcion;
    } while (opcion == 'S' || opcion == 's');
 
    std::cout << "Listado de pasajeros ordenados por apellido:" << std::endl;
    pasajeros.sort(compararPorApellido);
    mostrarPasajeros(pasajeros);
 
    std::string ciudadOrigen, ciudadDestino;
    std::cout << "Ingrese la ciudad de origen para filtrar los pasajeros: ";
    std::cin >> ciudadOrigen;
    std::cout << "Ingrese la ciudad de destino para filtrar los pasajeros: ";
    std::cin >> ciudadDestino;
 
    std::cout << "Listado de pasajeros con la misma ciudad de origen y destino:" << std::endl;
    for (const auto& pasajero : pasajeros) {
        if (pasajero.ciudadOrigen == ciudadOrigen && pasajero.ciudadDestino == ciudadDestino) {
            std::cout << "Rut: " << pasajero.rut << std::endl;
            std::cout << "Nombre: " << pasajero.nombre << std::endl;
            std::cout << "Apellido: " << pasajero.apellido << std::endl;
            std::cout << "Ciudad de origen: " << pasajero.ciudadOrigen << std::endl;
            std::cout << "Ciudad de destino: " << pasajero.ciudadDestino << std::endl;
            std::cout << "-------------------------" << std::endl;
        }
    }
 
    std::string rutEliminar;
    std::cout << "Ingrese el Rut del pasajero que desea eliminar: ";
    std::cin >> rutEliminar;
 
    auto it = std::find_if(pasajeros.begin(), pasajeros.end(), [rutEliminar](const Pasajero& p) {
        return p.rut == rutEliminar;
    });
 
    if (it != pasajeros.end()) {
        pasajeros.erase(it);
        std::cout << "Pasajero eliminado correctamente." << std::endl;
    } else {
        std::cout << "No se encontró un pasajero con el Rut ingresado." << std::endl;
    }
 
    return 0;
}

Este programa utiliza una lista enlazada para almacenar los datos de los pasajeros. Permite ingresar los datos de los pasajeros, ordenarlos por apellido, filtrarlos por ciudad de origen y destino, y eliminar un pasajero de la lista.

Espero que esta solución te sea útil. ¡Buena suerte con tu proyecto!
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