亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 2.cpp

?? 民航訂票系統 本系統是使用Visual C++作為開發環境的
?? CPP
字號:
#include"SqFlight.h"
#include<fstream>
#include<iostream>
using namespace std;
#include <stdio.h>
#include <stdlib.h>

#define TRUE   1
#define FALSE  0
#define OK     1
#define ERROR  0
#define INFEASIBLE  -1
#define OVERFLOW    -2
#define MAXSIZE 2
#define MAXCHAR 20

const char* a_file="A.txt";


int InitList_Sq(SqFlight &LF){
    //構造一個空的線性表LF
    LF.flight=(flightnode*)malloc(sizeof(flightnode));
    if(!LF.flight)exit(ERROR);
    LF.length=0;
    LF.flight->next=NULL;
    return(OK);
}//InitList_Sq

int InitList_CL(ClientLink &CL){  //為客戶鏈表建一個空鏈表
    CL.client=(ClientNode*)malloc(sizeof(ClientNode));
    if(!CL.client)exit(ERROR);
    CL.length=0;
    CL.client->next=NULL;
    return(OK);
}//InitList_CL

int InitList_WCQ(WClientQueue &WCQ){ //為待票客戶建一個空的隊列
    WCQ.front=WCQ.rear=(WClientNode*)malloc(sizeof(WClientNode));
    if(!WCQ.front)exit(ERROR);
    WCQ.front->next=NULL;
    return(OK);
}//InitList_WCQ

int InitFlightNode(SqFlight &LF){   //對航線結點賦值并接到航班順序表
    flightnode *p,*q;
    ClientLink CL1;
    InitList_CL(CL1);
    WClientQueue WCQ1;
    InitList_WCQ(WCQ1);
    if(!LF.flight){cout<<"無法找到指向航線結點的指針\n";exit(ERROR);} 
    LF.flight->airline="guangzhou--beijing";    //頭結點賦值
    LF.flight->client=CL1;
    LF.flight->flight_no="FU127";
    LF.flight->nclient=WCQ1;
    LF.flight->number=8427;
    LF.flight->remain=200;
    LF.flight->total=200;
    LF.flight->weekday=1;
    p=(flightnode*)malloc(sizeof(flightnode));
    if(!p){cout<<"申請不到航線結點\n";exit(ERROR);}
    LF.flight->next=p;     
    ClientLink CL2;
    InitList_CL(CL2);
    WClientQueue WCQ2;
    InitList_WCQ(WCQ2);
    p->airline="guangzhou--beijing";     //結點1賦值
    p->client=CL2;
    p->flight_no="BU127";
    p->nclient=WCQ2;
    p->number=8757;
    p->remain=180;
    p->total=180;
    p->weekday=5;
    q=p;
    p=NULL;
    p=(flightnode*)malloc(sizeof(flightnode));
    if(!p){cout<<"申請不到航線結點\n";exit(ERROR);}
    q->next=p;          
    ClientLink CL3;
    InitList_CL(CL3);
    WClientQueue WCQ3;
    InitList_WCQ(WCQ3);
    p->airline="guangzhou--shanghai";  //結點2賦值
    p->client=CL3;
    p->flight_no="FU786";
    p->nclient=WCQ3;
    p->number=3216;
    p->remain=200;
    p->total=200;
    p->weekday=2;
    q=p;
    p=NULL;
    p=(flightnode*)malloc(sizeof(flightnode));
    if(!p){cout<<"申請不到航線結點\n";exit(ERROR);}
    q->next=p;
    ClientLink CL4;
    InitList_CL(CL4);
    WClientQueue WCQ4;
    InitList_WCQ(WCQ4);
    p->airline="guangzhou--shanghai";  //結點3賦值,有四個航班,共4個結點
    p->client=CL4;
    p->flight_no="FU236";
    p->nclient=WCQ4;
    p->number=5712;
    p->remain=230;
    p->total=230;
    p->weekday=6;
    p->next=NULL;
    return(OK);
}

int lookup(char *airline,SqFlight LF){      //查詢系統
    //形參指針airline指向查詢時輸入的航線的首地址
    //引用航班順序線性表LF
    flightnode *p=LF.flight;      
    char *h,*q=airline;
    int i=0;
    while(p){
        h=p->airline;
        while(*airline==*h){       //查詢航線是否在LF的航班航線里有
            if(*airline=='\0'||*h=='\0')
                break;
            airline++,h++;
        }
        
        if(*airline=='\0'&&*h=='\0')//若有該航線輸出航線信息
        {
            i++;
            cout<<p->airline<<"   "<<p->flight_no<<"   "<<p->number<<"     "
				<<p->remain<<"     "<<p->total<<"     "<<p->weekday<<endl;
        }
        
        airline=q;
        p=p->next;          //航班結點指針后移
    }
    cout<<"有此航班"<<i<<"條\n";
    return(OK);
}

flightnode *search(int number,SqFlight LF){
    //形參number查看時輸入的航班號
    //引用航班順序線性表LF
     flightnode *p=LF.flight;
     while(p){
         if(number==p->number)break;//查看的航班號是否在LF的航班號里有
         p=p->next;
     }
     return(p);        //返回指向該航班結點的指針
}

ClientNode *searchID(flightnode *p,char *ID){
    //p是指向某個航班結點的指針
    //ID是要查詢的ID
    ClientNode *h=p->client.client->next;
    ClientNode *prior_h=NULL;          //指向這個ID客戶的前驅的指針
    prior_h=p->client.client;
    int i=0;
    char *p_ID=ID;
    char *h_ID=NULL;
    while(h){
         ID=p_ID;h_ID=h->ID;
         while(*ID==*h_ID){        //查詢的ID在已訂客戶鏈表中是否有     
             if(*ID=='\0'||*h_ID=='\0')break;
             ID++,h_ID++;
         }
         if(*ID=='\0'&&*h_ID=='\0')break;//若有結束循環
         prior_h=prior_h->next;
         h=h->next;
    }
    if(!h)prior_h=NULL;
    return(prior_h);//返回前驅指針
}

int wbook(SqFlight LF,flightnode *p){  //待票客戶隊列
    //引用航班順序線性表LF
    //p是指向某個航班結點的指針
     WClientNode *h=NULL;
loop:     
     h=(WClientNode *)malloc(sizeof(WClientNode));
if(!h)
     goto loop;
     cout<<"請輸入客戶的名字:\n";
      cin>>h->name;
     cout<<"請輸入客戶的ID:\n";
     cin>>h->ID;
     cout<<"請輸入客戶的電話號碼:\n";
     cin>>h->phoneno;
     cout<<"請輸入客戶需要的票數:\n";
     cin>>h->neednum;
     h->next=NULL;
     p->nclient.rear->next=h;
     p->nclient.rear=h;
     return(OK);
}

int book(int number,SqFlight LF){
     //形參number查看時輸入的航班號
     //引用航班順序線性表LF


	ofstream output_file;//輸出文件流
	output_file.open(a_file,ios::app);//打開文件并將指針定位到文件尾
	if(!output_file){
		cout<<"Can not open a file!"<<endl;
		return(OK);
	}

     flightnode *p=NULL;
     ClientNode *h=NULL;
     p=search(number,LF);//調用search(),返回指向這個航班號的航班結點的指針
	 output_file<<p->number<<" ";
     if(!p){cout<<"無此航班號\n";return(ERROR);}
     if(p->remain>=0){        //余票量大于0
loop:         
     h=(ClientNode *)malloc(sizeof(ClientNode));
     if(!h)
         goto loop;
         cout<<"請輸入客戶的定票數:\n";
        cin>>h->booknum;
		output_file<<h->booknum<<" ";
         if((h->booknum)<=(p->remain))
             p->remain=p->remain-h->booknum;     //余票量減去客戶的訂票量
         else{                                  //若余票量不足,詢問客戶是否要候補
             int i=0;
             cout<<"余票數:"<<p->remain<<endl<<endl;
            cout<<"已無足夠的票,您是否要候補?\n\n";
             cout<<"1.要 2.不要 3.按余票定票 \n";
             cin>>i;
             switch(i)
             {
             case 1:
                 wbook(LF,p);//調用候補函數,實現候補
                 free(h);h=NULL;
                 break;
             case 2:
                 free(h);h=NULL;
                 break;
             case 3:
                 if(p->remain!=0)
                 {
                     h->booknum=p->remain;
                     p->remain=0;
                 }
                 else{
                     cout<<"無法按余票購票,余票已為零\n";
                     return(ERROR);
                 }
                 break;
             default:cout<<"選擇有誤\n";
             }
             if(i==1){cout<<"候票成功\n";return(OK);}
             else if(i==2){cout<<"祝您下次購票成功\n";return(OK);}
         }
         
         cout<<"請輸客戶的姓名:\n";
         cin>>h->name;
		 output_file<<h->name<<" ";
         cout<<"請輸入客戶的ID:\n";
         cin>>h->ID;
		 output_file<<h->ID<<" ";
loop1:
         {
             cout<<"請輸入客戶的艙位等級1或2或3:\n";
             cin>>h->grade;
			 output_file<<h->grade<<endl;
         }
         if(h->grade!=3&&h->grade!=2&&h->grade!=1)
         {
            cout<<"無此等級艙位\n";
            goto loop1;
         }
         cout<<"購票成功\n";
         h->next=p->client.client->next;
         p->client.client->next=h;
     }
	 output_file.close();//關閉文件



	 return(OK);	 
}
     
int ask_clien(flightnode *p,SqFlight LF){
    //p是指向某個航班結點的指針
    ////引用航班順序線性表LF
     int i,j;
     WClientNode *h=p->nclient.front->next;
     WClientNode *prior_h=p->nclient.front;
     if(!h)cout<<"無人候票\n";
     while(h){
         i=0;j=0;
         cout<<"余票數:"<<p->remain<<endl<<endl;
         if(p->remain>=h->neednum)
			 cout<<h->name<<"要不要購票?\n";
         else 
             cout<<"余票數不夠"<<h->name<<"的需要,您要不要購票?\n";
loop:
         {   i=2;
             cout<<"\n1.要   2.不要\n";
             cin>>i;
         }
         switch(i)
         {
         case 1:
             cout<<"客戶的名字:"<<h->name<<endl;
             cout<<"客戶的ID:"<<h->ID<<endl;
             cout<<"客戶需要的票數:"<<h->neednum<<endl<<endl;
             book(p->number,LF);
             if(!prior_h->next->next)p->nclient.rear=prior_h;
             prior_h->next=prior_h->next->next;
             j=1;      //j=1,表示prior_h將跳過一個隊列結點
             break;
         case 2:
             cout<<"謝謝您對本航班的關注\n";
             break;
         default:
             cout<<"選擇有誤\n";
             goto loop;
         }
         if(j==0)prior_h=prior_h->next;
         h=h->next;
         if(p->remain<=0)
             cout<<"余票已被購盡!!\n";
     }
     return(OK);
}

int back_ticket(int number,SqFlight LF){
     char ID[20];
     ClientNode *prior_h=NULL;
     flightnode *p=NULL;
     ClientNode *h=NULL;
     p=search(number,LF);
     if(!p){cout<<"無此航班號\n";return(ERROR);}
     cout<<"請輸入退票客戶的ID:\n";
     cin>>ID;
     prior_h=searchID(p,ID);
     if(!prior_h){cout<<"無此客戶的ID~~~~\n";return(ERROR);}
     else{
         p->remain=p->remain+prior_h->next->booknum;
         prior_h->next=prior_h->next->next;
     }
     cout<<"退票成功\n\n";
     cout<<"詢問待票客戶:\n";
     ask_clien(p,LF);
     return(OK);
}

void menu()
{
    cout<<"           選擇菜單      \n";
    cout<<"                              \n";
    cout<<"1.查詢航線  2.客票預定 3.辦理退票 4.查看當前定票客戶資料  5.查看文件已有客戶資料6.退出\n";
}

int GetElem(SqFlight LF,int number)
{
    //用e返回L中第i個數據的值,1<=i<=Listlength(L).


    flightnode *p=NULL;
    p=search(number,LF);
    ClientNode *h=p->client.client->next; 
    if(!h)cout<<"尚未有客戶\n";
    while(h){
        cout<<"客戶的名字:"<<h->name<<endl;
        cout<<"客戶的ID:"<<h->ID<<endl;
        cout<<"客戶票數:"<<h->booknum<<endl<<endl;
        h=h->next;
    }
    
    return OK;
}//GetList;


input(){
	char a;

	ifstream input_file;
	input_file.open(a_file);
	if(!input_file){
		cout<<"Can not open a file!"<<endl;
		return(OK);
	}
	cout<<"航班號 "<<"票數 "<<"客戶名 "<<"ID "<<"艙位等級";
    while(input_file.get(a))
		cout<<a;
	input_file.close();

}

