题目:
- 已知一个航空管理员操作类的数据成员如下:
Class FlightInfo
{
stringNo; //航班号
stringStartCity; //起飞地点
stringEndCity; //降落地点
stringStartDate; //日期
stringStartTime; //起飞时间
stringEndTime; //降落时间
intFirstTicket; //头等舱剩余票数
intFirstPrice; //头等舱价格
intSecondTicket; //经济舱剩余票数
intSecondPrice; //经济价格
public:
…
};
编程要求:
(1)完成这个类的定义,要求:
a. 具有两个参数的构造函数,参数分别为航班号和日期,实现航空管理员对航班的新建、修改、删除等操作;
b. 设置航班起飞的日期和时间、头等舱/经济舱的价格和剩余票数、出发地和目的地、航班号。
(2)定义一个FlightManager类用来管理航班信息,实现增加、编辑、删除航班的供能。
#include<iostream>
using namespace std;
#include<string.h>
#include<string>
#include<iomanip>
int sum=0; //记录航班总数
void menu(); //实现菜单功能
class FlightInfo
{
char No[20]; //航班号
char StartCity[20]; //起飞地点
char EndCity[20]; //降落地点
char StartDate[20]; //日期
char StartTime[20]; //起飞时间
char EndTime[20]; //降落时间
int FirstTicket; //头等舱剩余票数
int FirstPrice; //头等舱价格
int SecondTicket; //经济舱剩余票数
int SecondPrice; //经济舱价格
public:
FlightInfo(); //构造函数
void setNo(char _No[20]){strcpy(No,_No);};
void setStartCity(char _StartCity[20]){strcpy(StartCity,_StartCity);};
void setEndCity(char _EndCity[20]){strcpy(EndCity,_EndCity);};
void setStartDate(char _StartDate[20]){strcpy(StartDate,_StartDate);};
void setStartTime(char _StartTime[20]){strcpy(StartTime,_StartTime);};
void setEndime(char _EndTime[20]){strcpy(EndTime,_EndTime);};
void setFirstTicket(int firstTicket){FirstTicket=firstTicket;};
void setFirstPrice(int firstPrice){FirstPrice=firstPrice;};
void setSecondTicket(int secondTicket){SecondTicket=secondTicket;};
void setSecondPrice(int secondPrice){SecondPrice=secondPrice;};
char *getNo(){return No;};
char *getStartCity(){return StartCity;};
char *getEndCity(){return EndCity;};
char *getStartDate(){return StartDate;};
char *getStartTime(){return StartTime;};
char *getEndTime(){return EndTime;};
int getFirstTicket(){return FirstTicket;};
int getFirstPrice(){return FirstPrice;};
int getSecondTicket(){return SecondTicket;};
int getSecondPrice(){return SecondPrice;};
};
FlightInfo::FlightInfo()
{
cout<<"请输入航班号:";
cin>>No;
cin.ignore();
cout<<"请输入航班起飞地点:";
cin>>StartCity;
cout<<"请输入航班降落地点:";
cin>>EndCity;
cout<<"请输入航班起飞日期:";
cin>>StartDate;
cout<<"请输入航班起飞时间:";
cin>>StartTime;
cout<<"请输入航班降落时间:";
cin>>EndTime;
cout<<"请输入航班头等舱剩余票数:";
cin>>FirstTicket;
cout<<"请输入航班头等舱价格:";
cin>>FirstPrice;
cout<<"请输入航班经济舱剩余票数:";
cin>>SecondTicket;
cout<<"请输入航班经济舱价格:";
cin>>SecondPrice;
}
FlightInfo *info[100]={NULL}; //空指针
class FlightManager
{
public:
void addFlight();
void editFlight();
void delFlight();
};
void FlightManager::addFlight() //增添航班
{
info[sum]=new FlightInfo;
sum++;
}
void FlightManager::editFlight() //编辑航班信息
{
char no[20],start_city[20],end_city[20],start_date[20],start_time[20],end_time[20];
int n,num,command,first_ticket,first_price,second_ticket,second_price;
cout<<"请输入想编辑的航班号:";
cin>>no;
n=sum;
for(num=0;num<sum;num++) //遍历寻找航班号
{
if(strcmp(info[num]->getNo(),no)==0)
{
n=num; //记录航班
cout<<"请输入您想编辑的航班信息对应的数字:"<<endl;
cout<<"1.起飞地点"<<endl;
cout<<"2.降落地点"<<endl;
cout<<"3.起飞日期"<<endl;
cout<<"4.起飞时间"<<endl;
cout<<"5.降落地点"<<endl;
cout<<"6.头等舱剩余票数"<<endl;
cout<<"7.头等舱价格"<<endl;
cout<<"8.经济舱剩余票数"<<endl;
cout<<"9.经济舱价格"<<endl;
cin>>command;
switch(command)
{
case 1:
{
cout<<"请输入修改后的起飞地点:"<<endl;
cin>>start_city;
info[num]->setStartCity(start_city);
break;
}
case 2:
{
cout<<"请输入修改后的降落地点:"<<endl;
cin>>end_city;
info[num]->setEndCity(end_city);
break;
}
case 3:
{
cout<<"请输入修改后的起飞日期:"<<endl;
cin>>start_date;
info[num]->setStartDate(start_date);
break;
}
case 4:
{
cout<<"请输入修改后的起飞时间:"<<endl;
cin>>start_time;
info[num]->setStartTime(start_time);
break;
}
case 5:
{
cout<<"请输入修改后的降落时间:"<<endl;
cin>>end_time;
info[num]->setEndime(end_time);
break;
}
case 6:
{
cout<<"请输入修改后的头等舱剩余票数:"<<endl;
cin>>first_ticket;
info[num]->setFirstTicket(first_ticket);
break;
}
case 7:
{
cout<<"请输入修改后的头等舱价格:"<<endl;
cin>>first_price;
info[num]->setFirstPrice(first_price);
break;
}
case 8:
{
cout<<"请输入修改后的经济舱剩余票数:"<<endl;
cin>>second_ticket;
info[num]->setSecondTicket(second_ticket);
break;
}
case 9:
{
cout<<"请输入修改后的经济舱价格:"<<endl;
cin>>second_price;
info[num]->setSecondPrice(second_price);
break;
}
}
}
}
if(n<sum) //判断是否找到了该航班并显示是否编辑成功
{
cout<<"编辑成功!"<<endl;
}
else
{
cout<<"抱歉,您想要修改的航班不存在,请重新进行操作"<<endl;
}
}
void FlightManager::delFlight() //删除航班信息
{
int num,t,j;
char no[20];
cout<<"请输入想删除的航班号:"<<endl;
cin>>no;
j=sum;
for(num=0;num<sum;num++)
{
if(strcmp(info[num]->getNo(),no)==0)
{
j=num; //记录航班
for(t=num;t<sum;t++)
info[num]=info[num+1];
delete info[sum];
cout<<"该航班成功已经删除"<<endl;
break;
}
}
if(j<sum) ///判断是否找到了该航班并显示是否删除成功
{
cout<<"编辑成功!"<<endl;
}
else
{
cout<<"抱歉,您想要修改的航班不存在,请重新进行操作"<<endl;
}
}
int main()
{
int flag=0;
while(flag<200)
{
menu();
flag++;
}
return 0;
}
void menu() //实现菜单功能
{
int choice;
FlightManager manager;
cout<<"请输入你选择的服务项目对应的数字:"<<endl;
cout<<"1.增加航班"<<endl;
cout<<"2.编辑航班"<<endl;
cout<<"3.删除航班"<<endl;
cout<<"4.退出系统"<<endl;
cin>>choice;
if(choice>=1&&choice<=4)
{
switch(choice)
{
case 1:manager.addFlight();break;
case 2:manager.editFlight();break;
case 3:manager.delFlight();break;
case 4:exit(0);break;
}
}
else
{
cout<<"您输入的数字有误,请重新输入:"<<endl;
}
}
版权声明:本文为m0_61501996原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。