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;//已訂票數量
struct Yidingkehu *next1;//
}Yidingkehu,*Link;

typedef struct Weidingkehu
{//單鏈隊
char name[15];//預訂票的客戶姓名
int yudingpiao;// 要訂票數量
struct Weidingkehu *next2;//下一個鏈隊結點指針
}Weidingkehu,*Qptr;

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;

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[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請輸入你要訂的票數:"); 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()//***************************************************************退票功能
{

}
請點贊答案,支持我一下。

Ⅱ 如何在cpp官網上退票

C P P官網上面退票直接點進你購買的票,在最後面有退票按鈕,點擊退票。

Ⅲ 用c語言編寫火車站售票系統,要求有查詢,訂票,退票,退出幾個步驟,並用結構體儲存票務信息

可以給你寫 see my name . find me

Ⅳ c語言數據結構:設計一個民航公司自動訂票和退票系統的演算法

這種系統應該還有增刪改查功能吧 只有訂票退票嗎?
你可以把具體要求發來 我為你原創一個
if need my help,please look my name。

Ⅳ 請教一個c語言里,有關退票操作的指針問題

注釋掉的話,f3就是初始值NULL,引用空指針的內容是非法的。
f3的作用是指向符合條件的客戶資料鏈表的指針。因為演算法實現是從頭遍歷,並把符合的那個接點作刪除處理,需要臨時用f3來記錄

Ⅵ C語言編寫程序:用戶界面中的菜單至少應包括「售票」、「退票」、「統計滿座率」、「退出」4項。

這樣???

Ⅶ c語言數據結構做的民航訂票系統,用線性鏈表,但是退票時無法刪除記錄,請高手賜教,謝謝

你這段根本就沒法看,中間都是些什麼變數,再說刪除結點信息也沒必要寫這么多

如果會建表,卻不會刪結點,很奇怪。。。

Ⅷ c語言編程1顯示航線信息2查詢航線信息3訂票4退票0退出系統

這個我會可以幫你寫。

Ⅸ c語言如何編寫飛機訂票系統

java">#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<ctype.h>
#include<stdlib.h>
#include<malloc.h>
#include<math.h>//overflow

#defineok1

typedefstructYidingkehu
{//單鏈表
charname[15];//已訂票的客戶姓名
intdingpiaoshu;//已訂票數量
structYidingkehu*next1;//
}Yidingkehu,*Link;

typedefstructWeidingkehu
{//單鏈隊
charname[15];//預訂票的客戶姓名
intyudingpiao;//要訂票數量
structWeidingkehu*next2;//下一個鏈隊結點指針
}Weidingkehu,*Qptr;

typedefstructHangxian
{//創建一個含有六個信息的結構體
charhangbanhao[15];//航班號-
charfeijihao[15];//飛機號
intfeixingriqi;//起飛時間
intchenkerenshu;//座位數
intyupiao;//余票
charzhongdianzhai[15];//降落城市
structHangxian*next;//指向下一個鏈結點的指針
structYidingkehu*yiding;//定義一個指向已訂票客戶的頭結點指針
structWeidingkehu*yudingqueue;
}Hangxian,*Linklist;

LinklistInitLinklist();//01
intInsertLinklist(Linklist&head1);//02

voidhbhchaxun();//通過航班號查詢
voidmddchaxun();//通過目的地查詢

voidlurugongneng();//初始化錄入功能
voidchaxungongnen();//查詢功能
voiddingpiaogongnen();//訂票功能
voidtuipiaogongnen();//退票功能

voidmain()
{

intn;
do{//列印主界面
printf(" 歡迎使用航空客運訂票系統 ");
printf(" +++++++++++++++++++++++++++++ ");
printf(" ==>1.錄入功能== ");
printf(" ==>2.查詢功能== ");
printf(" ==>3.訂票功能== ");
printf(" ==>4.退票功能== ");
printf(" ==>5.退出== ");
printf(" +++++++++++++++++++++++++++++ ");
printf(" 請選擇:");
scanf("%d",&n);printf(" ");
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(" 請依次輸入下面幾項內容: ");//這里的輸入採用一個個單獨輸入,避免了亂賦值的現象
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);

}

voidchaxungongnen()//******************************************************************查詢功能
{
intn;
printf(" 查找航線信息 ");
printf(" +++++++++++++++++++++++++++++ ");
printf(" ==>1.通過目的地查詢== ");
printf(" ==>2.通過航班號查詢== ");
printf(" +++++++++++++++++++++++++++++ ");
printf(" 請選擇:");
scanf("%d",&n);
printf(" ");//格式化
switch(n)
{
case1:mddchaxun();
break;
case2:hbhchaxun();
break;
default:break;
}
}

voidmddchaxun()//通過目的地查詢
{
charc[15];
intm;
Linklistp=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);
}

voidhbhchaxun()//通過目的地查詢
{
charc[15];
intm;
Linklistp=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);
}

voiddingpiaogongnen()//***************************************************************訂票功能
{

charc[15];
intm=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf("請輸入終點站名:");gets(c);printf(" ");
p=L->next;
if(p){
do{//查找一下,是否有這個航班
if(!p)
{
printf("對不起,沒有你要找的航班: ");
gotoloop1;
}
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);}
elsep=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=(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("訂票成功: ");m=2;
}
}
else
{
printf("余票量:%d ",p->yupiao);
printf("對不起,余票%d張不足,不能完成訂票 ",p->yupiao);
printf("是否要重新訂票? ");
printf("需要請輸入1否則請按2預訂請輸入3:");
scanf("%d",&m);
printf(" ");
if(m==3)gotoloop3;
}
}while(m==1);
}
}
elseif(!p)
{
loop3:structWeidingkehu*q3;
printf("對不起,該航班的票已售完 ");
q.front=p->yudingqueue;
if(q.front==q.rear)printf("沒有人預訂票,是否要預訂? ");
elseif(q.front!=q.rear)printf("已有人預訂票,是否要預訂? ");
printf("預訂請輸入1否則輸入2:");
scanf("%d",&n);
printf(" ");
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("你已經預訂了! ");
}
}
loop1:;
}

voidtuipiaogongnen()//***************************************************************退票功能
{

}
///////////以下是人家的要求//////////
1、本系統採用一個包含N個數據的結構體數組,每個數據的結構應當包括:起飛地、目的地航班號、座次號碼、座次訂出與否標記、訂座者的姓名和訂座者的身份證號碼。
2、本系統顯示這樣的菜單:
(1)輸入航班信息
(2)輸出航班信息
(3)查找航班信息
a.顯示空座的數量
b.顯示空座的信息
c.顯示已訂座的信息
d.起飛時間
(4)訂票預約
(5)刪除定票預約
(6)退出系統
1、本系統成功執行菜單的每個信息,選項4)和5)將要求額外的輸入,並且它們都允許用戶收回其輸入。
2、查找航班信息既可按線路查,也可按目的地查。
4、在兩次運行之間,數據被保存於一個文件里,當本程序重新開
始的時候,它首先從該文件讀入數據

Ⅹ C語言——車票管理系統

你好!看著有點復雜,程序什麼時間要,可以嘗試完成