• 大小: 16KB
    文件类型: .cpp
    金币: 2
    下载: 0 次
    发布日期: 2024-02-01
  • 语言: C/C++
  • 标签:

资源简介

订票系统(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;

评论

共有 条评论

相关资源