以下是一个简单的实现车票管理系统的C++代码示例:

#include <iostream>
#include <fstream>
#include <ctime>
#include <cstdlib>
#include <string>
using namespace std;

// 车票车次类
class Ticket {
private:
    int ticketNo;
    string departureTime;
    string startStation;
    string endStation;
    double travelTime;
    int capacity;
    int soldTickets;
public:
    Ticket(int no, string depTime, string start, string end, double time, int cap, int sold)
        : ticketNo(no), departureTime(depTime), startStation(start), endStation(end),
        travelTime(time), capacity(cap), soldTickets(sold) {}

    int getTicketNo() const { return ticketNo; }
    string getDepartureTime() const { return departureTime; }
    string getStartStation() const { return startStation; }
    string getEndStation() const { return endStation; }
    double getTravelTime() const { return travelTime; }
    int getCapacity() const { return capacity; }
    int getSoldTickets() const { return soldTickets; }

    void sellTicket() {
        if (soldTickets < capacity) {
            soldTickets++;
            cout << "售票成功!" << endl;
        } else {
            cout << "该车次已售完!" << endl;
        }
    }

    void returnTicket() {
        if (soldTickets > 0) {
            soldTickets--;
            cout << "退票成功!" << endl;
        } else {
            cout << "该车次未售出任何票!" << endl;
        }
    }
};

// 管理系统类
class TicketManagementSystem {
private:
    Ticket* tickets[1000];
    int ticketCount;

public:
    TicketManagementSystem() : ticketCount(0) {}

    ~TicketManagementSystem() {
        for (int i = 0; i < ticketCount; i++) {
            delete tickets[i];
        }
    }

    void addTicket(Ticket* ticket) {
        tickets[ticketCount] = ticket;
        ticketCount++;
    }

    void saveToFile() {
        ofstream file("tickets.txt");
        if (file.is_open()) {
            for (int i = 0; i < ticketCount; i++) {
                Ticket* ticket = tickets[i];
                file << ticket->getTicketNo() << " "
                    << ticket->getDepartureTime() << " "
                    << ticket->getStartStation() << " "
                    << ticket->getEndStation() << " "
                    << ticket->getTravelTime() << " "
                    << ticket->getCapacity() << " "
                    << ticket->getSoldTickets() << endl;
            }
            file.close();
            cout << "车票信息保存成功!" << endl;
        } else {
            cout << "保存失败,无法打开文件!" << endl;
        }
    }

    void loadFromFile() {
        ifstream file("tickets.txt");
        if (file.is_open()) {
            ticketCount = 0;
            string line;
            while (getline(file, line)) {
                int ticketNo, capacity, soldTickets;
                double travelTime;
                string departureTime, startStation, endStation;
                sscanf(line.c_str(), "%d %s %s %s %lf %d %d",
                    &ticketNo, &departureTime[0], &startStation[0], &endStation[0], &travelTime, &capacity, &soldTickets);
                Ticket* ticket = new Ticket(ticketNo, departureTime, startStation, endStation, travelTime, capacity, soldTickets);
                tickets[ticketCount] = ticket;
                ticketCount++;
            }
            file.close();
            cout << "车票信息加载成功!" << endl;
        } else {
            cout << "加载失败,无法打开文件!" << endl;
        }
    }

    void printTicketInfo(const Ticket* ticket) const {
        cout << "车次号:" << ticket->getTicketNo() << endl;
        cout << "发车时间:" << ticket->getDepartureTime() << endl;
        cout << "起始站:" << ticket->getStartStation() << endl;
        cout << "终点站:" << ticket->getEndStation() << endl;
        cout << "行车时间:" << ticket->getTravelTime() << " 小时" << endl;
        cout << "载客量:" << ticket->getCapacity() << endl;
        cout << "已售票:" << ticket->getSoldTickets() << endl;
    }

    void browseTicketInfo() const {
        time_t now = time(0);
        struct tm* timeinfo = localtime(&now);
        char currentTime[9];
        strftime(currentTime, sizeof(currentTime), "%H:%M:%S", timeinfo);

        cout << "当前时间:" << currentTime << endl;
        cout << "车次信息:" << endl;
        for (int i = 0; i < ticketCount; i++) {
            Ticket* ticket = tickets[i];
            cout << "-----------------------" << endl;
            printTicketInfo(ticket);
            if (ticket->getDepartureTime() < currentTime) {
                cout << "此班已发出" << endl;
            }
        }
        cout << "-----------------------" << endl;
    }

