预处理模块
对输出信息进行宏定义,方便编写程序
#define HEADER1 "---------------------------------火车订票系统-----------------------------\n"
#define HEADER2 "| 编号 | 起始城市 | 抵达城市 | 起始时间 | 到达时间 |票的价格 | 车票数量|\n"
#define HEADER3 "--------------------------------------------------------------------------\n"
#define FORMAT "%- 10s%- 10s%- 10s%- 10s%- 10s %5d %5d\n"
#define DATA q->data.num,q->data.startcity,q->data.reachcity,q->data.takeofftime,q->data.receivetime,q->data.price,q->data.ticketnum
不用每次输入相同的信息
在火车订票系统中有很多不同类型的数据信息,因此用C语言中提供的自定义结构体来解决
/*定义存储火车信息的结构体*/
struct train {
char num[10]; //列车号
char startcity[10]; //出发城市
char reachcity[10]; //目的城市
char takeofftime[10]; //发车时间
char receivetime[10]; //到达时间
int price; //票价
int ticketnum; //票数量
};
/*订票人的信息*/
struct man {
char num[20]; //×××号码
char name[10]; //姓名
int bookNum; //订票的数
};
/*定义火车链表的节点结构*/
typedef struct node {
struct train data;
struct node* next;
}Node, * Link;
/*定义订票人链表的节点结构域*/
typedef struct Man {
struct man data;
struct Man* next;
}book, * bookLink;
定义4个结构体类型,应用typedef声明新的类型名Node为node结构体类型、Link为node指针类型