东华大学数据结构设计C语言航空订票系统.docx
- 文档编号:9292452
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:36
- 大小:231.04KB
东华大学数据结构设计C语言航空订票系统.docx
《东华大学数据结构设计C语言航空订票系统.docx》由会员分享,可在线阅读,更多相关《东华大学数据结构设计C语言航空订票系统.docx(36页珍藏版)》请在冰豆网上搜索。
东华大学数据结构设计C语言航空订票系统
东华大学数据结构课程设计
实验报告
实验名称:
航空订票系统
指导教师:
目录
一、设计题目……………………………………………………(3)
二、任务…………………………………………………………(3)
三、功能要求和测试数据……………………………………(3)
四、需求分析……………………………………………………(4)
4.1宏观需求分析………………………………………(4)
4.2具体需求分析………………………………………(4)
5、概要设计……………………………………………………(5)
5.1系统的流程框图…………………………………………(5)
5.2系统各函数的功能、相互调用关系…………………(6)
6、详细设计……………………………………………………(8)
6.1各变量的定义和作用………………………………(8)
6.2系统各函数的功能…………………………………(8)
7、调试分析……………………………………………………(21)
8、用户手册…………………………………………………(22)
九、测试结果……………………………………………………(22)
十、心得体会与参考文献………………………………………(22)
设计题目
航空订票系统
任务
航空客运定票的业务活动包括:
查询航线、客票预定和办理退票等。
试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。
功能要求
1)录入:
可以录入航班情况
2)查询:
可以查询某个航线的情况(如输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
3)订票:
(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果
该航班已经无票,可以提供相关可选择航班;
4)退票:
可退票,退票后修改相关数据文件;
5)客户资料:
有姓名,证件号,订票数量及航班情况,订单要有编号;
6)修改航班信息:
当航班信息改变可以修改航班数据文件。
测试数据
航班数据
航班号
出发
城市
到达
城市
起飞
时间
到达
时间
价格
折扣率(%)
总票数
剩余
票数
MU5103
上海虹桥
北京
7:
00
9:
20
1063
94
20
2
CA1590
上海虹桥
北京
8:
55
11:
15
864
75
20
0
FM9307
上海虹桥
广州
10:
30
12:
50
608
48
20
5
HO1241
上海浦东
青岛
19:
50
21:
20
418
56
20
11
3U8964
上海浦东
成都
15:
45
19:
05
922
57
20
1
客户数据
姓名
证件号
订票数
航班号
张三丰
31000012
1
3U8964
张翠山
31000025
1
FM9307
张无忌
31000033
1
MU5103
需求分析
宏观需求分析
●采用现有的软硬件环境及先进的管理系统方案,从而达到充分利用现有资源,提高系统应用效果的目的。
●尽量达到系统操作过程中的直观、方便、实用、安全等要求。
●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
●系统应具备维护功能,及时根据用户需求进行数据的添加、删除、修改等操作。
具体需求分析
菜单是应用程序中非常重要的组成部分,通过菜单,应用程序可以实现不同的功能,通过本系统的设计,可以实现应用程序的菜单。
(1)程序运行时,首先给出两个菜单选项的内容和输入提示:
管理员进入输入1,客户进入输入2。
用户输入1或者2,以不同身份进入系统,如果输入1和2以外的其他字符,则显示输入错误,请重新输入。
(2)若用户选择是管理员身份进入,需要输入密码(首次设定密码为1111),验证正确后,则可进入系统,显示如下7个菜单选项(后有截图)。
若密码验证错误,则提示密码错误,并返回主界面让用户重新选择身份。
1.输入航班信息2.查询航班信息3.输入乘客信息4.查询乘客信息
5.修改航班信息6.查找航线7.返回上一界面
(3)若用户是以客户身份进入,则进入系统后,将显示如下7个菜单选项(后有截图)。
进入系统后,用户可以根据需要输入选项实现不同功能。
若输入其它字符,则显示输入错误,
1.查询航班信息2.输入乘客个人信息3.查询乘客个人信息
4.订票信息5.退票信息6.查找航线7.返回上一界面
(4)用户根据需要输入(1-7),若输入其他字符,则提示输入错误,要求重新选择。
(5)用户选择(1-7)实现不同功能,如果要返回上级菜单界面,则需要根据提示操作返回。
概要设计
4.1系统的流程框图
图1系统流程框图
(二)实现函数的具体功能:
(通过定义函数来实现客户端订票,退票等功能)
structair
{
charairnum[20];//航班号
charset_off[20];//起飞的城市
charget_to[20];//终点城市
charstart_time[20];//起飞时间
chararrive_time[20];//到达时间
floatprice;//票价
floatdiscount;//折扣
intticketnum;//票的编号
intticketleft;//剩余的票数
}air[A];
structcustomer
{
charcustnum[20];//证件号
charname[40];//姓名
intticketnum;//票的编号
charairnum[20];//航班
intbooknum;//预定的票号
}cust[C];
voidcustomermenu()//创建客户账户界面
voidair_print();//查询航班信息
voidinput_cust();//输入乘客个人信息
voidyanzheng();//客户信息验证,相当于密码
voidkehu_print();//乘客查询自己的个人信息
voidbookticket();//订票信息
voidtuipiao();//退票信息
voidsearch();//查找航线
voidguanliyuanmenu();//创建管理员账户界面
voidinput_air();//输入航班信息
voidcust_print();//管理员查询所有乘客信息
voidchange();//航线修改系统。
voidmain();//主函数,选择进入管理员界面或客户界面。
本系统要用到的库函数:
#include
#include
#include
程序调用关系
customermenu()调用了voidair_print(),voidinput_cust(),voidkehu_print(),voidbookticket(),voidtuipiao(),voidsearch()。
guanliyuanmenu()调用了voidinput_air(),voidair_print(),voidinput_cust();voidcust_print(),voidchange(),voidsearch()。
bookticket()和tuipiao()调用了voidyanzheng();
详细设计
/*各变量的定义和作用*/
#include
#include
#include
#defineA6/*航线数*/
#defineB15/*用于循环体中的返回模块,常量*/
#defineC5/*顾客数*/
#defineCoutair[i].airnum<<""< staticintf=0;/*输入航线数时控制变量*/ staticintg=0;/*输入顾客数时控制变量*/ staticinth=0;/*订票时的控制变量*/ staticints=0;/*订票与退票时控制变量*/ structair { charairnum[20];/*航班号*/ charset_off[20];/*起飞城市*/ charget_to[20];/*到达城市*/ charstart_time[20];/*起飞时间*/ chararrive_time[20];/*到达时间*/ floatprice;/*票价*/ floatdiscount;/*折扣率*/ intticketnum;/*总票数*/ intticketleft;/*剩余票数*/ }air[A]; structcustomer { charcustnum[20];/*证件号*/ charname[40];/*姓名*/ intticketnum;/*订票数*/ charairnum[20];/*航班号*/ intbooknum;/*订单编号*/ }cust[C]; /*2: 系统各函数的功能*/ voidmain()/*主函数选择进入管理员界面或客户界面*/ { intj; voidcustomermenu(); voidguanliyuanmenu(); for(;;) { cout<<"***管理人员进入请输入1,客户进入请输入2,退出请输入0***"< cin>>j; if(j>=0&&j<=2)//判断输入数字是否在规定范围内 { switch(j)//选择登录账户类型 { case1: //登陆管理员账户 { charp[]={"1111"}; charm[5]; cout<<"请输入密码"; cin>>m; if(strcmp(m,p)==0)//验证密码正确与否 { system("cls");/*清屏功能,美化界面*/ guanliyuanmenu();break; }//调用管理员账户信息 else cout<<"密码错误! ! ! 重新选择按键"< break; } case2: //登陆客户账户 { system("cls");/*清屏功能,美化界面*/ customermenu(); break; } case0: //登陆客户账户 { exit(0); break; } } } } } voidcustomermenu()/*创建客户账户界面*/ { voidair_print(); voidcust_print(); voidinput_cust(); voidinput_air(); voidsearch(); voidbookticket(); voidchange(); voidtuipiao(); voidkehu_print(); inti,j; cout<<"★***客户订票系统***★"< cout<<"*********************************************"< for(i=0;i { cout<<"1.查询航班信息2.输入乘客个人信息"< cout<<"3.查询乘客个人信息4.订票信息"< cout<<"5.退票信息6.查找航线"< cout<<"7.返回上一界面"< cout<<"**************************************"< cin>>j; switch(j) { case1: air_print(); break; case2: input_cust(); break; case3: kehu_print(); break; case4: bookticket(); break; case5: tuipiao(); break; case6: search(); break; case7: i=B-1; break; default: cout<<"输入出错"< } } cout<<"谢谢使用! "< } voidguanliyuanmenu()/*创建管理员账户界面*/ { voidair_print(); voidcust_print(); voidinput_cust(); voidinput_air(); voidsearch(); voidbookticket(); voidchange(); voidtuipiao(); intj,i; cout<<"★***管理员航线管理系统***★"< cout<<"***********************************"< for(i=0;i { cout<<"1.输入航班信息2.查询航班信息"< <<"3.输入乘客信息4.查询乘客信息"< <<"5.修改航班信息6.查找航线"< <<"7.返回上一界面"< cout<<"*********************************************"< cin>>j; switch(j) { case1: input_air(); break; case2: air_print(); break; case3: input_cust(); break; case4: cust_print(); break; case5: change();; break; case6: search(); break; case7: i=B-1; break; default: cout<<"输入出错"; } } } voidinput_air()/*输入航班信息*/ { inti,j=0,k; cout<<"请依次输入各航班信息: "< cout<<"***************************************************"< for(i=0;i {cout<<"请输入航班号: "< cin>>air[i].airnum; cout<<"请输入出发城市: "< cin>>air[i].set_off; cout<<"请输入到达城市: "< cin>>air[i].get_to; cout<<"请输入起飞时间: "< cin>>air[i].start_time; cout<<"请输入到达时间: "< cin>>air[i].arrive_time; cout<<"请输入机票价格: "< cin>>air[i].price; cout<<"请输入机票折扣率: "< cin>>air[i].discount; cout<<"请输入机票总票数: "< cin>>air[i].ticketnum; cout<<"请输入机票剩余票数: "< cin>>air[i].ticketleft; cout<<"第"<<++f<<"个航线信息已经输入完毕是否继续? 按1继续,按0返回上一界面"; cin>>k; if(k==0) break; } } voidair_print()/*查询并输出所有航班信息*/ { inti; if(f==0)cout<<"航班信息未输入,请管理员输入"< else { cout<<"航班号出发城市到达城市起飞时间到达时间"; cout<<"价格折扣率总票数剩余票数"< } for(i=0;i { cout< cout< } } voidinput_cust()/*输入客户个人信息*/ { intk; { inti; if(f==0)cout<<"航班信息未输入,请管理员输入"< else cout<<"请依次输入各客户信息: "< for(i=0;i { i=g;/*程序错误点,顾客信息输出最后一行乱码,输入三行,只输出两行 加入此语句已改正,原因是先管理员界面,后客户界面输入时会使i=0, 而g是静态变量,其值非0,导致输入出错*/ cout<<"请输入客户证件号: "< cin>>cust[i].custnum; cout<<"请输入客户姓名: "< cin>>cust[i].name; cout<<"请输入客户订票数: "< cin>>cust[i].ticketnum; cout<<"请输入航班号: "< cin>>cust[i].airnum; cout<<"请输入订单标号: "< cin>>cust[i].booknum; cout<<"第"<<++g<<"个客户信息已经输入完毕。 按1继续,按0返回上级"; cin>>k; if(k==0) { break; }}} } voidcust_print() { inti; if(g==0)cout<<"客户信息未输入,请管理员输入"< elsecout<<"证件号姓名订票数航班号订单标号"< for(i=0;i { cout< } } voidkehu_print()/*用于客户个人信息输出,添加验证功能*/ { inti,k=0;//控制变量k charcustnum[20];/*证件号*/ charname[40]; if(g==0)cout<<"客户信息未输入,请管理员输入"< else { cout<<"为确保是顾客本人操作,请输入您的证件号和姓名验证"< cin>>custnum; cout<<"请输入您的姓名: "< cin>>name; for(i=0;i if(strcmp(cust[i].custnum,custnum)==0&&strcmp(cust[i].name,name)==0) { cout<<"证件号姓名订票数航班号订单标号"< cout< k++; } if(k==0)cout<<"验证出错,请核对个人信息,系统自动返回上一界面"< } } voidsearch() {/*根据用户的选择,根据不同的需求查找条件的 航线。 (如给定航班号,或者给定 起点城市和终点城市*/ inti,j=0,l; charcity1[20],city2[20],num[20]; if(f==0)cout<<"航班信息未输入,请管理员输入"< else { for(l=0;l { { cout<<"请选择查找方式: "< cout<<"1.按航班号查找"< cout<<"2.按出发到达城市查找"< cout<<"0.返回上一级"< } cin>>i; switch(i) { case0: l=A; break; case1: cout<<"请输入航班号: "< cin>>num; for(i=0;i if(strcmp(air[i].airnum,num)==0)//按航班号判断输出条件 { cout< "< cout<<"航班号起始站终点站时间机票数"< cout< j++; continue; } if(j==0)cout<<"查找失败,无此航线! "< break; case2: cout<<"请输入出发城市: "< cin>>city1; cout<<"请输入到达城市: "< cin>>city2; for(i=0;i { if(strcmp(air[i].set_off,city1)==0&&strcmp(air[i].get_to,city2)==0)//相等 {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 东华 大学 数据 结构设计 语言 航空 订票 系统