飞机订票系统(飞机订票系统设计 c语言)

飞机订票系统设计 c语言

(已修改,请用最新的代码)代码说明:

1级菜单:选择购买的航班号,并显示对应座位状态。

(我只做测试,所以初始化initFlight函数中我只初始了2个航班,需要自己按照我的代码添)

(注意:实际开发软件,链表数据是从数据库中读取的,需要实时同步,如果要多次调用initFlight函数,记得自己写一个释放内存的函数,把所有链表“SINFO和FLINFO”节点都释放掉,释放函数我没写,需要你自己写!!!)

2级菜单:选择购买对应座位号,完成购买,并实时显示购买结果。

位置编号、座位最大排数、舱室类型、折扣等参数均由常量参数空值,需要修改自行改常量。

注意:舱室类型(我默认3个类型头等舱、公务舱、经济舱)对应折扣参数:tDiscount二维数组。如要如要添加新的舱室类型,必须将参数常量TYPESIZE、typeName、types、tDiscount这4个同时修改,具体看代码备注!!

座位票价=基础票价*类型折扣*时段折扣。

因为飞机不让吸烟,所以我没做吸烟区(笑),如果你需要,可以作为类型自行添加!

#include《stdio.h》
#include《stdlib.h》
#include《conio.h》
#include《string.h》
#include《malloc.h》
#include《time.h》
//———————–相关参数,想改变,在这里修改!!!!!!!—————————–
const float timeDiscount=1;//时段折扣,影响所有航班最终价格,默认1
const char cID=“ABCD“;//位置编号
const int maxRow=20;//位置最大排号
//注意:如果修改类型数量,types和tDiscount必须同时修改!!!
#define TYPESIZE 3//类型数量
const char typeName[TYPESIZE]={“头等舱“,“公务舱“,“经济舱“};
const int types[TYPESIZE]={{1,2},{3,4},{5,20}};//排号对应类型。1~2排头等舱,3~4排公务舱,5~20排经济舱
const float tDiscount[TYPESIZE]={1.5,1.3,1};//类型折扣。头等舱1.5倍,公务舱1.3倍,经济舱1倍
//——————————————————————————-
typedef struct seatInfo//座位信息,一条链表对应一个航班信息,链表顺序从第一排左边第一个开始往后A1~D1,A2~D2。。。
{
    char cloID;//位置编号A、B、C、D
    int row;//位置排号
    int type;//座位所属类型:0:头等舱、1:公务舱、2:经济舱,不同类型对应不同的类型折扣tDiscount
    int sell;//出售状态,0:未出售;1:已出售
    struct seatInfo *next;
}SINFO;
typedef struct flightInfo//航班信息
{
    char fid;//航班号
    time_t tfTime;//起飞时间
    time_t ldTime;//降落时间
    char toCity;//抵达城市
    float tPrice;//基础票价,不同位置具有不同折扣,座位票价=基础票价*类型折扣*时段折扣
    struct flightInfo *next;
    struct seatInfo *sHead;//对应座位链表的头节点
}FLINFO;
void meError(void *p);
SINFO *getSINFO();//获取座位链表
//addFLINFO:添加航班信息链表的节点flinfoHead:头节点(第一次传NULL会自动生成),flinfoTail:尾节点,fNew:要添加的结构信息(成员指针无需赋值)
FLINFO *addFLINFO(FLINFO **ffHead,FLINFO *flinfoTail,FLINFO fNew);//返回尾节点
time_t getTime_tfromStr(char *sTime);//将YYYY-MM-DD hh:mm:ss格式的时间字符串转换成time_t型数值
FLINFO *initFlight();//初始化航班信息,返回航班链表头节点,如果想手动输入,请在这里添加!!!正常软件开发,这一步应该是从数据库读取!
char *getTString(struct tm *tm0);//通过tm获取时间字符串
void showSinfo(FLINFO *flinfo);//显示航班对应座位信息
void printfFlinfo(FLINFO * flinfoHead);
FLINFO *selectFlinfo(FLINFO *flinfoHead,char *fid);//选择航班号,返回节点
void showSinfo(FLINFO *flinfo);//显示航班对应座位信息
SINFO *selectSinfo(FLINFO *flinfo,char *sid);//选择座位,返回节点
int main()
{
    FLINFO *flinfoHead=initFlight(),*ffSelect=NULL;
    SINFO *sfSelect=NULL;
    char fid={0},sid={10};
    while(1)
    {
        ffSelect=NULL;
        sfSelect=NULL;
        memset(fid,0,10);
        memset(sid,0,10);
        printfFlinfo(flinfoHead);
        printf(“请输入要购买的航班号:“);
        scanf(“%s“,fid);
        ffSelect=selectFlinfo(flinfoHead,fid);
        if(!ffSelect)
        {
            printf(“未找到对应航班,按任意键继续—–\n“);
            getch();
            system(“cls“);
            continue;
        }
        system(“cls“);
        printf(“航班号:%s 座位信息如下:\n“,ffSelect-》fid);
        showSinfo(ffSelect);
        printf(“请输入要购买的座位编号(输入0返回主菜单):“);
        scanf(“%s“,sid);
        if(!strcmp(sid,“0“))
        {
            system(“cls“);
            continue;
        }
        else
        {
            sfSelect=selectSinfo(ffSelect,sid);
            if(!sfSelect||sfSelect-》sell)
            {
                printf(“未找到对应座位或该座位已出售,请重新输入!按任意键继续—–\n“);
                getch();
                system(“cls“);
                continue;
            }
            printf(“购买成功!按任意键继续—–“);
            sfSelect-》sell=1;
            getch();
            system(“cls“);
        }
    }
    return 0;
}
SINFO *selectSinfo(FLINFO *flinfo,char *sid)//选择座位,返回节点
{
    SINFO *sinfoHead=flinfo-》sHead;
    while(sinfoHead-》next)
    {
        if(sinfoHead-》next-》cloID==sid && sinfoHead-》next-》row==atoi(sid+1))
            return sinfoHead-》next;
        sinfoHead=sinfoHead-》next;
    }
    return NULL;
}
void showSinfo(FLINFO *flinfo)//显示航班对应座位信息
{
    SINFO *sinfoHead=flinfo-》sHead,*sfp=NULL;
    int i,j,k,row=maxRow,clo=strlen(cID);
    char typeStr={0};
    for(i=0;i《row;i++)
    {
        //———读取座位所属舱室————
        memset(typeStr,0,10);
        for(k=0;k《TYPESIZE;k++)
            if(i+1》=types[k] && i+1《=types[k])
                strcpy(typeStr,typeName[k]);
        //————————————–
        printf(“\n“);
        for(j=0;j《clo;j++)
            printf(“————- “);
        printf(“\n“);
        sfp=sinfoHead;
        for(j=0;j《clo;j++)
        {
            printf(“|    %c%02d    | “,sfp-》next-》cloID,sfp-》next-》row);
            sfp=sfp-》next;
        }
        printf(“\n“);
        sfp=sinfoHead;
        for(j=0;j《clo;j++)
        {
            printf(“|     %c     | “,sfp-》next-》sell?2:1);
            sfp=sfp-》next;
        }
        printf(“\n“);
        sfp=sinfoHead;
        for(j=0;j《clo;j++)
        {
            printf(“|%6s:%4.0f| “,typeStr,flinfo-》tPrice*tDiscount[sfp-》next-》type]*timeDiscount);
            sfp=sfp-》next;
        }
        printf(“\n“);
        sinfoHead=sfp;
    }
    for(j=0;i《clo;j++)
            printf(“——- “);
    printf(“\n“);
}
FLINFO *selectFlinfo(FLINFO *flinfoHead,char *fid)//选择航班号,返回节点
{
    while(flinfoHead-》next)
    {
        if(!strcmp(flinfoHead-》next-》fid,fid))
            return flinfoHead-》next;
        flinfoHead=flinfoHead-》next;
    }
    return NULL;
}
void printfFlinfo(FLINFO * flinfoHead)
{
    while(flinfoHead-》next)
    {
        printf(“目的地:%s,航班号:%s\n—-起飞时间:%s,抵达时间:%s\n\n“,flinfoHead-》next-》toCity,flinfoHead-》next-》fid,getTString(localtime(&flinfoHead-》next-》tfTime)),getTString(localtime(&flinfoHead-》next-》ldTime)));
        flinfoHead=flinfoHead-》next;
    }
}
char *getTString(struct tm *tm0)//通过tm获取时间字符串
{
    char *str=(char *)malloc(sizeof(char)*20),num={0};
    meError(str);
    memset(str,0,20);
    sprintf(num,“%4d“,tm0-》tm_year+1900);
    strcat(str,num);
    strcat(str,“-“);
    memset(num,0,5);
    sprintf(num,“%02d“,tm0-》tm_mon);
    strcat(str,num);
    strcat(str,“-“);
    memset(num,0,5);
    sprintf(num,“%02d“,tm0-》tm_mday);
    strcat(str,num);
    strcat(str,“ “);
    memset(num,0,5);
    sprintf(num,“%02d“,tm0-》tm_hour);
    strcat(str,num);
    strcat(str,“:“);
    memset(num,0,5);
    sprintf(num,“%02d“,tm0-》tm_min);
    strcat(str,num);
    strcat(str,“:“);
    memset(num,0,5);
    sprintf(num,“%02d“,tm0-》tm_sec);
    strcat(str,num);
    return str;
}
time_t getTime_tfromStr(char *sTime)//将YYYY-MM-DD hh:mm:ss格式的时间字符串转换成time_t型数值
{
    time_t rt;
    struct tm *tm1=NULL;
    rt=time(NULL);
    tm1=localtime(&rt);
    sscanf(sTime,(“%4d-%2d-%2d %2d:%2d:%2d“),&tm1-》tm_year,&tm1-》tm_mon,&tm1-》tm_mday,&tm1-》tm_hour,&tm1-》tm_min,&tm1-》tm_sec);
    tm1-》tm_year-=1900;
    tm1-》tm_mon–;
    rt=mktime(tm1);
    return rt;
}
FLINFO *initFlight()//初始化航班信息,返回航班链表头节点,如果想手动输入,请在这里添加!!!正常软件开发,这一步应该是从数据库读取!
{
    FLINFO *ffHead=NULL,*flinfoTail=NULL,fNew;
    //——–添加一个航班信息—-需要增加按照我下面调用方式写——————————–
    strcpy(fNew.fid,“CI502“);
    fNew.tfTime=getTime_tfromStr(“2019-02-20 03:30:30“);
    fNew.ldTime=getTime_tfromStr(“2019-02-20 05:20:30“);
    strcpy(fNew.toCity,“台北“);
    fNew.tPrice=1000;
    fNew.next=NULL;
    flinfoTail=addFLINFO(&ffHead,flinfoTail,fNew);
    //——————————————————————————————–
    strcpy(fNew.fid,“9C8921“);
    fNew.tfTime=getTime_tfromStr(“2019-02-20 14:30:30“);
    fNew.ldTime=getTime_tfromStr(“2019-02-20 16:40:30“);
    strcpy(fNew.toCity,“香港“);
    fNew.tPrice=500;
    fNew.next=NULL;
    flinfoTail=addFLINFO(&ffHead,flinfoTail,fNew);
    return ffHead;
}
FLINFO *addFLINFO(FLINFO **ffHead,FLINFO *flinfoTail,FLINFO fNew)//返回尾节点
//添加航班信息链表的节点flinfoHead:头节点(第一次传NULL会自动生成),flinfoTail:尾节点,fNew:要添加的结构信息(成员指针无需赋值)
{
    FLINFO *flinfoHead=*ffHead;
    if(flinfoHead==NULL)
    {
        *ffHead=(FLINFO *)malloc(sizeof(FLINFO));
        flinfoHead=*ffHead;
        meError(flinfoHead);
        flinfoHead-》next=NULL;
    }
    FLINFO *flinfoNew=(FLINFO *)malloc(sizeof(FLINFO));
    meError(flinfoNew);
    flinfoNew-》next=NULL;
    flinfoNew-》fid=0;
    strcpy(flinfoNew-》fid,fNew.fid);
    flinfoNew-》ldTime=fNew.ldTime;
    flinfoNew-》tfTime=fNew.tfTime;
    flinfoNew-》toCity=0;
    strcpy(flinfoNew-》toCity,fNew.toCity);
    flinfoNew-》tPrice=fNew.tPrice;
    flinfoNew-》sHead=getSINFO();
    if(flinfoHead-》next==NULL)
        flinfoHead-》next=flinfoNew;
    else
        flinfoTail-》next=flinfoNew;
    flinfoTail=flinfoNew;
    return flinfoTail;
}
SINFO *getSINFO()//获取座位链表
{
    int maxClo=strlen(cID),cnt=maxClo*maxRow,clo=0,row=1,i;
    SINFO *sinfoHead=(SINFO *)malloc(sizeof(SINFO)),*sinfoTail=NULL;
    meError(sinfoHead);
    sinfoHead-》next=NULL;
    SINFO *sinfoNew=NULL;
    while(cnt–)//按顺序生成对应数量的座位链表
    {
        if(clo==maxClo)
            clo=0,row++;
        if(row==maxRow+1)
            row=1;
        sinfoNew=(SINFO *)malloc(sizeof(SINFO));
        meError(sinfoNew);
        sinfoNew-》cloID=cID[clo];
        sinfoNew-》row=row;
        for(i=0;i《TYPESIZE;i++)
            if(row》=types[i] && row《=types[i])
            {
                sinfoNew-》type=i;
                break;
            }
        sinfoNew-》sell=0;
        sinfoNew-》next=NULL;
        if(sinfoHead-》next==NULL)
            sinfoHead-》next=sinfoNew;
        else
            sinfoTail-》next=sinfoNew;
        sinfoTail=sinfoNew;
        clo++;
    }
    return sinfoHead;
}
void meError(void *p)//内存申请失败
{
    if(p==NULL)
    {
        printf(“\n异常:内存申请失败!回车结束程序!\n“);
        while(getch()!=’\r’);
        exit(0);
    }
}

