很急学科设计,帮忙调试所有功能(保存TXT)

qq_39591064 2017-07-22 06:47:41
#include<iostream>
#include<time.h>
#include<iomanip>
#include<fstream>
#include<string>
using namespace std;

class plane
{
public:
string start;
char end[20];
char companyName[30];
char planeName[30];
string planeNumber;
int startDate;
int endDate;
int startTime;
int endTime;
int number;
int spare;
float money;
void display()
{
cout<<"起点:";cout<<start<<endl;
cout<<"终点:";cout<<end<<endl;
cout<<"航空公司:";cout<<companyName<<endl;
cout<<"航班名称:";cout<<planeName<<endl;
cout<<"航线编号: ";cout<<planeNumber<<endl;
cout<<"开始日期(如:20140606):";cout<<(startDate/10000)<<"/"<<(startDate%10000)/100<<"/"<<(startDate%100)<<endl;
cout<<"到达日期(如:20140606):";cout<<(endDate/10000)<<"/"<<(endDate%10000)/100<<"/"<<(endDate%100)<<endl;
cout<<"起飞时间(如:1506):";cout<<startTime/100<<":"<<startTime%100<<endl;
cout<<"到达时间(如:1506):";cout<<endTime/100<<":"<<endTime%100<<endl;
cout<<"成员定额:";cout<<number<<endl;
cout<<"剩余票数:";cout<<spare<<endl;
cout<<"票价:";cout<<money<<endl;
}
};

class book
{
public:
int PID;
char name[40];
char phoneNumber[20];
char planeNumber[30];
int orderID;
int seat;
void display()
{
cout<<"身份证号:";cout<<PID<<endl;
cout<<"姓名:";cout<<name<<endl;
cout<<"电话号:";cout<<phoneNumber<<endl;
cout<<"航线编号:";cout<<planeNumber<<endl;
cout<<"订单编号:";cout<<orderID<<endl;
cout<<"飞机座位:";cout<<seat<<endl;
switch(seat)
{
case(1):cout<<"头等舱"<<endl;break;
case(2):cout<<"商务舱"<<endl;break;
case(3):cout<<"经济舱"<<endl;break;
}
}
};

class fun:public plane,public book
{
public:
void bookTicket();
void returnTicket();
void addPlane();
void findPlane();
void alterPlane();
};
void fun::addPlane()
{
int number=0;
plane p[40];
ofstream fout;
fout.open("plane.txt",ios::app|ios::out);
cout<<"起点:";cin>>p[number].start;fout<<p[number].start;
cout<<"终点:";cin>>p[number].end;fout<<p[number].end;
cout<<"航空公司:";cin>>p[number].companyName;fout<<p[number].companyName;
cout<<"航班名称:";cin>>p[number].planeName;fout<<p[number].planeName;
cout<<"航线编号:";cin>>p[number].planeNumber;fout<<p[number].planeNumber;
cout<<"开始日期(如:20140606):";cin>>p[number].startDate;fout<<p[number].startDate;
cout<<"到达日期(如:20140606):";cin>>p[number].endDate;fout<<p[number].endDate;
cout<<"起飞时间(如:1430代表下午两点半):";cin>>p[number].startTime;fout<<p[number].startTime;
cout<<"到达时间(如:1430代表下午两点半):";cin>>p[number].endTime;fout<<p[number].endTime;
cout<<"成员定额:";cin>>p[number].number;
cout<<"剩余票数:";cin>>p[number].spare;
cout<<"票价:";cin>>p[number].money;
number++;
fout.close();
cout<<"添加成功"<<endl;
}

