【簡(jiǎn)介:】本篇文章給大家談?wù)劇讹w機(jī)購(gòu)票系統(tǒng)java》對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助。本文目錄一覽:
1、C語(yǔ)言程序設(shè)計(jì)飛機(jī)訂票系統(tǒng)
2、utf飛機(jī)訂票系統(tǒng)用戶名需求
3、C語(yǔ)言程序?qū)?
本篇文章給大家談?wù)劇讹w機(jī)購(gòu)票系統(tǒng)java》對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助。
本文目錄一覽:
- 1、C語(yǔ)言程序設(shè)計(jì)飛機(jī)訂票系統(tǒng)
- 2、utf飛機(jī)訂票系統(tǒng)用戶名需求
- 3、C語(yǔ)言程序?qū)戯w機(jī)訂票系統(tǒng)
- 4、飛機(jī)訂票系統(tǒng)
- 5、民航訂票系統(tǒng)有哪幾種?
- 6、飛機(jī)訂票系統(tǒng)設(shè)計(jì)
C語(yǔ)言程序設(shè)計(jì)飛機(jī)訂票系統(tǒng)
#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;//已訂票數(shù)量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//單鏈隊(duì)
char name[15];//預(yù)訂票的客戶姓名
int yudingpiao;// 要訂票數(shù)量
struct Weidingkehu *next2;//下一個(gè)鏈隊(duì)結(jié)點(diǎn)指針
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//創(chuàng)建一個(gè)含有六個(gè)信息的結(jié)構(gòu)體
char hangbanhao[15];//航班號(hào)-
char feijihao[15];//飛機(jī)號(hào)
int feixingriqi;//起飛時(shí)間
int chenkerenshu;//座位數(shù)
int yupiao;//余票
char zhongdianzhai[15];//降落城市
struct Hangxian *next;//指向下一個(gè)鏈結(jié)點(diǎn)的指針
struct Yidingkehu *yiding;//定義一個(gè)指向已訂票客戶的頭結(jié)點(diǎn)指針
struct Weidingkehu *yudingqueue;
}Hangxian,*Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist head1);//02
void hbhchaxun();//通過(guò)航班號(hào)查詢
void mddchaxun();//通過(guò)目的地查詢
void lurugongneng();//初始化錄入功能
void chaxungongnen();//查詢功能
void dingpiaogongnen();//訂票功能
void tuipiaogongnen();//退票功能
void main()
{
int n;
do{ //打印主界面
printf("\t 歡迎使用航空客運(yùn)訂票系統(tǒng)\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請(qǐng)選擇:");
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請(qǐng)依次輸入下面幾項(xiàng)內(nèi)容:\n\n");//這里的輸入采用一個(gè)個(gè)單獨(dú)輸入,避免了亂賦值的現(xiàn)象
printf("航班號(hào)\n");
gets(p-hangbanhao);//這里的二個(gè)gets主要是因?yàn)樵诨剀囨I的輸入,其中的第一個(gè)是來(lái)接收上次的回車
gets(p-hangbanhao);
printf("飛機(jī)號(hào)\n");
gets(p-feijihao);
printf("終點(diǎn)站\n");
gets(p-zhongdianzhai);
printf("飛行日期\n");
scanf("%d",p-feixingriqi);
printf("乘客總數(shù)\n");
scanf("%d",p-chenkerenshu);
printf("余票數(shù)\n");
scanf("%d",p-yupiao);
}
void chaxungongnen()//******************************************************************查詢功能
{
int n;
printf("\t 查 找 航 線 信 息 \n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==1. 通過(guò)目的地查詢 ==\n");
printf("\t==2. 通過(guò)航班號(hào)查詢 ==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t請(qǐng)選擇:");
scanf("%d",n);
printf("\n");//格式化
switch(n)
{
case 1:mddchaxun();
break;
case 2:hbhchaxun();
break;
default :break;
}
}
void mddchaxun()//通過(guò)目的地查詢
{
char c[15];
int m;
Linklist p=L;
printf("\t請(qǐng)輸入要查詢的目的地:");
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航班號(hào):%s\n",p-hangbanhao);
printf("\t飛機(jī)號(hào):%s\n",p-feijihao);
printf("\t飛行時(shí)間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對(duì)不起沒(méi)有你要找的目的地:\n\n"); m=0;
}
}while(m!=0);
}
void hbhchaxun()//通過(guò)目的地查詢
{
char c[15];
int m;
Linklist p=L;
printf("\t請(qǐng)輸入要查詢的航班號(hào):");
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航班號(hào):%s\n",p-hangbanhao);
printf("\t飛機(jī)號(hào):%s\n",p-feijihao);
printf("\t飛行時(shí)間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對(duì)不起沒(méi)有你要找的航班號(hào):\n"); m=0;
}
}while(m!=0);
}
void dingpiaogongnen()//***************************************************************訂票功能
{
char c[15];
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf("請(qǐng)輸入終點(diǎn)站名:"); gets(c); printf("\n");
p=L-next;
if(p) {
do{//查找一下,是否有這個(gè)航班
if(!p)
{
printf("對(duì)不起,沒(méi)有你要找的航班:\n\n");
goto loop1;
}
m=strcmpi(p-zhongdianzhai,c);
if(m==0)
{
printf("航班信息:\n");
printf("航班號(hào):%s\n",p-hangbanhao);
printf("飛機(jī)號(hào):%s\n",p-feijihao);
printf("飛行時(shí)間:周%d\n",p-feixingriqi);
printf("余票量:%d\n",p-yupiao);}
else p=p-next;
}while(m!=0);
if(m==0)
{
do{
printf("\n請(qǐng)輸入你要訂的票數(shù):"); scanf("%d",piao);
if(piao=p-yupiao)
{
h=p-yiding;
if(h)
{
h1=h;
h=h-next1;
h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));
printf("請(qǐng)輸入你的名字:");
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("對(duì)不起,余票 %d 張不足,不能完成訂票\n\n",p-yupiao);
printf(" 是否要重新訂票?\n");
printf("需要請(qǐng)輸入1 否則請(qǐng)按2 預(yù)訂請(qǐng)輸入3 : ");
scanf("%d",m);
printf("\n");
if(m==3) goto loop3;
}
}while(m==1);
}
}
else if(!p)
{
loop3: struct Weidingkehu *q3;
printf("對(duì)不起,該航班的票已售完\n");
q.front=p-yudingqueue;
if(q.front==q.rear) printf("沒(méi)有人預(yù)訂票,是否要預(yù)訂?\n");
else if(q.front!=q.rear) printf("已有人預(yù)訂票,是否要預(yù)訂?\n");
printf("預(yù)訂請(qǐng)輸入1 否則輸入2 : ");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("請(qǐng)輸入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???
printf("請(qǐng)輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf(" 你已經(jīng)預(yù)訂了 !\n");
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
}
請(qǐng)采納答案,支持我一下。
utf飛機(jī)訂票系統(tǒng)用戶名需求
不能有特殊符號(hào)。
utf飛機(jī)訂票系統(tǒng)用戶名的注冊(cè)是不可以有特殊符號(hào)的,有特殊符號(hào)是沒(méi)辦法注冊(cè)成功的。
飛機(jī)訂票系統(tǒng)屬于計(jì)算機(jī)數(shù)據(jù)管理類應(yīng)用領(lǐng)域。數(shù)據(jù)管理是利用計(jì)算機(jī)硬件和軟件技術(shù)對(duì)數(shù)據(jù)進(jìn)行有效的收集、存儲(chǔ)、處理和應(yīng)用的過(guò)程。
C語(yǔ)言程序?qū)戯w機(jī)訂票系統(tǒng)
#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;//已訂票數(shù)量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//單鏈隊(duì)
char name[15];//預(yù)訂票的客戶姓名
int yudingpiao;// 要訂票數(shù)量
struct Weidingkehu *next2;//下一個(gè)鏈隊(duì)結(jié)點(diǎn)指針
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//創(chuàng)建一個(gè)含有六個(gè)信息的結(jié)構(gòu)體
char hangbanhao[15];//航班號(hào)-
char feijihao[15];//飛機(jī)號(hào)
int feixingriqi;//起飛時(shí)間
int chenkerenshu;//座位數(shù)
int yupiao;//余票
char zhongdianzhai[15];//降落城市
struct Hangxian *next;//指向下一個(gè)鏈結(jié)點(diǎn)的指針
struct Yidingkehu *yiding;//定義一個(gè)指向已訂票客戶的頭結(jié)點(diǎn)指針
struct Weidingkehu *yudingqueue;
}Hangxian,*Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist head1);//02
void hbhchaxun();//通過(guò)航班號(hào)查詢
void mddchaxun();//通過(guò)目的地查詢
void lurugongneng();//初始化錄入功能
void chaxungongnen();//查詢功能
void dingpiaogongnen();//訂票功能
void tuipiaogongnen();//退票功能
void main()
{
int n;
do{ //打印主界面
printf("\t 歡迎使用航空客運(yùn)訂票系統(tǒng)\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請(qǐng)選擇:");
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請(qǐng)依次輸入下面幾項(xiàng)內(nèi)容:\n\n");//這里的輸入采用一個(gè)個(gè)單獨(dú)輸入,避免了亂賦值的現(xiàn)象
printf("航班號(hào)\n");
gets(p-hangbanhao);//這里的二個(gè)gets主要是因?yàn)樵诨剀囨I的輸入,其中的第一個(gè)是來(lái)接收上次的回車
gets(p-hangbanhao);
printf("飛機(jī)號(hào)\n");
gets(p-feijihao);
printf("終點(diǎn)站\n");
gets(p-zhongdianzhai);
printf("飛行日期\n");
scanf("%d",p-feixingriqi);
printf("乘客總數(shù)\n");
scanf("%d",p-chenkerenshu);
printf("余票數(shù)\n");
scanf("%d",p-yupiao);
}
void chaxungongnen()//******************************************************************查詢功能
{
int n;
printf("\t 查 找 航 線 信 息 \n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==1. 通過(guò)目的地查詢 ==\n");
printf("\t==2. 通過(guò)航班號(hào)查詢 ==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t請(qǐng)選擇:");
scanf("%d",n);
printf("\n");//格式化
switch(n)
{
case 1:mddchaxun();
break;
case 2:hbhchaxun();
break;
default :break;
}
}
void mddchaxun()//通過(guò)目的地查詢
{
char c[15];
int m;
Linklist p=L;
printf("\t請(qǐng)輸入要查詢的目的地:");
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航班號(hào):%s\n",p-hangbanhao);
printf("\t飛機(jī)號(hào):%s\n",p-feijihao);
printf("\t飛行時(shí)間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對(duì)不起沒(méi)有你要找的目的地:\n\n"); m=0;
}
}while(m!=0);
}
void hbhchaxun()//通過(guò)目的地查詢
{
char c[15];
int m;
Linklist p=L;
printf("\t請(qǐng)輸入要查詢的航班號(hào):");
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航班號(hào):%s\n",p-hangbanhao);
printf("\t飛機(jī)號(hào):%s\n",p-feijihao);
printf("\t飛行時(shí)間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對(duì)不起沒(méi)有你要找的航班號(hào):\n"); m=0;
}
}while(m!=0);
}
void dingpiaogongnen()//***************************************************************訂票功能
{
char c[15];
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf("請(qǐng)輸入終點(diǎn)站名:"); gets(c); printf("\n");
p=L-next;
if(p) {
do{//查找一下,是否有這個(gè)航班
if(!p)
{
printf("對(duì)不起,沒(méi)有你要找的航班:\n\n");
goto loop1;
}
m=strcmpi(p-zhongdianzhai,c);
if(m==0)
{
printf("航班信息:\n");
printf("航班號(hào):%s\n",p-hangbanhao);
printf("飛機(jī)號(hào):%s\n",p-feijihao);
printf("飛行時(shí)間:周%d\n",p-feixingriqi);
printf("余票量:%d\n",p-yupiao);}
else p=p-next;
}while(m!=0);
if(m==0)
{
do{
printf("\n請(qǐng)輸入你要訂的票數(shù):"); scanf("%d",piao);
if(piao=p-yupiao)
{
h=p-yiding;
if(h)
{
h1=h;
h=h-next1;
h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));
printf("請(qǐng)輸入你的名字:");
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("對(duì)不起,余票 %d 張不足,不能完成訂票\n\n",p-yupiao);
printf(" 是否要重新訂票?\n");
printf("需要請(qǐng)輸入1 否則請(qǐng)按2 預(yù)訂請(qǐng)輸入3 : ");
scanf("%d",m);
printf("\n");
if(m==3) goto loop3;
}
}while(m==1);
}
}
else if(!p)
{
loop3: struct Weidingkehu *q3;
printf("對(duì)不起,該航班的票已售完\n");
q.front=p-yudingqueue;
if(q.front==q.rear) printf("沒(méi)有人預(yù)訂票,是否要預(yù)訂?\n");
else if(q.front!=q.rear) printf("已有人預(yù)訂票,是否要預(yù)訂?\n");
printf("預(yù)訂請(qǐng)輸入1 否則輸入2 : ");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("請(qǐng)輸入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???
printf("請(qǐng)輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf(" 你已經(jīng)預(yù)訂了 !\n");
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
}
請(qǐng)采納答案,支持我一下。
飛機(jī)訂票系統(tǒng)
如果只是需要這些功能,推薦你使用“飛常準(zhǔn)”、“航班管家”或航空公司的等APP就行了。
如果是要制作這樣的系統(tǒng),那是要收費(fèi)的。
民航訂票系統(tǒng)有哪幾種?
航空售票系統(tǒng)只有一種:NFD SZXSHA 30APR ZH
系統(tǒng)功能:
1.來(lái)電號(hào)碼自動(dòng)識(shí)別:根據(jù)號(hào)碼自動(dòng)識(shí)別客戶資料,屏幕上彈出客戶名、會(huì)員號(hào)、送票地址、證件號(hào)碼、最近訂票和數(shù)量等信息,避免重復(fù)詢問(wèn)和記錄客戶名稱和地址,大大減少錯(cuò)誤率,提高客戶滿意度;根據(jù)客戶以往的訂票記錄,針對(duì)不同的客戶進(jìn)行準(zhǔn)確而有效的報(bào)價(jià),大大提高提交率。
2.快速的eterm訂單數(shù)據(jù)導(dǎo)入功能:簡(jiǎn)單的操作即可自動(dòng)獲取eterm民航系統(tǒng)內(nèi)已出票的PNR信息,例如客戶名稱,證件號(hào),航程,票面價(jià)等,并自動(dòng)計(jì)算客戶積分,有限減少訂單輸入。
3.強(qiáng)大的客戶資料管理功能:會(huì)員管理和行業(yè)客戶管理;會(huì)員積分管理;行業(yè)客戶返點(diǎn)自動(dòng)計(jì)算和提醒;客戶的電話號(hào)碼可以任意多個(gè);客戶資料可批量導(dǎo)入與導(dǎo)出(Excel格式)。
4.可查詢航空公司代碼、機(jī)場(chǎng)代碼。
5.報(bào)表統(tǒng)計(jì)功能:銷售情況統(tǒng)計(jì); 話務(wù)統(tǒng)計(jì)報(bào)表。
6.訂票結(jié)算功能,用于與送票員結(jié)算應(yīng)收款。
7.強(qiáng)大的打印功能。
8.會(huì)員積分管理,積分兌換管理,為客戶建立積分累積,能更好地抓住老客戶,加大了客戶的回頭率。
9.行業(yè)客戶管理,返點(diǎn)率自由設(shè)置,返點(diǎn)自動(dòng)計(jì)算。
10.內(nèi)部實(shí)時(shí)通訊功能,協(xié)同工作。
11.有USB答錄盒,錄音卡,語(yǔ)音卡3種版本供選擇,滿足客戶不同需求。
12.智能話務(wù)分配策略,自動(dòng)平均分配每個(gè)座席的話務(wù)量;老客戶來(lái)電時(shí)系統(tǒng)自動(dòng)將電話轉(zhuǎn)接到上次接聽(tīng)該客戶電話的座席上;設(shè)備已包含交換機(jī)(集團(tuán)電話)功能,可帶2-240路的分機(jī)或座席。外線來(lái)電號(hào)碼可自動(dòng)轉(zhuǎn)發(fā)到分機(jī);分機(jī)之間互轉(zhuǎn)時(shí)來(lái)電號(hào)碼也可轉(zhuǎn)發(fā);系統(tǒng)未啟動(dòng)時(shí),分機(jī)自動(dòng)與外線直連,不影響電話正常使用;(備注:只有語(yǔ)音卡版本具備)。
13.在線監(jiān)聽(tīng)功能,管理可隨時(shí)監(jiān)聽(tīng)任何一個(gè)座席的通話,考核服務(wù)質(zhì)量。(只有語(yǔ)音卡版本具備)。
14.電話調(diào)查功能,通話快結(jié)束時(shí)提示客戶對(duì)服務(wù)評(píng)價(jià),例如“按1非常滿意,按2滿意..."。(只有語(yǔ)音卡版本具備)。
15.通話自動(dòng)錄音功能:對(duì)通話過(guò)程無(wú)任何影響,錄音文件自動(dòng)壓縮成 mp3格式,20G硬盤約可存儲(chǔ)2500小時(shí)左右的通話,可隨時(shí)聽(tīng)取避免遺忘通話內(nèi)容,也可作為解決糾紛的依據(jù)。
16.來(lái)電防火墻的功能,自動(dòng)拒接騷擾電話并保留記錄。
17.語(yǔ)音信箱功能:電話無(wú)人值守時(shí)可讓客戶自動(dòng)留言訂餐,有新留言電腦會(huì)自動(dòng)撥號(hào)通知您,將留言播放給你聽(tīng)??;您也可以在方便時(shí)候撥回來(lái)聽(tīng)取和管理留言。
18.自動(dòng)語(yǔ)音導(dǎo)航(IVR),例如“按1進(jìn)入產(chǎn)品介紹,按2進(jìn)入人工訂票,按3轉(zhuǎn)語(yǔ)音留言系統(tǒng)”等,簡(jiǎn)單明了的圖形化流程設(shè)計(jì)界面,可快速快速建立自動(dòng)電話業(yè)務(wù)咨詢。
19.短信群發(fā)功能:例如向客戶群發(fā)生日祝福、節(jié)日祝福、訂票確認(rèn)、飛機(jī)起飛前提醒等短信通知。
飛機(jī)訂票系統(tǒng)設(shè)計(jì)
#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;//已訂票數(shù)量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//單鏈隊(duì)
char name[15];//預(yù)訂票的客戶姓名
int yudingpiao;// 要訂票數(shù)量
struct Weidingkehu *next2;//下一個(gè)鏈隊(duì)結(jié)點(diǎn)指針
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//創(chuàng)建一個(gè)含有六個(gè)信息的結(jié)構(gòu)體
char hangbanhao[15];//航班號(hào)-
char feijihao[15];//飛機(jī)號(hào)
int feixingriqi;//起飛時(shí)間
int chenkerenshu;//座位數(shù)
int yupiao;//余票
char zhongdianzhai[15];//降落城市
struct Hangxian *next;//指向下一個(gè)鏈結(jié)點(diǎn)的指針
struct Yidingkehu *yiding;//定義一個(gè)指向已訂票客戶的頭結(jié)點(diǎn)指針
struct Weidingkehu *yudingqueue;
}Hangxian,*Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist head1);//02
void hbhchaxun();//通過(guò)航班號(hào)查詢
void mddchaxun();//通過(guò)目的地查詢
void lurugongneng();//初始化錄入功能
void chaxungongnen();//查詢功能
void dingpiaogongnen();//訂票功能
void tuipiaogongnen();//退票功能
void main()
{
int n;
do{ //打印主界面
printf("\t 歡迎使用航空客運(yùn)訂票系統(tǒng)\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請(qǐng)選擇:");
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請(qǐng)依次輸入下面幾項(xiàng)內(nèi)容:\n\n");//這里的輸入采用一個(gè)個(gè)單獨(dú)輸入,避免了亂賦值的現(xiàn)象
printf("航班號(hào)\n");
gets(p-hangbanhao);//這里的二個(gè)gets主要是因?yàn)樵诨剀囨I的輸入,其中的第一個(gè)是來(lái)接收上次的回車
gets(p-hangbanhao);
printf("飛機(jī)號(hào)\n");
gets(p-feijihao);
printf("終點(diǎn)站\n");
gets(p-zhongdianzhai);
printf("飛行日期\n");
scanf("%d",p-feixingriqi);
printf("乘客總數(shù)\n");
scanf("%d",p-chenkerenshu);
printf("余票數(shù)\n");
scanf("%d",p-yupiao);
}
void chaxungongnen()//******************************************************************查詢功能
{
int n;
printf("\t 查 找 航 線 信 息 \n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==1. 通過(guò)目的地查詢 ==\n");
printf("\t==2. 通過(guò)航班號(hào)查詢 ==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t請(qǐng)選擇:");
scanf("%d",n);
printf("\n");//格式化
switch(n)
{
case 1:mddchaxun();
break;
case 2:hbhchaxun();
break;
default :break;
}
}
void mddchaxun()//通過(guò)目的地查詢
{
char c[15];
int m;
Linklist p=L;
printf("\t請(qǐng)輸入要查詢的目的地:");
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航班號(hào):%s\n",p-hangbanhao);
printf("\t飛機(jī)號(hào):%s\n",p-feijihao);
printf("\t飛行時(shí)間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對(duì)不起沒(méi)有你要找的目的地:\n\n"); m=0;
}
}while(m!=0);
}
void hbhchaxun()//通過(guò)目的地查詢
{
char c[15];
int m;
Linklist p=L;
printf("\t請(qǐng)輸入要查詢的航班號(hào):");
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航班號(hào):%s\n",p-hangbanhao);
printf("\t飛機(jī)號(hào):%s\n",p-feijihao);
printf("\t飛行時(shí)間:周%d\n",p-feixingriqi);
printf("\t余票量:%d\n\n",p-yupiao);
}
}
else
{//如果不匹配的話就做
printf("\t對(duì)不起沒(méi)有你要找的航班號(hào):\n"); m=0;
}
}while(m!=0);
}
void dingpiaogongnen()//***************************************************************訂票功能
{
char c[15];
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf("請(qǐng)輸入終點(diǎn)站名:"); gets(c); printf("\n");
p=L-next;
if(p) {
do{//查找一下,是否有這個(gè)航班
if(!p)
{
printf("對(duì)不起,沒(méi)有你要找的航班:\n\n");
goto loop1;
}
m=strcmpi(p-zhongdianzhai,c);
if(m==0)
{
printf("航班信息:\n");
printf("航班號(hào):%s\n",p-hangbanhao);
printf("飛機(jī)號(hào):%s\n",p-feijihao);
printf("飛行時(shí)間:周%d\n",p-feixingriqi);
printf("余票量:%d\n",p-yupiao);}
else p=p-next;
}while(m!=0);
if(m==0)
{
do{
printf("\n請(qǐng)輸入你要訂的票數(shù):"); scanf("%d",piao);
if(piao=p-yupiao)
{
h=p-yiding;
if(h)
{
h1=h;
h=h-next1;
h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));
printf("請(qǐng)輸入你的名字:");
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("對(duì)不起,余票 %d 張不足,不能完成訂票\n\n",p-yupiao);
printf(" 是否要重新訂票?\n");
printf("需要請(qǐng)輸入1 否則請(qǐng)按2 預(yù)訂請(qǐng)輸入3 : ");
scanf("%d",m);
printf("\n");
if(m==3) goto loop3;
}
}while(m==1);
}
}
else if(!p)
{
loop3: struct Weidingkehu *q3;
printf("對(duì)不起,該航班的票已售完\n");
q.front=p-yudingqueue;
if(q.front==q.rear) printf("沒(méi)有人預(yù)訂票,是否要預(yù)訂?\n");
else if(q.front!=q.rear) printf("已有人預(yù)訂票,是否要預(yù)訂?\n");
printf("預(yù)訂請(qǐng)輸入1 否則輸入2 : ");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("請(qǐng)輸入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???
printf("請(qǐng)輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf(" 你已經(jīng)預(yù)訂了 !\n");
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
}
以上回答你滿意么?
關(guān)于《飛機(jī)購(gòu)票系統(tǒng)java》的介紹到此就結(jié)束了。