C++课程设计-民航售票系统(31页).docx
《C++课程设计-民航售票系统(31页).docx》由会员分享,可在线阅读,更多相关《C++课程设计-民航售票系统(31页).docx(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-C+课程设计-民航售票系统-第 26 页C+面向对象课程设计民航订票系统 院 系: 计算机科学技术学院 班 级: 网络工程15-2 组 长: 组 员: 指导教师: 2016年06月14日目 录1概述11.1研究背景及意义11.2任务概述12需求分析22.1客户功能22.2管理员功能22.3操作方法23总体设计53.1功能结构图53.2模块分析53.2.1添加航线53.2.2查询航班53.2.3预订订票63.2.4退机票63.3数据结构设计6(一)、本系统要用到的库函数:6(二)、航空类的定义6(三)菜单类的定义8(四)、接口设计84详细设计94.1 算法设计说明94.2函数实现模块104.2
2、.1 主控函数main()104.2.2客户订票void book() 函数104.2.3客户退票void back() 函数114.2.4客户查询void query() 函数124.2.5管理员航班信息录入模块134.2.6文件写入void writetofile()函数144.2.7控制台的调用system()145程序调试与测试155.1颜色选择155.2利用递归调用实现返回上级菜单或者主菜单155.3倒计时退出界面155.4管理员权限限定165.5后台管理界面166总结177程序清单181概述本文采用C+作为前台开发工具,VC6.0作为程序代码的实现,旨在实现对现有飞机订票系统中遇到
3、的各种情况进行良好的改进,是作为嵌入式系统应用于机场的良好软件。1.1研究背景及意义随着时代的进步,社会分工的不断细化,各个行业的联系不断密切,人们出行越来越多,出行的方式也是百花齐放。作为空中的重要交通工具,飞机航空系统也在不断得到优化,其中重要的一项就是飞机航空订票系统。因此好的订票系统关系着人们的日常出行方便与否,设计并编制出符合人们需要的航空订票系统是一项繁重而艰巨的任务,需要我们认真去完成。1.2任务概述假定民航机场有n个航班,每个航班有一个航班号、确定的航线(出发地、目的地)、确定的飞行时间和飞机票总数,旅客数。该系统需实现下列服务:1. 航班信息录入功能;2. 航班信息浏览功能3
4、. 查询航线(出发地、目的地查询)4. 承办订票和退票业务2需求分析2.1客户功能1、航线查询功能:根据输入的起止城市信息查询航班,并显示其详细信息(起飞时间、到达时间、航班号、余票量)。2、客票预订功能:根据输入的航班号和数量预订机票,办理手续并进行信息核对。2.2管理员功能1、 添加功能:添加一个航班的信息,包括航班号、行程、起飞时间、到达时间、机型、全价、座位总数。2、将航班信息写入文件。2.3操作方法民航订票系统的主界面如下所示: * 中国民航欢迎您!* * 1、客户 * 2、管理员 * 3、退出程序运行 *(1) 、选择1进入普通用户菜单:* 您好,欢迎使用本系统办理订票业务* *
5、1、承办订票业务 * 2、承办退票业务 * 3、查询航班 * * 4、退出程序的运行 *选择1进入订票模块:请输入您要订购的航班号n23dt请输入您要订购的机票数量2订票成功!选2进入退票模块:请输入日期: 航班:退票成功!选择3进入航班查询信息模块:请输入起始地点 北京请输入目的地点 南京出发地点目的地点起飞时间航班号 余票北京 南京 05:43 Bn23dt 100查找已完成按任意键返回菜单(2)、选择2进入管理员菜单:* 后台管理系统* * 1、录入航班信息 * 2、将数据写入文件 * 3、退出程序的运行 *请输入对应操作序号进行相应操作:选择1录入航班信息请输入您要添加的航班种数:请输
6、入您要添加的航班信息:出发地点:南京目的地点:北京起飞时间:时:5分:43航班号:Bn23dt星期几:四您输入的信息是:种数 出发地点目的地点起飞时间航班号 星期几 余票3 南京 北京 05:43 Bn23dt 四 100选择2将信息写入文件.选择3退出菜单.3总体设计3.1功能结构图根据需求分析,该系统的功能结构图如下所示:民航订票系统管理员模块客户模块将信息写入文件退机票预定客票查询航班添加航 班按航线查询图3-1系统结构示意图3.2模块分析3.2.1添加航线系统将提示用户输入新添加的航班的信息,插入在链表中。3.2.2查询航班首先由用户输入要查找的起始地点,然后系统用查找函数查找,然后系
7、统就调用输出函数,输出所查找的航班资料。3.2.3预订订票由用户输入航班号和订票数目,系统判断能满足用户需求则输出“订票成功”信息3.2.4退机票首先由用户输入要退的航班,然后调用删除函数,删除该航班的已订状态。3.3数据结构设计(一)、本系统要用到的库函数:#include#include#include #include (二)、航空类的定义 class Plane public: char start_place40;/起点char name40;/终点站名 char number10;/航班号 char week7;/星期几飞行 char day40;/日期 int left;/余票额
8、 int n;/与数组flag一起确定客户订票状态 public: int flag20;/订票状态数组,-1为预订票,1为已定票,0为初始化状态 Plane()/构造函数 name0=0; number0=0; week0=0; day0=0; left=M; n=0;/数组从0开始计数 for(int i=0;i20;i+) flagi=0;void init()/初始化每种飞机票 coutstart_place; coutname; coutnumber; coutweek; coutday; Plane();/析构函数 char *get_start_place()return sta
9、rt_place; /起点char *getname() return name; /获得终点站名 char *getnumber() return number; /获得航班号 char *getweek() return week; /获得星期几飞行 char *getday() return day; /获得日期 int getleft() return left; /获得余票额 int getn() return n; /获得旅客数目 void inleft(int n) left=left+n; /余票额增加函数 void deleft(int n) left=left-n; /余票
10、额减少函数 void people_in() n+;/旅客数目增加函数(三)菜单类的定义菜单类父类class menu public : int ch;/返回选择序号 int me_nu() /用于打印菜单,父类的菜单空实现子菜单类(继承于父类菜单menu)class logo_menu:public menu;/主界面菜单class admin_menu:public menu;/管理员菜单class client_menu:public menu;/客户端菜单(四)、接口设计表2.1:函数列表函数名函数格式函数功能book()Void book()订票函数writetofile ()Voi
11、d writetofile ()写文件函数query()Void query()查询函数input()Void input()订票函数back()Void back()退票信息Writetofile()Void writetofile()写入文件menu()Int menu()界面函数Main()Int main()主函数4详细设计4.1 算法设计说明文件“航空售票管理系统v-1.0.cpp”中主函数流程图main()开始输出信息 1 2 31管理员客户13 3订票 2 3 42录入信息数据写入文件查询退票结束图4-1主控模块算法流程图4.2函数实现模块4.2.1 主控函数main()调用控制
12、台,设置窗口颜色system(“color 9e” );/控制台调用接着要求用户选择用户类型,按1为普通用户,按2位管理员,3退出,进入相应菜单后,同样选择对应序号,进行相应操作,进入管理员模式要输入密码进行验证。4.2.2客户订票void book() 函数调用此函数实现客户订票预订票数功能。此函数会首先要求用户所要订购的航班号和预订票数 cout请输入航班号:number; coutn; 之后用一个for循环 实现信息匹配,for(int i=0;iN;i+) if(strcmp(number,pli.number)=0)用num不为零标记匹配成功的状态当信息匹配后再判断票数是否足够: i
13、f(n0) 票数足够久则订票,cout此航班有足够余票endl; pli.deleft(n);/余票减少 pli.people_in(); /旅客增加pli.flagpli.getn()=1; /状态改为已订票不满足则返回上级菜单,重新确定订票信息,不满足的状态用num为零进行标记;num=0;如果用户确实是要订票但余票不够,则询问用户是否进行预约,确定后将所需票数改为预约状态,用-1标记。cout是否需要预约endl; cout是(1) 否(2)ch;switch(ch)case 1:/确定预约pli.people_in();pli.flagpli.getn()=-1;/预约,用-1标记,表
14、示预约状态break;case 2:/不预约,退出break;default:/容错处理coutwrong input!endl;最后在函数结尾再调用自身实现返回上级菜单功能,book();/di递归调用4.2.3客户退票void back() 函数首先会要求客户输入要退订的票的日期和航班,coutday; coutnumber;然后程序进行信息匹配if(strcmp(day,pli.getday()=0&strcmp(number,pli.getnumber()=0)匹配成功则退票成功,同时系统票数增加pli.inleft(n);/该种飞机票增加,即已退票,接着查询客户的订票状态,/用户是否
15、有预订票,若有,则为用户确定订购此票。if(pli.flagj=-1)/客户是否为预定状态coutnu;if(nu=pli.getleft()/余票额是否满足要求cout此航班有票endl;pli.flagj=1;cout订票成功endl;pli.deleft(nu);for(int k=0;knu;k+)cout座位号sitnumber;cout余票额为pli.getleft()endl;elsecout没有预约订票!余票额为pli.getleft()endl;若在用户退票的过程中没有匹配到航班,则显示没有此票,清屏并用递归调用返回到上级菜单。4.2.4客户查询void query() 函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 民航 售票 系统 31
限制150内