C语言实现航班管理
航班管理系统,用C语言实现,可以作为课程设计,代码如下:
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
#include<stdlib.h>
using namespace std;
//信息基类
class info{
protected:
int flightnumber;
public:
int Get_flightnumber(){return flightnumber;}
virtual void Get_Message();
virtual void Read_File(fstream &file);//从文件中读取
virtual void Write_File(fstream &file);//写入文件
virtual void Show_Message();
virtual ~info(){};
};
//系统类
class System{
fstream file1,file2;
info *myi;
vector<info*> inv[4];
vector<info*>::iterator iter;
public:
System();
void menu();
void menu1(int i);
void menu2(int i);
void menu3(int i);
void Load(vector<info*> &inv,int choose);//信息录入
void Save(vector<info*> inv);//信息保存
void Add(vector<info*> &inv,int choose);//信息添加
void Delete(vector<info*> &inv,int choose);//信息删除
void Search(vector<info*> inv);//信息查找
void Show(vector<info*> inv);//信息显示
~System(){};
};
//航班信息类
class flight:virtual public info{
protected:
string place1;
string place2;
string time;
double price;
int maxpeople;
fstream file1,file2;
public:
flight(){};
string Get_place1(){return place1;}
string Get_place2(){return place2;}
string Get_time(){return time;}
void Get_Message();
void Read_File(fstream &file);
void Write_File(fstream &file);
void Show_Message();
~flight(){};
};
//客户类
class guest:virtual public info{
protected:
string name;
int id;
string sex;
int ticketnum;
public:
guest(){};
void Get_Message();
string Get_name(){return name;}
int Get_id(){return id;}
void Read_File(fstream &file);
void Write_File(fstream &file);
void Show_Message();
~guest(){};
};
//机票类
class ticket:virtual public info{
protected:
int zticket;
int syticket;
fstream file1,file2;
public:
ticket(){};
void Get_Message();
void Read_File(fstream &file);
void Write_File(fstream &file);
void Show_Message();
~ticket(){};
};
//客户行程信息类
class guestflight:public flight,public guest{
public:
guestflight(){};
void Get_Message(){};
void Read_File(fstream &file);
void Write_File(fstream &file);
void Show_Message(){};
~guestflight(){};
};
//基类信息实现
void info::Get_Message(){
cout<<"请输入航班号:";
cin>>flightnumber;
}
void info::Show_Message(){
cout<<"flight:"<<flightnumber<<endl;
}
void info::Write_File(fstream &file){
file<<flightnumber;
}
void info::Read_File(fstream &file){
file>>flightnumber;
}
//航班实现
void flight::Get_Message(){
info::Get_Message();
cout<<endl<<"请输入出发地:";
cin>>place1;
cout<<endl<<"请输入目的地:";
cin>>place2;
cout<<endl<<"请输入出发时间:";
cin>>time;
cout<<endl<<"请输入票价:";
cin>>price;
cout<<endl<<"请输入最大载客量:";
cin>>maxpeople;
cout<<endl;
}
void flight::Show_Message(){
info::Show_Message();
cout<<"place1:"<<place1<<endl;
cout<<"place2:"<<place2<<endl;
cout<<"time:"<<time<<endl;
cout<<"price:"<<price<<endl;
cout<<"maxpeople:"<<maxpeople<<endl;
}
void flight::Write_File(fstream &file){
info::Write_File(file);
file<<place1<<" "<<place2<<" "<<time<<" "<<price<<" "<<maxpeople<<endl;
}
void flight::Read_File(fstream &file){
info::Read_File(file);
file>>place1>>place2>>time>>price>>maxpeople;
}
//客户实现
void guest::Get_Message(){
info::Get_Message();
cout<<endl<<"请输入姓名:";
cin>>name;
cout<<endl<<"请输入证件号:";
cin>>id;
cout<<endl<<"请输入性别:";
cin>>sex;
cout<<endl<<"请输入订票票数:";
cin>>ticketnum;
cout<<endl;
}
void guest::Show_Message(){
info::Show_Message();
cout<<"name:"<<name<<endl;
cout<<"id:"<<id<<endl;
cout<<"sex:"<<sex<<endl;
cout<<"ticketnum:"<<ticketnum<<endl;
}
void guest::Write_File(fstream &file){
info::Write_File(file);
file<<name<<" "<<id<<" "<<sex<<" "<<ticketnum<<endl;
}
void guest::Read_File(fstream &file){
info::Read_File(file);
file>>name>>id>>sex>>ticketnum;
}
//机票实现
void ticket::Get_Message(){
info::Get_Message();
cout<<endl<<"请输入总票数:";
cin>>zticket;
cout<<endl<<"请输入剩余票数:";
cin>>syticket;
cout<<endl;
}
void ticket::Show_Message(){
info::Show_Message();
cout<<"zticket:"<<zticket<<endl;
cout<<"syticket:"<<syticket<<endl;
}
void ticket::Write_File(fstream &file){
info::Write_File(file);
file<<zticket<<" "<<syticket<<endl;
}
void ticket::Read_File(fstream &file){
info::Read_File(file);
file>>zticket>>syticket;
}
//客户行程实现
void guestflight::Write_File(fstream &file){
info::Write_File(file);
file<<guest::name<<" "<<guest::id<<" "<<flight::flightnumber<<" "<<flight::place1<<" "<<flight::place2<<" "<<flight::time;
}
void guestflight::Read_File(fstream &file){
info::Read_File(file);
file>>guest::name>>guest::id>>flight::flightnumber>>flight::place1>>flight::place2>>flight::time;
}
//系统类实现
System::System(){
file1.open("flight1.txt",ios::out);
if(!file1){
cout<<"file open error!"<<endl;
abort();
}
file2.open("flight2.txt",ios::in);
if(!file2){
cout<<"file open error!"<<endl;
abort();
}
}
void System::menu(){
int choose,yn;
while(1){
cout<<"请选择您要管理的信息类型:"<<endl;
cout<<"0-航班信息"<<endl;
cout<<"1-客户信息"<<endl;
cout<<"2-机票信息"<<endl;
cout<<"3-显示所有客户行程信息"<<endl;
cout<<"请输入:"<<endl;
cin>>choose;
cout<<endl;
guest g;
flight f;
fstream infile("guestflight2.txt",ios::in);
switch(choose){
case 0:
menu1(choose);
break;
case 1:
menu2(choose);
break;
case 2:
menu3(choose);
break;
case 3:
while(!infile.eof()){
infile<<g.Get_name()<<g.Get_id()<<f.Get_flightnumber()<<f.Get_place1()<<f.Get_place2()<<f.Get_time();
cout<<g.Get_name()<<g.Get_id()<<f.Get_flightnumber()<<f.Get_place1()<<f.Get_place2()<<f.Get_time();
}
break;
default:
cout<<"输入有误!"<<endl;
exit(0);
}
cout<<"是否继续?(1/0)"<<endl;
cin>>yn;
if(yn!=1)
break;
}
}
void System::menu1(int i){
int choose,ny;
while(1){
cout<<"请选择操作:"<<endl;
cout<<"0-航班信息录入"<<endl;
cout<<"1-添加航班信息"<<endl;
cout<<"2-删除航班信息"<<endl;
cout<<"3-更改航班信息"<<endl;
cout<<"4-查询航班信息"<<endl;
cout<<"5-显示航班信息"<<endl;
cout<<"6-保存航班信息"<<endl;
cout<<"请输入:"<<endl;
cin>>choose;
cout<<endl;
switch(choose){
case 0:
Load(inv[i],choose);
break;
case 1:
Add(inv[i],choose);
break;
case 2:
Delete(inv[i],choose);
break;
case 3:
break;
case 4:
Search(inv[i]);
break;
case 5:
Show(inv[i]);
break;
case 6:
Save(inv[i]);
break;
default:
cout<<"输出有误"<<endl;
exit(0);
}
cout<<"是否继续?(1/0)"<<endl;
cin>>ny;
if(ny!=1)
break;
}
}
void System::menu2(int i){
int choose,ny;
while(1){
cout<<"请选择操作:"<<endl;
cout<<"0-客户信息录入"<<endl;
cout<<"1-添加客户信息"<<endl;
cout<<"2-删除客户信息"<<endl;
cout<<"3-更改客户信息"<<endl;
cout<<"4-查询客户信息"<<endl;
cout<<"5-显示客户信息"<<endl;
cout<<"6-保存客户信息"<<endl;
cout<<"按任意键退出...."<<endl;
cout<<"请输入:";
cin>>choose;
cout<<endl;
switch(choose){
case 0:
Load(inv[i],choose);
break;
case 1:
Add(inv[i],choose);
break;
case 2:
Delete(inv[i],choose);
break;
case 3:
case 4:
Search(inv[i]);
break;
case 5:
Show(inv[i]);
break;
case 7:
Save(inv[i]);
break;
default:
cout<<"输出有误"<<endl;
exit(0);
}
cout<<"是否继续?(1/0)"<<endl;
cin>>ny;
if(ny!=1)
break;
}
}
void System::menu3(int i){
int choose,ny;
while(1){
cout<<"请选择操作:"<<endl;
cout<<"0-机票信息录入"<<endl;
cout<<"1-添加机票信息"<<endl;
cout<<"2-删除机票信息"<<endl;
cout<<"3-更改机票信息"<<endl;
cout<<"4-查询机票信息"<<endl;
cout<<"5-显示机票信息"<<endl;
cout<<"6-保存机票信息"<<endl;
cout<<"按任意键退出...."<<endl;
cout<<"请输入:";
cin>>choose;
cout<<endl;
switch(choose){
case 0:
Load(inv[i],choose);
break;
case 1:
Add(inv[i],choose);
break;
case 2:
Delete(inv[i],choose);
break;
case 3:
break;
case 4:
Search(inv[i]);
break;
case 5:
Show(inv[i]);
break;
case 6:
Save(inv[i]);
break;
default:
cout<<"输出有误"<<endl;
exit(0);
}
cout<<"是否继续?(1/0)"<<endl;
cin>>ny;
if(ny!=1)
break;
}
}
void System::Load(vector<info*> &myv,int choose){
while(!file2.eof()){
switch(choose){
case 1:
myi=new flight;
break;
case 2:
myi=new guest;
break;
case 3:
myi=new ticket;
break;
case 4:
myi=new guestflight;
break;
}
myi->Read_File(file2);
myv.push_back(myi);
}
file2.close();
}
void System::Save(vector<info*> myv){
for(iter=myv.begin();iter<myv.end();iter)
(*iter)->Write_File(file1);
file1.close();
}
void System::Add(vector<info*> &myv,int choose){
switch(choose){
case 1:
myi=new flight;
break;
case 2:
myi=new guest;
break;
case 3:
myi=new ticket;
break;
case 4:
myi=new guestflight;
break;
}
myi->Get_Message();
myv.push_back(myi);
}
void System::Delete(vector<info*> &myv,int choose){
int flight1,flight2;
switch(choose){
case 1:
cout<<"请输入您要删除的航班号"<<endl;
cin>>flight1;
for(iter=myv.begin();iter!=myv.end();iter++){
if((*iter)->Get_flightnumber()==flight1){
myv.erase(iter);
}
}
break;
case 2:
//cout<<"请输入您要删除的客户名"<<endl;
// string guest1;
// cin>>guest1;
// for(iter=myv.begin();iter!=myv.end();iter++){
// if((*iter)->Get_name()==guest1){
// myv.erase(iter);
// }
// }
//break;
case 3:
cout<<"请输入您要删除的航班号"<<endl;
cin>>flight2;
for(iter=myv.begin();iter!=myv.end();iter++){
if((*iter)->Get_flightnumber()==flight2){
myv.erase(iter);
}
}
break;
}
}
void System::Search(vector<info*> myv){
int flight1;
cout<<"请输入您要查找的航班号"<<endl;
cin>>flight1;
for(iter=myv.begin();iter!=myv.end();iter++){
if((*iter)->Get_flightnumber()==flight1){
(*iter)->Show_Message();
}
}
}
void System::Show(vector<info*> myv){
for(iter=myv.begin();iter!=myv.end();iter++){
(*iter)->Show_Message();
}
}
int main(){
System s;
s.menu();
return 0;
}
相关文章:
C语言实现航班管理
航班管理系统,用C语言实现,可以作为课程设计,代码如下: #include<iostream> #include<fstream> #include<vector> #include<string> #include<stdlib.h> using namespace std; //信息基类 clas…...
【Java面试题】SpringBoot与Spring的区别
主要区别体现几个方面: 1.操作简便性 SpringBoot提供极其快速和简化的操作,使得Spring开发者能更快速上手。它通过提供spring的运行配置,以及为通用spring项目提供许多非功能性特性,进一步简化了开发过程。 2.框架扩展性 Spri…...
网络编程(IP、端口、协议、UDP、TCP)【详解】
目录 1.什么是网络编程? 2.基本的通信架构 3.网络通信三要素 4.UDP通信-快速入门 5.UDP通信-多发多收 6.TCP通信-快速入门 7.TCP通信-多发多收 8.TCP通信-同时接收多个客户端 9.TCP通信-综合案例 1.什么是网络编程? 网络编程是可以让设…...
Linux线程(二)----- 线程控制
目录 前言 一、线程资源区 1.1 线程私有资源 1.2 线程共享资源 1.3 原生线程库 二、线程控制接口 2.1 线程创建 2.1.1 创建一批线程 2.2 线程等待 2.3 终止线程 2.4 线程实战 2.5 其他接口 2.5.1 关闭线程 2.5.2 获取线程ID 2.5.3 线程分离 三、深入理解线程 …...
Linux 内核irq_stack遍历
环境Centos 4.18.0-80.el8.x86_64 一、x86架构堆栈类型说明 https://www.kernel.org/doc/Documentation/x86/kernel-stacks int get_stack_info(unsigned long *stack, struct task_struct *task,struct stack_info *info, unsigned long *visit_mask) {if (!stack)goto unk…...
GIT问题记录
一、 1.Gitee相关 复现步骤:自己在gitee上使用WEB解决冲突,本地未拉取最新的origin分支,然后本地也做了其他的修改,然后commit并且push,push时候报错,本地分支不干净 尝试拉取origin的最新内容ÿ…...
AzerothCore安装记录
尝试在FreeBSD系统下安装AzerothCore 首先安装相关软件 pkg install cmake mysql80-server boost-all装完mysql之后提示: MySQL80 has a default /usr/local/etc/mysql/my.cnf, remember to replace it with your own or set mysql_optfile"$YOUR_CNF_FILE i…...
Infineon_TC264智能车代码初探及C语言深度学习(一)
本篇文章记录我在智能车竞赛中,对 Infineon_TC264 这款芯片的底层库函数的学习分析。通过深入地对其库函数进行分析,C语言深入的知识得以再次在编程中呈现和运用。故觉得很有必要在此进行记录一下。 目录 编辑 一、代码段 1、枚举类型 2、结构体 …...
[Redis]——初识Redis
一、Redis为非关系型数据库 ❓我们常见的MySQL、SQLServer都是关系型数据库,那他们之间有什么区别与联系呢? 📕关系型数据库与非关系型数据库的区别(面试题) 解释: SQL数据库中的表是有结构的,包…...
YTM32的同步串行通信外设SPI外设详解(Master Part)
YTM32的同步串行通信外设SPI外设详解(Master Part) 文章目录 YTM32的同步串行通信外设SPI外设详解(Master Part)IntroductionFeatures引脚信号时钟源其它不常用功能 Pricinple & Mechinism基于FIFO的命令和数据管理机制锁定配…...
【C语言】三子棋
前言: 三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏规则是双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子走成一条线就视为胜利。但因棋盘太小,三子棋在很多时候会出现和…...
Web组态可视化编辑器 快速绘制组态
随着工业智能制造的发展,工业企业对设备可视化、远程运维的需求日趋强烈,传统的单机版组态软件已经不能满足越来越复杂的控制需求,那么实现Web组态可视化界面成为了主要的技术路径。 行业痛点 对于软件服务商来说,将单机版软件转变…...
WebServer -- 注册登录
目录 🍉整体内容 🌼流程图 🎂载入数据库表 提取用户名和密码 🚩同步线程登录注册 补充解释 代码 😘页面跳转 补充解释 代码 🍉整体内容 概述 TinyWebServer 中,使用数据库连接池实现…...
C3_W2_Collaborative_RecSys_Assignment_吴恩达_中英_Pytorch
Practice lab: Collaborative Filtering Recommender Systems(实践实验室:协同过滤推荐系统) In this exercise, you will implement collaborative filtering to build a recommender system for movies. 在本次实验中,你将实现协同过滤来构建一个电影推荐系统。 …...
Elasticsearch使用function_score查询酒店和排序
需求 基于用户地理位置,对酒店做简单的排序,非个性化的推荐。酒店评分包含以下: 酒店类型(依赖用户历史订单数据):希望匹配出更加符合用户使用的酒店类型酒店评分:评分高的酒店用户体验感好ge…...
iOS消息发送流程
Objc的方法调用基于消息发送机制。即Objc中的方法调用,在底层实际都是通过调用objc_msgSend方法向对象消息发送消息来实现的。在iOS中, 实例对象的方法主要存储在类的方法列表中,类方法则是主要存储在原类中。 向对象发送消息,核心…...
【接口测试】常见HTTP面试题
目录 HTTP GET 和 POST 的区别 GET 和 POST 方法都是安全和幂等的吗 接口幂等实现方式 说说 post 请求的几种参数格式是什么样的? HTTP特性 HTTP(1.1) 的优点有哪些? HTTP(1.1) 的缺点有哪些&#x…...
服务器硬件基础知识
1. 服务器分类 服务器分类 服务器的分类没有一个统一的标准。 从多个多个维度来看服务器的分类可以加深我们对各种服务器的认识。 N.B. CISC: complex instruction set computing 复杂指令集计算 RISC: reduced instruction set computer 精简指令集计算 EPIC: explicitly p…...
matlab实现层次聚类与k-均值聚类算法
1. 原理 1.层次聚类:通过计算两类数据点间的相似性,对所有数据点中最为相似的两个数据点进行组合,并反复迭代这一过程并生成聚类树 2.k-means聚类:在数据集中根据一定策略选择K个点作为每个簇的初始中心,然后将数据划…...
【机器学习】包裹式特征选择之递归特征消除法
🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:机器学习 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
多模态图像修复系统:基于深度学习的图片修复实现
多模态图像修复系统:基于深度学习的图片修复实现 1. 系统概述 本系统使用多模态大模型(Stable Diffusion Inpainting)实现图像修复功能,结合文本描述和图片输入,对指定区域进行内容修复。系统包含完整的数据处理、模型训练、推理部署流程。 import torch import numpy …...
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...
mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
