搜索
您的当前位置:首页正文

数据结构课程设计报告航空客运订票系统

来源:哗拓教育
数据结构课程设计报告

题目:航空客运订票系统

学 院 专 业 年级班别 学 号 学生姓名

指导教师

成 绩 ______________ _____

2010年7月

课程设计:航空客运订票系统

一、 需求分析

1. 任务

航空订票系统的业务活动包括:查询航线、客票预定和办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。

2. 要求

(1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、成员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);

(2)作为示意系统,全部数据可以只放在内存中; (3)系统能实现的操作和功能如下:

①查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行、最近一天航班的日期和余票额;

②承办补票业务:根据客户提出的要求(航班号、订票余额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补;

③承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票数需,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。

3. 编程环境

软件环境:Windows 7

软件工具:Mircosoft Visual C++6.0

二、 设计概要

1. 结构体链表为:

typedef struct airline{

char line_num[8];/* 航班号 */ char plane_num[8];/* 飞机号 */ char destination[20];/* 目的地 */ char fly_day[20]; /*飞行周日*/ int total;/* 座位总数 */ int left;/* 剩余座位 */

struct airline *next;/* 下一个结点 */ }airline;

typedef struct customer{

char name[9];/* 顾客名字 */ char line_num[8];/* 航班号 */ int seat_num;/* 座位号 */

struct customer *next;/* 下一个结点 */ }customer; 基本操作:

airline *create_airline() 操作结果:创建链表 create_customer() 操作结果:创建客户

insert_airline(airline **p,char *line_num,char *plane_num,char *destination,char *fly_day,int total,int left) 操作结果:airline链表插入操作

insert_customer(customer **p,char *name,char *line_num,int seat) 操作结果:customer链表插入操作

modefy_airline(airline *l,char *line_num) 操作结果:修改airline链表中的数据

delete_cus(customer *h,airline *l,char *name)

操作结果:顾客退票

init_airline(airline **l) 操作结果:初始化airline单链表 init_customer(customer **l) 操作结果:初始化customer单链表

book(airline *l,char *line_num,customer *c,char *name) 操作结果:订票

print_airline(airline *l) 操作结果:打印航线信息

print_customer(customer *l) 操作结果:打印顾客信息

2.存储结构定义

#include #include #include #include #define OK 1 #define ERROR 0 #define PR printf typedef int status; typedef struct airline{

char line_num[8];/* 航班号 */ char plane_num[8];/* 飞机号 */ char destination[20];/* 目的地 */ char fly_day[20]; /*飞行周日*/ int total;/* 座位总数 */ int left;/* 剩余座位 */

struct airline *next;/* 下一个结点 */ }airline;

typedef struct customer{

char name[9];/* 顾客名字 */ char line_num[8];/* 航班号 */ int seat_num;/* 座位号 */

struct customer *next;/* 下一个结点 */ }customer; 3、总体方框图

主菜单 main.c 创建create_airline 创建create_customer 初始化init_airline 初始化init_customer init_airline init_custome订票book 退票delete 查询 退出 insert_cus delete_cur Print_cus Print_air modefy_airline 三、 调试分析

订票输入数据:

航班号 顾客名 结果 line00 A 座位号:4 line01 B 座位号:3 line02 C 座位号:2

line03 D 对不起!!没有这个航班号!! 退票输入数据: 顾客名

A 顾客A退票成功!!

B 顾客B退票成功!! D 无此顾客,无法退票!! 初始化:

航班号 飞机号 目的地 飞行周日 总票数 余票数

line00 plane00 BJ Tue 100 97 line01 plane01 SH Fir 100 98 line02 plane02 GD Sat 100 99 姓名 航班号 座位号

赵子龙 line00 1 钱学森 line00 2 孙志东 line00 3 李宇春 line01 1 陈楚生 line01 2 胡强强 line02 1

四、 测试结果 1..主界面: 2.订票: 3.退票: 4.查询:

5.退出:

6.出错判断:

五、 心得体会

思考

1. 存储结构的不同实现。根据题目要求,对航班和客户使用结构体链表结构。链表结构有利于航班和客户的删除,增加工作,易于管理和实现。

2. 界面。本程序的界面不够美观,使用的是DOS界面。因为没有学习C++,所以没有使用可视化编程。

3. 能力有待提升。由于部分知识点不够扎实,有些功能没有实现,如候补客户,客户名排序等。 总结

本次课程设计是继设计性实验后的另一个编程,虽然之前因为做数据结构的题库里面的算法设计题和设计性实验之后,编程能力有了很大的提高,也对编程的技巧和软件的使用比较熟悉,但是这个程序还是有很多有待提高的地方。通过看参考书,分析函数算法,对代码的进一步了解,我顺利完成本次课程设计并调试成功。

通过这次课程设计,我对结构体、链表的使用有了深入的了解,对设计一个应用系统的逻辑思路和代码实现有了深刻的理解,编程能力得到大大的提高。对数据结构这门课程有了深入的思考和理解。希望在我接下来的学涯生活中,能更山一层楼,编出更多更好的程序。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top