ImageVerifierCode 换一换
格式:DOC , 页数:30 ,大小:3.41MB ,
资源ID:8745341      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8745341.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(面向对象课程设计《民航订票系统》.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

面向对象课程设计《民航订票系统》.doc

1、 《面向对象程序设计》课程设计报告 题目: 民航订票系统 班级: 学号: 姓名: 指导老师: 时间: 15-16周 / 2015年12月7日至2015年12月18日 成绩等级: 1 一、 需求分析 设计一个民航订票系统,实现如下功能: (1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定); (2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况; (3)订票:(订票情况可以存

2、在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关提示信息; (4)退票: 可退票,退票后修改相关数据文件; (5)客户资料:有姓名,证件号,订票数量及航班情况,订单要有编号; (6)修改航班信息:当航班信息改变可以修改航班数据文件。 二、对每个类的说明,包括数据成员、成员函数的含义与功能 本程序中所用到的数据类型有:int ,chat,结构,指针 数据结构有链表,其中链表的数据域是结构。结构等数据的定义如下: typedef struct Customer //已定票乘客信息 { char Name[7];

3、 //姓名 int Amount; //定票数 char Rank; //舱位等级 int Seat_No; //座位号 struct Customer *Next; }Customer; typedef struct Replace //替补乘客信息 { char Name[7]; //姓名 int Amount; //定票数 char Rank; //舱位等级

4、 char Seat_No; //座位号 struct Replace *Next; }Replace,*PReplace; typedef struct Flight //航线信息 { char Des_Name[10]; //终点站名 char Flight_No[6]; //航班号 char Plane_No[6]; //飞机号 char Week_Day; //飞行周日 int Customer_Amount

5、 //乘员定额 int Free_Amount; //剩余票数 float Price[3]; //舱位等级的价格 Replace *ReplName; //该航班的候补乘客名单 Customer *CustName; //该航班的已定票乘客名单 struct Flight *Next; //指示下一航线结点 }Flight,*PFlight; int Customer_Count=0; //所有航线的定票乘客总数 Fligh

6、t *Head; //航线头指针 Flight *p2; //航线结点指针 Customer *Custp1[MAX]; //各条航线乘客结点指针 Replace *Replp1[MAX]; //各条航线候补结点指针 int IsEmpty=1; //是否有定票乘客 int IsReplace=1; //是否有候补乘客 Customer *prior; //满足要求的定票乘客的前结点,以作删除操作

7、三、系统框架图 密码登陆界面 开始 航线管理 订票系统 退票办理 乘客管理 系统离开 航线增设 航线查看 航线修改 返回主菜单 订票 乘客 信息 候补乘客 信息 返回主菜单 是否确认离开 四、调试分析 在调试过程中,由于没有做出界面而是在DOS环境下实现的,所以要想得到比较友好的DOS界面必须耐心地调整.。在密码登陆时,输入密码出现实心黑圆点也是通过循环语句多次慢慢调试出的。在分析实现时,首先想到的是用链表来存放记录,但每个记录包括的许多信息最好是存放在结构中,故选取以结构为链表信息域的数据结构来实现。 改进之处:1>用可视化做出

8、界面,让程序实现起来更加好看。 2>用文件实现数据信息的存取,本题中可以通过改动来增加此项功能。 3>退票时,若乘客定的是多票,则出现询问其退几张票。 五、用户手册 编绎连接得到EXE文件,运行程序,出现如下密码登陆界面(以lyh为密码) 输入lyh, 按下回车 接着出现 选取1,按下回车 选取1,按下回车 按提示输入并按回车,最后出现如下界面: 按Y或y继续录入航班信息,输入N或n退回。 输入Y继续输入一些信息..(;输入的航班号若不唯一则出现提示信息,并要求重新输入) 输入N,回车,返回航线管理子菜单 输入2,回车查看航线信息 按下任意

9、键返回航线管理子菜单 输入3对航线进个修改;输入4返回主菜单, 输入2,回车,进入订票办理界面如下: 若输入的航班号有误,则出现如下提示界面: 按下Y,继续 按提示一步步输入,直到输入完毕,出现如下界面 由于本人比较懒,所以没有在订票人所定票数为所有时显示”包机” 0.0 输入y,继续定票,输入N返回主菜单 若余票不足,则出现如下界面: 输入N出现是否退出“订票办理”的提示信息,输入Y出现: 按提示,输入信息,直至出下如下界面: 输入Y继续订票,输入N返回主菜单界面 输入4,查看乘客信息,界面如下: 输入1,回车 按下任意键,返回乘客管理

10、子菜单 输入2,回车,查看候补乘客信息: 按下任意键返回乘客管理子菜单 输入3返回主菜单 输入3,回车,进入退票办理界面 按提示一步步输入 (本系统只有“一退全光”的效果 >-<) 按下任意键返回主菜单 输入5,回车 输入N返回主菜单,输入Y退出航空订票管理系统 汪:1>凡提示输入Y或N时不分大小写 2>在主菜单及子菜单界面时,若输入的菜单项不存在,则出现(以主界面为例) 按下任意键返回主菜单界面,可以继续输入菜单项 六、附录 11 #include #include #includ

11、e #include #include #include #define MAX 50 #define NULL 0 typedef struct Customer //已定票乘客信息 { char Name[7]; //姓名 int Amount; //定票数 char Rank; //舱位等级 int Seat_No; //座位号 stru

12、ct Customer *Next; }Customer; typedef struct Replace //替补乘客信息 { char Name[7]; //姓名 int Amount; //定票数 char Rank; //舱位等级 char Seat_No; //座位号 struct Replace *Next; }Replace,*PReplace; typedef struct Flight //

13、航线信息 { char Des_Name[10]; //终点站名 char Flight_No[6]; //航班号 char Plane_No[6]; //飞机号 char Week_Day; //飞行周日 int Customer_Amount; //乘员定额 int Free_Amount; //剩余票数 float Price[3]; //舱位等级的价格 Replace *ReplName;

14、 //该航班的候补乘客名单 Customer *CustName; //该航班的已定票乘客名单 struct Flight *Next; //指示下一航线结点 }Flight,*PFlight; int Customer_Count=0; //所有航线的定票乘客总数 Flight *Head; //航线头指针 Flight *p2; //航线结点指针 Customer *Custp1[MAX]; //各条航线乘客结点指针

15、Replace *Replp1[MAX]; //各条航线候补结点指针 int IsEmpty=1; //是否有定票乘客 int IsReplace=1; //是否有候补乘客 Customer *prior; //满足要求的定票乘客的前结点,以作删除操作 //-------密码登入窗口函数---------- int Code_Verify() { char b[10]; char c[10]="lyh";//已经进行简单加密 char a;

16、 int i=0,j,k=1,x; // system("cls"); // cout<<"\n\n\n\n\n\n\n\n\n\t\t\t请输入系统密码:"; while(1) { system("cls"); cout<<"\n\n\n\n\n\n\n\n\n\t\t\t请输入系统密码:"; for(j=0;j

17、a; if(int(a)==8) { i-=2; system("cls"); cout<<"\n\n\n\n\n\n\n\n\n\t\t\t请输入系统密码:"; for(j=0;j

18、lse { if(k==3) { while (!kbhit()) { system("cls"); for(x=0;x<100000000;x++); cout<<"\n\n\n\n\n\n\n\n\t\t 你无权使用本系统,任意键退出系统..."<

19、1; } cout<<"\n\t\t 密码错误,你还有"<<3-k<<"次机会.请按任意键,重新输入."<

20、 for(i=1;i<=strlen(line)/2;) { system("cls"); for(j=0;j<9;j++) //改变行坐标 cout<i;x--) cout<<"□"; i

21、f(k==4) i++; cout<

22、for(j=0;j<10;j++) cout<4) k=0; } }

23、 //---------------菜单模板函数--------------- char ModelMenu(char *s[],int Itemcount) { int i; char answer; system("cls"); cout<<"\n\n"; cout<<"\t\t\t┌──────────────┐"<

24、      │"<

25、 cout<<"\t\t\t 请输入菜单项前的操作代码:"; cin>>answer; return answer; } //---------------主菜单函数--------------- char MainMenu() { char *MenuItem[]={"│  航空客运订票系统菜单  │","│ │[1]. 航 线 管 理 │ │",\ "│ │[2]. 订 票 办 理 │ │","│ │[3]. 退 票 办 理 │ │","│ │[4]. 乘 客 管 理 │ │",\ "│ │[5]. 系 统

26、离 开 │ │"}; return ModelMenu(MenuItem,6); } //---------------是否继续函数--------------- char Continue() { int i; char answer; while(1) { cout<<"\t\t "; for(i=0;i<15;i++) cout<<"─"; cout<<"\n\t\t\t 是否继续(Y/N)?"; cin>>answer; if(answer=='y'||ans

27、wer=='Y') return 'y'; else if(answer=='n'||answer=='N') return 'n'; else cout<<"\t\t\t 输入错误,请重新输入!"<

28、退出----------------- int ExitSystem() { char answer; cout<<"\n\t\t\t 你确定是否真要离开系统吗(Y/N)?"; cin>>answer; if(answer=='y'||answer=='Y') return 1; else return 0; } //--------------操作提示函数------------- void prefix(char *Item) { int i; system("cls"); cout<<"\n\n\t\t

29、\t 当前操作:"<

30、2) //首航线不作比较 return flag; while(p1!=p2&&p1!=NULL) //本航班号不纳入比较范围,否则会一直提示航线不唯一 { if(strcmp(p1->Flight_No,key)==0) { flag=1; break; } p1=p1->Next;//指向下一航班结点 } return flag; } int Find_Line(PFlight L,char *key,PFlight &p2,int &Flight_No)//引

31、用调用 { int flag=0; //该标志位0表示未找到相关信息,反之即找到 Flight *p1; p1=L; //赋航线首结点 while(p1!=NULL) { if(strcmp(p1->Flight_No,key)==0)//不包括当前航线 { flag=1; p2=p1; break; } p1=p1->Next; //指向下一航班结点 if(p1!=NULL) //遇结束符

32、不作统计范围 Flight_No++; } return flag; } //-----------------航线添加函数------------- void Line_Add() { Flight *p1; //建立临时航线结点 while(1) { if(Head==NULL)//航线为空 { p1=p2=new Flight; //建立首个航线 Head=p2; } else { p1=new Flight; //建立航

33、线结点 p2->Next=p1; //前一航线结点指向当前航班结点 p2=p1; //保留当前航班结点地址 } prefix("航线增设"); cout<<"\t\t\t 请输入终点站名:"; cin>>p2->Des_Name; while(1) //数据合法性检验 { cout<<"\n\t\t\t 请输入航班号(唯一):"; cin>>p2->Flight_No; if(Find_Line

34、Head,p2->Flight_No)) //存在航班号 cout<<"\n\t\t\t 输入的航班号不唯一!"<>p2->Plane_No; while(1) { cout<<"\n\t\t\t 请输入飞行周日(1-7):"; cin>>p2->Week_Day; if(p2->Week_Day<'1'||p

