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