首先,用到的数据结构的定义、以及全局变量和函数的声明如下:
1 // Flight.c : 定义应用程序的入口点。 2 // 3 #include "stdafx.h" 4 5 //订单 6 typedef struct OrderForm{ 7 TCHAR IdNum[32]; //订单用户身份证号 8 int Order_Number; //订单号 9 int Tickets_Num; //订票数量 10 TCHAR Flight_Number[16]; //航班号 11 TCHAR Departure[16]; //出发地 12 TCHAR Destination[16]; //目的地 13 TCHAR Date[16]; //出发日期 14 TCHAR TakeOff_Time[16]; //起飞时间 15 TCHAR Landing_Time[16]; //降落时间 16 struct OrderForm *Next; //所有订单链表next 17 struct OrderForm *psgNext; //用户订单链表next 18 }OrderForm; 19 20 //乘客订单链表 21 typedef struct PsgOrderLink{ 22 int OrderNum; //订单数目 23 OrderForm *head; //头结点 24 OrderForm *tail; //尾结点 25 }PsgOrderLink; 26 27 //所有订单列表 28 typedef struct AllOrderLink{ 29 int AllOrderNum; //所有订单数目 30 OrderForm *head; //头结点 31 OrderForm *tail; //尾结点 32 }AllOrderLink; 33 34 //乘客 35 typedef struct Passenger{ 36 TCHAR Name[16]; //姓名 37 TCHAR IdNum[32]; //身份证号码 38 TCHAR PassWord[32]; //密码 39 int TicketNum; //订单数目 40 PsgOrderLink OrderLink; //用户所有订单 41 struct Passenger *Next; 42 }Passenger; 43 44 //乘客链表 45 typedef struct PsgLinkList{ 46 int PsgNum; //账户数量 47 Passenger *head; //头结点 48 Passenger *tail; //尾结点 49 }PsgLinkList; 50 51 //航班 52 typedef struct Flight{ 53 double Fare; //票价 54 int Seat_Number; //座位数 55 int Vacant_Seat; //空余座位数 56 TCHAR Discount[16]; //折扣 57 TCHAR Flight_Number[16]; //航班号 58 TCHAR Departure[16]; //出发地 59 TCHAR Destination[16]; //目的地 60 TCHAR Date[16]; //出发日期 61 TCHAR TakeOff_Time[16]; //起飞时间 62 TCHAR Landing_Time[16]; //降落时间 63 struct Flight *Next; 64 }Flight; 65 66 //航班链表 67 typedef struct FlightLinkList{ 68 Flight *head; //头结点 69 Flight *tail; //尾结点 70 int Flight_Number; //航班数目 71 }FilghtLinkList; 72 73 74 // 全局变量: 75 HICON hIcon; 76 HINSTANCE hInst; //当前实例 77 static TCHAR szBuffer[256]; //缓冲区 78 static PsgLinkList psglink; //所有账户_链表 79 static Passenger *passenger; //登陆账户信息 80 static AllOrderLink allorder; //所有订单_链表 81 static FilghtLinkList flightlink; //所有航班_链表 82 83 84 85 //函数声明 86 BOOL AccountLogIn(HWND); //账户登陆 87 BOOL AccountRegister(HWND); //注册账户 88 BOOL ReadFlightData(HWND); //读入航班信息 89 BOOL ReadAccountData(HWND); //读入账户资料 90 BOOL ReadAccountOrder(HWND,Passenger*); //读入所有订单、账户订单 91 BOOL SearchFlight(HWND); //查询航班 92 BOOL BookTickets(HWND); //订票 93 BOOL _Book_Tickets(HWND,Flight*,int); //订票 94 BOOL Recommend(HWND,Flight*,int); //航班建议 95 BOOL ReturnTickets(HWND); //退票 96 BOOL EntryFlight(HWND); //录入航班 97 BOOL ModifyFlight(HWND); //修改航班信息 98 BOOL PrintFlight(HWND, Flight*); //输出航班信息 99 BOOL WriteFlightData(HWND); //保存航班信息 100 BOOL WriteAccountData(HWND); //保存账户资料 101 BOOL WriteOrderData(HWND); //保存订单信息 102 BOOL CALLBACK LogInDlgProc(HWND, UINT, WPARAM, LPARAM); //登陆窗口窗口过程 103 BOOL CALLBACK MainDlgProc(HWND, UINT, WPARAM, LPARAM); //主界面窗口过程 104 BOOL CALLBACK NameDlgProc(HWND, UINT, WPARAM, LPARAM); //获取新注册用户姓名窗口过程 105 BOOL CALLBACK FlightNumDlgProc(HWND, UINT, WPARAM, LPARAM); //获取用户输入机票数量窗口过程 106 BOOL CALLBACK EntryFlightProc(HWND, UINT, WPARAM, LPARAM); //录入航班窗口过程 107 BOOL CALLBACK ModifyFlightProc(HWND, UINT, WPARAM, LPARAM); //修改航班信息窗口过程