资源简介
订票系统(A类)
功能要求:
(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
(3)订票:(订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
(4)退票: 可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
(5)修改航班信息:
当航班信息改变可以修改航班数据文件
代码片段和文件信息
#include “stdio.h“
#include “stdlib.h“
#define OK 1
#define ERROR 0
typedef int Status;
typedef struct ClientNode
{ //已订票客户结点
char name[20];
char ID[20]; //客户的身份证号
int booknum;
int grade;
ClientNode *next;
}ClientNode;
typedef struct
{ //已订票客户单链表(按ID有序)
ClientNode *client;
int length;
}Clientlink;
typedef struct WClientNode
{ //侍订票客户结点
char name[20];
char ID[20];
char phoneno[15];
int neednum;
WClientNode *next;
}WClientNode;
typedef struct
{ //侍订票客户链队列
WClientNode *front; //对头指针
WClientNode *rear; //队尾指针
}WClientQueue;
typedef struct flightnode
{ //航班结点
char *airline;
int number;
char *flight_no;
int weekday;
int total;
int remain;
flightnode *next;
Clientlink client;
WClientQueue nclient;
}flightnode;
typedef struct
{ //航班顺序线性表
flightnode *flight;
int length;
}SqFlight;
Status InitList_Sq(SqFlight &LF)
{
//构造一个空的线性表LF
LF.flight=(flightnode*)malloc(sizeof(flightnode)); //数组指针指向flight指向线性表的基地址
if(!LF.flight)
exit(ERROR);
LF.length=0;
LF.flight->next=NULL;
return(OK);
}
Status InitList_CL(Clientlink &CL)
{ //为客户链表建一个空链表
CL.client=(ClientNode*)malloc(sizeof(ClientNode));
if(!CL.client)
exit(ERROR);
CL.length=0;
CL.client->next=NULL;
return(OK);
}
Status InitList_WCQ(WClientQueue &WCQ)
{ //为待票客户建一个空的队列
WCQ.front=WCQ.rear=(WClientNode*)malloc(sizeof(WClientNode));
if(!WCQ.front)
exit(ERROR);
WCQ.front->next=NULL;
return(OK);
}
Status InitFlightNode(SqFlight &LF)
{ //对航线结点赋值并接到航班顺序表
flightnode *p*q;
Clientlink CL1; //订票客户
InitList_CL(CL1);
WClientQueue WCQ1;
InitList_WCQ(WCQ1);
if(!LF.flight)
{
printf(“无法找到指向航线结点的指针\n“);
exit(ERROR);
}
LF.flight->airline=“Xiamen--Tokyo“; //头结点赋值
LF.flight->client=CL1;
LF.flight->flight_no=“FU127“;
LF.flight->nclient=WCQ1;
LF.flight->number=8427;
LF.flight->remain=200;
LF.flight->total=200;
LF.flight->weekday=1;
p=(flightnode*)malloc(sizeof(flightnode));
if(!p)
{
printf(“申请不到航线结点\n“);
exit(ERROR);
}
LF.flight->next=p;
Clientlink CL2;
InitList_CL(CL2);
WClientQueue WCQ2;
InitList_WCQ(WCQ2);
p->airline=“Xiamen--Tokyo“; //结点1赋值
p->client=CL2;
p->flight_no=“BU127“;
p->nclient=WCQ2;
p->number=8757;
p->remain=180;
p->total=180;
p->weekday=5;
q=p;
p=NULL;
p=(flightnode*)malloc(sizeof(flightnode));
if(!p)
{
printf(“申请不到航线结点\n“);
exit(ERROR);
}
q->next=p;
Clientlink CL3;
InitList_CL(CL3);
WClientQueue WCQ3;
InitList_WCQ(WCQ3);
p->airline=“Fuzhou--Shenzhen“; //结点2赋值
p->client=CL3;
p->flight_no=“FU786“;
p->nclient=WCQ3;
p->number=3216;
p->remain=200;
p->total=200;
p->weekday=2;
q=p;
p=NULL;
- 上一篇:MFC实现的红绿灯程序
- 下一篇:基于遗传算法的机器人路径规划
评论
共有 条评论