数据结构航空客运订票系统实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.实验目的
1.掌握使用VC++上机调试队列的基本方法;
2.掌握队列的基本操作:初始化,出队列,入队列等运算在顺序和链式存储结构上的实现。
3.了解队列的抽象数据类型定义
4.熟练掌握链队列的定义,熟练掌握链队列表的基本算法及时间性能
二.实验内容
航班订票系统
航空客运订票业务包括:查询航线,客票预订,办理退票等。设计一个航空客运订票系统。
三.实验步骤(可选)
typedef struct pas{
CString nam;
int bok;
int lev;
}pas;
typedef struct wai{
CString nam;
int ned;
}wai;
typedef struct lpa{
pas man;
struct lpa *next;
}lpa,*ppa;
typedef struct qnode{//排队候队列wai ren;
struct qnode* next;
}qnode,*ptrq;
typedef struct flyinfo{
CString des;
CString fli;
CString air;
CString day;
int tol;
int lef;
ppa chk;
ptrq pwa;
int flg;
}flyinfo;
typedef struct{
ptrq front;
ptrq rear;
}linkq;
void initq(linkq &q)
{
q.front=q.rear=new qnode;
q.front->next=NULL;
}
void rudui(linkq &q,wai man) {
ptrq p;
p=new qnode;
p->ren.nam=man.nam;
p->ren.ned=man.ned;
p->next=NULL;
q.rear->next=p;
q.rear=p;
}
void chudui(linkq &q,wai &man) {
if(q.front==q.rear)
return;
ptrq p;
p=q.front->next;
man.nam=p->ren.nam;
man.ned=p->ren.ned;
q.front->next=p->next;
if(p==q.rear)
q.front=q.rear;
delete p;
}
/*typedef struct {
flyinfo *bas;
int len;
}slist;
void initlist(slist& l)
{
l.bas=(flyinfo*)malloc(sizeof(flyinfo)*10); l.len=0;
}
*/
void initchk(ppa &lis)
{
lis=new lpa;
lis->next=NULL;
}
void addpas(ppa &lis,pas miz)
{
ppa pl=new lpa;
ppa p=lis;
while(p!=NULL)
p=p->next;
pl->man=miz;
p=pl;
pl->next=NULL;
}
void dele(ppa &lis,pas miz) {ppa p,q;
p=q=lis;
for(;q!=NULL;)
{
if(q->man.nam==miz.nam)
{
p->next=q->next;
delete p;
break;
}
p=q;
q=q->next;
}
}
flyinfo fly[10];
linkq q[10];//paidui
ppa lis[10];//订票客户链表
int fg=0;
int fnum=0;
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//initlist(fly);
initchk(lis[0]);
initq(q[0]);
initchk(lis[1]);
initq(q[1]);
fly[1].des="上海";fly[1].air="CV902";fly[1].day="星期二";fly[1].fli="XXDDD";fly[1].tol=300;fly[1].lef=5;
fly[0].des="南京";fly[0].air="CV902";fly[0].day="星期三";fly[0].fli="XXODD";fly[0].tol=300;fly[0].lef=5;
wai p1,p2;
p1.nam="jack";
p1.ned=10;
p2.nam="rose";
p2.ned=30;
rudui(q[0],p1);