35、2->Week_Day>'7') { cout<<"\n\t\t 数据输入错误,按任意键继续输入."<>p2->Customer_Amount; cout<<"\n\t\t\t 请输入头等舱票价:"; cin>>p2->Price[0]; cout<<"\n\t\t\t

36、请输入普通舱票价:"; cin>>p2->Price[1]; cout<<"\n\t\t\t 请输入经济舱票价:"; cin>>p2->Price[2]; p2->Free_Amount=p2->Customer_Amount; //剩余票数与乘员定额相同 p2->CustName=NULL; //该航线定票乘客头指针为空 p2->ReplName=NULL; //初始候补名单为空 if(Continue()=='n') {

37、 p2->Next=NULL; //航线的下一结点为空 return; } } } //------------航线是否为空函数------------- int Empty_Flight() { if(Head==NULL) { system("cls"); cout<<"\n\n\n\n\n\n\n\n\t\t 对不起,没有相关航线。按任意键返回..."<

38、 } //------------航线查看函数----------------- void Line_See() { int Day; Flight *p1; p1=Head; char *Week_Day[]={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"}; if(Empty_Flight()) //航班线为空 return; prefix("航班查看"); cout<<" ┌────┬───┬───┬────┬────┬────┬────────┐"<

39、 │ │ │ │ │ │ │ 票 价   │"<Week_Day-'0'-1

