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

news2024/9/21 1:29:17

请添加图片描述


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


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

目录

    • 【C/C++】C/C++ 车票售票系统设计与实现(源码+报告)【独一无二】
  • 一、设计要求
  • 二、代码设计思路
    • 1. 定义和声明
    • 2. 函数实现
      • 3. 主函数 `main()`
  • 三、运行结果
    • 3.1 主菜单设思路
    • 3.2 添加车次功能
    • 3.3 查询车次功能
    • 3.4 显示所有车次
    • 3.5 售票功能
    • 3.6 修改发车时间
    • 3.7 退出系统


一、设计要求

  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 退出系统

在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1666638.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初识C语言——第十八天

循环while/do while while 语法结构 while(表达式) 循环语句; break:在while循环中&#xff0c;break用于永久的终止循环 continue:在while循环中&#xff0c;continue的作用是跳过本次循环continue后面的代码 直接去判断部分&#xff0c;看是否进行下一次循环。 注意事项…

射频识别技术RFID

射频识别技术RFID RFID介绍 射频识别&#xff1a; 英文名称是(Radio Frequency Identification)&#xff0c; 简称是“ RFID” 又称 无线射频识别&#xff0c; RFID是物联网的其中一种终端技术。 RFID是一种通信技术&#xff0c; 可通过无线电讯号耦合识别特定目标并读写相关…

保研机试之【二叉树后序】--1道题

参考&#xff1a;东哥带你刷二叉树&#xff08;后序篇&#xff09; | labuladong 的算法笔记 建议先过一遍&#xff1a;今天是二叉树~-CSDN博客&#xff0c;very重要&#xff01; 然后再过一遍&#xff08;理解怎么应用方法&#xff09;&#xff1a;保研机试之[三道二叉树习题…

简单易懂的Java Queue入门教程!

哈喽&#xff0c;各位小伙伴们&#xff0c;你们好呀&#xff0c;我是喵手。运营社区&#xff1a;C站/掘金/腾讯云&#xff1b;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点&#xff0c;并以文字的形式跟大家一起交流&#xff0c;互相学习&#xff0c;一…

7. path路径绘制:使用path绘制曲线

曲线在SVG中通常是通过贝塞尔曲线命令来绘制的&#xff0c;包括二次贝塞尔曲线&#xff08;Q&#xff09;和三次贝塞尔曲线&#xff08;C&#xff09;。这些命令允许我们创建平滑的曲线路径。 贝塞尔曲线的原理 贝塞尔曲线的基本原理是通过控制点和锚点来定义一条曲线的形状。…

微服务下的技术栈架构解析

微服务是一种架构风格&#xff0c;它将一个复杂的应用拆分成多个独立自治的服务&#xff0c;每个服务负责应用程序中的一小部分功能。这些服务通过定义良好的API进行通信&#xff0c;通常是HTTP RESTful API或事件流。微服务架构的主要特点包括单一职责、自治性、可独立部署和扩…

14.跳跃游戏Ⅱ

文章目录 题目简介题目解答解法一&#xff1a;贪心算法动态规划代码&#xff1a;复杂度分析&#xff1a; 题目链接 大家好&#xff0c;我是晓星航。今天为大家带来的是 跳跃游戏Ⅱ 相关的讲解&#xff01;&#x1f600; 题目简介 题目解答 解法一&#xff1a;贪心算法动态规划…

03c++继承与多态

目录&#xff1a; 继承的本质和原理派生类的构造过程重载覆盖 隐藏静态绑定和动态绑定多态 vfptr和vftable抽象类的设计原理多重继承以及问题虚基类 vbptr和vbtableRTTIc四种类强转继承多态常见笔试面试题目分享 1、继承的本质和原理&#xff1a; 继承方式&#xff1a; 基类…

2023愚人杯 )————被遗忘的反序列化

