代码.docx

上传人:b****7 文档编号:25236512 上传时间:2023-06-06 格式:DOCX 页数:53 大小:24.14KB
下载 相关 举报
代码.docx_第1页
第1页 / 共53页
代码.docx_第2页
第2页 / 共53页
代码.docx_第3页
第3页 / 共53页
代码.docx_第4页
第4页 / 共53页
代码.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

代码.docx

《代码.docx》由会员分享,可在线阅读,更多相关《代码.docx(53页珍藏版)》请在冰豆网上搜索。

代码.docx

代码

#include

#include

#include

#include

#include

#defineMAX1000

usingnamespacestd;

classPrint

{

public:

virtualvoiddisplay()const=0;//纯虚函数,输出

};

//建立航班信息类

classFlight:

publicPrint

{

friendostream&operator<<(ostream&output,Flight&cp);//友元重载"<<"

public:

voidsetNum(stringnum);//航班号设置函数

voidsetTime(stringtime);//起飞时间设置函数

voidsetStar(stringstar);//起飞站设置函数

voidsetDestination(stringdestination);//终点站设置函数

voidsetPrice(doubleprice);//票价设置函数

voidsetSeat(intseat);//满载人数设置函数

voidsetRema(intrema);//剩票设置函数

voidsetState(stringstate);//航班状态设置函数

stringgetNum();//航班号获取函数

stringgetTime();//起飞时间获取函数

stringgetStar();//起飞站获取函数

stringgetDestination();//终点站获取函数

doublegetPrice();//票价获取函数

intgetSeat();//满载人数获取函数

intgetRema();//剩票获取函数

stringgetState();//航班状态获取函数

Flightoperator-(intn);//重载"-"

Flightoperator+(intn);//重载"+"

virtualvoiddisplay()const;//虚函数继承

private:

stringm_fnum;//航班号

stringm_ftime;//起飞时间

stringm_fstar;//起点站

stringm_fdestination;//终点站

doublem_fprice;//票价

intm_fseat;//票数

intm_frema;//余票

stringm_fstate;//飞机是否起飞

};

classTraffic:

publicFlight

{

public:

//修改航班信息

voidRevamp(intn);

voidAdd();//添加航班信息

voidFound();//创建航班信息

voidBook(intn);//订票

voidRefound(intn);//退票

voidY_Scanner();//浏览用户已购买的航班票

voidSearch(intn);//查找

voidmanage();//验证管理员

voidDelete();//删除航班信息

boolIf_Takeoff(Flight&flight);//判断飞机是否起飞

};

//菜单

classMenu

{

public:

voidinput1(intn);//管理员菜单

voidinput2(intn);//用户菜单

};

//建立用户信息类

classUser:

publicPrint

{

public:

~User(){}//User的析构函数

voidsetNam(stringnam);//用户姓名设置函数

voidsetId(stringid);//用户身份证号设置函数

voidsetNumm(stringnumm);//用户所买航班票航班的设置函数

stringgetNam();//用户姓名获取函数

stringgetId();//用户身份证号获取函数

stringgetNumm();//航班号获取函数

virtualvoiddisplay()const;//继承Print

private:

stringu_nam;//姓名

stringu_id;//证件号

stringu_numm;//订票的航班编号

};

FlightmyFlight[MAX];

FILE*fp,*fpp;

TrafficmyTraffic;

MenumyMenu;

UsermyUser[MAX];

voidUser:

:

setNam(stringnam)

{

u_nam=nam;

}

voidUser:

:

setId(stringid)

{

u_id=id;

}

voidUser:

:

setNumm(stringnumm)

{

u_numm=numm;

}

stringUser:

:

getNam()

{

returnu_nam;

}

stringUser:

:

getId()

{

returnu_id;

}

stringUser:

:

getNumm()

{

returnu_numm;

}

voidUser:

:

display()const

{

cout<

}

voidFlight:

:

setNum(stringnum)

{

m_fnum=num;

}

voidFlight:

:

setTime(stringtime)

{

m_ftime=time;

}

voidFlight:

:

setStar(stringstar)

{

m_fstar=star;

}

voidFlight:

:

setDestination(stringdestination)

{

m_fdestination=destination;

}

voidFlight:

:

setPrice(doubleprice)

{

m_fprice=price;

}

voidFlight:

:

setSeat(intseat)

{

m_fseat=seat;

}

stringFlight:

:

getNum()

{

returnm_fnum;

}