飞机订票系统是一个怎么样的类型系统

咨询记录 · 回答于2021-12-08

飞机订票系统是一个怎么样的类型系统

飞机订票系统是一个实时系统

C语言程序设计飞机订票系统

#include 《stdio.h》
#include 《string.h》
#include 《conio.h》
#include 《ctype.h》
#include 《stdlib.h》
#include 《malloc.h》
#include 《math.h》//overflow
#define ok 1
typedef struct Yidingkehu
{//单链表
char name;//已订票的客户姓名
int dingpiaoshu;//已订票数量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//单链队
char name;//预订票的客户姓名
int yudingpiao;// 要订票数量
struct Weidingkehu *next2;//下一个链队结点指针
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//创建一个含有六个信息的结构体
char hangbanhao;//航班号-
char feijihao;//飞机号
int feixingriqi;//起飞时间
int chenkerenshu;//座位数
int yupiao;//余票
char zhongdianzhai;//降落城市
struct Hangxian *next;//指向下一个链结点的指针
struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针
struct Weidingkehu *yudingqueue;
}Hangxian,*Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist &head1);//02
void hbhchaxun();//通过航班号查询
void mddchaxun();//通过目的地查询
void lurugongneng();//初始化录入功能
void chaxungongnen();//查询功能
void dingpiaogongnen();//订票功能
void tuipiaogongnen();//退票功能
void main()
{

int n;
do{ //打印主界面
printf(“\t 欢迎使用航空客运订票系统\n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t==》1. 录入功能 ==\n“);
printf(“\t==》2. 查询功能 ==\n“);
printf(“\t==》3. 订票功能 ==\n“);
printf(“\t==》4. 退票功能 ==\n“);
printf(“\t==》5. 退出 ==\n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t请选择:“);
scanf(“%d“,&n);printf(“\n“);
switch(n)
{
case 1: lurugongneng();//录入功能
break;
case 2: chaxungongnen();//查询功能
break;
case 3: dingpiaogongnen();//订票功能
break;
case 4:tuipiaogongnen();//退票功能
break;
default :exit(0);//退出
}
}while(n==1||n==2||n==3||n==4);
}
void lurugongneng()//初始化的单链表*********************************************************录入功能
{

Linklist p;
//int m,n;
if(!p) exit(OVERFLOW);
printf(“\t请依次输入下面几项内容:\n\n“);//这里的输入采用一个个单独输入,避免了乱赋值的现象
printf(“航班号\n“);
gets(p-》hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车
gets(p-》hangbanhao);
printf(“飞机号\n“);
gets(p-》feijihao);
printf(“终点站\n“);
gets(p-》zhongdianzhai);
printf(“飞行日期\n“);
scanf(“%d“,&p-》feixingriqi);
printf(“乘客总数\n“);
scanf(“%d“,&p-》chenkerenshu);
printf(“余票数\n“);
scanf(“%d“,&p-》yupiao);

}
void chaxungongnen()//******************************************************************查询功能
{
int n;
printf(“\t 查 找 航 线 信 息 \n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t==》1. 通过目的地查询 ==\n“);
printf(“\t==》2. 通过航班号查询 ==\n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t请选择:“);
scanf(“%d“,&n);
printf(“\n“);//格式化
switch(n)
{
case 1:mddchaxun();
break;
case 2:hbhchaxun();
break;
default :break;
}
}
void mddchaxun()//通过目的地查询
{
char c;
int m;
Linklist p=L;
printf(“\t请输入要查询的目的地:“);
gets(c);
gets(c);//原因同上
do{
p=p-》next;
if(p)
{
m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0;
if(m==0)
{
printf(“\t航班信息:\n“);
printf(“\t航班号:%s\n“,p-》hangbanhao);
printf(“\t飞机号:%s\n“,p-》feijihao);
printf(“\t飞行时间:周%d\n“,p-》feixingriqi);
printf(“\t余票量:%d\n“,p-》yupiao);
}
}
else
{//如果不匹配的话就做
printf(“\t对不起没有你要找的目的地:\n\n“); m=0;
}
}while(m!=0);
}
void hbhchaxun()//通过目的地查询
{
char c;
int m;
Linklist p=L;
printf(“\t请输入要查询的航班号:“);
gets(c); gets(c);printf(“\n“);
do{
p=p-》next;
if(p)
{
m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p-》的作用是一样的
if(m==0)
{
printf(“\t航班信息:\n“);
printf(“\t航班号:%s\n“,p-》hangbanhao);
printf(“\t飞机号:%s\n“,p-》feijihao);
printf(“\t飞行时间:周%d\n“,p-》feixingriqi);
printf(“\t余票量:%d\n\n“,p-》yupiao);
}
}
else
{//如果不匹配的话就做
printf(“\t对不起没有你要找的航班号:\n“); m=0;
}
}while(m!=0);
}
void dingpiaogongnen()//***************************************************************订票功能
{

char c;
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf(“请输入终点站名:“); gets(c); printf(“\n“);
p=L-》next;
if(p) {
do{//查找一下,是否有这个航班
if(!p)
{
printf(“对不起,没有你要找的航班:\n\n“);
goto loop1;
}
m=strcmpi(p-》zhongdianzhai,c);
if(m==0)
{
printf(“航班信息:\n“);
printf(“航班号:%s\n“,p-》hangbanhao);
printf(“飞机号:%s\n“,p-》feijihao);
printf(“飞行时间:周%d\n“,p-》feixingriqi);
printf(“余票量:%d\n“,p-》yupiao);}
else p=p-》next;
}while(m!=0);
if(m==0)
{
do{
printf(“\n请输入你要订的票数:“); scanf(“%d“,&piao);
if(piao《=p-》yupiao)
{
h=p-》yiding;
if(h)
{
h1=h;
h=h-》next1;
h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));
printf(“请输入你的名字:“);
gets(h-》name);gets(h-》name);
h-》dingpiaoshu=piao;
h-》next1=h1-》next1;
h1-》next1=h;
p-》yupiao=p-》yupiao-piao;
printf(“订票成功:\n“); m=2;
}
}
else
{
printf(“余票量:%d\n“,p-》yupiao);
printf(“对不起,余票 %d 张不足,不能完成订票\n\n“,p-》yupiao);
printf(“ 是否要重新订票?\n“);
printf(“需要请输入1 否则请按2 预订请输入3 : “);
scanf(“%d“,&m);
printf(“\n“);
if(m==3) goto loop3;
}
}while(m==1);
}
}
else if(!p)
{
loop3: struct Weidingkehu *q3;
printf(“对不起,该航班的票已售完\n“);
q.front=p-》yudingqueue;
if(q.front==q.rear) printf(“没有人预订票,是否要预订?\n“);
else if(q.front!=q.rear) printf(“已有人预订票,是否要预订?\n“);
printf(“预订请输入1 否则输入2 : “);
scanf(“%d“,&n);
printf(“\n“);
if(n==1)
{

printf(“请输入你的姓名“); gets(q3-》name); gets(q3-》name);//q3不能指向name???
printf(“请输入订票数“); scanf(“%d“,&q3-》yudingpiao);
q3-》next2=NULL;
q.rear-》next2=q3;
q.rear=q3;
printf(“ 你已经预订了 !\n“);
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{

}
请采纳答案,支持我一下。

飞机订票系统设计

#include 《stdio.h》
#include 《string.h》
#include 《conio.h》
#include 《ctype.h》
#include 《stdlib.h》
#include 《malloc.h》
#include 《math.h》//overflow
#define ok 1
typedef struct Yidingkehu
{//单链表
char name;//已订票的客户姓名
int dingpiaoshu;//已订票数量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//单链队
char name;//预订票的客户姓名
int yudingpiao;// 要订票数量
struct Weidingkehu *next2;//下一个链队结点指针
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//创建一个含有六个信息的结构体
char hangbanhao;//航班号-
char feijihao;//飞机号
int feixingriqi;//起飞时间
int chenkerenshu;//座位数
int yupiao;//余票
char zhongdianzhai;//降落城市
struct Hangxian *next;//指向下一个链结点的指针
struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针
struct Weidingkehu *yudingqueue;
}Hangxian,*Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist &head1);//02
void hbhchaxun();//通过航班号查询
void mddchaxun();//通过目的地查询
void lurugongneng();//初始化录入功能
void chaxungongnen();//查询功能
void dingpiaogongnen();//订票功能
void tuipiaogongnen();//退票功能
void main()
{

int n;
do{ //打印主界面
printf(“\t 欢迎使用航空客运订票系统\n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t==》1. 录入功能 ==\n“);
printf(“\t==》2. 查询功能 ==\n“);
printf(“\t==》3. 订票功能 ==\n“);
printf(“\t==》4. 退票功能 ==\n“);
printf(“\t==》5. 退出 ==\n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t请选择:“);
scanf(“%d“,&n);printf(“\n“);
switch(n)
{
case 1: lurugongneng();//录入功能
break;
case 2: chaxungongnen();//查询功能
break;
case 3: dingpiaogongnen();//订票功能
break;
case 4:tuipiaogongnen();//退票功能
break;
default :exit(0);//退出
}
}while(n==1||n==2||n==3||n==4);
}
void lurugongneng()//初始化的单链表*********************************************************录入功能
{

Linklist p;
//int m,n;
if(!p) exit(OVERFLOW);
printf(“\t请依次输入下面几项内容:\n\n“);//这里的输入采用一个个单独输入,避免了乱赋值的现象
printf(“航班号\n“);
gets(p-》hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车
gets(p-》hangbanhao);
printf(“飞机号\n“);
gets(p-》feijihao);
printf(“终点站\n“);
gets(p-》zhongdianzhai);
printf(“飞行日期\n“);
scanf(“%d“,&p-》feixingriqi);
printf(“乘客总数\n“);
scanf(“%d“,&p-》chenkerenshu);
printf(“余票数\n“);
scanf(“%d“,&p-》yupiao);

}
void chaxungongnen()//******************************************************************查询功能
{
int n;
printf(“\t 查 找 航 线 信 息 \n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t==》1. 通过目的地查询 ==\n“);
printf(“\t==》2. 通过航班号查询 ==\n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t请选择:“);
scanf(“%d“,&n);
printf(“\n“);//格式化
switch(n)
{
case 1:mddchaxun();
break;
case 2:hbhchaxun();
break;
default :break;
}
}
void mddchaxun()//通过目的地查询
{
char c;
int m;
Linklist p=L;
printf(“\t请输入要查询的目的地:“);
gets(c);
gets(c);//原因同上
do{
p=p-》next;
if(p)
{
m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0;
if(m==0)
{
printf(“\t航班信息:\n“);
printf(“\t航班号:%s\n“,p-》hangbanhao);
printf(“\t飞机号:%s\n“,p-》feijihao);
printf(“\t飞行时间:周%d\n“,p-》feixingriqi);
printf(“\t余票量:%d\n“,p-》yupiao);
}
}
else
{//如果不匹配的话就做
printf(“\t对不起没有你要找的目的地:\n\n“); m=0;
}
}while(m!=0);
}
void hbhchaxun()//通过目的地查询
{
char c;
int m;
Linklist p=L;
printf(“\t请输入要查询的航班号:“);
gets(c); gets(c);printf(“\n“);
do{
p=p-》next;
if(p)
{
m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p-》的作用是一样的
if(m==0)
{
printf(“\t航班信息:\n“);
printf(“\t航班号:%s\n“,p-》hangbanhao);
printf(“\t飞机号:%s\n“,p-》feijihao);
printf(“\t飞行时间:周%d\n“,p-》feixingriqi);
printf(“\t余票量:%d\n\n“,p-》yupiao);
}
}
else
{//如果不匹配的话就做
printf(“\t对不起没有你要找的航班号:\n“); m=0;
}
}while(m!=0);
}
void dingpiaogongnen()//***************************************************************订票功能
{

char c;
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf(“请输入终点站名:“); gets(c); printf(“\n“);
p=L-》next;
if(p) {
do{//查找一下,是否有这个航班
if(!p)
{
printf(“对不起,没有你要找的航班:\n\n“);
goto loop1;
}
m=strcmpi(p-》zhongdianzhai,c);
if(m==0)
{
printf(“航班信息:\n“);
printf(“航班号:%s\n“,p-》hangbanhao);
printf(“飞机号:%s\n“,p-》feijihao);
printf(“飞行时间:周%d\n“,p-》feixingriqi);
printf(“余票量:%d\n“,p-》yupiao);}
else p=p-》next;
}while(m!=0);
if(m==0)
{
do{
printf(“\n请输入你要订的票数:“); scanf(“%d“,&piao);
if(piao《=p-》yupiao)
{
h=p-》yiding;
if(h)
{
h1=h;
h=h-》next1;
h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));
printf(“请输入你的名字:“);
gets(h-》name);gets(h-》name);
h-》dingpiaoshu=piao;
h-》next1=h1-》next1;
h1-》next1=h;
p-》yupiao=p-》yupiao-piao;
printf(“订票成功:\n“); m=2;
}
}
else
{
printf(“余票量:%d\n“,p-》yupiao);
printf(“对不起,余票 %d 张不足,不能完成订票\n\n“,p-》yupiao);
printf(“ 是否要重新订票?\n“);
printf(“需要请输入1 否则请按2 预订请输入3 : “);
scanf(“%d“,&m);
printf(“\n“);
if(m==3) goto loop3;
}
}while(m==1);
}
}
else if(!p)
{
loop3: struct Weidingkehu *q3;
printf(“对不起,该航班的票已售完\n“);
q.front=p-》yudingqueue;
if(q.front==q.rear) printf(“没有人预订票,是否要预订?\n“);
else if(q.front!=q.rear) printf(“已有人预订票,是否要预订?\n“);
printf(“预订请输入1 否则输入2 : “);
scanf(“%d“,&n);
printf(“\n“);
if(n==1)
{

printf(“请输入你的姓名“); gets(q3-》name); gets(q3-》name);//q3不能指向name???
printf(“请输入订票数“); scanf(“%d“,&q3-》yudingpiao);
q3-》next2=NULL;
q.rear-》next2=q3;
q.rear=q3;
printf(“ 你已经预订了 !\n“);
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{

}
以上回答你满意么?

飞机订票系统

  #include《stdio.h》
  #include《conio.h》
  #include《string.h》
  #include《stdlib.h》
  #define OK 1
  #define ERROR 0
  #define PR printf
  #define NULL 0
  int N=10;
  typedef struct customer
  {
  char name;
  int seat_num;
  int left;
  struct customer *next;
  }customer;
  customer *creat_customer()//初始化链表
  {
  customer *l;
  l=(customer *)malloc(sizeof(customer));
  if(l==NULL)
  {
  exit(0);
  }
  l-》next=NULL;
  return l;
  }
  int insert_customer(customer **p,char *name,int seat,int left)
  {//customer链表插入操作
  customer *q;
  q=(customer*)malloc(sizeof(customer));
  strcpy(q-》name , name);
  q-》seat_num =seat;
  q-》left=left;
  q-》next=NULL;
  (*p)-》next=q;
  (*p)=(*p)-》next;
  return OK;
  }
  int delete_cus(customer *h,char *name)//顾客退票
  {
  customer *p,*pr;
  pr=h;
  p=pr-》next ;
  while(p!=NULL)
  {
  if(strcmp(name,p-》name )==0)
  {
  pr-》next =p-》next ;
  PR(“顾客 %s 退票成功!\n“,p-》name );
  return OK;
  }
  pr=pr-》next ;
  p=pr-》next ;
  }
  PR(“无此顾客,无法退票!\n“);
  return ERROR;
  }
  int save_customer (customer*l)//保存顾客信息
  {
  FILE *fp_customer;
  customer *p=l-》next;
  char filename=“c:\\customer.dat“;
  if((fp_customer=fopen(filename,“wb“))==NULL)
  {
  printf(“can not open file to write:%s\n“,filename);
  return ERROR;
  }
  for(;p!=NULL;p=p-》next)
  {
  fprintf(fp_customer,“%s,%d%“,p-》name,p-》seat_num);
  }
  fclose(fp_customer);
  return OK;
  }
  int book(customer *c,char *name)//订票函数
  {
  customer *q=c-》next ;
  for(;q-》next !=NULL;q=q-》next){}
  {
  if(q-》left 》0)
  {
  PR(“恭喜您!订票成功!\n“);
  PR(“你的座位号是: %d\n“,(N-q-》left +1));
  insert_customer(&q,name,N -q-》left +1,q-》left);
  q-》left –;
  return OK;
  }
  else PR(“对不起,座位已满!\n“);
  return 0;
  }
  }
  int print_customer(customer*l)//打印顾客信息
  {
  customer *p=l-》next;
  for(;p!=NULL;p=p-》next)
  {
  PR(“%10s %d\n“,p-》name,p-》seat_num);
  }
  return OK;
  }
  void main()
  {
  char choice,name;
  int t=1;
  customer *cus=creat_customer();
  customer *l = creat_customer();
  while(t==1)
  {
  PR(“*—————————-*\n“);
  PR(“*–航空订票系统选择菜单——*\n“);
  PR(“* 订票——-0 *\n“);
  PR(“* 退票——-1 *\n“);
  PR(“* 查询——-2 *\n“);
  PR(“* 退出——-5 *\n“);
  PR(“*—————————-*\n“);
  PR(“请选择: “);
  choice = getch();
  PR(“%c\n“,choice);
  if(choice==’0’)
  {
  PR(“请输入你的姓名: “);
  scanf( “%s“,name);
  book(cus,name);
  save_customer(cus);
  }
  else if(choice==’1’)
  {
  PR(“\n请输入你的姓名: “);
  scanf( “%s“,name);
  delete_cus(cus,name);
  save_customer(cus);
  }
  else if(choice==’2’)
  {
  customer *p=l-》next;
  if(l!=NULL)
  do
  {
  PR(“%ld%5.1f\n“,p-》name,p-》seat_num);
  p=p-》next;
  }while(p!=NULL);
  }
  else if(choice==’3’)
  {
  PR(“byb“);
  t=0;
  }
  else
  {
  PR(“error\n“);
  }
  }
  getch();
  }

c语言如何编写飞机订票系统

#include 《stdio.h》
#include 《string.h》
#include 《conio.h》
#include 《ctype.h》
#include 《stdlib.h》
#include 《malloc.h》
#include 《math.h》//overflow
#define ok 1
typedef struct Yidingkehu
{//单链表
 char name;//已订票的客户姓名
 int dingpiaoshu;//已订票数量
 struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//单链队
 char name;//预订票的客户姓名
 int yudingpiao;// 要订票数量
 struct Weidingkehu *next2;//下一个链队结点指针
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//创建一个含有六个信息的结构体
 char hangbanhao;//航班号-
 char feijihao;//飞机号
 int feixingriqi;//起飞时间
 int chenkerenshu;//座位数
 int yupiao;//余票
 char zhongdianzhai;//降落城市
 struct Hangxian *next;//指向下一个链结点的指针
 struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针
 struct Weidingkehu *yudingqueue;
}Hangxian,*Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist &head1);//02
void hbhchaxun();//通过航班号查询
void mddchaxun();//通过目的地查询
void lurugongneng();//初始化录入功能
void chaxungongnen();//查询功能
void dingpiaogongnen();//订票功能
void tuipiaogongnen();//退票功能
void main()
{
 
 int n;
 do{ //打印主界面
  printf(“\t 欢迎使用航空客运订票系统\n“);
  printf(“\t+++++++++++++++++++++++++++++\n“);
  printf(“\t==》1. 录入功能 ==\n“);
  printf(“\t==》2. 查询功能 ==\n“);
  printf(“\t==》3. 订票功能 ==\n“);
  printf(“\t==》4. 退票功能 ==\n“);
  printf(“\t==》5. 退出 ==\n“);
  printf(“\t+++++++++++++++++++++++++++++\n“);
  printf(“\t请选择:“);
  scanf(“%d“,&n);printf(“\n“);
  switch(n)
  {
  case 1: lurugongneng();//录入功能
   break;
  case 2: chaxungongnen();//查询功能
   break;
  case 3: dingpiaogongnen();//订票功能
   break;
  case 4:tuipiaogongnen();//退票功能
   break;
  default :exit(0);//退出
  }
 }while(n==1||n==2||n==3||n==4);
}
void lurugongneng()//初始化的单链表*********************************************************录入功能
{
 
 Linklist p;
 //int m,n;
 if(!p) exit(OVERFLOW);
 printf(“\t请依次输入下面几项内容:\n\n“);//这里的输入采用一个个单独输入,避免了乱赋值的现象
 printf(“航班号\n“);
 gets(p-》hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车
    gets(p-》hangbanhao);
 printf(“飞机号\n“);
 gets(p-》feijihao);
 printf(“终点站\n“);
 gets(p-》zhongdianzhai);
 printf(“飞行日期\n“);
 scanf(“%d“,&p-》feixingriqi);
 printf(“乘客总数\n“);
 scanf(“%d“,&p-》chenkerenshu);
 printf(“余票数\n“);
 scanf(“%d“,&p-》yupiao);
 
}
void chaxungongnen()//******************************************************************查询功能
{
 int n;
 printf(“\t 查 找 航 线 信 息 \n“);
 printf(“\t+++++++++++++++++++++++++++++\n“);
 printf(“\t==》1. 通过目的地查询 ==\n“);
 printf(“\t==》2. 通过航班号查询 ==\n“);
 printf(“\t+++++++++++++++++++++++++++++\n“);
 printf(“\t请选择:“);
 scanf(“%d“,&n);
 printf(“\n“);//格式化
 switch(n)
 {
 case 1:mddchaxun();
  break;
 case 2:hbhchaxun();
  break;
 default :break;
 }
}
void mddchaxun()//通过目的地查询
{
 char c;
 int m;
 Linklist p=L;
 printf(“\t请输入要查询的目的地:“);
 gets(c);
 gets(c);//原因同上
 do{
  p=p-》next;
  if(p)
  {
   m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0;
   if(m==0)
   {
    printf(“\t航班信息:\n“);
    printf(“\t航班号:%s\n“,p-》hangbanhao);
    printf(“\t飞机号:%s\n“,p-》feijihao);
    printf(“\t飞行时间:周%d\n“,p-》feixingriqi);
    printf(“\t余票量:%d\n“,p-》yupiao);
   }
  }
  else
  {//如果不匹配的话就做
   printf(“\t对不起没有你要找的目的地:\n\n“); m=0;
  }
 }while(m!=0);
}
void hbhchaxun()//通过目的地查询
{
 char c;
 int m;
 Linklist p=L;
 printf(“\t请输入要查询的航班号:“);
 gets(c); gets(c);printf(“\n“);
 do{
  p=p-》next;
  if(p)
  {
   m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p-》的作用是一样的
   if(m==0)
   {
    printf(“\t航班信息:\n“);
    printf(“\t航班号:%s\n“,p-》hangbanhao);
    printf(“\t飞机号:%s\n“,p-》feijihao);
    printf(“\t飞行时间:周%d\n“,p-》feixingriqi);
    printf(“\t余票量:%d\n\n“,p-》yupiao);
   }
  }
  else
  {//如果不匹配的话就做
   printf(“\t对不起没有你要找的航班号:\n“); m=0;
  }
 }while(m!=0);
}
void dingpiaogongnen()//***************************************************************订票功能
{
 
 char c;
 int m=1,piao,ydpiao=0,yd=0,n;//
 gets(c);
 printf(“请输入终点站名:“); gets(c); printf(“\n“);
 p=L-》next;
 if(p) {
  do{//查找一下,是否有这个航班
   if(!p)
   {
    printf(“对不起,没有你要找的航班:\n\n“);
    goto loop1;
   }
   m=strcmpi(p-》zhongdianzhai,c);
   if(m==0)
   {
    printf(“航班信息:\n“);
    printf(“航班号:%s\n“,p-》hangbanhao);
    printf(“飞机号:%s\n“,p-》feijihao);
    printf(“飞行时间:周%d\n“,p-》feixingriqi);
    printf(“余票量:%d\n“,p-》yupiao);}
   else p=p-》next;
  }while(m!=0);
  if(m==0)
  {
   do{
    printf(“\n请输入你要订的票数:“); scanf(“%d“,&piao);
    if(piao《=p-》yupiao)
    {
     h=p-》yiding;
     if(h)
     {
      h1=h;
      h=h-》next1;
      h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));
      printf(“请输入你的名字:“);
      gets(h-》name);gets(h-》name);
      h-》dingpiaoshu=piao;
      h-》next1=h1-》next1;
      h1-》next1=h;
      p-》yupiao=p-》yupiao-piao;
      printf(“订票成功:\n“); m=2;
     }
    }
    else
    { 
     printf(“余票量:%d\n“,p-》yupiao);
     printf(“对不起,余票 %d 张不足,不能完成订票\n\n“,p-》yupiao);
     printf(“ 是否要重新订票?\n“);
     printf(“需要请输入1 否则请按2 预订请输入3 : “);
     scanf(“%d“,&m);
     printf(“\n“);
     if(m==3) goto loop3;
    }
   }while(m==1);
  }
 }
 else if(!p) 
 {
loop3: struct Weidingkehu *q3;
printf(“对不起,该航班的票已售完\n“);
q.front=p-》yudingqueue;
if(q.front==q.rear) printf(“没有人预订票,是否要预订?\n“);
else if(q.front!=q.rear) printf(“已有人预订票,是否要预订?\n“);
printf(“预订请输入1 否则输入2 : “);
scanf(“%d“,&n);
printf(“\n“);
if(n==1)
{
 
 printf(“请输入你的姓名“); gets(q3-》name); gets(q3-》name);//q3不能指向name???
 printf(“请输入订票数“); scanf(“%d“,&q3-》yudingpiao);
 q3-》next2=NULL;
 q.rear-》next2=q3;
 q.rear=q3;
 printf(“ 你已经预订了 !\n“);
}
 }
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
 
}
///////////以下是人家的要求//////////
1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:起飞地、目的地 航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。
2、本系统显示这样的菜单:
(1) 输入航班信息
(2) 输出航班信息
(3) 查找航班信息
a.显示空座的数量
b.显示空座的信息
c.显示已订座的信息
d.起飞时间
(4)订票预约
(5)删除定票预约
(6)退出系统
1、 本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。
2、 查找航班信息既可按线路查,也可按目的地查。
4、在两次运行之间,数据被保存于一个文件里,当本程序重新开
始的时候,它首先从该文件读入数据

C语言程序写飞机订票系统

#include 《stdio.h》
#include 《string.h》
#include 《conio.h》
#include 《ctype.h》
#include 《stdlib.h》
#include 《malloc.h》
#include 《math.h》//overflow
#define ok 1
typedef struct Yidingkehu
{//单链表
char name;//已订票的客户姓名
int dingpiaoshu;//已订票数量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//单链队
char name;//预订票的客户姓名
int yudingpiao;// 要订票数量
struct Weidingkehu *next2;//下一个链队结点指针
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//创建一个含有六个信息的结构体
char hangbanhao;//航班号-
char feijihao;//飞机号
int feixingriqi;//起飞时间
int chenkerenshu;//座位数
int yupiao;//余票
char zhongdianzhai;//降落城市
struct Hangxian *next;//指向下一个链结点的指针
struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针
struct Weidingkehu *yudingqueue;
}Hangxian,*Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist &head1);//02
void hbhchaxun();//通过航班号查询
void mddchaxun();//通过目的地查询
void lurugongneng();//初始化录入功能
void chaxungongnen();//查询功能
void dingpiaogongnen();//订票功能
void tuipiaogongnen();//退票功能
void main()
{

int n;
do{ //打印主界面
printf(“\t 欢迎使用航空客运订票系统\n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t==》1. 录入功能 ==\n“);
printf(“\t==》2. 查询功能 ==\n“);
printf(“\t==》3. 订票功能 ==\n“);
printf(“\t==》4. 退票功能 ==\n“);
printf(“\t==》5. 退出 ==\n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t请选择:“);
scanf(“%d“,&n);printf(“\n“);
switch(n)
{
case 1: lurugongneng();//录入功能
break;
case 2: chaxungongnen();//查询功能
break;
case 3: dingpiaogongnen();//订票功能
break;
case 4:tuipiaogongnen();//退票功能
break;
default :exit(0);//退出
}
}while(n==1||n==2||n==3||n==4);
}
void lurugongneng()//初始化的单链表*********************************************************录入功能
{

Linklist p;
//int m,n;
if(!p) exit(OVERFLOW);
printf(“\t请依次输入下面几项内容:\n\n“);//这里的输入采用一个个单独输入,避免了乱赋值的现象
printf(“航班号\n“);
gets(p-》hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车
gets(p-》hangbanhao);
printf(“飞机号\n“);
gets(p-》feijihao);
printf(“终点站\n“);
gets(p-》zhongdianzhai);
printf(“飞行日期\n“);
scanf(“%d“,&p-》feixingriqi);
printf(“乘客总数\n“);
scanf(“%d“,&p-》chenkerenshu);
printf(“余票数\n“);
scanf(“%d“,&p-》yupiao);

}
void chaxungongnen()//******************************************************************查询功能
{
int n;
printf(“\t 查 找 航 线 信 息 \n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t==》1. 通过目的地查询 ==\n“);
printf(“\t==》2. 通过航班号查询 ==\n“);
printf(“\t+++++++++++++++++++++++++++++\n“);
printf(“\t请选择:“);
scanf(“%d“,&n);
printf(“\n“);//格式化
switch(n)
{
case 1:mddchaxun();
break;
case 2:hbhchaxun();
break;
default :break;
}
}
void mddchaxun()//通过目的地查询
{
char c;
int m;
Linklist p=L;
printf(“\t请输入要查询的目的地:“);
gets(c);
gets(c);//原因同上
do{
p=p-》next;
if(p)
{
m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0;
if(m==0)
{
printf(“\t航班信息:\n“);
printf(“\t航班号:%s\n“,p-》hangbanhao);
printf(“\t飞机号:%s\n“,p-》feijihao);
printf(“\t飞行时间:周%d\n“,p-》feixingriqi);
printf(“\t余票量:%d\n“,p-》yupiao);
}
}
else
{//如果不匹配的话就做
printf(“\t对不起没有你要找的目的地:\n\n“); m=0;
}
}while(m!=0);
}
void hbhchaxun()//通过目的地查询
{
char c;
int m;
Linklist p=L;
printf(“\t请输入要查询的航班号:“);
gets(c); gets(c);printf(“\n“);
do{
p=p-》next;
if(p)
{
m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p-》的作用是一样的
if(m==0)
{
printf(“\t航班信息:\n“);
printf(“\t航班号:%s\n“,p-》hangbanhao);
printf(“\t飞机号:%s\n“,p-》feijihao);
printf(“\t飞行时间:周%d\n“,p-》feixingriqi);
printf(“\t余票量:%d\n\n“,p-》yupiao);
}
}
else
{//如果不匹配的话就做
printf(“\t对不起没有你要找的航班号:\n“); m=0;
}
}while(m!=0);
}
void dingpiaogongnen()//***************************************************************订票功能
{

char c;
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf(“请输入终点站名:“); gets(c); printf(“\n“);
p=L-》next;
if(p) {
do{//查找一下,是否有这个航班
if(!p)
{
printf(“对不起,没有你要找的航班:\n\n“);
goto loop1;
}
m=strcmpi(p-》zhongdianzhai,c);
if(m==0)
{
printf(“航班信息:\n“);
printf(“航班号:%s\n“,p-》hangbanhao);
printf(“飞机号:%s\n“,p-》feijihao);
printf(“飞行时间:周%d\n“,p-》feixingriqi);
printf(“余票量:%d\n“,p-》yupiao);}
else p=p-》next;
}while(m!=0);
if(m==0)
{
do{
printf(“\n请输入你要订的票数:“); scanf(“%d“,&piao);
if(piao《=p-》yupiao)
{
h=p-》yiding;
if(h)
{
h1=h;
h=h-》next1;
h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));
printf(“请输入你的名字:“);
gets(h-》name);gets(h-》name);
h-》dingpiaoshu=piao;
h-》next1=h1-》next1;
h1-》next1=h;
p-》yupiao=p-》yupiao-piao;
printf(“订票成功:\n“); m=2;
}
}
else
{
printf(“余票量:%d\n“,p-》yupiao);
printf(“对不起,余票 %d 张不足,不能完成订票\n\n“,p-》yupiao);
printf(“ 是否要重新订票?\n“);
printf(“需要请输入1 否则请按2 预订请输入3 : “);
scanf(“%d“,&m);
printf(“\n“);
if(m==3) goto loop3;
}
}while(m==1);
}
}
else if(!p)
{
loop3: struct Weidingkehu *q3;
printf(“对不起,该航班的票已售完\n“);
q.front=p-》yudingqueue;
if(q.front==q.rear) printf(“没有人预订票,是否要预订?\n“);
else if(q.front!=q.rear) printf(“已有人预订票,是否要预订?\n“);
printf(“预订请输入1 否则输入2 : “);
scanf(“%d“,&n);
printf(“\n“);
if(n==1)
{

printf(“请输入你的姓名“); gets(q3-》name); gets(q3-》name);//q3不能指向name???
printf(“请输入订票数“); scanf(“%d“,&q3-》yudingpiao);
q3-》next2=NULL;
q.rear-》next2=q3;
q.rear=q3;
printf(“ 你已经预订了 !\n“);
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{

}
请采纳答案,支持我一下。

飞机、火车订票系统属于什么方面的计算机应用

属于数据处理方面的计算机应用。

数据处理流程主要包括数据收集、数据预处理、数据存储、数据处理与分析、数据展示/数据可视化、数据应用等环节,其中数据质量贯穿于整个大数据流程,每一个数据处理环节都会对大数据质量产生影响作用。

通常,一个好的数据产品要有大量的数据规模、快速的数据处理、精确的数据分析与预测、优秀的可视化图表以及简练易懂的结果解释。

扩展资料:

数据的分布式处理技术与存储形式、业务数据类型等相关,针对大数据处理的主要计算模型有MapReduce分布式计算框架、分布式内存计算系统、分布式流计算系统等。

MapReduce是一个批处理的分布式计算框架,可对海量数据进行并行分析与处理,它适合对各种结构化、非结构化数据的处理。分布式内存计算系统可有效减少数据读写和移动的开销,提高大数据处理性能。分布式流计算系统则是对数据流进行实时处理,以保障大数据的时效性和价值性。

总之,无论哪种大数据分布式处理与计算系统,都有利于提高大数据的价值性、可用性、时效性和准确性。

大数据的类型和存储形式决定了其所采用的数据处理系统,而数据处理系统的性能与优劣直接影响大数据质量的价值性、可用性、时效性和准确性。因此在进行大数据处理时,要根据大数据类型选择合适的存储形式和数据处理系统,以实现大数据质量的最优化。

参考资料来源:百度百科——数据处理