数据结构课程设计实验报告
———C 语言版
课题:飞机订票系统和图的遍历的动态演示
姓名:
学号:089074114
班级:计算机科学与技术 084
指导教师:陈学进
- 1 -
数据结构课程设计实验报告
订票系统
1.需求分析
任务:通过此系统可以实现如下功能:
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结
构、具体数据自定)
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,
起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
订票:(订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票: 可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序
完成功能;
2:主要设计思路:
1) 算法构造流程图:
A:主菜单:
- 2 -
数据结构课程设计实验报告
主菜单
1
2
3
4
5
6
7
8
9
列 出
按 航
按
订 票
退 票
修 改
保 存
读 取
退出
航 班
班 号
城
程序
系统
飞 机
文件
文
的 信
查 询
市
息
航 班
来
信息
查
航 班
的 信
息
件 、
下 载
文件
询
航
班
0
输
入
航
班
的
信
息
B:各分块模板的构造流程图:
0.输入航班的信息
航 班
起 飞 城
降 落 城
出 发 时
降 落 时
剩下的座
价
号
市
市
间
间
位
格
折
扣
1.列出航班的信息
继续 y
退出
n
2.按航班号查询航班信息
- 3 -
数据结构课程设计实验报告
输入所需要查询的航班号
显示这个航班的的信息
3.按城市来查询航班
输入起飞城市
输入降落城市
显示这个航班的信息
4.订票程序
输入号码 输入名字
输入 ID
需要定的票
航班号
数
5.退票系统
输入航班号
确定退票 1
输入你 ID
否定 0
6.修改飞机航班的信息
输入要修改的航班号
重新输入新的航班信息
7.保存文件
- 4 -
数据结构课程设计实验报告
显示保存成功
3:功能函数设计:
(1):订票系统主菜单函数 menu_select()
本函数主要构造系统的主菜单,系统需要实现很多功能,并且
各个功能需要各自的函数支持,所以通过主菜单可以轻松的进入各个
函数下实现各自的功能,故主菜单显得尤为重要。其实就是通过键盘
输入选择项,然后通过 scanf 接受,在通过 swtich 判断进入各个选择
项。
(2):工作人员管理函数 enter()&change()
系统需要各个航班的详细信息,所以需要工作人员把信息输入
系统里,以供乘客查询订票。enter()函数的构造就是为了解决这
个问题。而有可能航班线路更改或由于天气等原因飞机的起飞时间发
生了更改,故工作人员需要及时更改信息,所以需要构造 change()
函数。
(3):列出航班信息的函数 list()
乘客需要查询各个航班的信息,所以通过系统要能调出上面工
作人员已经录入好的航班信息,所以构造本函数来实现这个功能。
(4)乘客具体查询函数 search()
本函数分两个分函数:search1()和 search2(),它们分别实
现乘客的按航班查询和按出发及抵达城市的两种查询方案。
(5)票务管理函数 book()&quit()
通过 book()函数可以实现乘客的订票操作,通过 quit()可
- 5 -
数据结构课程设计实验报告
以实现乘客的退票操作。
(6)文件操作函数 save()&load()
3.源程序代码:(WIN TC 下运行)
#include
#include
#include
#include
#define N 20
#define Q 40
/*定义数据结构*/
/*乘客信息*/
typedef struct
{
char number[10];/*编号*/
char id[20];
/*证件号*/
char name[10]; /*姓名*/
int count;
/*订票数*/
char flightname[10];/*乘坐航班号*/
}GUEST;
/*航班信息*/
typedef struct
{char planenumber[10];/*航班号*/
char Take_off_city[20];/*起飞城市*/
char Arrived_in_city[20];/*抵达城市*/
char takeoff_time[20];/*起飞时间*/
char Landing_time[20];/*降落时间*/
int shipping;
/*舱位数*/
char price[5];
/*票价*/
char discount[5];
/*折扣*/
GUEST guest[20];
int sit;
}FLY;
/*菜单函数,函数返回值为整数,代表所选的菜单项*/
menu_select()
{
int c;
- 6 -
数据结构课程设计实验报告
printf("按任意键返回主菜单\n");/*提示压任意键继续*/
getch(); /*读入任意字符*/
printf("
printf("
printf("
printf("
printf("
printf("
printf("
printf("
printf("
printf("
printf("
printf("
printf("
printf("
do{
Welcome
to\n\n");
Tickets Booking System\n\n");
********************MENU****************\n\n");
0. 输入航班信息\n");
1. 列出航班的信息\n");
2. 按航班号查询航班信息\n");
3. 按城市来查询航班\n");
4. 订票程序\n");
5. 退票系统\n");
6. 修改飞机航班的信息\n");
7. 保存文件\n");
8. 读取和下载文件\n");
9. 退出\n");
*****************************************\n\n");
printf("\n
输入你的选择项(0~9):"); /*提示输入选项*/
scanf("%d",&c); /*输入选择项*/
}while(c<0||c>9); /*选择项不在~9之间重输*/
return c; /*返回选择项,主程序根据该数调用相应的函数*/
}
/*输入函数*/
int enter(FLY t[])
{
int i,k,n,m,w,j;
char *s;
printf("输入航线总数(n<=40):");/*输入航线总数*/
scanf("%d",&n);
while(n>40||n<0)
{
printf("输入错误!!再次输入(0
数据结构课程设计实验报告
scanf("%s",t[i].takeoff_time);/*输入起飞时间*/
scanf("%s",t[i].Landing_time);/*输入降落时间*/
scanf("%d",&t[i].shipping);/*输入舱位数*/
scanf("%s",t[i].price);/*输入票价*/
scanf("%s",t[i].discount);/*输入折扣*/
}
printf("-----------------------------------------------------------------------------\n");
for(i=0;in-1)
/*如果整数i值大于n-1,说明没找到*/
printf("没有找到\n");
else
{
printf("航班号起飞城市 降落城市 出发时间 降落时间 剩下的座位 价格 折扣\n"); /*显示记录
- 8 -