40、//数字转换相应星期数 cout<<" │"<Des_Name<<"│"<Flight_No<<\ "│"<Plane_No<< "│"<Customer_Amount<<\ "│ "<Free_Amount<<"│"<Price[0]<<"│"<

41、>Price[1]<<"│"<Price[2]<<"│"<Next; if(p1!=NULL) cout<<" ├────┼───┼───┼────┼────┼────┼──┼──┼──┤"<

42、r *MenuItem[]={"│ 航空客运航线管理子菜单 │","│ │[1]. 航 线 增 设 │ │",\ "│ │[2]. 航 线 查 看 │ │","│ │[3]. 航 线 修 改 │ │","│ │[4]. 返 回 主 菜 单 │ │"}; while(1) switch(ModelMenu(MenuItem,5)) { case '1':{Line_Add();break;} case '2':{Line_See();break;} case '3':{return

43、} default:{ErrorMess();} } } //---------------订票办理函数--------------- void Sub2Menu() { int Ticket_Count,Seat_No,i,flag=0; int Flight_No=0; //记录满足条件的航线的定票结点 Flight *p1; //记下满足条件的航线结点地址 Customer *p2; //临时性定票乘员结点 Replace *p3; //临时性候补乘员结点

44、 char answer[7]; //用户输入的航班数据 char temp; int tag=0; //候补乘客标志位 int Amount; int IsRepl=0; //是否执行候补操作标志位 if(Empty_Flight()) //航班线为空 return; while(1) { prefix("订票办理"); flag=0; //标志位清零以重新作出判断 Flight_No=0; tag=0; cou