void main(){

char airline[20];
int number=0;
int drop_out=0;
int i;
SqFlight LF;
InitList_Sq(LF);
InitFlightNode(LF);
   cout<<"           --------------------------------------------"<<endl;
   cout<<"                       Welcome to film!               "<<endl;
   cout<<"                ^ ^  歡迎您進入民航訂票系統 ^ ^    "<<endl;
   cout<<"             ^ ^ 在此我們將為您提供最優質的服務 ^ ^ "<<endl;
   cout<<"                                                    "<<endl;
   cout<<"           --------------------------------------------"<<endl<<endl;

cout<<"航線有兩條,輸入格式:\n";
cout<<"           guangzhou--beijing\n";
cout<<"           guangzhou--shanghai\n";
cout<<"航班號可以通過查看航線得知;\n\n";
while(drop_out!=-1)
{
    menu();
    cout<<"請選擇菜單:\n";
    int i;
    cin>>i;
    switch(i)
    {
    case 1:
        cout<<"請輸入要查詢的航線:\n";
        cin>>airline;
        cout<<"航線\n";
        cout<<"起點  --  終點    飛機號  航班號   總票數  余票數  飛行周日\n";
        lookup(airline,LF);
        break;
    case 2:
        cout<<"請輸入要預定的航班號:\n";
        cin>>number;
        book(number,LF);
        break;
    case 3:
        cout<<"請輸入要退票的航班號:\n";
        cin>>number;
        back_ticket(number,LF);
        break;
    case 4:
        cout<<"查看客戶資料,輸入客戶的航班號\n";
        cin>>number;
        GetElem(LF,number);
        break;
	case 5:
		input();
		break;
    case 6:
        drop_out=-1;
        break;
    
    default:
        cout<<"選擇有誤\n";
    }
}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国精品国产尤物美女| 精品三级在线看| 成人午夜免费av| 国产91精品露脸国语对白| 国产一区不卡视频| 国产精品 日产精品 欧美精品| 免费观看一级特黄欧美大片| 婷婷一区二区三区| 久久国产精品一区二区| 精品中文字幕一区二区小辣椒| 秋霞电影一区二区| 国产高清无密码一区二区三区| 国产大陆a不卡| 91蜜桃传媒精品久久久一区二区| 91麻豆精东视频| 欧美色国产精品| 精品国产乱码久久久久久久| 久久综合久久99| 亚洲色欲色欲www| 亚洲成人免费视| 国产精品自拍网站| 97精品国产露脸对白| 欧美丝袜丝交足nylons| 欧美一级二级三级乱码| 欧美国产精品久久| 亚洲五月六月丁香激情| 精彩视频一区二区三区| www.亚洲精品| 91精品国产免费| 国产精品久久综合| 日本色综合中文字幕| 成人免费高清视频| 欧美麻豆精品久久久久久| 久久久久久久久久久久久女国产乱 | 国产精品亚洲视频| 91久久久免费一区二区| 国产欧美一区二区三区鸳鸯浴| 中文字幕制服丝袜成人av| 石原莉奈在线亚洲二区| 国产成人鲁色资源国产91色综| 在线观看91精品国产入口| 欧美成人女星排行榜| 亚洲美女偷拍久久| 国产大片一区二区| 欧美一区二区视频在线观看2020| 中文字幕电影一区| 久久er99精品| 欧美日韩不卡一区| 综合中文字幕亚洲| 国产福利视频一区二区三区| 欧美欧美欧美欧美| 亚洲精品你懂的| 9色porny自拍视频一区二区| 欧美va天堂va视频va在线| 五月综合激情婷婷六月色窝| www.欧美色图| 国产午夜一区二区三区| 久草热8精品视频在线观看| 欧美精选午夜久久久乱码6080| 日韩美女视频一区二区| 粉嫩aⅴ一区二区三区四区| 欧美一区二区高清| 亚洲gay无套男同| 在线免费亚洲电影| 亚洲区小说区图片区qvod| 成人av在线网| 国产精品美女久久久久久久网站| 国产在线视频不卡二| 91精品国产aⅴ一区二区| 亚洲妇女屁股眼交7| 在线观看91视频| 夜夜嗨av一区二区三区四季av| av高清久久久| 亚洲精品国产无天堂网2021| 不卡视频一二三| 中文字幕一区二区不卡| 91日韩在线专区| 一区二区在线观看av| 91国偷自产一区二区三区观看| 亚洲欧美激情视频在线观看一区二区三区| 成人国产在线观看| 亚洲人成精品久久久久久| 色综合久久综合| 亚洲午夜av在线| 日韩一区二区在线看片| 久久99精品国产.久久久久久| 精品国产免费视频| 国产69精品久久久久777| 国产精品久久久久毛片软件| 色乱码一区二区三区88| 五月婷婷综合网| 欧美精品一区二区三区蜜桃 | 久久久777精品电影网影网| 国产一二精品视频| 亚洲欧洲日本在线| 在线精品视频小说1| 青青草原综合久久大伊人精品优势| 91精品免费在线| 成人污污视频在线观看| 一区二区三区在线播放| 日韩欧美aaaaaa| 成人av在线播放网站| 亚洲成av人片www| 久久久蜜桃精品| 欧美少妇一区二区| 国产精品一区二区在线观看不卡| 国产精品美女久久久久久久久久久 | 欧美一区二区三区色| 国产在线精品免费| 亚洲主播在线观看| 精品电影一区二区| 欧美在线观看你懂的| 国产一区二区三区久久久 | 国产专区欧美精品| 一区二区欧美精品| 久久久久久麻豆| 欧美日韩国产经典色站一区二区三区 | 成人免费高清在线| 日韩va欧美va亚洲va久久| 国产亚洲精品久| 欧美日韩二区三区| 99国产一区二区三精品乱码| 美日韩黄色大片| 亚洲黄色小视频| 国产欧美日韩三级| 日韩午夜小视频| 欧美日韩成人综合| 一本久久a久久免费精品不卡| 精品一区二区av| 天天综合天天做天天综合| 日本一区二区不卡视频| 亚洲精品一区二区精华| 91.成人天堂一区| 91老师片黄在线观看| 国产成人在线色| 国产一区二区三区高清播放| 午夜久久久久久久久| 亚洲久草在线视频| 中文字幕在线免费不卡| 国产欧美一区视频| 久久久久久一二三区| 欧美xxxxx牲另类人与| 3atv在线一区二区三区| 欧美日韩不卡一区| 欧美精品成人一区二区三区四区| 91色九色蝌蚪| 91丨porny丨首页| 91蜜桃网址入口| 色狠狠av一区二区三区| 91成人国产精品| 欧美综合久久久| 日韩一区二区视频在线观看| 欧美日韩电影一区| 91麻豆精品91久久久久同性| 在线综合亚洲欧美在线视频| 91麻豆精品91久久久久久清纯| 欧美四级电影网| 欧美一级二级三级蜜桃| 精品国产乱码久久久久久久| www精品美女久久久tv| 久久久久久久久久久久久夜| 国产亲近乱来精品视频 | 婷婷丁香久久五月婷婷| 日精品一区二区三区| 麻豆精品一区二区综合av| 国产一区二区三区日韩 | 欧美电影在线免费观看| 欧美日本一道本| 日韩精品综合一本久道在线视频| 日韩欧美国产综合一区| 国产欧美一区二区精品久导航 | 在线视频一区二区三区| 欧美日本一道本| 久久久久亚洲蜜桃| 亚洲三级在线免费观看| 亚洲国产成人av好男人在线观看| 视频一区二区三区入口| 国产福利一区二区| 欧美性高清videossexo| 精品国产乱码久久久久久免费| 国产拍揄自揄精品视频麻豆| 亚洲综合色噜噜狠狠| 精品中文字幕一区二区小辣椒| 成人av手机在线观看| 欧美色视频一区| 欧美激情一区二区三区四区| 亚洲综合激情另类小说区| 国产一区二区三区在线观看精品| 99久久99久久精品免费观看| 91精品国产麻豆国产自产在线| 亚洲国产精品国自产拍av| 午夜影院久久久| 成人综合婷婷国产精品久久蜜臀| 欧亚一区二区三区| 国产欧美日本一区二区三区| 亚洲www啪成人一区二区麻豆 | 亚洲综合图片区| 国产91在线观看| 欧美一区二区三区日韩| 亚洲男人天堂av网|