C语言程序设计期末作业——航班
生活随笔
收集整理的這篇文章主要介紹了
C语言程序设计期末作业——航班
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
介紹
- 又到了一年一度的期末大作業(yè)時(shí)刻了,小伙伴們又掉了多少頭發(fā)(Doge)
- 存儲(chǔ)主體采用鏈表,食用時(shí)記得填寫航班文件的路徑
代碼
#include<stdio.h> #include<windows.h> #include<string.h>struct System_Data {char Flight_Number[20];char Take_Off[20];double Time_Cost;char Land[20];int Price;char Model[10];int All_Tickets;int Tickets_Sold;struct System_Data *Next;};//-----------------函數(shù)與初始化---------------- void Welcome();struct System_Data * Initialization();//創(chuàng)建數(shù)據(jù)鏈表void menu(struct System_Data *head);//系統(tǒng)菜單void Data_input(struct System_Data *head);//數(shù)據(jù)讀取void Check(struct System_Data *head);//機(jī)票查詢struct System_Data *Check_Flight_Number(struct System_Data *p);//按航班號(hào)查詢struct System_Data *Check_Take_Off(struct System_Data *p, struct System_Data *Ans);//按起點(diǎn)查詢struct System_Data *Check_Land(struct System_Data *p, struct System_Data *Ans);//按終點(diǎn)查詢struct System_Data *Check_Time_Cost(struct System_Data *p, struct System_Data *Ans);//按飛行時(shí)間查詢void Print(struct System_Data *Ans,struct System_Data *head);void print(struct System_Data *Ans,struct System_Data *head);//全部機(jī)票數(shù)據(jù)輸出void Back(struct System_Data *head);void Copy(struct System_Data *p,struct System_Data *t);int Flights_Count; //航班數(shù)//--------------------------------------------int main() {Welcome();//歡迎界面Sleep(2000);system("cls");//初始化struct System_Data *head;head=Initialization();menu(head);//菜單system("pause");return 0; }void Welcome() {printf("**************************\n");printf("* 歡迎進(jìn)入航班訂票系統(tǒng) *\n");printf("**************************\n");Sleep(1500);system("cls");printf("**********************\n");printf("* 作者 *\n");printf("**********************\n");printf("* *\n");printf("* *\n");printf("* *\n");printf("**********************\n"); }struct System_Data *Initialization() {struct System_Data *head=(struct System_Data*)malloc(sizeof(struct System_Data));head->Next=NULL;return head; }void menu(struct System_Data *head) {int select;printf("*****************************\n");printf("* 民航訂票系統(tǒng) *\n");printf("* 1.航班信息錄入/更新 *\n");printf("* 2.查詢航線信息 *\n");printf("* 0.退 出 系 統(tǒng) *\n");printf("*****************************\n");scanf("%d",&select);switch(select){case 1:system("cls");Data_input(head);case 2:Check(head);case 0:exit(1);case -1:print(head,head);default:printf("非法輸入");exit(-1);} }void Data_input(struct System_Data *head) {Flights_Count=0;FILE *Data;//定義文件指針char FileName[100] = "文件路徑,具體到文件后綴";//文件路徑Data = fopen(FileName, "r");if (!Data){printf("航班文件不存在\n");system("pause");menu(head);}else{char Top_Line[100];struct System_Data *p=head;fgets(Top_Line, 100, Data);//讀取第一行說明while (!feof(Data)){struct System_Data *t = (struct System_Data *)malloc(sizeof(struct System_Data));//讀取信息;fscanf(Data, "%s %s %s %lf %s %d %d %d",t->Flight_Number,t->Take_Off,t->Land,&t->Time_Cost,t->Model,&t->Price,&t->All_Tickets,&t->Tickets_Sold);t->Next=NULL;p->Next=t;p=t;Flights_Count++;}Flights_Count--;printf("航班信息已導(dǎo)入成功,本次共導(dǎo)入%d條航班信息\n",Flights_Count);Sleep(1000);fclose(Data);menu(head);}}void Check(struct System_Data *head) {system("cls");struct System_Data *Ans=(struct System_Data*)malloc(sizeof(struct System_Data));if(Flights_Count==0){printf("未檢測(cè)到航班數(shù)據(jù),請(qǐng)先導(dǎo)入航線\n");Back(head);}printf("*****************************\n");printf("* 請(qǐng)輸入查詢方式 *\n");printf("*****************************\n");printf("* 1.航班號(hào) *\n");printf("* 2.起點(diǎn)站 *\n");printf("* 3.終點(diǎn)站 *\n");printf("* 4.飛行時(shí)間 *\n");printf("* 0.返回主菜單 *\n");printf("*****************************\n");int sel;scanf("%d",&sel);switch(sel){case 0:menu(head);break;case 1:Print(Check_Flight_Number(head),head);break;case 2:print(Check_Take_Off(head,Ans),head);break;case 3:print(Check_Land(head, Ans),head);break;case 4:print(Check_Time_Cost(head, Ans),head);break;case -1:print(head,head);break;default:printf("非法輸入");} }struct System_Data *Check_Flight_Number(struct System_Data *head)//按航班號(hào)查詢 {printf("請(qǐng)輸入航班號(hào):\n");struct System_Data *p=head->Next;char Number[10];scanf("%s",Number);while(p){if(!strcmp(p->Flight_Number,Number)){struct System_Data *t=(struct System_Data *)malloc(sizeof(struct System_Data));Copy(p,t);t->Next=NULL;return t;}p=p->Next;}system("cls");printf("未查詢到結(jié)果\n");Back(head); }struct System_Data *Check_Take_Off(struct System_Data *head, struct System_Data *Ans)//按起點(diǎn)查詢 {printf("請(qǐng)輸入起點(diǎn):\n");int flag=0;struct System_Data *p=head->Next;struct System_Data *Ap=Ans;Ap->Next=NULL;char Place[30]= {0};getchar();gets(Place);while(p){if(!strcmp(p->Take_Off,Place)){struct System_Data *t =(struct System_Data*)malloc(sizeof(struct System_Data));*t=*p;t->Next=NULL;Ap->Next= t;Ap=t;flag=1;}p=p->Next;}if(flag==0){system("cls");printf("未查詢到結(jié)果\n");Back(head);}elsereturn Ans; }struct System_Data *Check_Land(struct System_Data *head, struct System_Data *Ans)//按終點(diǎn)查詢 {printf("請(qǐng)輸入終點(diǎn):\n");int flag=0;struct System_Data *p=head->Next;struct System_Data *Ap=Ans;Ap->Next=NULL;char Place[30]= {0};getchar();gets(Place);while(p){if(!strcmp(p->Land,Place)){struct System_Data *t =(struct System_Data*)malloc(sizeof(struct System_Data));*t=*p;t->Next=NULL;Ap->Next= t;Ap=t;flag=1;}p=p->Next;}if(flag==0){system("cls");printf("未查詢到結(jié)果\n");Back(head);}elsereturn Ans; }struct System_Data *Check_Time_Cost(struct System_Data *head, struct System_Data *Ans)//按飛行時(shí)間查詢 {printf("請(qǐng)輸入飛行時(shí)間:\n");int flag=0;struct System_Data *p=head->Next;struct System_Data *Ap=Ans;Ap->Next=NULL;double Time;scanf("%lf",&Time);while(p){if(p->Time_Cost==Time){struct System_Data *t =(struct System_Data*)malloc(sizeof(struct System_Data));*t=*p;t->Next=NULL;Ap->Next= t;Ap=t;flag=1;}p=p->Next;}if(flag==0){system("cls");printf("未查詢到結(jié)果\n");Back(head);}elsereturn Ans; }void Print(struct System_Data *p,struct System_Data *head) {system("cls");printf("您的查詢結(jié)果為:\n\n");printf("航班號(hào)\t起點(diǎn)\t終點(diǎn)\t飛行時(shí)間(小時(shí)) 機(jī)型\t價(jià)格\t總票量\t已售\n");printf("%s\t%s\t%s\t %.2lf \t%s\t%d\t %d\t %d\n",p->Flight_Number,p->Take_Off,p->Land,p->Time_Cost,p->Model,p->Price,p->All_Tickets,p->Tickets_Sold);free(p);Back(head); }void print(struct System_Data *Ans,struct System_Data *head) {struct System_Data *p=Ans->Next;struct System_Data *F=Ans;free(F);//釋放內(nèi)存system("cls");printf("您的查詢結(jié)果為:\n\n");printf("航班號(hào)\t起點(diǎn)\t終點(diǎn)\t飛行時(shí)間(小時(shí)) 機(jī)型\t價(jià)格\t總票量\t已售\n");while(p){F=p;printf("%s\t%s\t%s\t %.2lf \t%s\t%d\t %d\t %d\n",p->Flight_Number,p->Take_Off,p->Land,p->Time_Cost,p->Model,p->Price,p->All_Tickets,p->Tickets_Sold);p=p->Next;free(F);}Sleep(1000);menu(head); }void Back(struct System_Data *head) {int sel;printf("\n輸入0退出系統(tǒng)\n輸入1回到主菜單\n");scanf("%d",&sel);if(sel==0)exit(0);else if(sel==1){getchar();system("cls");menu(head);}else{printf("非法輸入");exit(-1);} }void Copy(struct System_Data *p,struct System_Data *t) {strcpy(t->Flight_Number,p->Flight_Number);strcpy(t->Take_Off,p->Take_Off);t->Time_Cost=p->Time_Cost;strcpy(t->Land,p->Land);t->Price=p->Price;strcpy(t->Model,p->Model);t->All_Tickets=p->All_Tickets;t->Tickets_Sold=t->Tickets_Sold; }航班文件
總結(jié)
以上是生活随笔為你收集整理的C语言程序设计期末作业——航班的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Cisco产品识别标准
- 下一篇: OpenWRT中使用无线网卡做中继器与A