45、t<<"\n\t\t\t 请输入航班号:"; cin>>answer; if(Find_Line(Head,answer,p1,Flight_No)) //调用航线查找函数,若存在则进行以下操作 { while(1) //数据合法性检验 { cout<<"\n\t\t\t 请输入定票数:"; cin>>Ticket_Count; if(Ticket_Count==0) {

46、 cout<<"\n\t\t\t请输入大于零的数,按任意键继续输入."<Free_Amount>=Ticket_Count) { Customer_Count++; //定票乘客总数增1 flag=1; //表明进入了订票实际操作

47、 IsRepl=1; //定票量满足,无需进入候补操作 Amount=p1->Free_Amount; //记录剩余票数 if(p1->CustName==NULL) //首个定票乘客,并记录相关属性 { Custp1[Flight_No]=p2=new Customer; //建立该航线的首位乘客结点 p1->CustName=Custp1[

48、Flight_No]; } else //建立该航线的后续乘客结点 { p2=new Customer; Custp1[Flight_No]->Next=p2; Custp1[Flight_No]=p2; } IsEmpty=0; //定票乘员不为空 Custp1[Fligh

49、t_No]->Amount=Ticket_Count; //订票数 Seat_No=p1->Customer_Amount-p1->Free_Amount+1; //算出座位号 Custp1[Flight_No]->Seat_No=Seat_No; //赋座位号 p1->Free_Amount-=Ticket_Count; //减去定票数 cout<<"\n\t\t\t 请输入你的姓名:"; cin

50、>>Custp1[Flight_No]->Name; while(1) //数据合法性检验 { cout<<"\n\t\t\t 请输入舱位等级(1-3):"; cin>>Custp1[Flight_No]->Rank; if(!(Custp1[Flight_No]->Rank>='1'&&Custp1[Flight_No]->Rank<='3')) {

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服