<?php# 当前目录中有一个txt文件哦 error_reporting(0); show_source(__FILE__); include("check.php");class EeE{public $text;public $eeee;public function __wakeup(){if ($this->text "aaaa"){echo lcfirst($this->text);}}public functi…

如何远程操作服务器中的Python编译器并将运行结果返回到Pycharm

文章目录 一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 本文主要介绍如何使用Pych…

1065 单身狗

solution “单身狗”&#xff1a;没有搭子或者搭子没来的参与者输出id时按增序输出 #include<iostream> #include<map> #include<algorithm> using namespace std; const int maxn 1e6, maxn1 1e4 10; int flag[maxn] {0}, all[maxn1]; int main(){int…

工程师工具箱系列(2)hasor

文章目录 工程师工具箱系列(2)hasor简介特点环境准备引入依赖数据库脚本文件配置Hasor配置 运行测试小结 工程师工具箱系列(2)hasor 简介 Hasor有着自己的独立的生命周期与Spring的不同&#xff0c;是一套完整的体系&#xff0c;提供了注入DataQL、Dataway、hasor-web等等&am…

《中阿科技论坛(中英文)》是什么级别的期刊?是正规期刊吗?

问题解答 问&#xff1a;《中阿科技论坛&#xff08;中英文&#xff09;》是核心期刊吗&#xff1f; 答&#xff1a;不是&#xff0c;但是正规期刊 问&#xff1a;《中阿科技论坛&#xff08;中英文&#xff09;》是什么级别期刊&#xff1f; 答&#xff1a;省级 主管单位…

十三、Redis哨兵模式--Sentinel

上一篇介绍了Redis中的主从复制。我们知道Redis主从中一般只有主节点对外提供写操作&#xff0c;如果主节点发生故障&#xff0c;为了保证Redis的可用性&#xff0c;这时就要在可用的slave节点中&#xff0c;挑选一个作为主节点。这种切换操作如果是人为的操作&#xff0c;那么…

i春秋-GetFlag

题目 考点 sql注入&#xff0c;md5加密&#xff0c;代码审计&#xff0c;利用eval函数 解题 参考wp https://www.cnblogs.com/qiaowukong/p/13630130.html找md5值 看见验证码中的提示&#xff0c;就是去找一个md5值前六位是指定值的数&#xff08;严格来说不一定是数&…

基于python的旅游爬虫可视化与实现

摘要 本项目为基于python的旅游爬虫可视化的设计与实现&#xff0c;项目以Web系统形式展示&#xff0c;利用Xpath爬虫爬取去哪儿网针对旅游业的需求&#xff0c;对国内热门旅游景点数据可视化系统&#xff0c;将爬取好的数据保存为CSV文件&#xff0c;再通过ORM框架导入MySQL数…

出现Duplicate key

解决&#xff1a; 第一种情况&#xff1a; 添加一个字段prjId &#xff0c;和数据库表映射时&#xff0c;映射的字段存在映射关系了。 将第二个 TableField中的prj_num改成prj_id 即可。 第二种情况&#xff1a; 转成map的形式时&#xff1a;key重复了&#xff0c;不知道把值赋…

QuickBooks 2024 for Mac 激活版:智慧管理,财务无忧

想要轻松掌控财务&#xff0c;实现高效管理吗&#xff1f;QuickBooks 2024 for Mac&#xff0c;您的智慧财务管理专家&#xff0c;为您带来前所未有的便利和体验。无论是账务、工资还是销售和库存&#xff0c;它都能一手搞定。直观易用的界面&#xff0c;让您轻松上手&#xff…

(二)Jetpack Compose 布局模型

前文回顾 &#xff08;一&#xff09;Jetpack Compose 从入门到会写-CSDN博客 首先让我们回顾一下上一篇文章中里提到过几个问题&#xff1a; ComposeView的层级关系&#xff0c;互相嵌套存在的问题&#xff1f; 为什么Compose可以实现只测量一次&#xff1f; ComposeView和…