void fun::findPlane()
{
int number=0,choose;
bool f=true;
bool g=true;
string num;
plane p[40];
ifstream fin;
fin.open("plane.txt",ios::app|ios::in);
cout<<"1.按起点 2.按航班号"<<endl;cin>>choose;
switch(choose)
{
case(1):{string start;
cout<<"请输入要查询的起点:";cin>>start;
for(int i=0;i<=number;i++)
{
if(p[i].start==start)
{
p[i].display();f=false;
}
if(f) cout<<"查询结果不存在"<<endl;break;
}
fin.close();
}
case(2):cout<<"请输入要查询的航线编号:";cin>>num;
for(int i=0;i<number;i++)
{
if(p[i].planeNumber==num)
{
p[i].display();g=false;break;
}
if(g) cout<<"查询结果不存在"<<endl;break;
}

}
fin.close();
}
void fun::alterPlane()
{
ifstream fin;
fin.open("plane.txt",ios::app|ios::in);
bool k=true;
int number=0;
string num;
plane p[40];
cout<<"输如你要修改的航线编号:";cin>>num;
int i;
for(i=0;i<number;i++)
{
if(p[i].planeNumber==num)
{
p[i].display();k=false;break;
}
if(k) {cout<<"查询结果不存在"<<endl;break;}


else
{
ofstream fout;
fout.open("plane.txt",ios::app|ios::out);
int choose_1=1;
while(choose_1)
{
cout<<"1.起点 2.终点 3.航空公司 4.航班名称 5. 航线编号"<<endl;
cout<<"6.开始日期 7. 到达日期 8.起飞时间 9.到达时间 10.成员定额 11.剩余票数 12.票价 "<<endl;
cin>>choose_1;
switch(choose_1)
{
case(1):cout<<"起点:";cin>>p[i].start;break;
case(2):cout<<"终点:";cin>>p[i].end;break;
case(3):cout<<"航空公司:";cin>>p[i].companyName;break;
case(4):cout<<"航班名称:";cin>>p[i].planeName;break;
case(5):cout<<"航线编号:";cin>>p[i].planeNumber;break;
case(6):cout<<"开始日期(如:20140606):";cin>>p[i].startDate;break;
case(7):cout<<"到达日期(如:20140606):";cin>>p[i].endDate;break;
case(8):cout<<"起飞时间(如:1430代表下午两点半):";cin>>p[i].startTime;break;
case(9):cout<<"到达时间(如:1430代表下午两点半):";cin>>p[i].endTime;break;
case(10):cout<<"成员定额:";cin>>p[i].number;break;
case(11):cout<<"剩余票数:";cin>>p[i].spare;break;
case(12):cout<<"票价:";cin>>p[i].money;
}
cout<<"1.继续 0.退出"<<endl;
cin>>choose_1;
}
cout<<"修改成功!"<<endl;
fout.close();
}
}
fin.close();
}
void fun::bookTicket()
{
bool q=true;
int number=0;
book c[40];
fstream file("book.txt",ios::in);
file.read((char*)&number,sizeof(number));
file.read((char*)&c[0],sizeof(c[0])*number);
file.close();
int p_number=0;
char num[10];
plane p[40];
file.open("plane.txt",ios::in);
file.read((char*)&p_number,sizeof(p_number));
file.read((char*)&p[0],sizeof(p[0])*p_number);
file.close();
cout<<"以下为所有航班信息:"<<endl;
cout<<"---------------------------------------------------------------------"<<endl;
cout<<"起点 "<<"终点 "<<"航班公司 "<<"航班名称 "<<"航班编号"<<"开始日期 "<<"到达日期 "<<"起飞时间 "<<"到达时间 "<<"成员定额"<<"剩余票数 "<<"票价 "<<endl;
for(int ii=0;ii<p_number;ii++)
{
p[ii].display();
}
cout<<"请输入要查询的航线编号:";cin>>num;
int i;
for(i=0;i<p_number;i++)
if(p[i].planeNumber==num)
{
if(p[i].spare==0)
{
cout<<"票已售完"<<endl;q=false;break;
}
else
{
p[i].display();
cout<<"请选择舱位:1.头等舱 2.商务舱 3.经济舱"<<endl;
cin>>c[number].seat;
p[i].spare--;
file.open("plane.txt",ios::out);
file.write((char*)&p_number,sizeof(p_number));
file.write((char*)&p[0],sizeof(p[0])*p_number);
file.close();break;
}
}
if(i==p_number) cout<<"——查询结果不存在——"<<endl;
cout<<"身份证号:";cin>>c[number].PID;
cout<<"姓名:";cin>>c[number].name;
cout<<"电话:";cin>>c[number].phoneNumber;
c[number].orderID=1306032+number*20;
//c[number].planeNumber=20140515+number;
cout<<"——信息如下:——"<<endl;
c[number].display();
cout<<"是否订票?1.是 0.否"<<endl;
int choose_book;
cin>>choose_book;
if(choose_book)
{
number++;
file.open("book.txt",ios::out);
file.write((char*)&number,sizeof(number));
file.write((char*)&c[0],sizeof(c[0])*number);
file.close();
cout<<"订票成功!"<<endl;
}
}
void fun::returnTicket()
{
bool w=true;
int number=0;
int ID;
book c[40];
fstream file("book.txt",ios::in);
file.read((char*)&number,sizeof(number));
file.read((char*)&c[0],sizeof(c[0])*number);
file.close();
int p_number=0;
plane p[40];
file.open("plane.txt",ios::in);
file.read((char*)&p_number,sizeof(p_number));
file.read((char*)&p[0],sizeof(p[0])*p_number);
file.close();
cout<<"请输入您的身份证号:";cin>>ID;
int i;
for(i=0;i<number;i++)
if(c[i].PID==ID)
{
if(c[i].orderID>0)
{
c[i].display();break;
}
else
{
cout<<"未订票"<<endl;break;
}
}
if(i=number) cout<<"——查询结果不存在——"<<endl;
cout<<"确认退票: 1.是 0.否"<<endl;;
cin>>ID;
if(ID==1)
{
number--;
file.open("book.txt",ios::out);
file.write((char*)&number,sizeof(number));
for(int j=0;j<=number;j++)
{
if(j==i) cout<<"——退票成功!——"<<endl;
else file.write((char*)&c[j],sizeof(c[j]));
}
file.close();
for(int ii=0;ii<p_number;ii++)
{
if(p[ii].planeNumber==c[i].planeNumber)
{
p[ii].spare++;w=false;break;
}
}
file.open("plane.txt",ios::out);
file.write((char*)&p_number,sizeof(p_number));
file.write((char*)&p[0],sizeof(p[0])*p_number);
file.close();
}
}

