![]() |
#2
随风飘荡2017-01-13 01:40
|
只有本站会员才能查看附件,请 登录
代码太长,贴不上来。上传附件了。
请求各位前辈解惑
需要求助的问题:航线添加成功,但是打印不出来?
下面是我测试的代码,调用两个模块又是正常的。添加航线成功,又能打印出来。不知道附件里的代码是哪里出问题了?

#include <iostream>
#include <string>
using namespace std;
class transportNode//航线类节点
{
friend class transport;
private:
string finish;//目的地
string flightname;//航班名
int flightnum;//飞机编号(航班号)
int day;//飞行日期
int limitednum;//乘员限额
int remainber;//余票
struct booknode
{
public:
string name;//乘客姓名
char ID[20];//乘客身份证号码
int ticketnum;//票数
int rate;//舱位等级
}b[40];
struct sparenode
{
public:
string name;//乘客姓名
int ticketnum;//票数
int m;//记录排队等候的顾客的数量
}s[40];
transportNode *next;
};
class transport
{
public:
transport();//无參构造函数构造头节点
void recort();//记录航班信息
void delrecort();//删除航班
void chest();//实现根据输入的目的地查询的功能
void book();//实现旅客的订票功能
void bounce();//实现退票功能
void outTran();//打印航班信息
int lookup(string cityname);//返回查询的航班
int searchID();//查询乘客ID是否存在
int GetElem();
private:
transportNode *head;
};
transport::transport()
{
head = new transportNode;
head->next = NULL;
}
void transport::recort()
{
transportNode* t;
transport();
t = new transportNode;
cout << " 请输入航线终点:";
cin >> t->finish;
cout << " 请输入航班号:";
cin >> t->flightname;
cout << " 请输入飞机号:";
cin >> t->flightnum;
cout << " 请输入飞行日期:";
cin >> t->day;
cout << " 请输入乘客限额:";
cin >> t->limitednum;
t->remainber = t->limitednum;
//head->next=t->next;
//t->next=head;
t->next=head->next;
head->next=t;
//t->next = head->next;
//head->next = t->next;
cout << "添加航线成功!" << endl;
}
void transport::outTran()//显示所有航班
{
transportNode* p;
p = head->next;
if (p == NULL)
{
cout << "没有任何航班!" << endl;
exit(-1);
}
while (p)
{
cout << "航班目的站点" << "\t" << "航班号" << "\t" << "飞机编号" << "\t" << "飞行日期" << "\t" << "乘客限额" << "\t" << "余票" << endl;
cout << p->finish << "\t" << p->flightname << "\t" << p->flightnum << "\t" << p->day << "\t" << p->limitednum << "\t" << p->remainber << endl;
p = p->next;
}
}
int main()
{
transport p;
p.recort();
p.outTran();
return 0;
}
#include <string>
using namespace std;
class transportNode//航线类节点
{
friend class transport;
private:
string finish;//目的地
string flightname;//航班名
int flightnum;//飞机编号(航班号)
int day;//飞行日期
int limitednum;//乘员限额
int remainber;//余票
struct booknode
{
public:
string name;//乘客姓名
char ID[20];//乘客身份证号码
int ticketnum;//票数
int rate;//舱位等级
}b[40];
struct sparenode
{
public:
string name;//乘客姓名
int ticketnum;//票数
int m;//记录排队等候的顾客的数量
}s[40];
transportNode *next;
};
class transport
{
public:
transport();//无參构造函数构造头节点
void recort();//记录航班信息
void delrecort();//删除航班
void chest();//实现根据输入的目的地查询的功能
void book();//实现旅客的订票功能
void bounce();//实现退票功能
void outTran();//打印航班信息
int lookup(string cityname);//返回查询的航班
int searchID();//查询乘客ID是否存在
int GetElem();
private:
transportNode *head;
};
transport::transport()
{
head = new transportNode;
head->next = NULL;
}
void transport::recort()
{
transportNode* t;
transport();
t = new transportNode;
cout << " 请输入航线终点:";
cin >> t->finish;
cout << " 请输入航班号:";
cin >> t->flightname;
cout << " 请输入飞机号:";
cin >> t->flightnum;
cout << " 请输入飞行日期:";
cin >> t->day;
cout << " 请输入乘客限额:";
cin >> t->limitednum;
t->remainber = t->limitednum;
//head->next=t->next;
//t->next=head;
t->next=head->next;
head->next=t;
//t->next = head->next;
//head->next = t->next;
cout << "添加航线成功!" << endl;
}
void transport::outTran()//显示所有航班
{
transportNode* p;
p = head->next;
if (p == NULL)
{
cout << "没有任何航班!" << endl;
exit(-1);
}
while (p)
{
cout << "航班目的站点" << "\t" << "航班号" << "\t" << "飞机编号" << "\t" << "飞行日期" << "\t" << "乘客限额" << "\t" << "余票" << endl;
cout << p->finish << "\t" << p->flightname << "\t" << p->flightnum << "\t" << p->day << "\t" << p->limitednum << "\t" << p->remainber << endl;
p = p->next;
}
}
int main()
{
transport p;
p.recort();
p.outTran();
return 0;
}