数据结构课程设计源代码完整版.docx
- 文档编号:5186964
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:21
- 大小:20.39KB
数据结构课程设计源代码完整版.docx
《数据结构课程设计源代码完整版.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计源代码完整版.docx(21页珍藏版)》请在冰豆网上搜索。
数据结构课程设计源代码完整版
算法与数据结构课程设计报告
设计题目:
专业
班级
学生
学号
指导教师
2014年第1学期
下载可编辑
第一部分:
需求分析
1、系统名称:
航空客运订票系统
航空客运订票的业务活动包括:
查询航线、客票预定和办理退票等。
要求在TC或VC环境下设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。
2、要求:
(1)每条航线所涉及的信息有:
终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票量、已经订票的客户(包括、订票量)以及等候替补的客户(包括、所需票量)。
(2)作为模拟系统,全部数据可以只存放在存中。
(3)通过此系统可以实现如下功能:
①录入功能:
可以录入航班情况
②查询功能:
根据客户提供的终点站名进行查询,可以输出以下信息:
航班号、飞机号、星期几飞行和余票量等。
也可以根据航班号,查询飞机某个航线的情况。
③订票功能:
根据客户提出的要求(、终点站名、订票数量)查询该航班的余票量情况。
如尚有足够的余票,则为客户办理订票手续;若已满员或余票量少于订票数量,则需要重新询问客户要求,如需要,可登记排队候补。
④退票功能:
根据客户提供的情况(、日期、航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,若有人排队,则为排在第一位的客户办理订票手续。
.专业.整理.
下载可编辑
第二部分:
系统设计图样
添加航班
按姓名查找
查询航班
按航班查找
订票
主程序
退票
已定客户
浏览航班
等候客户
所有航班
安全退出
一:
设计说明
1:
添加航班:
整个航班的信息保存在一个结构体flight中,采用结构体数组,每一个航班信息包含航班号、起飞时间、起飞城市、降落时间、降落城市、余票数量。
航班信息通过lulu()函数进行添加。
添加的信息保存在航班flight结构体数组中。
2:
查询航班:
查询板块分为两个部分,按查找和按站名查找。
按查找:
通过所输入的和已定客户的相匹配,匹配成功则查找成功。
按站名查找:
通过所输入的起始站名和终点站名进行匹配,匹配成功则查找成功。
3:
订票功能:
根据用户的和航班号进行订票,如果所查找的航班号的余票
满足用户需要的票数,则订票成功,该信息保存在Customer中,才用结构体数
组,包含已定客户的、客户ID、订的票数、起飞时间、起飞城市、降落时间、
降落城市、航班号。
若所查找的航班的余票不满足客户的需求,则提醒用户是否
需要进入到等候用户的里,等候用户信息保存在Wait结构体数组中,每添加一
个信息,该数组则会生成一个记录。
4:
退票功能:
根据用户的和航班号进行退票,如果用户输入的和航班号在已定客户的结构体数组中能找到该记录,则在已定客户的数组中删除此条记录,
.专业.整理.
下载可编辑
并且将该条记录的票数添加到flight中该航班的余票中去。
5:
浏览航班:
该功能分为三个板块:
显示已定客户信息,显示等候客户,显示所有航班信息。
显示已定客户信息:
通过格式化输出,将已定客户Customer结构体数组中的信息利用一个循环输出。
显示等候客户:
通过格式化输出,将等候客户Wait结构体数组中的信息利用一个循环进行输出。
显示所有航班信息:
铜锁格式化输出,将所有航班信息flight结构体数组中的信息利用一个循环进行输出。
6:
安全退出:
通过exit函数进行退出程序。
第三部分:
实现
1、头文件部分
#include"stdafx.h"
#include
#include
#include
#include
#include
#include
#include
#include
2、函数体部分
constintMAX_POSSIBILITY=100;
usingnamespacestd;
staticstringtitle[6]={"航班号","起飞时间","降落时间","起飞城市","
降落城市","余票量"};
staticintwid[6]={8,10,10,10,10,8};
staticstringtitle1[9]={"客户","座位号","航班号","证件号","订票数","降落时间","起飞时间","起飞城市","降落城市"};
staticintwid1[9]={8,9,8,8,8,11,11,11,11};
staticstringtitle2[5]={"客户","起飞城市","降落城市","客户ID","预订
票数"};
staticintwid2[5]={8,10,10,10,10};
externintlen=0;
externintA=0;
.专业.整理.
下载可编辑
externintmax1=0;
structflight
//
航班号
{
inta1;
//
航班号
stringa2;
//
起飞时间
stringa3;
//
降落时间
stringa4;
//
起飞城市
stringa5;
//
降落城市
inta6;
//
余票
}fl[50];
structcustomer
//
客户信息
{
stringname;
//客户
intseat;
//
座位号
intnum;
//
航班号
stringno;
//
证件号
intps;
//
订票数
stringjls;
//
降落时间
stringqfs;
//
起飞时间
stringqfd;
//
起飞城市
stringjld;
//
降落城市
}cu[100];
structwait
{
stringb1;
//
客户
stringb2;
//
起飞城市
stringb3;
//
降落城市
stringno;//
客户ID
intnum;
//
订票数
}Wa[50];
voidluru();
//
声明录入航班信息函数
voidchaxun();
//
声明查询函数
voiddingpiao();
//
声明订票函数
booltuipiao();
//
声明退票函数
voidtuichu();
//
声明退出函数
voidmenu();
//
声明主菜单函数
voidchaxun1();
//
声明按航班号查询
voidchaxun2();
//
声明按城市查询
voidvisit();
//
声明预览菜单
voidvisit1();
voidvisit2();
voidvisit3();
voidfresh();
voidluru()
.专业.整理.
下载可编辑
{
cout<<"**********请输入航班信息**********"< cout<<"请输班号: "; cin>>fl[len].a1; cout<<"起飞时间: "; cin>>fl[len].a2; cout<<"降落时间: "; cin>>fl[len].a3; cout<<"起飞城市: "; cin>>fl[len].a4; cout<<"降落城市: "; cin>>fl[len].a5; cout<<"剩余票量: "; cin>>fl[len].a6; len++; cout<<"请选择所要进行的操作"< menu(); } voidvisit() { cout<<"1: 显示已定航班信息"< cout<<"2: 显示等候客户信息"< cout<<"3: 显示所有航班信息"< cout<<"请选择..."; end: ints; cin>>s; switch(s) { case1: visit1();//显示已定客户信息 break; case2: visit2();//显示等候客户信息 break; case3: visit3();//显示所有航班信息 break; default: cout<<"******请重新输入******"< gotoend; //break; } return; } voidvisit1() { cout<<"**********已定客户信息**********"< .专业.整理. 下载可编辑 cout< cout< for(intj=0;j { cout< cout< cout< cout< cout< cout< cout< cout< cout< cout< } menu(); } voidvisit2() { cout<<"**********等候客户信息**********"< for(inti=0;i<5;i++) cout< cout< for(intj=0;j { cout< cout< cout< cout< cout< cout< } menu(); } voidvisit3() { cout<<"**********所有航班信息**********"< for(inti=0;i<6;i++) cout< cout< for(intj=0;j { cout< cout< .专业.整理. 下载可编辑 cout< cout< cout< cout< cout< } menu(); } voidfresh() { if(tuipiao()==true) { cout<<"****退票成功,等候客户可以进行购票****"< } menu(); } voidmenu() { cout<<""< cout<<"**********欢迎来到航空订票系统**********"< cout<<""< cout<<"**********************************"< cout<<"**********1. 录入航班信息**********"< cout<<"**********2. 查询航班信息**********"< cout<<"**********3. 订 票**********"< cout<<"**********4. 退 票**********"< cout<<"**********5. 浏览航班信息**********"< cout<<"**********6. 退出 系统**********"< cout<<"**********7. 刷 新**********"< cout<<"**********************************"< cout<<""< inti; cout<<"请选择操作: "; cin>>i; switch(i) { case1: luru(); break; case2: chaxun(); break; case3: .专业.整理. 下载可编辑 dingpiao(); menu(); case4: tuipiao(); break; case5: visit(); break; case6: tuichu(); exit (1); //case7: fresh(); //break; default: cout<<"输入的选项不合法,请重新输入"< system("cls");//清屏 //menu(); } } voidchaxun() { system("cls"); cout<<"请选择查询方式"< cout<<"1.按航班号查询"< cout<<"2.按城市查询"< intt; cin>>t; switch(t) { case1: chaxun1(); break; case2: chaxun2(); break; default: cout<<"输入的数据有误,请重新输入! "< break; } } voidchaxun1()//按航班号查询 { intn; cout<<"请输入要查询的航班号: "< cin>>n; for(intj=0;j<=len;j++) { if(fl[j].a1==n) { cout<<"**********该次航班信息为**********"< .专业.整理. 下载可编辑 cout<<"航班号: "< cout<<"起飞时间: "< cout<<"降落时间: "< cout<<"起飞城市: "< cout<<"降落城市: "< cout<<"剩余票量: "< menu(); return; } } cout<<"没有对应的航班! "< menu(); return; } voidchaxun2()//按城市查询(起飞城市和降落城市) { stringm1; stringm2; intj=0; cout<<"请输入要查询的起始城市"; cin>>m1; cout<<"请输入要查询的降落城市: "; cin>>m2; end: if(j { if(fl[j].a4==m1&&fl[j].a5==m2) { cout<<"**********该次航班信息为**********"< cout<<"航班号: "< cout<<"起飞时间: "< cout<<"降落时间: "< cout<<"起飞城市: "< cout<<"降落城市: "< cout<<"剩余票量: "< cout<<"*****查找成功*****"< } else { j++; if(j gotoend; cout<<"没有对应的航班! "< } } .专业.整理. 下载可编辑 menu(); } voiddingpiao() { charName[10]; intfn; intydps;//预定的票数 intsign=0; charID[18]; cout<<"请输入你的: "; cin>>Name; cout<<"请输入航班号: "; cin>>fn; cout<<"请输入预定票数: "; cin>>ydps; cout<<"请输入身份证号: "; cin>>ID; for(inti=0;i<=len;i++) { if(fl[i].a1==fn)//查询该航班 { if(fl[i].a6>0&&fl[i].a6>=ydps)//判断票数是否满足条件 { cu[A].name=Name; cu[A].num=fn; cu[A].ps=ydps; cu[A].jld=fl[i].a5; cu[A].jls=fl[i].a3; cu[A].no=ID; cu[A].qfd=fl[i].a4; cu[A].qfs=fl[i].a2; srand((unsigned)time(NULL)); cu[A].seat=rand()%MAX_POSSIBILITY;//产生一个随机数A++; fl[i].a6=fl[i].a6-ydps; sign=1; cout<<"订票成功! "< cout<<""< break; } else { charr; cout<<"该航班余票不足! "; .专业.整理. 下载可编辑 cout<<"是否愿意盘对等候? (Y/N)"; r=getchar(); cin>>r; if(r=='Y'||r=='y') { queue Wa[max1].b1=Name; Wa[max1].b2=fl[i].a4; Wa[max1].b3=fl[i].a5; Wa[max1].no=ID; Wa[max1].num=ydps; M.push(Wa[max1]); max1++; cout<<"客户,您好! 您的信息我们已经记录,请等候通 知! "< break; sign=1; } } if(sign) break; } } //if(i==len) //cout<<"航班号有误! "< } booltuipiao()//退票 { system("cls");//清屏 stringName; intfn; intsign=0; cout<<"请输入您的: "; cin>>Name; cout<<"请输入航班号: "; cin>>fn; for(inti=0;i { if(fn==fl[i].a1)//航班号匹配 { for(intj=0;j { if(cu[j].name==Name) { .专业.整理. 下载可编辑 cout<<"退票成功!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 源代码 完整版