______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A
一.实验目的
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;
1
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A }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{
2
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A 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;
3
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A 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;
4
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A 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;
5
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A
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];//订票客户链表
6
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A 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);
星
期
星
期
二
三
7
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A rudui(q[0],p2); rudui(q[1],p1); rudui(q[1],p2); pas pa1,pa2;
pa1.bok=2;pa1.lev=1;pa1.nam=\"leke\"; pa2.bok=2;pa2.lev=1;pa2.nam=\"bake\"; addpas(lis[0],pa1);addpas(lis[1],pa2);
//m_des=fly[0].des; // Add \"About...\" menu item to system menu.
// IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
8
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A
if (!strAboutMenu.IsEmpty()) {
pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING,
IDM_ABOUTBOX,
strAboutMenu); }
} void CMyDlg::OnBUTTONdingpiao() {
fg=0;//biaozhi dingpiao
CAboutDlg dlg; dlg.DoModal();
}
void CMyDlg::OnBUTTONnext() {
if(fnum<=0) {fnum++;
m_air=fly[fnum].air; m_des=fly[fnum].des; m_flight=fly[fnum].fli;
9
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A m_total=fly[fnum].tol; m_left=fly[fnum].lef; m_day=fly[fnum].day; UpdateData(false); } else
MessageBox(\"last!\"); }
void CMyDlg::OnBUTTONup() {
if(fnum>0) {fnum--;
m_air=fly[fnum].air; m_des=fly[fnum].des; m_flight=fly[fnum].fli; m_total=fly[fnum].tol; m_left=fly[fnum].lef; m_day=fly[fnum].day; UpdateData(false); } else
10
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A MessageBox(\"first!\"); }
void CAboutDlg::OnOK() {
UpdateData(); pas pa; pa.lev=m_levl; pa.bok=m_number; pa.nam=m_name; if(fg==0) {
addpas(lis[fnum],pa); MessageBox(\"订票成功!\"); } else if(fg==1) {
dele(lis[fnum],pa);
MessageBox(\"退票成功!\"); } else
11
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A { wai pd;
pd.nam=m_name; pd.ned=m_number; rudui(q[fnum],pd);
MessageBox(\"登记成功!\");
} CDialog::OnOK(); }
void CMyDlg::OnButtonout() { fg=1;
CAboutDlg dlg; dlg.DoModal(); }
void CMyDlg::OnBUTTONwait() { fg=2;
CAboutDlg dlg;
12
广东工业大学实验报告
______________学院________________专业_____班 学号__________姓名_____________ 成绩评定_______ 教师签名 许亮 实验_______题目____________________________ 课程名称 数据结构A dlg.DoModal(); }
五.实验中出现的问题、解决方法和心得体会
1. 通过本次实验,基本上了解了链队列的存储结构及其算法的实现,了解了链队列的特点以及链队列抽象出的数据类型的定义,基本上掌握了链队列基本算法如何实现,包括如何实现建立,查找,插入,删除,合并,销毁,数据排序等操作。更加清楚的了解到如何从现实生活中抽象出链队列的数据类型并且实现功能,解决现实中遇到的问题。
13
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务