溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么用C語言實(shí)現(xiàn)飛機(jī)票務(wù)系統(tǒng)

發(fā)布時(shí)間:2021-08-11 14:42:24 來源:億速云 閱讀:224 作者:chen 欄目:編程語言

這篇文章主要講解了“怎么用C語言實(shí)現(xiàn)飛機(jī)票務(wù)系統(tǒng)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么用C語言實(shí)現(xiàn)飛機(jī)票務(wù)系統(tǒng)”吧!

飛機(jī)票務(wù)系統(tǒng)設(shè)計(jì)要求:有登錄系統(tǒng)界面、賬號、密碼;建立航班信息功能;查看從鄭州到某終點(diǎn)站飛機(jī)票信息功能;飛機(jī)票購買功能;添加購票人信息功能;顯示購票人信息功能;退定飛機(jī)票功能;

程序中的音樂可以改為自己指定的,用時(shí)把我用的音樂那行代碼注釋掉即可。

代碼如下:

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<Windows.h>#include<conio.h>//主要是一些用戶通過按鍵盤產(chǎn)生的對應(yīng)操作,比如getch()函數(shù) #include<time.h> //時(shí)間庫 #include<mmsystem.h>//windows中與多媒體有關(guān)的大多數(shù)接口#pragma comment(lib,"winmm.lib")//預(yù)處理,支持對windows 多媒體的編程.//#include<graphics.h>//圖形庫 #define N 15 //航班最多15,N為全局變量 typedef struct traininfor { char qishi[30]; //起始站  char zhongdian[30]; //終點(diǎn)站  char trainnumber[10]; //航班號  float price; //飛機(jī)票單人價(jià)格  int piaonumber; //每次航班的生成票數(shù)  char time[30]; //飛機(jī)出發(fā)時(shí)間 }hang; struct ticket{ char buyer[20]; //購票人姓名  char ID[20]; //購票人身份證號  int buynumber; //購買飛機(jī)票的張數(shù) float money;//用戶購買票總錢數(shù) hang buy; //用戶買的飛機(jī)票信息  struct ticket *next;//指針節(jié)點(diǎn) };  int d=0;//統(tǒng)計(jì)有多少次航班struct ticket *yonghu;//用戶購票信息頭結(jié)點(diǎn)hang plane[N]; //航班信息結(jié)構(gòu)體數(shù)組  int menu();//打印主菜單函數(shù) void DengLu();//登錄票務(wù)系統(tǒng)函數(shù) void JianFile();//建立文件航班信息函數(shù)void OpenFile();//讀取文件信息函數(shù) void check(); //查看從鄭州到某終點(diǎn)站飛機(jī)票信息函數(shù) void buy(); //飛機(jī)票購買函數(shù) void add();//添加購票人信息 int TicketMenu();//用戶購票菜單 void XianShi();//顯示購票人信息 void tui(); //退定飛機(jī)票函數(shù) void exit(); // 退出程序  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////int main(){ DengLu();// 登錄票務(wù)系統(tǒng)函數(shù) JianFile();//建立文件航班信息  //OpenFile();//打開文件讀取航班信息   while(1) {//每次操作完自動返回主菜單作用 switch(menu()) {//menu()函數(shù)為輸入選項(xiàng) case 1://選項(xiàng)為1時(shí)   OpenFile();//打開文件讀取航班信息  printf("已成功導(dǎo)入航班信息\n\n\n");   break;    case 2: //選項(xiàng)為2時(shí)   check();// 查看從鄭州到某終點(diǎn)站飛機(jī)票信息函數(shù)   break;   case 3://選項(xiàng)為3時(shí)   buy();//飛機(jī)票購買函數(shù)   break;   case 4://選項(xiàng)為4時(shí)   tui();//退票函數(shù)   break;   case 5://選項(xiàng)為5時(shí)   system("cls");//清屏   printf("感謝您的使用,祝您的旅途愉快\n");  Sleep(5000);//延遲15秒   exit(1);//  break;  }  } return 0;} ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////登錄票務(wù)系統(tǒng)void DengLu() { //getch()=從鍵盤輸入一個(gè)字符且不顯示 getche()=從鍵盤輸入一個(gè)字符并顯示  printf("歡迎來到票務(wù)系統(tǒng),請先注冊票務(wù)系統(tǒng)賬號(賬號為10位,密碼為6位):\n"); printf("溫馨提示:若登錄密碼輸入有誤超過三次,電腦會自動關(guān)機(jī):\n\n"); char ch;//重鍵盤上輸入一個(gè)字符 char password[10];//passsword數(shù)組表示初始密碼 char input[10];//input數(shù)組表示待輸入的密碼  char Szhanghao[20];// zhanghao數(shù)組表示申請的賬號  char Dzhanghao[20];// zhanghao數(shù)組表示登錄的賬號 int i=0,j;//控制輸入次數(shù) int number,find,count; printf("申請賬號:\n"); fflush(stdin);//清空輸入流  while(1) { ch=getche();//從鍵盤輸入一個(gè)字符,保存到ch變量 //加過濾,只要數(shù)字,其他的不做任何處理 if(ch>='0' && ch<='9') //if( (ch>='a' && ch<='z') || (ch>='A' && ch<='Z') ) { printf("\a");//轉(zhuǎn)義字符\a=bell Szhanghao[i++]=ch;//把申請的賬號儲存到數(shù)組中  if(10==i)//寫條件語句時(shí),把常量放前面 { Szhanghao[i]=''; break;//賬號為十位時(shí)停止輸入  }  } } //1提示輸入密碼 printf("\n設(shè)置卡的密碼:\n"); //2輸入密碼 i=0; while(1) { ch=getch();//從鍵盤輸入一個(gè)字符,保存到ch變量 //加過濾,只要數(shù)字,其他的不做任何處理 if(ch>='0' && ch<='9') //if( (ch>='a' && ch<='z') || (ch>='A' && ch<='Z') ) { printf("*\a");//轉(zhuǎn)義字符\a=bell password[i++]=ch;//把初始密碼儲存到數(shù)組中  if(6==i)//寫條件語句時(shí),把常量放前面 { password[i]=''; break;//初始密碼為六位時(shí)停止輸入  }  } } Sleep(2000); system("cls"); printf("溫馨提示:若登錄密碼輸入有誤超過三次,電腦會自動關(guān)機(jī):\n\n"); printf("請登錄您的賬號:\n"); while(1) { gets(Dzhanghao); if(strcmp(Dzhanghao,Szhanghao)!=0) printf("您輸入的賬號有誤,請重新輸入:\n"); else break;  }  number=0;//輸入密碼的次數(shù)  count =3;//有3次機(jī)會   while(count--) {//循環(huán)三次  find=0;j=0;//find初始化為0,表示輸入密碼正確  memset(input,0,sizeof(input));//初始化輸入密碼數(shù)組    printf("請輸入賬號密碼:\n"); for(i=0;i<6;i++) {//輸入六位密碼  ch=getch();//從鍵盤輸入一個(gè)字符,保存到ch變量中 if(ch>='0' && ch<='9') {//密碼為數(shù)字時(shí)加入數(shù)組  printf("*\a"); input[j++]=ch; } } input[j]='';//數(shù)組以結(jié)束    for(i=0;i<=5;i++) {//密碼是否輸入正確  if(input[i]!=password[i]) {//輸入密碼與初始密碼不匹配  find=1; break; } }   if(find==0) {//輸入密碼正確  printf("\n輸入正確,即將進(jìn)入票務(wù)系統(tǒng)主頁"); PlaySound("20100814_5c610cfa0dec6116aa701YT6vHJzW9Zw.wav", NULL, SND_FILENAME | SND_SYNC); //音樂播放 printf("\n"); //Sleep(3000);//延時(shí)3秒  system("cls");//清屏  break; } else {//輸入密碼次數(shù)加一  number++; printf("\n輸入密碼錯(cuò)誤,"); }  }  if(3==number) {//當(dāng)輸入錯(cuò)誤次數(shù)到達(dá)3次時(shí)  printf("\n輸入三次密碼錯(cuò)誤,不能再輸入,電腦將在10秒后自動關(guān)機(jī)\n"); system("shutdown -s -t 10");//電腦即將關(guān)機(jī)  } return ;}  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////void JianFile(){ FILE *fp;//定義文件指針 if((fp=fopen("txt.in","w"))==NULL) {//創(chuàng)建文件失敗 printf("建立失??!\n"); exit(0); } //向文件中輸入航班信息 fprintf(fp,"鄭州 南陽 T1230 110.50 200 2018年11月6日12點(diǎn)15分\n"); fprintf(fp,"鄭州 信陽 T1231 120.50 200 2018年11月6日13點(diǎn)15分\n"); fprintf(fp,"鄭州 商丘 T1232 100.00 200 2018年11月6日14點(diǎn)15分\n"); fprintf(fp,"鄭州 開封 T1234 115.50 200 2018年11月6日15點(diǎn)15分\n"); fprintf(fp,"鄭州 洛陽 T1235 95.00 200 2018年11月6日16點(diǎn)15分\n"); fprintf(fp,"鄭州 三門峽 T1236 97.30 200 2018年11月6日17點(diǎn)15分\n"); fprintf(fp,"鄭州 鶴壁 T1237 130.50 200 2018年11月6日18點(diǎn)15分\n"); fprintf(fp,"鄭州 周口 T1238 117.00 200 2018年11月6日19點(diǎn)15分\n"); fprintf(fp,"鄭州 駐馬店 T1239 135.00 200 2018年11月6日20點(diǎn)15分"); fclose(fp); return ;} ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////文件讀取航班信息void OpenFile(){  FILE *fp; //定義文件指針  d=0;//表示讀取到當(dāng)前文件位置 if((fp=fopen("txt.in","r"))==NULL) {//打開文件 printf("文件打開失??!\n"); return ; }  while(!feof(fp)) {//讀取到文件為空  //printf("請?jiān)O(shè)定第%d個(gè)站的地點(diǎn)、車次、價(jià)格、還剩票數(shù)、到站時(shí)間、已被購買票數(shù):\n",d); fscanf(fp,"%s%s%s%f%d%s",plane[d].qishi,plane[d].zhongdian,plane[d].trainnumber,&plane[d].price,&plane[d].piaonumber,plane[d].time); d++; }  fclose(fp);//關(guān)閉文件  return ;} /////////////////////////////////////////////////////////////////////////////////////////////////////////////////int menu(){ char s[10];//輸入字符串選項(xiàng) int n;//整型選項(xiàng) //菜單框架 printf("--------------------票務(wù)系統(tǒng)目錄--------------------\n\n"); printf("1, 導(dǎo)入航班信息\n"); printf("2, 查詢飛機(jī)票\n"); printf("3, 購買飛機(jī)票\n"); printf("4, 退訂飛機(jī)票\n"); printf("5, 退出程序\n"); printf("注意:飛機(jī)從本站能到達(dá)的地方有南陽、信陽、商丘\n"); printf("開封、洛陽、三門峽、鶴壁、周口、駐馬店\n"); printf("如果您想了解更多信息請輸入選項(xiàng)序號\n \n"); printf("本程序制作者:2017級物聯(lián)網(wǎng)工程一班 胡斌\n"); printf("請輸入選項(xiàng):");  while(1) {//死循環(huán)狀態(tài) fflush(stdin);//清空輸入流 gets(s);//得到一串字符串 n=atoi(s);//字符串轉(zhuǎn)化為整數(shù)  if(n<1||n>5)//判斷輸入的選項(xiàng)是否正確 printf("輸入錯(cuò)誤,請重新輸入:\n"); else//符合條件,結(jié)束循環(huán) break;  } //返回選項(xiàng)值 return n;} /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 查看從鄭州到某終點(diǎn)站飛機(jī)票信息函數(shù)void check(){ int i,j;//循環(huán)變量 int find=1,flag=0,count=0;//標(biāo)志變量 char qi[30];//起始站  char mudi[30];//終點(diǎn)站  printf("請輸入起始地(提示:起始地為鄭州): \n"); scanf("%s",qi);//輸入起始地 printf("請輸入目的地: \n"); scanf("%s",mudi);//輸入目的地  while(1) {//死循環(huán)狀態(tài) if(0==strcmp(qi,"鄭州")) {//起始地為鄭州時(shí) flag=1;//標(biāo)志變量為1,表示起始地沒有出錯(cuò) for(j=0;j<d;j++) {//循環(huán)d次航班信息 if(0==strcmp(plane[j].zhongdian,mudi)) {//輸入的終點(diǎn)站與航班信息終點(diǎn)站一致  count=1;//標(biāo)志變量為1  printf("航班號: ");//輸出航班號  printf("%s\n",plane[j].trainnumber);  printf("起始地: ") ;//輸出起始地  printf("%s\n",plane[j].qishi);  printf("目的地: ");//輸出目的地  printf("%s\n",plane[j].zhongdian);  printf("此次航班單人票價(jià): ");//輸出票價(jià)  printf("%.2f\n",plane[j].price);  printf("此次航班時(shí)間:");//輸出航班時(shí)間  printf("%s\n",plane[j].time);  printf("此次航班飛機(jī)票數(shù)量: ");//輸出票數(shù)  printf("%d\n\n\n\n",plane[j].piaonumber);   return ; } } } else { flag=1;//起始地輸入錯(cuò)誤 printf("輸入有誤,返回菜單!\n\n\n"); return ; }  if(0==count&&flag==1) {//起始地并且目的地輸入錯(cuò)誤 printf("sorry 您查詢的結(jié)果無信息!\n\n\n"); return ; } } return ;} ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////對購物車進(jìn)行操作void buy(){ while(1) {//成死循環(huán)狀態(tài) switch(TicketMenu())  {//ShopCartMenu()為輸入選項(xiàng) case 1://選項(xiàng)1 顯示用戶購票列表信息  XianShi();  break; case 2: //選項(xiàng)2 添加用戶購票信息   add();  break; case 3: //選項(xiàng)3 退出  printf("即將退出子程序\n");   Sleep(2000);//延時(shí)兩秒  return ;  } } return ;} ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////打印購物車菜單int TicketMenu(){ int n;//輸入選項(xiàng) char s[5];//輸入字符串 //購票子程序菜單框架 printf("\n\n請選擇操作:\n"); printf("--------------------------------------------\n"); printf("1. 顯示當(dāng)前購票列表\n"); printf("2. 添加購票人信息\n"); printf("3. 退出\n"); printf("--------------------------------------------\n"); printf("請選擇對應(yīng)數(shù)字1~3\n");  while(1) {//成死循環(huán)狀態(tài) fflush(stdin);//清空輸入流 gets(s);//輸入一串字符串 n=atoi(s);//字符串轉(zhuǎn)化為整數(shù)  if(n<1||n>3)//判斷輸入的選項(xiàng)是否正確  printf("輸入錯(cuò)誤,請重新輸入:\n"); else//輸入正確,結(jié)束循環(huán) break; } return n;//返回輸入選項(xiàng)} ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////顯示用戶購票信息void XianShi(){ FILE *fp;//定義文件指針 struct ticket *p;//定義一個(gè)新節(jié)點(diǎn) p=yonghu;//把整個(gè)購票信息賦給p  if((fp=fopen("goupiao.txt","r"))==NULL)  {//判斷是否打開了文件 printf("打開文件失敗\n"); printf("暫時(shí)還沒有用戶購票信息\n\n"); return ; } //printf("\n姓名  身份證    起始站  目的站   購買票數(shù)\n"); while(p!=NULL)  {//輸出購票人信息 //fscanf(fp,"%s%s%s%s%d",p->buyer,p->ID,p->buy.qishi,p->buy.zhongdian,&p->buynumber); printf("姓名: "); printf("%s\n",p->buyer); printf("身份證號: "); printf("%s\n",p->ID); printf("起始地: ") ; printf("%s\n",p->buy.qishi); printf("目的地: "); printf("%s\n",p->buy.zhongdian); printf("購買票數(shù): "); printf("%d\n",p->buynumber); printf("此次航班總錢數(shù): "); printf("%.2f\n",p->money); printf("此次航班時(shí)間:"); printf("%s\n\n\n\n",p->buy.time); //printf("姓名  身份證   起始地  目的地  購買票數(shù) 票的價(jià)格 出發(fā)時(shí)間\n"); //printf("%-11s%-20s%-10s%-10s%-7d%-7.2f%-20s\n",p->buyer,p->ID,p->buy.qishi,p->buy.zhongdian,,p->buy.price,p->buy.time);//輸出購票人信息 p=p->next;//指向下一個(gè)節(jié)點(diǎn) }  fclose(fp);//關(guān)閉文件  return ;} ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////添加用戶購票信息void add(){ FILE *fp1,*fp;//定義兩個(gè)文件指針 struct ticket *p,*p1;//定義兩個(gè)節(jié)點(diǎn)  int i,j;//定義控制循環(huán)變量 int count,flag;//定義標(biāo)志變量 int buynumber1;//用戶購買的票數(shù) char choice1[10];//選擇變量 char choice2[10];//選擇變量 char mingzi[20];//用戶姓名 char shenfen[20];//用戶身份證號  char qi[30];//起始站  char mudi[30];//終點(diǎn)站  do{//開始進(jìn)入循環(huán) printf("請輸入您的姓名:\n"); scanf("%s",mingzi); printf("請輸入您的身份證號:\n"); scanf("%s",shenfen); printf("請輸入起始地(提示:起始地為鄭州): \n"); scanf("%s",qi); printf("請輸入目的地: \n"); scanf("%s",mudi); count=0;flag=0;//標(biāo)志變量初始化 while(1) {//成死循環(huán)狀態(tài) if(0==strcmp(qi,"鄭州")) {//起始站為鄭州 flag=1;//標(biāo)志為1 for(j=0;j<d;j++) {//循環(huán)d次航班信息 // printf("%s %s %.2f %d %s %d",pointtr->station[j],pointtr->trainnumber[j],pointtr->price[j],pointtr->piaonumber[j],pointtr->time[j],pointtr->buynumber[j]);  if(0==strcmp(plane[j].zhongdian,mudi))  {//目的地一致時(shí)  count=1;//標(biāo)志為1  //輸出航班信息  printf("航班號: ");  printf("%s\n",plane[j].trainnumber);  printf("起始地: ") ;  printf("%s\n",plane[j].qishi);  printf("目的地: ");  printf("%s\n",plane[j].zhongdian);  printf("此次航班單人票價(jià): ");  printf("%.2f\n",plane[j].price);  printf("此次航班時(shí)間:");  printf("%s\n",plane[j].time);  printf("此次航班飛機(jī)票數(shù)量: ");  printf("%d\n",plane[j].piaonumber);   break;//結(jié)束循環(huán)  } } break ;//結(jié)束循環(huán) } else { flag=1; printf("輸入有誤:\n\n\n"); fflush(stdin);//清空輸入流  break; //結(jié)束循環(huán) }  if(0==count&&flag==0) {//輸入條件不符合 printf("sorry 您查詢的結(jié)果無信息!\n\n\n"); return ; } } if(1==count) {//找到用戶所需航班信息 printf("您確定購買此飛機(jī)票嗎?(1.是 2.否)\n"); scanf("%s",choice1);//輸入選項(xiàng) if(0==strcmp(choice1,"1")) {//選項(xiàng)為1時(shí) printf("請輸入您要購買的張數(shù):\n"); scanf("%d",&buynumber1);//輸入購買票數(shù) if(buynumber1<0) {//不符合客觀情況  printf("輸入有誤,請重新輸入!\n\n\n");  break; }  if(plane[j].piaonumber-buynumber1>=0) {//輸入正確  plane[j].piaonumber=plane[j].piaonumber-buynumber1;//計(jì)算剩余飛機(jī)票    p=new ticket;//生成新節(jié)點(diǎn)   if(p==NULL)  {//分配內(nèi)存失敗   printf("內(nèi)存申請失??!\n\n\n");  exit(1);  }  p->buynumber=buynumber1;//用戶所購票數(shù)  strcpy(p->buyer,mingzi);//用戶姓名  strcpy(p->ID,shenfen);//用戶身份證號   p->buy=plane[j];//航班信息  p->next=NULL;//指向下一個(gè)節(jié)點(diǎn)為空    p1=yonghu;//把用戶信息賦給p1  if(yonghu==NULL)//頭結(jié)點(diǎn)為空   yonghu=p;//把節(jié)點(diǎn)賦值給頭結(jié)點(diǎn)   else  {  while(p1->next!=NULL)  p1=p1->next;//把鏈表循環(huán)到尾部   p->next=p1->next;   p1->next=p;//把新節(jié)點(diǎn)p掛在鏈表尾部   } } else {  printf("飛機(jī)票已售完或不足,不能購買!\n\n\n");  break; } } else if(0==strcmp(choice1,"2")) {//輸入選項(xiàng)為2時(shí) printf("放棄購買, 返回!\n\n\n"); break; } else {//輸入選項(xiàng)有誤 printf("輸入錯(cuò)誤,返回!\n\n\n"); break; } } else//沒有找到用戶所需航班 printf("輸入有誤");  printf("是否繼續(xù)購票?(1.是,2.否)\n"); fflush(stdin);//清空輸入流  scanf("%s",choice2);//輸入選項(xiàng)  }while(strcmp(choice2,"1")==0);//當(dāng)選項(xiàng)為1時(shí)  if((fp1=fopen("goupiao.txt","w"))==NULL) {//判斷文件是否創(chuàng)建失敗 printf("創(chuàng)建文件失敗。\n"); return ;  }  p=yonghu;//把用戶信息賦給p while(p!=NULL) {//一直循環(huán)到鏈表為空 p->money=p->buy.price*p->buynumber;//計(jì)算票價(jià)總錢數(shù) fprintf(fp1,"%s %s %s %s %d %.2f %s\n",p->buyer,p->ID,p->buy.qishi,p->buy.zhongdian,p->buynumber,p->money,p->buy.time); p=p->next;//指向下一個(gè)節(jié)點(diǎn) } fclose(fp1);//關(guān)閉文件 return ;} ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////退訂飛機(jī)票void tui(){ FILE *fp,*fp1;//定義兩個(gè)文件指針 char s[20];//身份證號 char s1[20];//目的地  char choice[10];//選擇項(xiàng) int buynumber2;//退訂的票數(shù) int i,j;//控制循環(huán)變量 int find=0;//標(biāo)志變量 struct ticket *p;//定義新節(jié)點(diǎn) printf("您確定要退票嗎?1.是 2.否\n"); scanf("%s",choice);//輸入選項(xiàng) if(0==strcmp(choice,"1")) {//選項(xiàng)為1時(shí) printf("請輸入身份證號:\n"); scanf("%s",s);//輸入身份證號  printf("請輸入目的地:\n"); scanf("%s",s1);//輸入目的地 if((fp=fopen("goupiao.txt","r"))==NULL) {//打開文件  printf("打開文件失敗\n"); return ;  } p=yonghu;//把用戶信息賦給p while(p!=NULL) {//循環(huán)到鏈表為空時(shí) //fscanf(fp,"%s%s%s%s%f%d%s",p->buyer,p->ID,p->buy.qishi,p->buy.zhongdian,p->buy.price,&p->buynumber,p->buy.time); if(0==strcmp(s,p->ID)&&(0==strcmp(s1,p->buy.zhongdian))) {//找到對應(yīng)的用戶 find=1;//標(biāo)志變量為1 printf("請輸入退票張數(shù):\n"); scanf("%d",&buynumber2);//輸入退訂票數(shù) if(buynumber2<0) {//不符合客觀情況  printf("輸入有誤, 返回菜單!\n");  return ; }  if(p->buynumber>=buynumber2)  {//輸入票數(shù)符合條件  fclose(fp);//關(guān)閉yonghu文件  if((fp=fopen("goupiao.txt","w"))==NULL)  {//判斷文件是否創(chuàng)建失敗  printf("創(chuàng)建文件失敗\n");  return ;  }   if((fp1=fopen("txt.in","w"))==NULL)  {//判斷文件是否創(chuàng)建失敗  printf("創(chuàng)建文件失敗。\n");  return ;    }  printf("退票成功,返回菜單!\n\n\n");  for(i=0;i<d;i++)  {//循環(huán)d次航班信息  if(0==strcmp(plane[i].zhongdian,p->buy.zhongdian))  {//找到對應(yīng)終點(diǎn)站,計(jì)算剩余票數(shù)  plane[i].piaonumber+=buynumber2;  }  fprintf(fp1,"%s %s %s %f %d %s\n",plane[i].qishi,plane[i].zhongdian,plane[i].trainnumber,plane[i].price,plane[i].piaonumber,plane[i].time);  }  p->buynumber-=buynumber2;//用戶所購票數(shù)  p->money=p->buynumber*p->buy.price;//購票的總價(jià)錢    p=yonghu;//把用戶信息賦給p  while(p!=NULL)  {//循環(huán)鏈表為空時(shí)  fprintf(fp,"%s %s %s %s %.2f %d %s\n",p->buyer,p->ID,p->buy.qishi,p->buy.zhongdian,p->money,p->buynumber,p->buy.time);  p=p->next;//指向下一個(gè)節(jié)點(diǎn)  }    fclose(fp);//關(guān)閉文件  fclose(fp1);//關(guān)閉文件    return ; } else {  printf("輸入錯(cuò)誤,返回菜單!\n\n\n");   return ; } } p=p->next;//指向下一個(gè)節(jié)點(diǎn) } if(0==find) {//輸入有誤 printf("查詢不到信息,返回菜單\n\n\n"); return ; } } else if(0==strcmp(choice,"2")) {//輸入選項(xiàng)為2時(shí) printf("放棄退票,返回菜單!\n\n\n"); return ; } else {//輸入有誤 printf("輸入錯(cuò)誤,返回菜單!\n\n\n"); return ; } return ;}

感謝各位的閱讀,以上就是“怎么用C語言實(shí)現(xiàn)飛機(jī)票務(wù)系統(tǒng)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么用C語言實(shí)現(xiàn)飛機(jī)票務(wù)系統(tǒng)這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI