【簡介:】本篇文章給大家談?wù)劇禖航空訂票系統(tǒng),增加,刪除,修改,查詢》對應(yīng)的知識點,希望對各位有所幫助。本文目錄一覽:
1、C語言程序?qū)戯w機訂票系統(tǒng)
2、C語言程序設(shè)計飛機訂票系統(tǒng)
本篇文章給大家談?wù)劇禖航空訂票系統(tǒng),增加,刪除,修改,查詢》對應(yīng)的知識點,希望對各位有所幫助。
本文目錄一覽:
- 1、C語言程序?qū)戯w機訂票系統(tǒng)
- 2、C語言程序設(shè)計飛機訂票系統(tǒng)
- 3、c語言編程:飛機訂票系統(tǒng),c++運行
- 4、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——航空訂票系統(tǒng)(C語言)
- 5、c語言如何編寫飛機訂票系統(tǒng)?
C語言程序?qū)戯w機訂票系統(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
{//單鏈隊
char name[15];//預(yù)訂票的客戶姓名
int yudingpiao;// 要訂票數(shù)量
struct Weidingkehu *next2;//下一個鏈隊結(jié)點指針
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//創(chuàng)建一個含有六個信息的結(jié)構(gòu)體
char hangbanhao[15];//航班號-
char feijihao[15];//飛機號
int feixingriqi;//起飛時間
int chenkerenshu;//座位數(shù)
int yupiao;//余票
char zhongdianzhai[15];//降落城市
struct Hangxian *next;//指向下一個鏈結(jié)點的指針
struct Yidingkehu *yiding;//定義一個指向已訂票客戶的頭結(jié)點指針
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 歡迎使用航空客運訂票系統(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請選擇:");
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èi)容:\n\n");//這里的輸入采用一個個單獨輸入,避免了亂賦值的現(xià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("乘客總數(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. 通過目的地查詢 ==\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[15];
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[15];
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[15];
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請輸入你要訂的票數(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("請輸入你的名字:");
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 預(yù)訂請輸入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("沒有人預(yù)訂票,是否要預(yù)訂?\n");
else if(q.front!=q.rear) printf("已有人預(yù)訂票,是否要預(yù)訂?\n");
printf("預(yù)訂請輸入1 否則輸入2 : ");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("請輸入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???
printf("請輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf(" 你已經(jīng)預(yù)訂了 !\n");
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
}
請采納答案,支持我一下。
C語言程序設(shè)計飛機訂票系統(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
{//單鏈隊
char name[15];//預(yù)訂票的客戶姓名
int yudingpiao;// 要訂票數(shù)量
struct Weidingkehu *next2;//下一個鏈隊結(jié)點指針
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//創(chuàng)建一個含有六個信息的結(jié)構(gòu)體
char hangbanhao[15];//航班號-
char feijihao[15];//飛機號
int feixingriqi;//起飛時間
int chenkerenshu;//座位數(shù)
int yupiao;//余票
char zhongdianzhai[15];//降落城市
struct Hangxian *next;//指向下一個鏈結(jié)點的指針
struct Yidingkehu *yiding;//定義一個指向已訂票客戶的頭結(jié)點指針
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 歡迎使用航空客運訂票系統(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請選擇:");
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èi)容:\n\n");//這里的輸入采用一個個單獨輸入,避免了亂賦值的現(xià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("乘客總數(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. 通過目的地查詢 ==\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[15];
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[15];
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[15];
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請輸入你要訂的票數(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("請輸入你的名字:");
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 預(yù)訂請輸入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("沒有人預(yù)訂票,是否要預(yù)訂?\n");
else if(q.front!=q.rear) printf("已有人預(yù)訂票,是否要預(yù)訂?\n");
printf("預(yù)訂請輸入1 否則輸入2 : ");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("請輸入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???
printf("請輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf(" 你已經(jīng)預(yù)訂了 !\n");
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
}
請采納答案,支持我一下。
c語言編程:飛機訂票系統(tǒng),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[15];//已訂票的客戶姓名
int dingpiaoshu;//已訂票數(shù)量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;
typedef struct Weidingkehu
{//單鏈隊
char name[15];//預(yù)訂票的客戶姓名
int yudingpiao;// 要訂票數(shù)量
struct Weidingkehu *next2;//下一個鏈隊結(jié)點指針
}Weidingkehu,*Qptr;
typedef struct Hangxian
{//創(chuàng)建一個含有六個信息的結(jié)構(gòu)體
char hangbanhao[15];//航班號-
char feijihao[15];//飛機號
int feixingriqi;//起飛時間
int chenkerenshu;//座位數(shù)
int yupiao;//余票
char zhongdianzhai[15];//降落城市
struct Hangxian *next;//指向下一個鏈結(jié)點的指針
struct Yidingkehu *yiding;//定義一個指向已訂票客戶的頭結(jié)點指針
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 歡迎使用航空客運訂票系統(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請選擇:");
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èi)容:\n\n");//這里的輸入采用一個個單獨輸入,避免了亂賦值的現(xià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("乘客總數(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. 通過目的地查詢 ==\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[15];
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[15];
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[15];
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請輸入你要訂的票數(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("請輸入你的名字:");
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 預(yù)訂請輸入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("沒有人預(yù)訂票,是否要預(yù)訂?\n");
else if(q.front!=q.rear) printf("已有人預(yù)訂票,是否要預(yù)訂?\n");
printf("預(yù)訂請輸入1 否則輸入2 : ");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("請輸入你的姓名"); gets(q3-name); gets(q3-name);//q3不能指向name???
printf("請輸入訂票數(shù)"); scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf(" 你已經(jīng)預(yù)訂了 !\n");
}
}
loop1:;
}
void tuipiaogongnen()//***************************************************************退票功能
{
}
///////////以下是人家的要求//////////
1、本系統(tǒng)采用一個包含N個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應(yīng)當包括:起飛地、目的地 航班號、座次號碼、座次訂出與否標記、訂座者的姓名和訂座者的身份證號碼。
2、本系統(tǒng)顯示這樣的菜單:
(1) 輸入航班信息
(2) 輸出航班信息
(3) 查找航班信息
a.顯示空座的數(shù)量
b.顯示空座的信息
c.顯示已訂座的信息
d.起飛時間
(4)訂票預(yù)約
(5)刪除定票預(yù)約
(6)退出系統(tǒng)
1、 本系統(tǒng)成功執(zhí)行菜單的每個信息,選項4)和5)將要求額外的輸入,并且它們都允許用戶收回其輸入。
2、 查找航班信息既可按線路查,也可按目的地查。
4、在兩次運行之間,數(shù)據(jù)被保存于一個文件里,當本程序重新開
始的時候,它首先從該文件讀入數(shù)據(jù)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——航空訂票系統(tǒng)(C語言)
1、任務(wù):航空客運定票的業(yè)務(wù)活動包括:查詢航線、客票預(yù)定和辦理退票等。試設(shè)計一個航空客運定票系統(tǒng),以使上述業(yè)務(wù)可以借助計算機來完成。 2、功能要求: 1) 錄入:可以錄入航班情況(數(shù)據(jù)可以存儲在一個數(shù)據(jù)文件中,數(shù)據(jù)結(jié)構(gòu)、具 體數(shù)據(jù)自定) 2) 查詢:可以查詢某個航線的情況(如,輸入航班號,查詢起降時間,起飛抵 達城市,航班票價,票價折扣,確定航班是否滿倉);可以輸入起飛抵達城市, 查詢飛機航班情況; 3) 訂票:(訂票情況可以存在一個數(shù)據(jù)文件中,結(jié)構(gòu)自己設(shè)定)可以訂票,如果 該航班已經(jīng)無票,可以提供相關(guān)可選擇航班; 4) 退票: 可退票,退票后修改相關(guān)數(shù)據(jù)文件; 5) 客戶資料:有姓名,證件號,訂票數(shù)量及航班情況,訂單要有編號; 6) 修改航班信息:當航班信息改變可以修改航班數(shù)據(jù)文件。 3、要有一個好的界面~~~~~~~~~~~~~~~~~~~~~~~~4、需求分析 系統(tǒng)需求(系統(tǒng)要求實現(xiàn)的功能的具體情況)5、 概要設(shè)計 系統(tǒng)分析(分析系統(tǒng)的功能和具體模塊的劃分) 系統(tǒng)流程(系統(tǒng)的流程圖) 程序詳細代碼:
c語言如何編寫飛機訂票系統(tǒng)?
#includestdio.h
#includestring.h
#includeconio.h
#includectype.h
#includestdlib.h
#includemalloc.h
#includemath.h//overflow
#defineok1
typedefstructYidingkehu
{//單鏈表
charname[15];//已訂票的客戶姓名
intdingpiaoshu;//已訂票數(shù)量
structYidingkehu*next1;//
}Yidingkehu,*Link;
typedefstructWeidingkehu
{//單鏈隊
charname[15];//預(yù)訂票的客戶姓名
intyudingpiao;//要訂票數(shù)量
structWeidingkehu*next2;//下一個鏈隊結(jié)點指針
}Weidingkehu,*Qptr;
typedefstructHangxian
{//創(chuàng)建一個含有六個信息的結(jié)構(gòu)體
charhangbanhao[15];//航班號-
charfeijihao[15];//飛機號
intfeixingriqi;//起飛時間
intchenkerenshu;//座位數(shù)
intyupiao;//余票
charzhongdianzhai[15];//降落城市
structHangxian*next;//指向下一個鏈結(jié)點的指針
structYidingkehu*yiding;//定義一個指向已訂票客戶的頭結(jié)點指針
structWeidingkehu*yudingqueue;
}Hangxian,*Linklist;
LinklistInitLinklist();//01
intInsertLinklist(Linklisthead1);//02
voidhbhchaxun();//通過航班號查詢
voidmddchaxun();//通過目的地查詢
voidlurugongneng();//初始化錄入功能
voidchaxungongnen();//查詢功能
voiddingpiaogongnen();//訂票功能
voidtuipiaogongnen();//退票功能
voidmain()
{
intn;
do{//打印主界面
printf("\t歡迎使用航空客運訂票系統(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請選擇:");
scanf("%d",n);printf("\n");
switch(n)
{
case1:lurugongneng();//錄入功能
break;
case2:chaxungongnen();//查詢功能
break;
case3:dingpiaogongnen();//訂票功能
break;
case4:tuipiaogongnen();//退票功能
break;
default:exit(0);//退出
}
}while(n==1||n==2||n==3||n==4);
}
voidlurugongneng()//初始化的單鏈表*********************************************************錄入功能
{
Linklistp;
//intm,n;
if(!p)exit(OVERFLOW);
printf("\t請依次輸入下面幾項內(nèi)容:\n\n");//這里的輸入采用一個個單獨輸入,避免了亂賦值的現(xià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("乘客總數(shù)\n");
scanf("%d",p-chenkerenshu);
printf("余票數(shù)\n");
scanf("%d",p-yupiao);
}
voidchaxungongnen()//******************************************************************查詢功能
{
intn;
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)
{
case1:mddchaxun();
break;
case2:hbhchaxun();
break;
default:break;
}
}
voidmddchaxun()//通過目的地查詢
{
charc[15];
intm;
Linklistp=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);
}
voidhbhchaxun()//通過目的地查詢
{
charc[15];
intm;
Linklistp=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);
}
voiddingpiaogongnen()//***************************************************************訂票功能
{
charc[15];
intm=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");
gotoloop1;
}
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);}
elsep=p-next;
}while(m!=0);
if(m==0)
{
do{
printf("\n請輸入你要訂的票數(shù):");scanf("%d",piao);
if(piao=p-yupiao)
{
h=p-yiding;
if(h)
{
h1=h;
h=h-next1;
h=(structYidingkehu*)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預(yù)訂請輸入3:");
scanf("%d",m);
printf("\n");
if(m==3)gotoloop3;
}
}while(m==1);
}
}
elseif(!p)
{
loop3:structWeidingkehu*q3;
printf("對不起,該航班的票已售完\n");
q.front=p-yudingqueue;
if(q.front==q.rear)printf("沒有人預(yù)訂票,是否要預(yù)訂?\n");
elseif(q.front!=q.rear)printf("已有人預(yù)訂票,是否要預(yù)訂?\n");
printf("預(yù)訂請輸入1否則輸入2:");
scanf("%d",n);
printf("\n");
if(n==1)
{
printf("請輸入你的姓名");gets(q3-name);gets(q3-name);//q3不能指向name???
printf("請輸入訂票數(shù)");scanf("%d",q3-yudingpiao);
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf("你已經(jīng)預(yù)訂了!\n");
}
}
loop1:;
}
voidtuipiaogongnen()//***************************************************************退票功能
{
}
///////////以下是人家的要求//////////
1、本系統(tǒng)采用一個包含N個數(shù)據(jù)的結(jié)構(gòu)體數(shù)組,每個數(shù)據(jù)的結(jié)構(gòu)應(yīng)當包括:起飛地、目的地航班號、座次號碼、座次訂出與否標記、訂座者的姓名和訂座者的身份證號碼。
2、本系統(tǒng)顯示這樣的菜單:
(1)輸入航班信息
(2)輸出航班信息
(3)查找航班信息
a.顯示空座的數(shù)量
b.顯示空座的信息
c.顯示已訂座的信息
d.起飛時間
(4)訂票預(yù)約
(5)刪除定票預(yù)約
(6)退出系統(tǒng)
1、本系統(tǒng)成功執(zhí)行菜單的每個信息,選項4)和5)將要求額外的輸入,并且它們都允許用戶收回其輸入。
2、查找航班信息既可按線路查,也可按目的地查。
4、在兩次運行之間,數(shù)據(jù)被保存于一個文件里,當本程序重新開
始的時候,它首先從該文件讀入數(shù)據(jù)
關(guān)于《C航空訂票系統(tǒng),增加,刪除,修改,查詢》的介紹到此就結(jié)束了。