    void queryByTicketNo(int ticketNo) const {
        for (int i = 0; i < ticketCount; i++) {
            Ticket* ticket = tickets[i];
            if (ticket->getTicketNo() == ticketNo) {
                printTicketInfo(ticket);
                return;
            }
        }
        cout << "未找到相关车次信息!" << endl;
    }

    void queryByEndStation(string endStation) const {
        for (int i = 0; i < ticketCount; i++) {
            Ticket* ticket = tickets[i];
            if (ticket->getEndStation() == endStation) {
                printTicketInfo(ticket);
            }
        }
    }

    void sellTicket(int ticketNo) {
        for (int i = 0; i < ticketCount; i++) {
            Ticket* ticket = tickets[i];
            if (ticket->getTicketNo() == ticketNo) {
                ticket->sellTicket();
                return;
            }
        }
        cout << "未找到相关车次信息!" << endl;
    }

    void returnTicket(int ticketNo) {
        for (int i = 0; i < ticketCount; i++) {
            Ticket* ticket = tickets[i];
            if (ticket->getTicketNo() == ticketNo) {
                ticket->returnTicket();
                return;
            }
        }
        cout << "未找到相关车次信息!" << endl;
    }
};

int main() {
    TicketManagementSystem system;
    system.loadFromFile();

    int choice;
    do {
        cout << "~~~~~欢迎使用车票管理系统!~~~~~" << endl;
        cout << "====================" << endl;
        cout << "1. 录入车票信息" << endl;
        cout << "2. 浏览车票信息" << endl;
        cout << "3. 查询车票信息" << endl;
        cout << "4. 售票" << endl;
        cout << "5. 退票" << endl;
        cout << "6. 退出系统" << endl;
        cout << "请选择:";
        cin >> choice;

        switch (choice) {
            case 1:
            {
                int ticketNo, capacity, soldTickets;
                double travelTime;
                string departureTime, startStation, endStation;

                cout << "请输入车次号:";
                cin >> ticketNo;
                cout << "请输入发车时间(HH:MM):";
                cin >> departureTime;
                cout << "请输入起始站:";
                cin >> startStation;
                cout << "请输入终点站:";
                cin >> endStation;
                cout << "请输入行车时间(小时):";
                cin >> travelTime;
                cout << "请输入载客量:";
                cin >> capacity;
                cout << "请输入已售票数:";
                cin >> soldTickets;

                Ticket* ticket = new Ticket(ticketNo, departureTime, startStation, endStation, travelTime, capacity, soldTickets);
                system.addTicket(ticket);
                break;
            }

            case 2:
                system.browseTicketInfo();
                break;

            case 3:
            {
                int queryChoice;
                cout << "请选择查询方式:" << endl;
                cout << "1. 按车次号查询" << endl;
                cout << "2. 按终点站查询" << endl;
                cout << "请选择:";
                cin >> queryChoice;

                if (queryChoice == 1) {
                    int ticketNo;
                    cout << "请输入车次号:";
                    cin >> ticketNo;
                    system.queryByTicketNo(ticketNo);
                } else if (queryChoice == 2) {
                    string endStation;
                    cout << "请输入终点站:";
                    cin >> endStation;
                    system.queryByEndStation(endStation);
                } else {
                    cout << "无效的选择!" << endl;
                }
                break;
            }

            case 4:
            {
                int ticketNo;
                cout << "请输入车次号:";
                cin >> ticketNo;
                system.sellTicket(ticketNo);
                break;
            }

            case 5:
            {
                int ticketNo;
                cout << "请输入车次号:";
                cin >> ticketNo;
                system.returnTicket(ticketNo);
                break;
            }

            case 6:
                system.saveToFile();
                break;

            default:
                cout << "无效的选择!" << endl;
                break;
        }

        cout << endl;
    } while (choice != 6);

    return 0;
}

该代码实现了一个简单的车票管理系统,提供了录入车票信息、浏览车票信息、查询车票信息、售票、退票和退出系统等功能。车票信息通过文本文件进行保存和加载。用户可以根据菜单提示选择不同的操作

编写一个C++代码车票管理系统:编程实现车票管理系统车票信息包括车次号、发车时间、起始站、终点站、行车时间、载客量、已售票等如:班次号 发车时间 起始站 终点站 行车时间 载客量 已售票1 800 郫县 广汉 2 45 302 630 郫县 成都 05 40 403 700 郫县 成都 05 40 204 1000 郫县 成都 05 40 2 具体实现的管理功能如下:1录入车次信息文本文

原文地址: https://www.cveoy.top/t/topic/iIOE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录