东华大学数据结构设计C语言航空订票系统.docx

上传人:b****8 文档编号:9292452 上传时间:2023-02-04 格式:DOCX 页数:36 大小:231.04KB
下载 相关 举报
东华大学数据结构设计C语言航空订票系统.docx_第1页
第1页 / 共36页
东华大学数据结构设计C语言航空订票系统.docx_第2页
第2页 / 共36页
东华大学数据结构设计C语言航空订票系统.docx_第3页
第3页 / 共36页
东华大学数据结构设计C语言航空订票系统.docx_第4页
第4页 / 共36页
东华大学数据结构设计C语言航空订票系统.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

东华大学数据结构设计C语言航空订票系统.docx

《东华大学数据结构设计C语言航空订票系统.docx》由会员分享,可在线阅读,更多相关《东华大学数据结构设计C语言航空订票系统.docx(36页珍藏版)》请在冰豆网上搜索。

东华大学数据结构设计C语言航空订票系统.docx

东华大学数据结构设计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)//相等

{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1