广东金锐软件有售,目前是《客运汽车站售票系统V10.3大型网络版》,适合汽车、船舶客运站,有两个版本,一个是独立车站联网,一个是多车站联网,估计多车站适用您,软件可以申请试用。
至于价格,我了解到的是:小车站每客户机软件是8000元,大车站按套算,每车站是9.8万,包含全套功能。
你仔细想想,怎样让两个异地同时输入提交而不出现同号,怎样知道班机已经定满,就差不多了。
下面的你就参考下吧
#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[15];//已订票的客户姓名 int dingpiaoshu;//已订票数量 struct Yidingkehu *next1;// }Yidingkehu,*Link;
typedef struct Weidingkehu{//单链队 char name[15];//预订票的客户姓名 int yudingpiao;// 要订票数量 struct Weidingkehu *next2;//下一个链队结点指针 }Weidingkehu,*Qptr; typedef struct { Qptr front;//单链队头结点 Qptr rear;//单链队尾结点 }linkQueue;
typedef struct Hangxian{//创建一个含有六个信息的结构体 char hangbanhao[15];//航班号- char feijihao[15];//飞机号 int feixingriqi;//起飞时间 int chenkerenshu;//座位数 int yupiao;//余票 char zhongdianzhai[15];//降落城市 struct Hangxian *next;//指向下一个链结点的指针 struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针 struct Weidingkehu *yudingqueue; }Hangxian,*Linklist;
struct Hangxian *L=NULL;// struct Yidingkehu *H;//为已订票客户链队来申请空间 linkQueue Q;//linkQueue类型的来申请空间
Linklist InitLinklist();//01 int InsertLinklist(Linklist &head1);//02
void hbhchaxun();//通过航班号查询 void mddchaxun();//通过目的地查询
void lurugongneng();//初始化录入功能 void chaxungongnen();//查询功能 void dingpiaogongnen();//订票功能 void tuipiaogongnen();//退票功能
void main() { H=(struct Yidingkehu*)malloc(sizeof(Yidingkehu)); Q.front=Q.rear=(Qptr)malloc(sizeof(Weidingkehu)); InitLinklist(); int n; do{ //打印主界面 printf(" 欢迎使用航空客运订票系统 "); printf(" +++++++++++++++++++++++++++++ "); printf(" ==>1. 录入功能 == "); printf(" ==>2. 查询功能 == "); printf(" ==>3. 订票功能 == "); printf(" ==>4. 退票功能 == "); printf(" ==>5. 退出 == "); printf(" +++++++++++++++++++++++++++++ "); printf(" 请选择:"); scanf("%d",&n);printf(" "); 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()//初始化的单链表*********************************************************录入功能 { int j=1,m; do{ if(!InsertLinklist((Linklist) L)) //向其中加入航班信息 { printf("内存已满 "); exit(OVERFLOW); }//向链表中加一结点 printf(" 是否要输入下一个航线记录? "); printf(" 是请输入1 "); printf(" 否请输入2 "); scanf("%d",&m); //在这里依靠人来决定是否输入下一条航线记 }while(m==1); }
Linklist InitLinklist(){//01 L=(Linklist)malloc(sizeof(Hangxian)); if(!L) exit(OVERFLOW); L->next=NULL;//建立一个带有头结点的单链表 return (L); }
int InsertLinklist(Linklist &L)//02向航线链表添加新的结点 { Linklist p; //int m,n; p=(Linklist)malloc(sizeof(Hangxian));//为一个新的结点分配空间 if(!p) exit(OVERFLOW); printf(" 请依次输入下面几项内容: ");//这里的输入采用一个个单独输入,避免了乱赋值的现象 printf("航班号 "); gets(p->hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车 gets(p->hangbanhao); printf("飞机号 "); gets(p->feijihao); printf("终点站 "); gets(p->zhongdianzhai); printf("飞行日期 "); scanf("%d",&p->feixingriqi); printf("乘客总数 "); scanf("%d",&p->chenkerenshu); printf("余票数 "); scanf("%d",&p->yupiao); p->yiding=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));//为它申请空间 p->yudingqueue=Q.front=Q.rear=(Qptr)malloc(sizeof(Weidingkehu));//为它申请空间 p->next=L->next;// L->next=p;//这二句是链表中的头插法插入一个结点 return (ok); }
void chaxungongnen()//******************************************************************查询功能 { int n; printf(" 查 找 航 线 信 息 "); printf(" +++++++++++++++++++++++++++++ "); printf(" ==>1. 通过目的地查询 == "); printf(" ==>2. 通过航班号查询 == "); printf(" +++++++++++++++++++++++++++++ "); printf(" 请选择:"); scanf("%d",&n); printf(" ");//格式化 switch(n) { case 1:mddchaxun(); break; case 2:hbhchaxun(); break; default :break; } }
void mddchaxun()//通过目的地查询 { char c[15]; int m; Linklist p=L; printf(" 请输入要查询的目的地:"); gets(c); gets(c);//原因同上 do{ p=p->next; if(p) { m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0; if(m==0) { printf(" 航班信息: "); printf(" 航班号:%s ",p->hangbanhao); printf(" 飞机号:%s ",p->feijihao); printf(" 飞行时间:周%d ",p->feixingriqi); printf(" 余票量:%d ",p->yupiao); } } else {//如果不匹配的话就做 printf(" 对不起没有你要找的目的地: "); m=0; } }while(m!=0); }
void hbhchaxun()//通过目的地查询 { char c[15]; int m; Linklist p=L; printf(" 请输入要查询的航班号:"); gets(c); gets(c);printf(" "); do{ p=p->next; if(p) { m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p->的作用是一样的 if(m==0) { printf(" 航班信息: "); printf(" 航班号:%s ",p->hangbanhao); printf(" 飞机号:%s ",p->feijihao); printf(" 飞行时间:周%d ",p->feixingriqi); printf(" 余票量:%d ",p->yupiao); } } else {//如果不匹配的话就做 printf(" 对不起没有你要找的航班号: "); m=0; } }while(m!=0); }
void dingpiaogongnen()//***************************************************************订票功能 { Linklist p=L;//Linklist类型的L来指向链表头 Yidingkehu *h=H,*h1;//Yidingkehu 定义客户的结点,方便插入与删除 linkQueue q=Q;//linkQueue类型的来 ,方便插入与删除 char c[15]; int m=1,piao,ydpiao=0,yd=0,n;// gets(c); printf("请输入终点站名:"); gets(c); printf(" "); p=L->next; if(p) { do{//查找一下,是否有这个航班 if(!p) { printf("对不起,没有你要找的航班: "); goto loop1; } m=strcmpi(p->zhongdianzhai,c); if(m==0) { printf("航班信息: "); printf("航班号:%s ",p->hangbanhao); printf("飞机号:%s ",p->feijihao); printf("飞行时间:周%d ",p->feixingriqi); printf("余票量:%d ",p->yupiao);} else p=p->next; }while(m!=0); if(m==0) { do{ printf(" 请输入你要订的票数:"); 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("订票成功: "); m=2; } } else { printf("余票量:%d ",p->yupiao); printf("对不起,余票 %d 张不足,不能完成订票 ",p->yupiao); printf(" 是否要重新订票? "); printf("需要请输入1 否则请按2 预订请输入3 : "); scanf("%d",&m); printf(" "); if(m==3) goto loop3; } }while(m==1); } } else if(!p) { loop3: struct Weidingkehu *q3; printf("对不起,该航班的票已售完 "); q.front=p->yudingqueue; if(q.front==q.rear) printf("没有人预订票,是否要预订? "); else if(q.front!=q.rear) printf("已有人预订票,是否要预订? "); printf("预订请输入1 否则输入2 : "); scanf("%d",&n); printf(" "); if(n==1) { q3=(Qptr)malloc(sizeof(Weidingkehu)); 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(" 你已经预订了 ! "); } } loop1:; }
void tuipiaogongnen()//***************************************************************退票功能 { Linklist p=L; Yidingkehu *h=H,*h1,*h2; linkQueue q=Q; char c[15],name1[15]; int m=1,piao,n;// gets(c); printf("请输入航班号:"); gets(c); p=L;//->next; if(p) { do{ //使用do while来查找是否有此航班 if(!p) {//如果是到了表尾且没有匹配,goto至再输入航班号 printf(" 对不起,没有你要找的航班: "); goto loop1; } m=strcmpi(p->hangbanhao,c);//如果匹配的话,m=0 if(m==0) { printf(" 航班信息: "); printf("航班号:%s ",p->hangbanhao); printf("飞机号:%s ",p->feijihao); printf("飞行时间:周%d ",p->feixingriqi); printf("余票量:%d ",p->yupiao);} else p=p->next; }while(m!=0); if(m==0) {//如果找到了,就来给他退票 do{ h=p->yiding; if(h) { printf("请输入你的姓名:"); gets(name1);//gets(name1); printf("请输入你订的票数:"); scanf("%d",&piao); printf(" "); h1=h; h=h->next1; if(strcmpi(h->name,name1)==0&&h->dingpiaoshu==piao)//如果名字和订的票数相等,则就给他取消订票 { p->yupiao+=h->dingpiaoshu; h2=h; h1->next1=h->next1; free(h2); printf("你取消订票成功: "); struct Weidingkehu *q3; q.front=p->yudingqueue; if(q.front==q.rear) {printf("没有人预订票: "); goto loop1;} if((p->yupiao)>=(q.front->next2->yudingpiao)) { h2=(struct Yidingkehu*)malloc(sizeof(Yidingkehu)); strcpy(h2->name,q.front->next2->name); h2->dingpiaoshu=q.front->next2->yudingpiao; n=p->yupiao-q.front->next2->yudingpiao; p->yupiao=n; q3=Q.front->next2;// q.front->next2=q3->next2;//这二语句来删除结点 if(q.rear==q3) q.rear=q.front; free(q3);//释放空间 printf("链队中删除成功 "); h2->next1=h->next1; h->next1=h2;//为之插入进已订票客户链表中 printf("为预订的客户订票成功 "); } else printf("余票数不够,不能为预订客户订票! "); } else { //如果没有找到,即系统中没有该人的信息,提示是否来重新查找 printf("对不起,该航班没有人订票或者是你没有订该航班的票 "); printf("是否要重新查找并取消订票? "); printf("需要请输入1 否则请按2 "); scanf("%d",&m); printf(" "); } } }while(m==1); } } loop1: ; }
RAKsmart 虽然是美国主机商,但是商家的主要客户群还是在我们国内,于是我们可以看到每次的国内节日促销活动期间商家也会发布促销。包括这次年中大促活动,RAKsmart商家也有发布为期两个月的年终活动,其中有商家擅长的独立服务器和便宜VPS主机。服务器包括站群服务器、特价服务器、高达10G带宽不限制流量的美国服务器。商家优惠活动,可以看到对应商品的优惠,同时也可以使用 优惠码 RAKBL9 同时...
星梦云怎么样?星梦云资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器。星梦云目前夏日云服务器促销,四川100G高防4H4G10M月付仅60元;西南高防月付特价活动,续费同价,买到就是赚到!点击进入:星梦云官方网站地址1、成都电信年中活动机(成都电信优化线路,封锁...
OneTechCloud(易科云)是一家主打CN2等高端线路的VPS主机商家,成立于2019年,提供的产品包括VPS主机和独立服务器租用等,数据中心可选美国洛杉矶、中国香港、日本等,有CN2 GIA线路、AS9929、高防、原生IP等。目前商家针对全场VPS主机提供月付9折,季付8折优惠码,优惠后香港VPS最低季付64元起(≈21.3元/月),美国洛杉矶CN2 GIA线路+20Gbps防御型VPS...