📄 airsys.h
字号:
//////////////////////////////////////////////////////////////////////////
// 航空客运售票系统核心类[声明文件](airsys.h) //
//////////////////////////////////////////////////////////////////////////
#ifndef _AIRSYSTEM_H
#define _AIRSYSTEM_H
#define MAXLEN 10 //所有字符串长度
//////////////////////////////////////////////////////////////////////////
// 结构体/类声明 //
//////////////////////////////////////////////////////////////////////////
class linklist; //链式线性表基类
class person; //客户类
class airsystem; //航空售票系统类
class city; //城市类
class flight; //航班类
class personlist; //定票客户列表类
class personqueue; //候补客户列表类
//////////////////////////////////////////////////////////////////////////
// 结构体/类成员声明 //
//////////////////////////////////////////////////////////////////////////
class linklist //链式线性表基类
{
public:
char name[MAXLEN+1]; //结点名称
linklist *next; //下一个结点指针
};
class person:public linklist //客户结构体
{
public:
long index;
short num; //定票量
short level; //舱位等级
};
class personlist //定票客户列表
{
public:
person *first; //第一个客户指针
//定票客户列表操作
personlist(); //构造函数
~personlist(); //析构函数
void clear(); //清除客户列表
person *addperson(char *vname,short vnum,short vlevel); //按姓名顺序插入新客户
int delperson(char *vname,short &vnum,short &vlevel); //删除已有客户
};
class personqueue //候补客户列表
{
public:
person *first; //第一个客户指针
short num; //候补客户数量
//候补客户列表操作
personqueue(); //构造函数
~personqueue(); //析构函数
void clear(); //清除客户列表
person *addperson(char *vname,short vnum,short vlevel); //在队尾插入新客户
int delperson(); //删除队头客户
int delperson(char *vname); //删除任意客户
person *popperson(); //弹出队头客户(返回此客户指针)
};
class flight:public linklist //航班类
{
public:
char cname[MAXLEN+1]; //城市名
char pname[MAXLEN+1]; //飞机号
short day; //飞行周日
short num[3]; //1-3等舱定额
short space[3]; //1-3等舱余票数
long pos[3][1000];
personlist pay; //定票客户列表
personqueue wait; //候补客户列表
flight *next; //下一个航班指针
//航班列表操作
flight(); //构造函数
~flight(); //析构函数
void clear(); //清除所有客户列表信息
person *getpay(short n);
person *getwait(short n);
short findpay(person *p);
short findwait(person *p);
short getpos(short level);
long getn(char *vname);
person *addperson(char *vname,short vnum,short vlevel); //添加新客户
int delperson(char *vname); //删除已有客户
void movewtop(); //把候补客户按需补充到定票客户列表中
};
class city:public linklist //城市名列表类
{
public:
flight *first; //第一个航班指针
city *next; //下一个城市指针
//城市列表操作
city(); //构造函数
~city(); //析构函数
void clear(); //清除所有航班
flight *get(short n);
short find(flight *f);
flight *addflight(char *vcname,char *vfname,char *vpname,short vday,short vnum1,short vnum2,short vnum3); //添加航班
int delflight(char *vfname);//删除航班
flight *getflight(short n); //取第n个航班指针
};
class airsystem //航空售票系统类
{
public:
city *first; //第一个城市指针
//航空售票系统操作
airsystem(); //构造函数
~airsystem(); //析构函数
void clear(); //清除所有城市
city *get(short n);
short find(city *f);
city *addcity(char *vname); //添加城市
int delcity(char *vname); //删除城市
city *getcity(short n); //取第n个城市指针
};
#endif
//////////////////////////////////////////////////////////////////////////
// The End //
//////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -