航班管理c語言,航班管理系統C語言程序

本文目錄一覽:

c語言編程:航班信息管理程序

編譯無錯!

#includestdio.h

struct Art

{

long int hangbanh;

char qdcity[10];

char zdcity[10];

char qftime[20];

char gettime[20];

char jx[10];

char banqi[15];

}a[100];

int s;

void cunqu()

{ int i=0;

long int k;

printf(“請輸入航班號,輸入-1結束:”);

scanf(“%ld”,k);

while(k!=-1)

{a[i].hangbanh=k;

printf(“\n請輸入終點站:”);

scanf(“%s”,a[i].zdcity);

printf(“\n請輸入起飛時間:”);

scanf(“%s”,a[i].qftime);

printf(“\n請輸入到達時間:”);

scanf(“%s”,a[i].gettime);

printf(“\n請輸入機型:”);

scanf(“%s”,a[i].jx);

printf(“\n請輸入班期:”);

scanf(“%s”,a[i].banqi);

i++;

printf(“\n\n請輸入航班號,輸入-1結束:”);

scanf(“%ld”,k);

}

s=i;

}

void caxun()

{ long int k;

printf(“請輸入航班號\n”);

scanf(“%ld”,k);

for(int i=0;is;i++)

if(k==a[i].hangbanh)

{

printf(“航班號%ld\n”,a[i].hangbanh);

printf(“起點站%s\n”,a[i].qdcity);

printf(“終點站%s\n”,a[i].zdcity);

printf(“起飛時間%s\n”,a[i].qftime);

printf(“到達時間%s\n”,a[i].gettime);

printf(“機型%s\n”,a[i].jx);

printf(“班期%s\n”,a[i].banqi);

}

}

void paixu()

{ int i,j;

struct Art t;

for(i=0;is;i++)

for(j=i;js;j++)

if(a[i].hangbanha[j].hangbanh)

{t=a[i];a[i]=a[j];a[j]=t;}

for(i=0;is;i++)

{printf(“航班號%ld\n”,a[i].hangbanh);

printf(“起點站%s\n”,a[i].qdcity);

printf(“終點站%s\n”,a[i].zdcity);

printf(“起飛時間%s\n”,a[i].qftime);

printf(“到達時間%s\n”,a[i].gettime);

printf(“機型%s\n”,a[i].jx);

printf(“班期%s\n\n”,a[i].banqi);

}

}

void prit()

{printf(“\t1.存取\n”);

printf(“\t2.查詢\n”);

printf(“\t3.排序\n”);

}

void main()

{int k;

prit();

do{

printf(“請選擇:”);

scanf(“%d”,k);

switch(k)

{case 1: cunqu();break;

case 2:caxun();break;

case 3:paixu();break;

case 0:break;

default :break;

}

}while(k!=0);

}

c語言程序設計關於航班信息管理

void distribute(slnode *sl,int i,arrtype_n f,arrtype_n e)

{

int j,p;

for(j=0;jradix_n;j++)

{

f[j]=e[j]=0;

}

for(p=sl[0].next;p;p=sl[p].next)

{

j=sl[p].keys[i]%48;

if(!f[j])

f[j]=p;

else

sl[e[j]].next=p;

e[j]=p;

}

}

void collect(slnode *sl,int i,arrtype_n f,arrtype_n e)

{

int j,t;

for(j=0;!f[j];j++);

sl[0].next=f[j];

t=e[j];

while(jradix_n-1)

{

for(j=j+1;jradix_n-1!f[j];j++);

if(f[j])

{

sl[t].next=f[j];

t=e[j];

}

}

sl[t].next=0;

}

void distribute_c(slnode *sl,int i,arrtype_c f,arrtype_c e)

{

int j,p;

for(j=0;jradix_c;j++)

{

f[j]=e[j]=0;

}

for(p=sl[0].next;p;p=sl[p].next)

{

j=sl[p].keys[i]%65;

if(!f[j])

f[j]=p;

else

sl[e[j]].next=p;

e[j]=p;

}

}

void collect_c(slnode *sl,int i,arrtype_c f,arrtype_c e)

{

int j,t;

for(j=0;!f[j];j++);

sl[0].next=f[j];

t=e[j];

while(jradix_c-1)

{

for(j=j+1;jradix_c-1!f[j];j++);

if(f[j])

{

sl[t].next=f[j];

t=e[j];

}

}

sl[t].next=0;

}

void radixsort(sllist l)//鏈式

{

int i;

arrtype_n fn,en;

arrtype_c fc,ec;

for(i=0;il.length;i++)

l.sl[i].next=i+1;

l.sl[l.length].next=0;

for(i=l.keynum-1;i=2;i–)

{

distribute(l.sl,i,fn,en);

collect(l.sl,i,fn,en);

}

for(i=1;i=0;i–)

{

distribute_c(l.sl,i,fc,ec);

collect_c(l.sl,i,fc,ec);

}

}

void arrange(sllist l)//重新整理

{

int p,q,i;

slnode temp;

p=l.sl[0].next;

for(i=1;il.length;i++)

{

while(pi)

p=l.sl[p].next;

q=l.sl[p].next;

if(p!=i)

{

temp=l.sl[p];

l.sl[p]=l.sl[i];

l.sl[i]=temp;

l.sl[i].next=p;

}

p=q;

}

}

int binsearch(sllist l,keytype key[])

{

int low,high,mid;

low=1;

high=l.length;

while(low=high)

{

mid=(low+high)/2;

if(strcmp(key,l.sl[mid].keys)==0)

return mid;

else if(strcmp(key,l.sl[mid].keys)0)

high=mid-1;

else

low=mid+1;

}

return 0;

}

void seqsearch(sllist l,keytype key[],int i)

{

int j,k,m=0;

printf(“*************************************************************\n”);

printf(“* 航班號 起始站 終點站 航班期 起飛時間 到達時間 機型 票價*\n”);

for(j=1;j=l.length;j++)

{

switch(i)

{

case 2:k=strcmp(key,l.sl[j].others.start);break;

case 3:k=strcmp(key,l.sl[j].others.end);break;

case 4:k=strcmp(key,l.sl[j].others.time1);break;

case 5:k=strcmp(key,l.sl[j].others.time2);break;

}

if(k==0)

{

m=1;

printf(“* %-8s%-7s%-6s%-11s%-9s%-7s%-5s%4d *\n”,l.sl[j].keys,l.sl[j].others.start,l.sl[j].others.end,l.sl[j].others.sche,l.sl[j].others.time1,l.sl[j].others.time2,l.sl[j].others.model,l.sl[j].others.price);

}

}

if(m==0)

printf(“* 無此航班信息,可能是輸入錯誤*\n”);

printf(“*************************************************************\n”);

}

void searchcon(sllist l)

{

keytype key[keylen];

int i=1,k;

while(i=1i=5)

{printf(“\n ********************\n”);

printf(” * 航班信息查詢系統 *\n”);

printf(” ********************\n”);

printf(” * 1.航班號*\n”);

printf(” * 2.起點站*\n”);

printf(” * 3.終點站*\n”);

printf(” * 4.起飛時間*\n”);

printf(” * 5.到達時間*\n”);

printf(” * 0.退出系統*\n”);

printf(” ********************\n”);

printf(” 請選擇(0-5):”);

scanf(“%d”,i);

printf(“\n”);

switch(i)

{case 1:printf(“輸入要查詢的航班號(字母要大寫):”);

scanf(“%s”,key);

k=binsearch(l,key);

printf(“*************************************************************\n”);

if(k==0)

printf(“* 無此航班信息,可能是輸入錯誤!*\n”);

else

{

printf(“* 航班號 起點站 終點站 航班期 起飛時間 到達時間 機型 票價*\n”);

printf(“* %-8s%-7s%-6s%-11s%-9s%-7s%-5s%4d *\n”,l.sl[k].keys,l.sl[k].others.start,l.sl[k].others.end,l.sl[k].others.sche,l.sl[k].others.time1,l.sl[k].others.time2,l.sl[k].others.model,l.sl[k].others.price);

}

printf(“*************************************************************\n”);

break;

case 2:printf(“輸入要查詢的航班起點站名:”);

scanf(“%s”,key);

seqsearch(l,key,i);

break;

case 3:printf(“輸入要查詢的航班起點站名:”);

scanf(“%s”,key);

seqsearch(l,key,i);

break;

case 4:printf(“輸入要查詢的航班起點站名:”);

scanf(“%s”,key);

seqsearch(l,key,i);

break;

case 5:printf(“輸入要查詢的航班起點站名:”);

scanf(“%s”,key);

seqsearch(l,key,i);

break;

case 0:printf(“\n\n\n 再 見n\n\n”);

}

}

}

