用c语言实现显示航班管理系统中的乘客信息座位号

时间: 2024-03-22 17:37:31 浏览: 26
好的,要实现显示航班管理系统中的乘客信息座位号,可以按照以下步骤: 1. 在程序中定义一个结构体,包含乘客的姓名、座位号等信息,例如: ``` struct passenger { char name[20]; int seat_num; // 其他信息 }; ``` 2. 在程序中定义一个数组,用来存储所有乘客的信息,例如: ``` struct passenger passengers[100]; ``` 这里假设最多有100个乘客。 3. 在程序中读取乘客的信息,例如: ``` for (int i = 0; i < 100; i++) { printf("请输入第%d个乘客的姓名和座位号:", i + 1); scanf("%s %d", passengers[i].name, &passengers[i].seat_num); // 其他信息的读取 } ``` 这里假设乘客的姓名不超过20个字符。 4. 在程序中显示乘客的信息和座位号,例如: ``` for (int i = 0; i < 100; i++) { printf("第%d个乘客的姓名是:%s,座位号是:%d\n", i + 1, passengers[i].name, passengers[i].seat_num); // 其他信息的显示 } ``` 这样就可以实现显示航班管理系统中的乘客信息和座位号了。当然,实际的航班管理系统可能会更加复杂,需要根据具体的需求来进行设计和实现。
相关问题

用c语言实现铁路售票管理系统的以下功能:1、不同车次信息的添加、删除、修改等功能。2、所有车次余票显示。3、查询车次、余票、票价等功能。4选择座位、填写乘客信息、预订车票等功能。

