数据结构课程设计源代码(完整版).doc_第1页
数据结构课程设计源代码(完整版).doc_第2页
数据结构课程设计源代码(完整版).doc_第3页
数据结构课程设计源代码(完整版).doc_第4页
数据结构课程设计源代码(完整版).doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

长江大学计算机科学学院算法与数据结构课程设计报告设计题目: 专 业 班 级 学 生 学 号 指导教师 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 #include2、函数体部分const int MAX_POSSIBILITY = 100;using namespace std;static string title6=航班号, 起飞时间,降落时间,起飞城市, 降落城市, 余票量;static int wid6=8,10,10,10,10,8;static string title19=客户姓名,座位号,航班号,证件号,订票数,降落时间,起飞时间,起飞城市,降落城市;static int wid19=8,9,8,8,8,11,11,11,11;static string title25=客户姓名,起飞城市,降落城市,客 户 ID,预订票数;static int wid25=8,10,10,10,10;extern int len=0;extern int A=0;extern int max1=0;struct flight /航班号int a1; /航班号string a2; /起飞时间string a3; /降落时间string a4; /起飞城市string a5; /降落城市int a6; /余票fl50;struct customer /客户信息string name; /客户姓名int seat; /座位号int num; /航班号string no; /证件号int ps; /订票数string jls; /降落时间 string qfs; /起飞时间string qfd; /起飞城市string jld; /降落城市cu100;struct waitstring b1; /客户姓名string b2; /起飞城市string b3; /降落城市string no; /客户IDint num; /订票数 Wa50;void luru(); /声明录入航班信息函数void chaxun(); /声明查询函数void dingpiao(); /声明订票函数bool tuipiao(); /声明退票函数void tuichu(); /声明退出函数void menu(); /声明主菜单函数void chaxun1(); /声明按航班号查询void chaxun2(); /声明按城市查询void visit(); /声明预览菜单 void visit1(); void visit2();void visit3();void fresh();void luru()cout*请输入航班信息*endl;coutfllen.a1;coutfllen.a2;coutfllen.a3;coutfllen.a4;coutfllen.a5;coutfllen.a6;len+;cout请选择所要进行的操作endl;menu();void visit() cout1:显示已定航班信息endl;cout2:显示等候客户信息endl;cout3:显示所有航班信息endl;couts;switch(s)case 1:visit1(); /显示已定客户信息break;case 2:visit2(); /显示等候客户信息break;case 3:visit3(); /显示所有航班信息break;default:cout*请重新输入*endl;goto end;/break;return;void visit1()cout*已定客户信息*endl;for(int i=0;i9;i+)coutsetw(wid1i)title1i;coutendl;for(int j=0;jA;j+)coutsetw(wid10);coutsetw(wid11)cuj.seat;coutsetw(wid12)cuj.num;coutsetw(wid13)cuj.no;coutsetw(wid14)cuj.ps;coutsetw(wid15)cuj.jls;coutsetw(wid16)cuj.qfs;coutsetw(wid17)cuj.qfd;coutsetw(wid18)cuj.jld;coutendl;menu();void visit2()cout*等候客户信息*endl;for(int i=0;i5;i+)coutsetw(wid2i)title2i;coutendl;for(int j=0;jmax1;j+)coutsetw(wid20)Waj.b1; coutsetw(wid21)Waj.b2; coutsetw(wid22)Waj.b3; coutsetw(wid23)Waj.no; coutsetw(wid24)Waj.num;coutendl;menu();void visit3()cout*所有航班信息*endl; for(int i=0;i6;i+)coutsetw(widi)titlei;coutendl; for(int j=0;jlen;j+)coutsetw(wid0)flj.a1; coutsetw(wid1)flj.a2; coutsetw(wid2)flj.a3; coutsetw(wid3)flj.a4; coutsetw(wid4)flj.a5; coutsetw(wid5)flj.a6; coutendl;menu();void fresh()if(tuipiao()=true)cout*退票成功,等候客户可以进行购票*endl;dingpiao();menu();void menu()cout endl;cout*欢迎来到航空订票系统*endl;cout endl;cout*endl;cout*1.录入航班信息*endl;cout*2.查询航班信息*endl;cout*3.订 票*endl;cout*4.退 票*endl;cout*5.浏览航班信息*endl;cout*6.退 出 系 统*endl;cout*7.刷 新*endl;cout*endl;cout endl;int i;couti;switch(i)case 1:luru();break;case 2:chaxun();break;case 3:dingpiao();menu();case 4:tuipiao();break;case 5:visit();break;case 6:tuichu();exit(1);/case 7:fresh();/break;default :cout输入的选项不合法,请重新输入endl;system (cls); /清屏/menu();void chaxun()system(cls);cout请选择查询方式endl;cout1.按航班号查询endl;cout2.按城市查询t;switch(t)case 1:chaxun1();break;case 2:chaxun2();break;default :cout输入的数据有误,请重新输入!endl;menu();break;void chaxun1() /按航班号查询int n;cout请输入要查询的航班号:n;for(int j=0;j=len;j+)if(flj.a1=n)cout*该次航班信息为*endl;cout航 班 号:flj.a1endl;cout起飞时间:flj.a2endl;cout降落时间:flj.a3endl;cout起飞城市:flj.a4endl;cout降落城市:flj.a5endl;cout剩余票量:flj.a6endl;menu();return;cout没有对应的航班!endl;menu();return;void chaxun2() /按城市查询(起飞城市和降落城市)string m1;string m2;int j=0;coutm1;coutm2; end:if(jlen)if(flj.a4=m1 & flj.a5=m2)cout*该次航班信息为*endl;cout航 班 号:flj.a1endl;cout起飞时间:flj.a2endl;cout降落时间:flj.a3endl;cout起飞城市:flj.a4endl;cout降落城市:flj.a5endl;cout剩余票量:flj.a6endl;cout*查找成功*endl;elsej+;if(jlen)goto end;cout没有对应的航班!endl;menu();void dingpiao()char Name10;int fn; int ydps; /预定的票数int sign=0;char ID18;coutName;coutfn;coutydps;coutID;for(int i=0;i0 &fli.a6=ydps) /判断票数是否满足条件cuA.name=Name;cuA.num=fn;cuA.ps=ydps;cuA.jld=fli.a5;cuA.jls=fli.a3;cuA.no=ID;cuA.qfd=fli.a4;cuA.qfs=fli.a2;srand( (unsigned)time( NULL );cuA.seat= rand() % MAX_POSSIBILITY;/产生一个随机数A+;fli.a6=fli.a6-ydps;sign=1;cout订票成功!endl;cout endl;break;elsechar r;cout该航班余票不足!;coutr;if(r=Y | r=y)queue M; Wamax1.b1=Name;Wamax1.b2=fli.a4;Wamax1.b3=fli.a5;Wamax1.no=ID;Wamax1.num=ydps;M.push(Wamax1);max1+;cout客户,您好!您的信息我们已经记录,请等候通知!endl;break;sign=1;if(sign)break;/if(i=len)/cout航班号有误!endl;bool tuipiao() /退票system(cls); /清屏string Name;int fn;int sign=0;coutName;coutfn;for(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论