stringFlight:

:

getTime()

{

returnm_ftime;

}

stringFlight:

:

getStar()

{

returnm_fstar;

}

stringFlight:

:

getDestination()

{

returnm_fdestination;

}

doubleFlight:

:

getPrice()

{

returnm_fprice;

}

intFlight:

:

getSeat()

{

returnm_fseat;

}

voidFlight:

:

setRema(intrema)

{

if(rema>m_fseat)

{

m_frema=m_fseat;

}

elseif(rema<0)

{

m_frema=0;

}

else

{

m_frema=rema;

}

}

voidFlight:

:

setState(stringstate)

{

if(state=="YES"||state=="yes")

{

m_fstate="YES";

}

else

{

m_fstate="NO";

}

}

intFlight:

:

getRema()

{

returnm_frema;

}

FlightFlight:

:

operator-(intn)

{

m_frema-=n;

return*this;

}

FlightFlight:

:

operator+(intn)

{

m_frema+=n;

return*this;

}

ostream&operator<<(ostream&output,Flight&cp)

{

output<

returnoutput;

}

stringFlight:

:

getState()

{

returnm_fstate;

}

voidFlight:

:

display()const

{

cout<

}

//判断飞机是否起飞

boolTraffic:

:

If_Takeoff(Flight&flight)

{

if(flight.getState()=="YES")

{

returntrue;

}

else

{

returnfalse;

}

}

//身份验证

voidTraffic:

:

manage()

{

charpassword[20];//用于存贮密码

inttimes=3;

cout<<"登录系统需验证密码!

"<

//验证密码。

三次错误后,就自动退出程序

do

{

times--;

cout<<"请输入密码:

(默认000)";

cin>>password;

if(strcmp(password,"000")==0)//密码是"000"

{

times=-1;

break;

}

elseif(times>0)

{

cout<<"密码错误!

\n剩余"<

"<

}

}while(times>0);

if(times!

=-1)

{

cout<<"对不起!

\n您不是管理员!

不能使用此系统!

"<

}

}

//删除模块

voidTraffic:

:

Delete()