以下是用C语言实现铁路售票管理系统的代码示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_TRAIN_NUM 10 #define MAX_SEATS_NUM 100 typedef struct { char train_num[20]; //车次 int seats[MAX_SEATS_NUM]; //余票 float price; //票价 } train; train trains[MAX_TRAIN_NUM]; //所有车次信息 int train_count = 0; //当前车次数 /* 添加车次信息 */ void add_train() { if (train_count >= MAX_TRAIN_NUM) { printf("已达到最大车次数,无法添加新车次!\n"); return; } //输入车次信息 train new_train; printf("请输入新车次信息:\n"); printf("车次号:"); scanf("%s", new_train.train_num); printf("票价:"); scanf("%f", &new_train.price); for (int i = 0; i < MAX_SEATS_NUM; i++) { new_train.seats[i] = 50; //初始化余票为50 } //将新车次信息添加到所有车次信息中 trains[train_count] = new_train; train_count++; printf("添加车次信息成功!\n"); } /* 删除车次信息 */ void delete_train() { char train_num[20]; printf("请输入要删除的车次号:"); scanf("%s", train_num); int i; for (i = 0; i < train_count; i++) { if (strcmp(trains[i].train_num, train_num) == 0) { //将要删除的车次信息从所有车次信息中删除 for (int j = i; j < train_count - 1; j++) { trains[j] = trains[j+1]; } train_count--; printf("删除车次信息成功!\n"); break; } } if (i >= train_count) { printf("未找到要删除的车次!\n"); } } /* 修改车次信息 */ void modify_train() { char train_num[20]; printf("请输入要修改的车次号:"); scanf("%s", train_num); int i; for (i = 0; i < train_count; i++) { if (strcmp(trains[i].train_num, train_num) == 0) { //输入新的车次信息 train new_train; printf("请输入新车次信息:\n"); printf("车次号:"); scanf("%s", new_train.train_num); printf("票价:"); scanf("%f", &new_train.price); memcpy(new_train.seats, trains[i].seats, sizeof(trains[i].seats)); //将余票数复制 //将新车次信息替换现有车次信息 trains[i] = new_train; printf("修改车次信息成功!\n"); break; } } if (i >= train_count) { printf("未找到要修改的车次!\n"); } } /* 显示所有车次余票 */ void show_all_seats() { printf("所有车次余票数如下:\n"); for (int i = 0; i < train_count; i++) { printf("车次号:%s,余票数:", trains[i].train_num); int count = 0; for (int j = 0; j < MAX_SEATS_NUM; j++) { if (trains[i].seats[j] > 0) { count++; } } printf("%d\n", count); } } /* 查询车次信息 */ void search_train() { char train_num[20]; printf("请输入要查询的车次号:"); scanf("%s", train_num); int i; for (i = 0; i < train_count; i++) { if (strcmp(trains[i].train_num, train_num) == 0) { printf("车次号:%s,票价:%0.2f,余票数:", trains[i].train_num, trains[i].price); int count = 0; for (int j = 0; j < MAX_SEATS_NUM; j++) { if (trains[i].seats[j] > 0) { count++; } } printf("%d\n", count); break; } } if (i >= train_count) { printf("未找到要查询的车次!\n"); } } /* 选择座位、填写乘客信息、预订车票 */ void book_ticket() { char train_num[20]; printf("请输入要预订的车次号:"); scanf("%s", train_num); int i; for (i = 0; i < train_count; i++) { if (strcmp(trains[i].train_num, train_num) == 0) { printf("车次号:%s,票价:%0.2f,余票数:", trains[i].train_num, trains[i].price); int count = 0; for (int j = 0; j < MAX_SEATS_NUM; j++) { if (trains[i].seats[j] > 0) { count++; } } printf("%d\n", count); if (count <= 0) { printf("该车次已无余票,无法预订!\n"); break; } //选择座位 int seat_num; printf("请选择座位号(1-%d):", count); scanf("%d", &seat_num); int available_seats = 0, index = -1; for (int j = 0; j < MAX_SEATS_NUM; j++) { if (trains[i].seats[j] > 0) { available_seats++; } if (available_seats == seat_num) { index = j; break; } } //填写乘客信息 char name[20]; int age; printf("请填写乘客信息:\n"); printf("姓名:"); scanf("%s", name); printf("年龄:"); scanf("%d", &age); //预订车票 trains[i].seats[index]--; printf("预订车票成功!\n"); printf("车次号:%s,座位号:%d,票价:%0.2f,姓名:%s,年龄:%d\n", trains[i].train_num, index+1, trains[i].price, name, age); break; } } if (i >= train_count) { printf("未找到要预订的车次!\n"); } } int main() { int choice = -1; while (choice != 0) { printf("欢迎使用铁路售票管理系统!\n"); printf("1. 添加车次信息\n"); printf("2. 删除车次信息\n"); printf("3. 修改车次信息\n"); printf("4. 显示所有车次余票\n"); printf("5. 查询车次信息\n"); printf("6. 选择座位、填写乘客信息、预订车票\n"); printf("0. 退出系统\n"); printf("请选择操作(0-6):"); scanf("%d", &choice); switch (choice) { case 1: add_train(); break; case 2: delete_train(); break; case 3: modify_train(); break; case 4: show_all_seats(); break; case 5: search_train(); break; case 6: book_ticket(); break; case 0: printf("谢谢使用!\n"); break; default: printf("无效的操作!\n"); break; } } return 0; } ``` 该系统实现了不同车次信息的添加、删除、修改等功能;所有车次余票显示;查询车次、余票、票价等功能;选择座位、填写乘客信息、预订车票等功能。

c语言编写一个民航信息管理系统

