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

请添加图片描述


👉博__主👈:米码收割机
👉技__能👈: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.hqwc.cn/news/691834.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux部署

先把需要的东西准备好&#xff1a; 第一步解压tomcat&#xff1a; tar -zxvf apache-tomcat-8.5.20.tar.gz 第二步解压jdk: tar -zxvf jdk-8u151-linux-x64.tar.gz 第三步配置Java环境变量&#xff1a; vim /etc/profile 把下面代码放进去&#xff1a; export JAVA_HOME/root…

【解决】:git clone项目报错fatal: fetch-pack: invalid index-pack output

象&#xff1a;之前一直使用gitee将个人学习和工作相关记录上传到个人gitee仓库&#xff0c;一直没出现过问题。直到有一天换电脑重新拉取代码发现出了问题&#xff0c;具体如下图&#xff1a; 原因分析&#xff1a; 经过查询发现主要原因是因为git clone的远程仓库的项目过大…

台阶仪测量膜厚原理及优势

台阶仪&#xff0c;也称为探针式轮廓仪或接触式表面轮廓测量仪&#xff0c;主要用于台阶高、膜层厚度、表面粗糙度等微观形貌参数的测量。 台阶仪的工作原理 台阶仪的核心部件是一个精密的触针或探针&#xff0c;它被安装在一个高度可调的支架上。当触针沿被测表面轻轻滑过时…

搭建 IIS + asp +access 网站

搭建 IIS asp access 网站 一、什么是 asp二、asp 的组成三、asp 说明四、什么是access五、搭建环境六、问题一七、问题二八、网站展示九、IIS 页面展示十、IIS 功能展示 欢迎关注公总号【云边小网安】 一、什么是 asp asp&#xff1a;即 Active Server Pages&#xff0c;是…

14.跳跃游戏Ⅱ

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

Line Buffer概述

buffer在芯片物理上一般指的是SRAM&#xff0c;也可以指寄存器组。buffer的作用是用来在逻辑芯片上暂时存储数据&#xff0c;但不会是大量的数据。如果是大量数据一般会使用DRAM&#xff08;典型的指DDR&#xff09;作为存储芯片&#xff0c;用来存储大密度数据。line buffer可…

Linux开发--Linux内核开发移植

Linux内核开发移植 Linux内核版本变迁及其获得 Linux是最受欢迎的自由电脑操作系统内核&#xff0c; 是一个用C语言写成&#xff0c; 并且符合POSIX标准的类Unix操作系统 Linux是由芬兰黑客Linus Torvalds开发的&#xff0c; 目的是尝试在英特尔x86架构上提供自由免费的类Un…

英语复习之英语形近词总结(四)

英语形近词总结复习第四部分&#xff1a; 单词 释义例句 genuine 英 /ˈdʒenjuɪn/ 美 /ˈdʒenjuɪn/ adj.真实的&#xff0c;真正的&#xff1b;诚恳的 1.Only genuine refugees can apply for asylum. 只有真正的难民才能申请政治避难。 《牛津词典》 2.This isnt a genui…

牛客NC343 和大于等于K的最短子数组【困难 前缀和 Java/Go】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/3e1fd3d19fb0479d94652d49c7e1ead1 思路 本答案利用前缀和解答&#xff0c;Java&#xff0c;Go答案通过&#xff0c;但是同样的代码用PHP的话有一个测试用例超时 应该还有更优秀的答案&#xff0c;后面找到更优…

QT6 android程序界面强制横屏显示不旋转

QT6开发的Android程序有时候旋转后程序会变形&#xff0c;比如想让其固定位横屏显示&#xff0c;就需要进行特殊设置&#xff0c;本文提供一种简便的设置方法。 一.AndroidManifest.xml文件介绍 Android的Manifest.xml文件是一个重要的配置文件&#xff0c;用于描述应用程序的…

LINUX 精通 1——2.1.1 网络io与io多路复用select/poll/epoll

LINUX 精通 1 day12 20240509 算法刷题&#xff1a; 2道高精度 耗时 107min 课程补20240430 耗时&#xff1a;99 min day 13 20240512 耗时&#xff1a;200min 课程链接地址 前言 杂 工作5-10年 够用 费曼&#xff1a;不要直接抄&#xff0c;自己写&#xff1b;不要一个…

【计算机网络篇】数据链路层(10)在物理层扩展以太网

文章目录 &#x1f354;扩展站点与集线器之间的距离&#x1f6f8;扩展共享式以太网的覆盖范围和站点数量 &#x1f354;扩展站点与集线器之间的距离 &#x1f6f8;扩展共享式以太网的覆盖范围和站点数量 以太网集线器一般具有8~32个接口&#xff0c;如果要连接的站点数量超过了…