void jm1();
void jm2();
void jm();

void jm1()
{
fun m;
int choose=1;
while(choose)
{
cout<<" 欢迎进入航空客运订票系统"<<endl;
cout<<" ++++++++++++++++++++++++++++++"<<endl;
cout<<" ==>1. 航线录入 =="<<endl;
cout<<" ==>2. 航线查询 =="<<endl;
cout<<" ==>3. 修改航班信息 =="<<endl;
cout<<" ==>4. 返回 =="<<endl;
cout<<" ++++++++++++++++++++++++++++++"<<endl;
cout<<" 请输入:";cin>>choose;
switch(choose)
{
case(1):m.addPlane();break;
case(2):m.findPlane();break;
case(3):m.alterPlane();break;
case(4):jm();break;
}
}
}

void jm2()
{
fun z;
int choose=1;
while(choose)
{
cout<<" 欢迎进入航空客运订票系统"<<endl;
cout<<" ++++++++++++++++++++++++++++++"<<endl;
cout<<" ==>1. 航线查询 =="<<endl;
cout<<" ==>2. 订票功能 =="<<endl;
cout<<" ==>3. 退票功能 =="<<endl;
cout<<" ==>4. 返回 =="<<endl;
cout<<" ++++++++++++++++++++++++++++++"<<endl;
cout<<" 请输入:";cin>>choose;
switch(choose)
{
case(1):z.findPlane();break;
case(2):z.bookTicket();break;
case(3):z.returnTicket();break;
case(4):jm();break;
}
}
}

void jm()
{
int choose=1;
while(choose)
{
cout<<" 欢迎进入航空客运订票系统"<<endl;
cout<<" ++++++++++++++++++++++++++++++"<<endl;
cout<<" ==>1. 管理员 =="<<endl;
cout<<" ==>2. 客户 =="<<endl;
cout<<" ++++++++++++++++++++++++++++++"<<endl;
cout<<" 请输入:";cin>>choose;
switch(choose)
{
case(1):jm1();break;
case(2):jm2();break;
}
}
}

int main()
{
jm();
return 0;
}
...全文
126 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

64,636

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