欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

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

這篇文章主要介紹C語言實(shí)現(xiàn)飛機(jī)票務(wù)系統(tǒng)的方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)公司一直在為企業(yè)提供服務(wù),多年的磨煉,使我們在創(chuàng)意設(shè)計(jì),成都營銷網(wǎng)站建設(shè)到技術(shù)研發(fā)擁有了開發(fā)經(jīng)驗(yàn)。我們擅長傾聽企業(yè)需求,挖掘用戶對產(chǎn)品需求服務(wù)價(jià)值,為企業(yè)制作有用的創(chuàng)意設(shè)計(jì)體驗(yàn)。核心團(tuán)隊(duì)擁有超過10多年以上行業(yè)經(jīng)驗(yàn),涵蓋創(chuàng)意,策化,開發(fā)等專業(yè)領(lǐng)域,公司涉及領(lǐng)域有基礎(chǔ)互聯(lián)網(wǎng)服務(wù)成都服務(wù)器托管成都App定制開發(fā)、手機(jī)移動建站、網(wǎng)頁設(shè)計(jì)、網(wǎng)絡(luò)整合營銷。

飛機(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]='\0';
 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]='\0';
 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]='\0';//數(shù)組以\0結(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)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標(biāo)題:C語言實(shí)現(xiàn)飛機(jī)票務(wù)系統(tǒng)的方法
瀏覽地址:http://aaarwkj.com/article26/goodcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)站維護(hù)品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
亚洲国产日韩精品欧美| 农村女人91熟女熟妇| 美国真人性做爰视频免费| 日本一区二区三区精彩视频| 日本黄色高清视频一区| 亚洲 综合 久久久| 国产91九色蝌蚪在线观看| 久久精品中文字幕有码日本道| av中文字幕啊嗯不要| 色呦呦中文字幕在线播放| 国产免费高清视频成人| 国产精品国产精品国产| 国产产品在线免费看91| 日本精品国产一区二区在线| 午夜精品久久久免费视频| 亚洲精品综合在线二区| 天堂av中文字幕在线不卡| 欧美日韩亚洲视频二区| 岛国av不卡一二三区| 人妻少妇被猛烈进入文字幕| 欧美国产日韩亚洲综合| 琪琪精品免费一区二区三区| 亚洲欧洲成熟熟女妇专区乱| 校园春色亚洲一区二区| 日韩一区二区三精品| 欧美日韩福利一区二区三区| 欧美高清一区二区在线观看| 日本中文字幕乱码一区| 亚洲伦理一区二区三区中文| 日本高清一区二区不卡视频| 亚洲一区欧美二区日韩| 欧美亚洲五月婷婷激情| 91超碰在线观看中文| 久久亚洲一本综合久久| 超碰欧美黄色免费在线| 日韩中文字幕一二一二区 | 欧美中日韩精品免费在线| 毛茸茸的阴户在线观看| 欧美aⅴ精品一区二区三区| 国产黄色一区二区三区| 日韩人妻一区中文字幕|