好的,一个基本的民航信息管理系统可以包括以下功能: 1. 航班信息查询:可以根据航班号、出发地、目的地、日期等信息查询航班的基本信息。 2. 航班订票:可以根据乘客的姓名、身份证号、联系方式等信息进行航班订票。 3. 航班改签:可以根据乘客的航班号、日期等信息进行航班改签。 4. 航班退票:可以根据乘客的航班号、日期等信息进行航班退票。 下面是一个简单的民航信息管理系统的 C 语言代码示例,仅供参考: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> // 定义航班结构体 typedef struct { char no[10]; // 航班号 char from[20]; // 出发地 char to[20]; // 目的地 char date[10]; // 日期 int seats; // 座位数 } Flight; // 定义乘客结构体 typedef struct { char name[20]; // 姓名 char id[20]; // 身份证号 char phone[20]; // 联系电话 char no[10]; // 航班号 char date[10]; // 日期 int status; // 状态:0-未订票,1-已订票,2-已改签,3-已退票 } Passenger; // 定义航班数组和乘客数组 Flight flights[100]; Passenger passengers[1000]; int flight_count = 0; int passenger_count = 0; // 初始化航班信息 void init_flights() { Flight f1 = {"CA123", "北京", "上海", "2022-01-01", 100}; Flight f2 = {"MU456", "上海", "广州", "2022-01-02", 50}; Flight f3 = {"CZ789", "广州", "深圳", "2022-01-03", 80}; flights[0] = f1; flights[1] = f2; flights[2] = f3; flight_count = 3; } // 显示航班信息 void show_flights() { printf("航班号\t出发地\t目的地\t日期\t\t座位数\n"); for (int i = 0; i < flight_count; i++) { printf("%s\t%s\t%s\t%s\t%d\n", flights[i].no, flights[i].from, flights[i].to, flights[i].date, flights[i].seats); } } // 查询航班信息 void query_flight() { char no[10], from[20], to[20], date[10]; printf("请输入查询信息:\n"); printf("航班号(输入0表示不限):"); scanf("%s", no); printf("出发地(输入0表示不限):"); scanf("%s", from); printf("目的地(输入0表示不限):"); scanf("%s", to); printf("日期(格式为yyyy-mm-dd,输入0表示不限):"); scanf("%s", date); printf("查询结果:\n"); printf("航班号\t出发地\t目的地\t日期\t\t座位数\n"); for (int i = 0; i < flight_count; i++) { if ((strcmp(no, "0") == 0 || strcmp(flights[i].no, no) == 0) && (strcmp(from, "0") == 0 || strcmp(flights[i].from, from) == 0) && (strcmp(to, "0") == 0 || strcmp(flights[i].to, to) == 0) && (strcmp(date, "0") == 0 || strcmp(flights[i].date, date) == 0)) { printf("%s\t%s\t%s\t%s\t%d\n", flights[i].no, flights[i].from, flights[i].to, flights[i].date, flights[i].seats); } } } // 订票 void book_ticket() { char name[20], id[20], phone[20], no[10], date[10]; printf("请输入订票信息:\n"); printf("姓名:"); scanf("%s", name); printf("身份证号:"); scanf("%s", id); printf("联系电话:"); scanf("%s", phone); printf("航班号:"); scanf("%s", no); printf("日期(格式为yyyy-mm-dd):"); scanf("%s", date); for (int i = 0; i < flight_count; i++) { if (strcmp(flights[i].no, no) == 0 && strcmp(flights[i].date, date) == 0) { if (flights[i].seats > 0) { Passenger p = {name, id, phone, no, date, 1}; passengers[passenger_count] = p; passenger_count++; flights[i].seats--; printf("订票成功!\n"); return; } else { printf("该航班座位已满!\n"); return; } } } printf("没有找到对应的航班!\n"); } // 改签 void change_ticket() { char name[20], no[10], date[10], new_no[10], new_date[10]; printf("请输入改签信息:\n"); printf("姓名:"); scanf("%s", name); printf("原航班号:"); scanf("%s", no); printf("原日期(格式为yyyy-mm-dd):"); scanf("%s", date); printf("新航班号:"); scanf("%s", new_no); printf("新日期(格式为yyyy-mm-dd):"); scanf("%s", new_date); for (int i = 0; i < passenger_count; i++) { if (strcmp(passengers[i].name, name) == 0 && strcmp(passengers[i].no, no) == 0 && strcmp(passengers[i].date, date) == 0 && passengers[i].status == 1) { for (int j = 0; j < flight_count; j++) { if (strcmp(flights[j].no, new_no) == 0 && strcmp(flights[j].date, new_date) == 0) { if (flights[j].seats > 0) { passengers[i].no = new_no; passengers[i].date = new_date; passengers[i].status = 2; flights[j].seats--; flights[j].seats++; printf("改签成功!\n"); return; } else { printf("新航班座位已满!\n"); return; } } } printf("没有找到对应的新航班!\n"); return; } } printf("没有找到对应的乘客或订单状态不正确!\n"); } // 退票 void refund_ticket() { char name[20], no[10], date[10]; printf("请输入退票信息:\n"); printf("姓名:"); scanf("%s", name); printf("航班号:"); scanf("%s", no); printf("日期(格式为yyyy-mm-dd):"); scanf("%s", date); for (int i = 0; i < passenger_count; i++) { if (strcmp(passengers[i].name, name) == 0 && strcmp(passengers[i].no, no) == 0 && strcmp(passengers[i].date, date) == 0 && (passengers[i].status == 1 || passengers[i].status == 2)) { for (int j = 0; j < flight_count; j++) { if (strcmp(flights[j].no, no) == 0 && strcmp(flights[j].date, date) == 0) { flights[j].seats++; if (passengers[i].status == 1) { passengers[i].status = 3; } else if (passengers[i].status == 2) { passengers[i].status = 1; } printf("退票成功!\n"); return; } } printf("没有找到对应的航班!\n"); return; } } printf("没有找到对应的乘客或订单状态不正确!\n"); } int main() { init_flights(); while (1) { printf("\n请选择操作:\n"); printf("1. 显示航班信息\n"); printf("2. 查询航班信息\n"); printf("3. 订票\n"); printf("4. 改签\n"); printf("5. 退票\n"); printf("0. 退出系统\n"); int op; scanf("%d", &op); switch (op) { case 1: show_flights(); break; case 2: query_flight(); break; case 3: book_ticket(); break; case 4: change_ticket(); break; case 5: refund_ticket(); break; case 0: printf("退出系统!\n"); exit(0); default: printf("输入有误,请重新输入!\n"); break; } } return 0; } ``` 以上是一个非常简单的民航信息管理系统,实际开发中可能需要考虑更多的功能和复杂的业务流程,建议根据实际情况进行扩展和优化。

