文档介绍:数据结构课程设计任务书
12级卓越电子专业
学号:120910115
姓名:刘强
信息科学与技术学院
2013年12月
设计题目
课题一航空订票系统
任务
航空客运定票的业务活动包括:查询航线、客票预定和办理退票等。试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。
功能要求
录入:可以录入航班情况
2) 查询:可以查询某个航线的情况(如输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
3) 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果
该航班已经无票,可以提供相关可选择航班;
4) 退票: 可退票,退票后修改相关数据文件;
5) 客户资料:有姓名,证件号,订票数量及航班情况,订单要有编号;
6) 修改航班信息:当航班信息改变可以修改航班数据文件。
需求分析
本系统中,每组航班信息有航班号、起始地、目的地、起飞时间、降落时间、票价、剩余座位数七个信息以及预定功能中的订单信息,包括订单编号、航班号、订票数量和乘客信息。
系统通过录入、查询、修改等操作实现订票。程序以人机对话方式执行,即在计算机上显示提示信息之后由用户在键盘上输入程序中规定的命令,相应的输入数据和运算结果显示在其后。执行完一个任务后通过循环语句返回主菜单。数据结构方面,航班信息和订单信息均采用单链表的线性存储结构,主要方便数据录入和查找。
功能主要通过航班和订单对应的结构体实现。在实现航班查询中,为方便查找,系统采用了可针对航班号、起始地和出发地这三个字段同时搜索,提高了系统的查找效率,减少了代码的冗余量。
概要设计
函数概要
typedef struct Flight //航班信息 typedef struct Order / /订单信息
{ {
char FlightNumber[10]; //航班号 Int OrderNumber; //订单编号
char SPlace[10]; //起始地 char PName[15]; //乘客姓名
char DPlace[10]; //目的地 char ID[20]; //身份证号
char Stime[10]; //起飞时间 char FlightNumber[10];//航班号 charEtime[10]; //降落时间 int num; //订票数量 int price; //票价}
int RemnantSeat; //剩余座位数数 Order;
}
Flight;
void InputF() //数据录入函数
void Output(ElemType e) //航班信息查找输出函数
void OutputOrder() //输出订单函数
void AmendF(ElemType e) //修改航班信息函数
void OutputF() //全部航班信息输出函数
void OrderF() //订票函数
void DeleteOrder(ElemType2 f) //退票函数
void Menu() //主菜单
程序调用关系
DeleteOrder()
AmendF()
修改模块
退票模块
OrderF()
Output()
OutputF()
OutputOrder()
订票模块
输出模块
输入模块
IputF()
主程序模块(Menu)
详细设计
#include<>
#include<>
#include<>
#include<>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
typedef int Status;
typedef struct Flight//航班信息
{
char FlightNumber[10];//航班号
char SPlace[10];//起始地
char DPlace[10];//目的地
char Stime[10];//起飞时间
char Etime[10];//降落时间
int price;//票价
int RemnantSeat;//剩余座位数
}
Flight;
struct Flight e;
typedef struct Flight ElemType;
typedef struct Order//订单信息
{
int OrderNumber