【C/C++】C/C++ 车票售票系统设计与实现(源码+课件)【独一无二】

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化【获取源码+商业合作】
👉荣__誉👈:阿里云博客专家博主、51CTO技术博主
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。


【C/C++】C/C++ 车票售票系统设计与实现(源码+报告)【独一无二】


一、设计要求

  1. 添加车次功能

    • 用户可以添加新的车次信息。
    • 用户需输入车次编号和发车时间。
    • 车次的起点站和终点站预设为“保定”和“北京机场”。
    • 车次的乘客限制设定为预先定义的容量。
  2. 修改发车时间功能

    • 用户可以修改已添加车次的发车时间。
    • 只有当该车次未售票时,才允许修改发车时间。
    • 用户需输入需要修改的车次编号和新的发车时间。
  3. 删除车次功能

    • 用户可以删除已添加的车次。
    • 只有当该车次未售票时,才允许删除。
    • 用户需输入需要删除的车次编号。
  4. 查询车次功能

    • 用户可以根据发车时间查询车次信息。
    • 显示符合查询条件的车次信息,包括车次编号、已售票数和剩余票数。
    • 如果剩余票数大于 0,提示用户仍有余票可购买。
  5. 售票功能

    • 用户可以购买指定车次的车票。
    • 只有当该车次尚有余票时,才允许购买。
    • 购票成功后,显示已售票数。
  6. 显示所有车次功能

    • 用户可以查看系统中所有车次的信息。
    • 显示每个车次的车次编号、发车时间、已售票数和剩余票数。
  7. 退出系统功能

    • 用户可以选择退出系统。

二、代码设计思路

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈

1. 定义和声明

  • #define 指令: 用于定义预处理器宏,这些宏包括最大车次数 MAX_FLIGHTS 和车次的乘客容量 CAPACITY

  • 结构体 BusTicket: 定义了车票的数据结构,包括车次编号、发车时间、起点站、终点站、乘客限制以及已售票数。

  • tickets: 定义了一个结构体数组,用于存储车票信息。

  • num_tickets: 记录当前已经添加的车次数量。

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈

2. 函数实现

  • addTicket(): 添加车次函数,通过用户输入添加新的车次信息。
void addTicket() {
    if (num_tickets >= MAX_FLIGHTS) {
        printf("车次已满,无法添加更多车次。\n");
        return;
    }
    // 略... 👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈
    // 略... 👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈
    // 略... 👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈
    // 略... 👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈

    printf("车次添加成功。\n");
}
  • modifyTicketTime(): 修改车次发车时间函数,允许用户修改指定车次的发车时间,前提是该车次未售票。

  • deleteTicket(): 删除车次函数,允许用户删除指定车次,前提是该车次未售票。

  • queryTicket(): 查询车次函数,允许用户根据发车时间查询车次信息,显示已售票数和剩余票数。

  • sellTicket(): 售票函数,允许用户购买指定车次的车票,前提是尚有余票。

void sellTicket() {
    char flight_num[10];
    printf("输入购买票的班次编号:");
    scanf("%s", flight_num);
    for (int i = 0; i < num_tickets; i++) {
          // 代码 略... 👉源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。

          // 代码 略... 👉源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。

                return;
            }
            else {
                printf("票已售完。\n");
                return;
            }
        }
    }
    printf("找不到指定班次。\n");
}
  • displayTickets(): 显示所有车次函数,将所有车次信息显示在屏幕上。
void displayTickets() {
    for (int i = 0; i < num_tickets; i++) {
        printf("班次:%s, 发车时间:%s, 已售票数:%d, 剩余票数:%d\n",
            // 代码 略... 👉源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。
    }
}

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈

3. 主函数 main()

  • 菜单循环: 使用 do-while 循环,显示菜单选项并根据用户选择执行相应的功能函数。

  • switch-case 语句: 根据用户输入的选项执行相应的功能函数。

int main01() {
    int choice;
    do {
        printf("\n车票售票系统菜单:\n");
        printf("1. 添加车次\n");
        printf("2. 修改发车时间\n");
        printf("3. 删除车次\n");
        printf("4. 查询车次\n");
        printf("5. 售票\n");
        printf("6. 显示所有车次\n");
        printf("7. 退出\n");
        printf("选择操作:");
        scanf("%d", &choice);

        switch (choice) {
        case 1:
            addTicket();
            break;
        case 2:
            modifyTicketTime();
            break;
        case 3:
            deleteTicket();
            break;
        case 4:
            queryTicket();
            break;
        case 5:
            sellTicket();
            break;
        case 6:
            displayTickets();
            break;
        case 7:
            printf("退出系统。\n");
            break;
        default:
            printf("无效选择,请重新输入。\n");
            break;
        }
    } while (choice != 7);

    return 0;
}

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈


三、运行结果

3.1 主菜单设思路

在这里插入图片描述

3.2 添加车次功能

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈

3.3 查询车次功能

在这里插入图片描述

3.4 显示所有车次

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈

3.5 售票功能

在这里插入图片描述

3.6 修改发车时间

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈

在这里插入图片描述

3.7 退出系统

在这里插入图片描述

👉👉👉 源码获取 关注【测试开发自动化】公众号,回复 “车票” 获取。👈👈👈

  • 25
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我可以回答你的问题。以下是一个使用 switch 语句实现猜拳游戏的 C++ 代码: ```c++ #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { int playerChoice; int computerChoice; // 生成随机数种子 srand(time(0)); // 让玩家输入选择(1:石头,2:剪刀,3:布) cout << "请出拳(1:石头,2:剪刀,3:布):" << endl; cin >> playerChoice; // 生成计算机的选择(1-石头,2-剪刀,3-布) computerChoice = rand() % 3 + 1; // 根据玩家和计算机的选择确定胜负 switch (playerChoice) { case 1: // 玩家出石头 if (computerChoice == 1) { cout << "平局!" << endl; } else if (computerChoice == 2) { cout << "你赢了!" << endl; } else { cout << "你输了!" << endl; } break; case 2: // 玩家出剪刀 if (computerChoice == 1) { cout << "你输了!" << endl; } else if (computerChoice == 2) { cout << "平局!" << endl; } else { cout << "你赢了!" << endl; } break; case 3: // 玩家出布 if (computerChoice == 1) { cout << "你赢了!" << endl; } else if (computerChoice == 2) { cout << "你输了!" << endl; } else { cout << "平局!" << endl; } break; default: cout << "选择无效!" << endl; break; } return 0; } ``` 这段代码首先让玩家输入选择(1:石头,2:剪刀,3:布),然后生成计算机的选择。接着使用 switch 语句判断玩家和计算机的选择,输出对应的胜负结果。注意,这里使用了 srand 函数来生成随机数种子,以保证每次运行程序生成的随机数不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

米码收割机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值