相关推荐

最新推荐

recommend-type

数据结构课程设计 飞机订票系统

2. 查询:乘客可以根据不同的条件(如航班号、出发地、目的地等)进行查询,获取所需航班的信息。 3. 订票:系统支持在线预订机票,包括选择座位、输入乘客信息、支付等环节。 4. 退票:允许用户取消已预订的机票,...
recommend-type

合信TP-i系列HMI触摸屏CAD图.zip

合信TP-i系列HMI触摸屏CAD图
recommend-type

Mysql 数据库操作技术 简单的讲解一下

讲解数据库操作方面的基础知识,基于Mysql的,不是Oracle
recommend-type

flickr8k-test-gt.json

flickr8k数据集的flickr8k_test_gt.json文件
recommend-type

基于SSM+Vue的新能源汽车在线租赁管理系统(免费提供全套java开源毕业设计源码+数据库+开题报告+论文+ppt+使用说明)

随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,新能源汽车在线租赁当然也不能排除在外。新能源汽车在线租赁是以实际运用为开发背景,运用软件工程开发方法,采用SSM技术构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统总体结构设计、系统数据结构设计、系统功能设计和系统安全设计等;详细设计主要包括模块实现的关键代码,系统数据库访问和主要功能模块的具体实现等。最后对系统进行功能测试,并对测试结果进行分析总结,及时改进系统中存在的不足,为以后的系统维护提供了方便,也为今后开发类似系统提供了借鉴和帮助。 本新能源汽车在线租赁采用的数据库是Mysql,使用SSM框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 关键词:新能源汽车在线租赁,SSM框架,Mysql 数据库
recommend-type

BSC关键绩效财务与客户指标详解

BSC(Balanced Scorecard,平衡计分卡)是一种战略绩效管理系统,它将企业的绩效评估从传统的财务维度扩展到非财务领域,以提供更全面、深入的业绩衡量。在提供的文档中,BSC绩效考核指标主要分为两大类:财务类和客户类。 1. 财务类指标: - 部门费用的实际与预算比较:如项目研究开发费用、课题费用、招聘费用、培训费用和新产品研发费用,均通过实际支出与计划预算的百分比来衡量,这反映了部门在成本控制上的效率。 - 经营利润指标:如承保利润、赔付率和理赔统计,这些涉及保险公司的核心盈利能力和风险管理水平。 - 人力成本和保费收益:如人力成本与计划的比例,以及标准保费、附加佣金、续期推动费用等与预算的对比,评估业务运营和盈利能力。 - 财务效率:包括管理费用、销售费用和投资回报率,如净投资收益率、销售目标达成率等,反映公司的财务健康状况和经营效率。 2. 客户类指标: - 客户满意度:通过包装水平客户满意度调研,了解产品和服务的质量和客户体验。 - 市场表现:通过市场销售月报和市场份额,衡量公司在市场中的竞争地位和销售业绩。 - 服务指标:如新契约标保完成度、续保率和出租率,体现客户服务质量和客户忠诚度。 - 品牌和市场知名度:通过问卷调查、公众媒体反馈和总公司级评价来评估品牌影响力和市场认知度。 BSC绩效考核指标旨在确保企业的战略目标与财务和非财务目标的平衡,通过量化这些关键指标,帮助管理层做出决策,优化资源配置,并驱动组织的整体业绩提升。同时,这份指标汇总文档强调了财务稳健性和客户满意度的重要性,体现了现代企业对多维度绩效管理的重视。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