{

intseat,i,rema,k,d,m,c=0,e=0;

charstate[3],num[20],time[20],destination[20],star[20];

charname[12],ID[18],number[20];

doubleprice;

stringnumm;

if((fp=fopen("flight.txt","r"))==NULL)

{

cout<<"Cannotopenflight.txt."<

exit(0);

}

i=0;

while(!

feof(fp))

{

fscanf(fp,"%s",num);

fscanf(fp,"%s",time);

fscanf(fp,"%s",star);

fscanf(fp,"%s",destination);

fscanf(fp,"%s",state);

fscanf(fp,"%lf%d",&price,&seat);

fscanf(fp,"%d",&rema);

myFlight[i].setNum(num);

myFlight[i].setTime(time);

myFlight[i].setStar(star);

myFlight[i].setDestination(destination);

myFlight[i].setPrice(price);

myFlight[i].setSeat(seat);

myFlight[i].setRema(rema);

myFlight[i].setState(state);

i++;

}

k=i-1;

fclose(fp);

cout<<"请输入航班号:

";

cin>>numm;

for(i=0;i

{

if(myFlight[i].getNum()==numm)

{

e=1;

}

}

if(e!

=1)

{

cout<<"无此航班的信息"<

}

fp=fopen("flight.txt","w+");

for(i=0;i

{

if(myFlight[i].getNum()==numm)

{

c=1;

continue;

}

else

{

fprintf(fp,"%s",myFlight[i].getNum().c_str());

fprintf(fp,"%s",myFlight[i].getTime().c_str());

fprintf(fp,"%s",myFlight[i].getStar().c_str());

fprintf(fp,"%s",myFlight[i].getDestination().c_str());

fprintf(fp,"%s",myFlight[i].getState().c_str());

fprintf(fp,"%.2lf",myFlight[i].getPrice());

fprintf(fp,"%d",myFlight[i].getSeat());

fprintf(fp,"%d\n",myFlight[i].getRema());

}

}

fclose(fp);

fpp=fopen("ticket.txt","r");

i=0;

while(!

feof(fpp))

{

fscanf(fpp,"%s",name);

fscanf(fpp,"%s",ID);

fscanf(fpp,"%d",&d);

fscanf(fpp,"%s",number);

myUser[i].setNam(name);

myUser[i].setId(ID);

myUser[i].setNumm(number);

i++;

}

m=i-1;

fclose(fpp);

fpp=fopen("ticket.txt","w+");

for(i=0;i

{

if(myUser[i].getNumm()==numm)

{

c=1;

continue;

}

else

{

fprintf(fpp,"%s",myUser[i].getNam().c_str());

fprintf(fpp,"%s",myUser[i].getId().c_str());

fprintf(fpp,"%d",d);

fprintf(fpp,"%s\n",myUser[i].getNumm().c_str());

}

}

if(c==1)

{

cout<<"删除成功"<

}

fclose(fpp);

}

//查询模块

voidTraffic:

:

Search(intn)

{

charch;

intcm,i;

cin>>cm;

switch(cm)

{

case1:

{

stringinfo;

//输入要查询的航班号

cout<<"Enterastring:

";

cin>>info;

cout<<"航班号"<<""<<"起飞时间"<<""<<"起飞站"<<""<<"终点站"<<""<<"状态"<<""<<"票价"<<""<<"票数"<<""<<"余票"<

for(i=0;i

{

if(info==myFlight[i].getNum())

{

myFlight[i].display();

}

}

cout<<"是否返回上一级(y/n)?

"<

cin>>ch;

if(ch=='y')

{

cout<<"请输入你的选择:

";

Search(n);

}

break;

}

case2:

{

stringstart,last;

//输入要查询的起始站

cout<<"Enterastartstation:

";

cin>>start;

//输入要查询的终点站

cout<<"Enteralaststation:

";

cin>>last;

cout<<"航班号"<<""<<"起飞时间"<<""<<"起飞站"<<""<<"终点站"<<""<<"状态"<<""<<"票价"<<""<<"票数"<<""<<"余票"<

for(i=0;i

{

if((start==myFlight[i].getStar())&&(last==myFlight[i].getDestination()))

{

myFlight[i].display();

}

}

cout<<"是否返回上一级(y/n)?

"<

cin>>ch;

if(ch=='y')

{

cout<<"请输入你的选择:

";

Search(n);

}

break;

}

default:

{

cout<<"输入错误!

请重新输入"<

Search(n);

}

}

}

//更改航班信息

voidTraffic:

:

Revamp(intn)

{

intcp,i;

stringFnum,Snum;

stringStime;

stringSstar;

stringSdestination,Sstate;

doubleSprice;

intSseat;

charch;

cin>>cp;

switch(cp)

{

case1:

{

if((fpp=fopen("ticket.txt","r"))==NULL)

{

cout<<"Cannotopenticket.txt"<

exit(0);

}

intm,d;

charname[12],ID[12],number[12];

i=0;

while(!

feof(fpp))

{

fscanf(fpp,"%s",name);

fscanf(fpp,"%s",ID);

fscanf(fpp,"%d",&d);

fscanf(fpp,"%s",number);

myUser[i].setNam(name);

myUser[i].setId(ID);

myUser[i].setNumm(number);

i++;

}

m=i-1;

if(fclose(fpp))

{

cout<<"Cannotcloseticket.txt"<

exit(0);

}

cout<<"输入需要更改的航班号:

"<

cin>>Fnum;

cout<<"输入更改后的航班号:

"<

cin>>Snum;

for(i=0;i

{

if(Fnum==myFlight[i].getNum())

{

myFlight[i].setNum(Snum);

cout<<"航班号"<<""<<"起飞时间"<<""<<"起飞站"<<""<<"终点站"<<""<<"状态"<<""<<"票价"<<""<<"票数"<<""<<"余票"<

cout<

}

}

if((fpp=fopen("ticket.txt","w+"))==NULL)

{

cout<<"Cannotopenticket.txt"<

exit(0);

}

for(i=0;i

{

if(Fnum==myUser[i].getNumm())

{

myUser[i].setNumm(Snum);

}

fprintf(fpp,"%s",myUser[i].getNam().c_str());

fprintf(fpp,"%s",myUser[i].getId().c_str());

fprintf(fpp,"%d",d);

fprintf(fpp,"%s\n",myUser[i].getNumm().c_str());

}

if(fclose(fpp))

{

cout<<"Cannotcloseticket.txt"<

exit(0);

}

break;

}

case2:

{

cout<<"输入需要更改的航班号:

"<

cin>>Fnum;

cout<<"输入更改后的起飞时间:

"<

cin>>Stime;

for(i=0;i

{

if(Fnum

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1