void inputdata(sllist l)

{

int i=++l.length;

char yn=’y’;

while(yn==’y’||yn==’Y’)

{

printf(“航班號 起點站 終點站 航班期 起飛時間 到達時間 機型 票價\n”);

scanf(“%s%s%s%s%s%s%s%d”,l.sl[i].keys,l.sl[i].others.start,l.sl[i].others.end,l.sl[i].others.sche,l.sl[i].others.time1,l.sl[i].others.time2,l.sl[i].others.model,l.sl[i].others.price);

++i; getchar();

radixsort(l);

arrange(l);

printf(“繼續輸入嗎?y/n:”);

scanf(“%c”,yn);

}

l.length=i-1;

}

void main()

{

sllist l;

l.keynum=6;

l.length=0;

inputdata(l);

searchcon(l);

}

c語言程序設計 航班信息管理

#include

#include

#include

#include

(conio.h不是C標準庫中的頭文件。conio是Console Input/Output(控制台輸入輸出)的簡寫,其中定義了通過控制台進行數據輸入和數據輸出的函數,主要是一些用戶通過按鍵盤產生的對應操作,比如getch()函數等等。)

#define MAXSIZE 4/*定義航線量的最大值*/

typedef struct wat_ros

{ char name[10];/*姓名*/

int req_amt;/*訂票量*/

struct wat_ros *next;

}qnode,*qptr;

typedef struct pqueue

{ qptr front;/*等候替補客戶名單域的頭指針*/

qptr rear;/*等候替補客戶名單域的屬指針*/

}linkqueue;

typedef struct ord_ros

{ char name[10];/*客戶姓名*/

int ord_amt;/*訂票量*/

int grade;/*艙位等級*/

struct ord_ros *next;

}linklist;

struct airline

{ char ter_name[10];/*終點站名*/

char air_num[10];/*航班號*/

char plane_num[10];/*飛機號*/

char date[7];/*飛行日期(星期幾)*/

int tkt_amt;/*乘員定額*/

int tkt_sur;/*余票量*/

linklist *order;/*乘員名單域,指向乘員名單鏈表的頭指針*/

linkqueue wait;/*等候替補的客戶名單域,分別指向排隊等候名單隊頭隊尾的指針*/

}lineinfo;

struct airline *start;

struct airline air[MAXSIZE]={{“北京”,”1″,”001″,”SUN”,30,15},

{“上海”,”2″,”002″,”MON”,40,10},

{“武漢”,”3″,”003″,”FRI”,50,14},

{“天津”,”4″,”004″,”TUE”,60,20}};

void display(struct airline *info)

/*列印每條航線的基本信息*/

{printf(“%8s\t%3s\t%s\t%4s\t\t%3d\t%10d\n”,info-ter_name,info-air_num,info-plane_num,info-date,info-tkt_amt,info-tkt_sur);

}

void list()/*列印全部航線信息*/

{ struct airline *info;

int i=0;

info=start;

printf(“終點站名\t航班號\t飛機號\t飛行日期\t乘員定額\t余票量\n”);

while(iMAXSIZE)

{

display(info);

info++;

i++;

}

printf(“\n\n”);

}

void search()

/*根據客戶提出的終點站名輸出航線信息*/

{ struct airline *info,*find();

char name[10];

int i=0;

info=start;

printf(“請輸入終點站名:”);

scanf(“%s”,name);

while(iMAXSIZE)

{

if(!strcmp(name,info-ter_name)) break;

info++;

i++;

}

if(i=MAXSIZE)

printf(“對不起,該航線未找到!\n”);

else

{

printf(“終點站名\t航班號\t飛機號\t飛行日期\t乘員定額\t余票量\n”);

display(info);

}

}

struct airline *find()

/*根據系統提出的航班號查詢並以指針形式返回*/

{ struct airline *info;

char number[10];

int i=0;

info=start;

printf(“請輸入航班號:”);

scanf(“%s”,number);

while(iMAXSIZE)

{

if(!strcmp(number,info-air_num)) return info;

info++;

i++;

}

printf(“對不起,該航線末找到!\n”);

return NULL;

}

void prtlink()

/*列印訂票乘員名單域的客戶名單信息*/

{ linklist *p;

struct airline *info;

info=find();

p=info-order;

if(p!=NULL){

printf(“客戶姓名 訂票數額 艙位等級\n”);

while(p){

printf(“%s\t\t%d\t%d\n”,p-name,p-ord_amt,p-grade);

p=p-next;

}

}

else

printf(“該航線沒有客戶信息!!\n”);

}

linklist *insertlink(linklist *head,int amount,char name[],int grade)

/*增加訂票乘員名單域的客戶信息*/

{ linklist *p1,*new1;

p1=head;

new1=(linklist *)malloc(sizeof(linklist));

if(!new1) {printf(“\nOut of memory!!\n”);return NULL;}

strcpy(new1-name,name);

new1-ord_amt=amount;

new1-grade=grade;

new1-next=NULL;

if(head==NULL)/*若原無訂票客戶信息*/

{head=new1;new1-next=NULL;}

else

head=new1;

new1-next=p1;

return head;

}

linkqueue appendqueue(linkqueue q,char name[],int amount)

/*增加排隊等候的客戶名單域*/

{ qptr new1;

new1=(qptr)malloc(sizeof(qnode));

strcpy(new1-name,name);

new1-req_amt=amount;

new1-next=NULL;

if(q.front==NULL)/*若原排隊等候客戶名單域為空*/

q.front=new1;

else

q.rear-next=new1;

q.rear=new1;

return q;

}

void order()

/*辦理訂票業務*/

{ struct airline *info;

int amount,grade;

char name[10];

info=start;

if(!(info=find())) return;/*根據客戶提供的航班號進行查詢,如為空,退出該模塊*/

printf(“請輸入你訂票所需要的數量:”);

scanf(“%d”,amount);

if(amountinfo-tkt_amt)/*若客戶訂票額超過乘員定票總額,退出*/

{ printf(“\n對不起,您輸入的票的數量已經超過乘員定額!”);

return;

}

if(amounttkt_sur)/*若客戶訂票額末超過余票量,訂票成功並等記信息*/

{

int i;

printf(“請輸入您的姓名(訂票客戶):”);

scanf(“%s”,name);

printf(“請輸入%s票的艙位等級:”,name);

scanf(“%d”,grade);

info-order=insertlink(info-order,amount,name,grade);/*在訂票乘員名單域中添加客戶信息*/

for(i=0;iamount;i++)/*依次輸出該訂票客戶的座位號*/

printf(“%s的座位號是:%d\n”,name,info-tkt_amt-info-tkt_sur+i+1);

info-tkt_sur-=amount;/*該航線的余票量應減掉該客戶的訂票量*/

printf(“\n祝您乘坐愉快!\n”);

}

else /*若滿員或余票額少於訂票額,詢問客戶是否需要進行排隊等候*/

{ char r;

printf(“\n已經沒有更多的票,您需要排隊等候嗎?(Y/N)”);

r=getch();

printf(“%c”,r);

if(r==’Y’||r==’y’)

{ printf(“\n請輸入您的姓名(排隊訂票客戶):”);

scanf(“%s”,name);

info-wait=appendqueue(info-wait,name,amount);/*在排隊等候乘員名單域中添加客戶信息*/

printf(“\n註冊成功!\n”);

}

else printf(“\n歡迎您下次再次訂購!\n”);

}

}

void return_tkt()

/*退票模塊*/

{ struct airline *info;

qnode *t,*back,*f,*r;

int grade;

linklist *p1,*p2,*head;

char cusname[10];

if(!(info=find())) return;/*調用查詢函數,根據客戶提供的航線進行搜索*/

head=info-order;

p1=head;

printf(“請輸入你的姓名(退票客戶):”);

scanf(“%s”,cusname);

while(p1!=NULL) {/*根據客戶提供的姓名到訂票客戶名單域進行查詢*/

if(!strcmp(cusname,p1-name)) break;

p2=p1;p1=p1-next;

}

if(p1==NULL){ printf(“對不起,你沒有訂過票!\n”);return;}/*若未找到,退出本模塊*/

else

{/*若信息查詢成功,刪除訂票客戶名單域中的信息*/

if(p1==head) head=p1-next;

else p2-next=p1-next;

info-tkt_sur+=p1-ord_amt;

grade=p1-grade;

printf(“%s成功退票!\n”,p1-name);

free(p1);

}

info-order=head;/*重新將航線名單域指向訂票單鏈表的頭指針*/

f=(info-wait).front;/*f指向排隊等候名單隊列的頭結點*/

r=(info-wait).rear;/*r指向排隊等候名單隊列的尾結點*/

t=f;/*t為當前滿點條件的排隊候補名單域*/

while(t)

{

if(info-tkt_sur=info-wait.front-req_amt)

{/*若滿足條件者為頭結點*/

int i;

info-wait.front=t-next;

printf(“%s訂票成功!\n”,t-name);

for(i=0;ireq_amt;i++)/*輸出座位號*/

printf(“%s的座位號是:%d\n”,t-name,(info-tkt_sur)-i);

info-tkt_sur-=t-req_amt;

info-order=insertlink(info-order,t-req_amt,t-name,grade);/*插入到訂票客戶名單鏈表中*/

free(t);

break;

}

back=t;t=t-next;

if((info-tkt_sur)=(t-req_amt)t!=NULL)/*若滿足條件者不為頭結點*/

{ int i;

back-next=t-next;

printf(“%s訂票成功!\n”,t-name);

for(i=0;ireq_amt;i++)/*輸出座位號*/

printf(“

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/302798.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-31 11:48
下一篇 2024-12-31 11:48

相關推薦

  • 銀行資金管理系統總結

    銀行資金管理系統是銀行日常業務運營的核心支撐系統,主要負責處理銀行的資金流動、結算、清算等業務。本文將從功能特點、技術架構、安全性以及未來發展趨勢等多個方面對銀行資金管理系統進行詳…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • 爬蟲是一種程序

    爬蟲是一種程序,用於自動獲取互聯網上的信息。本文將從如下多個方面對爬蟲的意義、運行方式、應用場景和技術要點等進行詳細的闡述。 一、爬蟲的意義 1、獲取信息:爬蟲可以自動獲取互聯網上…

    編程 2025-04-29
  • 北化教務管理系統介紹及開發代碼示例

    本文將從多個方面對北化教務管理系統進行介紹及開發代碼示例,幫助開發者更好地理解和應用該系統。 一、項目介紹 北化教務管理系統是一款針對高校學生和教職工的綜合信息管理系統。系統實現的…

    編程 2025-04-29

發表回復

登錄後才能評論