【实战演练】俄罗斯方块:实现经典的俄罗斯方块游戏,学习方块生成和行消除逻辑。

![【实战演练】俄罗斯方块:实现经典的俄罗斯方块游戏,学习方块生成和行消除逻辑。](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/70a49cc62dcc46a491b9f63542110765~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp) # 1. 俄罗斯方块游戏概述** 俄罗斯方块是一款经典的益智游戏,由阿列克谢·帕基特诺夫于1984年发明。游戏目标是通过控制不断下落的方块,排列成水平线,消除它们并获得分数。俄罗斯方块风靡全球,成为有史以来最受欢迎的视频游戏之一。 # 2.
recommend-type

卷积神经网络实现手势识别程序

卷积神经网络(Convolutional Neural Network, CNN)在手势识别中是一种非常有效的机器学习模型。CNN特别适用于处理图像数据,因为它能够自动提取和学习局部特征,这对于像手势这样的空间模式识别非常重要。以下是使用CNN实现手势识别的基本步骤: 1. **输入数据准备**:首先,你需要收集或获取一组带有标签的手势图像,作为训练和测试数据集。 2. **数据预处理**:对图像进行标准化、裁剪、大小调整等操作,以便于网络输入。 3. **卷积层(Convolutional Layer)**:这是CNN的核心部分,通过一系列可学习的滤波器(卷积核)对输入图像进行卷积,以
recommend-type

绘制企业战略地图:从财务到客户价值的六步法

"BSC资料.pdf" 战略地图是一种战略管理工具,它帮助企业将战略目标可视化,确保所有部门和员工的工作都与公司的整体战略方向保持一致。战略地图的核心内容包括四个相互关联的视角:财务、客户、内部流程和学习与成长。 1. **财务视角**:这是战略地图的最终目标,通常表现为股东价值的提升。例如,股东期望五年后的销售收入达到五亿元,而目前只有一亿元,那么四亿元的差距就是企业的总体目标。 2. **客户视角**:为了实现财务目标,需要明确客户价值主张。企业可以通过提供最低总成本、产品创新、全面解决方案或系统锁定等方式吸引和保留客户,以实现销售额的增长。 3. **内部流程视角**:确定关键流程以支持客户价值主张和财务目标的实现。主要流程可能包括运营管理、客户管理、创新和社会责任等,每个流程都需要有明确的短期、中期和长期目标。 4. **学习与成长视角**:评估和提升企业的人力资本、信息资本和组织资本,确保这些无形资产能够支持内部流程的优化和战略目标的达成。 绘制战略地图的六个步骤: 1. **确定股东价值差距**:识别与股东期望之间的差距。 2. **调整客户价值主张**:分析客户并调整策略以满足他们的需求。 3. **设定价值提升时间表**:规划各阶段的目标以逐步缩小差距。 4. **确定战略主题**:识别关键内部流程并设定目标。 5. **提升战略准备度**:评估并提升无形资产的战略准备度。 6. **制定行动方案**:根据战略地图制定具体行动计划,分配资源和预算。 战略地图的有效性主要取决于两个要素: 1. **KPI的数量及分布比例**:一个有效的战略地图通常包含20个左右的指标,且在四个视角之间有均衡的分布,如财务20%,客户20%,内部流程40%。 2. **KPI的性质比例**:指标应涵盖财务、客户、内部流程和学习与成长等各个方面,以全面反映组织的绩效。 战略地图不仅帮助管理层清晰传达战略意图,也使员工能更好地理解自己的工作如何对公司整体目标产生贡献,从而提高执行力和组织协同性。