如何用C++编写一个航空售票系统?

 我来答
认股人EF10GS04
2018-02-04 · TA获得超过133个赞
知道答主
回答量:112
采纳率:0%
帮助的人:112万
展开全部
#include<iostream>
#include<string>
#include<fstream>
#include<sstream>
using namespace std;
class Tair //通过定义一个类来定义数据录入的函数
{
char flight[20]; char data[20];char start[20];
char finish[20];char stime[20];char ftime[20];int price;
public:
Tair()
{};
Tair(char fl[20], char D[20],char S[20],char Fin[20],char st[20],char ft[20],int pr);
friend void main(); //将主函数定义为友元函数,方便访问类中的成员
};

Tair::Tair (char fl[20], char D[20],char S[20],char Fin[20],char st[20],char ft[20],int pr)
{
strcpy(flight,fl); //
strcpy(data,D);
strcpy(start,S);
strcpy(finish,Fin);
strcpy(stime,st);
strcpy(ftime,ft);
price=pr; //
}

void main()
{
int p=0; //全局变量,用于选择菜单时的输入
Tair *s[100]; //类定义的指针将所录入的数据按类中的形式分别存储
ofstream *file[100];
int i=0; //全局变量,用于做每个录入数据的下标
int j=0;
int chris1=0;//用于判断do—while语句
while(p!=6)
{
cout<<"\n************ 欢迎来到民航售票系统,请选择您需要的操作并输入相应数字! ***********\n";
cout<<"(1)录入信息\n";
cout<<"(2)按起点查出所有航班的信息\n";
cout<<"(3)按终点查出所有航班的信息\n";
cout<<"(4)按日期、航班号查询航班信息\n";
cout<<"(5)按起点站统计航班数\n";
cout<<"(6)退出\n";
do //判断输入指令是否正确
{
cin>>p;
if((p>=1&&p<=6))
chris1=1;
else
cout<<"指令错误!请重新输入:"<<endl;
}while(chris1==0);
do
{
switch(p)
{
case 1://录入
{
char flight[20],data[20],start[20],finish[20],stime[20],ftime[20];
int price; char c; //用于在小项中选择是否继续操作
do
{
cout<<"请依次输入航班号、日期、起点站、终点站、起飞时间、到达时间、票价\n";
cin>>flight>>data>>start>>finish>>stime>>ftime>>price;
fstream outfile,infile; //作一个文本文档在文件夹中用于显示所录入的数据
outfile.open("flight.txt",ios::out|ios::app); //以向文件追加写入的方式打开文件flight.txt
if(!file)
{
cout<<"flight.txt can not open.\n";
return;
}
outfile<<"航班号:"<<flight<<" "<<"日期:"<<data<<" "<<"起点站:"<<start<<" "<<"终点站:"<<finish<<" "<<"起飞时间:"<<stime<<" "<<"到达时间:"<<ftime<<" "<<"票价:"<<price<<endl;

outfile.close();
infile.open("flight.txt",ios::in);
if(!file) //判断文件是否打开
{
cout<<"f1.txt can not open.\n";
return;
}
char ch;
while(infile.get(ch))
cout<<ch;
cout<<endl<<endl;
infile.close();
j++;
s[i]=new Tair(flight,data,start,finish,stime,ftime,price);
i++;
cout<<"已录入"<<i<<"条航班信息,想继续录入吗(y/n)"<<endl;
cin>>c;
chris1=0;
//do
//{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
//else chris1=1;
//}while(chris1==0);
}while(c=='y');
break;
}
case 2://按起点站查询
{
char st[20];char c;int j=0;int flag;
if(i==0)
{ cout<<"系统中没有航班信息,请先进行录入操作!"<<endl; break; }
do
{
flag=0;
cout<<"请输入要查询的航班的起点站: "<<endl;
cin>>st;
cout<<"您要查询的起点站为%c的航班信息如下:"<<st<<endl<<endl;
for(int j=0;j<i;j++)
{
if(strcmp(st,(*s[j]).start)==0)
{
flag=1;

cout<<"航班号:"<<(*s[j]).flight<<" 日期:"<<(*s[j]).data<<" 终点站:"<<(*s[j]).finish<<" 起飞时间:"<<(*s[j]).stime<<" 到达时间:"<<(*s[j]).ftime<<" 票价:"<<(*s[j]).price<<endl;
}
}
if(flag==0) cout<<"对不起,您查询的航班信息不存在!"<<endl<<endl;
cout<<"您想继续查询吗?(y/n):";
cin>>c;
if(c!='n'&&c!='y')
{
cout<<"指令错误!请重新输入:"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 3://按终点站查询
{
char fin[20];char c;int j=0;int flag;
if(i==0)
{ cout<<"系统中没有航班信息,请先进行录入操作!"<<endl; break; }
do
{
flag=0;
cout<<"请输入要查询的航班的终点站: "<<endl;
cin>>fin;
cout<<"您要查询的终点站为"<<fin<<"的航班信息如下:"<<endl<<endl;
for(int j=0;j<i;j++)
{
if(strcmp(fin,(*s[j]).finish)==0)
{
flag=1;

cout<<"航班号:"<<(*s[j]).flight<<" 日期:"<<(*s[j]).data<<" 起点站:"<<(*s[j]).start<<" 起飞时间:"<<(*s[j]).stime<<" 到达时间:"<<(*s[j]).ftime<<" 票价:"<<(*s[j]).price<<endl;
}
}
if(flag==0) cout<<"对不起,您查询的航班信息不存在!"<<endl;
cout<<"您想继续查询吗?(y/n):";
cin>>c;
if(c!='n'&&c!='y')
{
cout<<"指令错误!请重新输入:"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 4://按日期、航班号查询
{
char dat[20],fli[20];char c;int j,flag;
if(i==0)
{ cout<<"系统中没有航班信息,请先进行录入操作!"<<endl; break; }
do
{
flag=0;
cout<<"请输入要查询的航班的日期和航班号: "<<endl;
cin>>dat>>fli;
cout<<"您要查询的日期为"<<dat<<",航班号为"<<fli<<"的航班信息如下:"<<endl<<endl;
for(j=0;j<i;j++)
{
if(strcmp(dat,(*s[j]).data)==0 && strcmp(fli,(*s[j]).flight)==0)
{
flag=1;

cout<<"起点站:"<<(*s[j]).start<<" 终点站:"<<(*s[j]).finish<<" 起飞时间:"<<(*s[j]).stime<<" 到达时间:"<<(*s[j]).ftime<<" 票价:"<<(*s[j]).price<<endl;
}
}
if(flag==0) cout<<"对不起,您查询的航班信息不存在!"<<endl;
cout<<"您想继续查询吗?(y/n):";
cin>>c;
if(c!='n'&&c!='y')
{
cout<<"指令错误!请重新输入:"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 5://按起点或终点统计一周的航班数
{
int count,flag,j;
char str[20]; char c;
if(i==0)
{ cout<<"\n系统中没有航班信息,请先进行录入操作!"<<endl; break; }
do
{
flag=0;count=0;
cout<<"\n请输入要统计的航班起点站:"<<endl;
cin>>str;
for(j=0;j<i;j++)
{
if(strcmp(str,(*s[j]).start)==0)
{
flag=1;
count++;
}
}
if(j>=i && flag==0)
cout<<"对不起,您查询的航班信息不存在!"<<endl<<endl;
else
cout<<"\n您要查询的起点站为"<<str<<"的航班数为:"<<count<<endl<<endl;
cout<<"您想继续查询吗?(y/n):";
cin>>c;
if(c!='n'&&c!='y')
{
cout<<"指令错误!请重新输入:"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case 6://退出
{
cout<<endl<<"********* 感谢您的使用,( ^_^ )/~~拜拜! **********"<<endl;
break;
}

}break;
}while(chris1==0);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晴晴知识加油站
高能答主

2018-05-29 · 让梦想飞扬,让生命闪光。
晴晴知识加油站
采纳数:3595 获赞数:661340

向TA提问 私信TA
展开全部

#include<iostream>
#include<string>
#include<fstream>
#include<sstream>
using namespace std;
class Tair //通过定义一个类来定义数据录入的函数编写一个航空售票系统。

一、C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。 

二、C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

三、世界上第一种计算机高级语言是诞生于1954年的FORTRAN语言。之后出现了多种计算机高级语言。1970年,AT&T的Bell实验室的D.Ritchie和K.Thompson共同发明了C语言。

四、在C++中,类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式