本文目录
- 飞机订票系统设计 c语言
- 飞机订票系统是一个怎么样的类型系统
- C语言程序设计飞机订票系统
- 飞机订票系统设计
- 飞机订票系统
- c语言如何编写飞机订票系统
- C语言程序写飞机订票系统
- 飞机、火车订票系统属于什么方面的计算机应用
飞机订票系统设计 c语言
(已修改,请用最新的代码)代码说明:
1级菜单:选择购买的航班号,并显示对应座位状态。
(我只做测试,所以初始化initFlight函数中我只初始了2个航班,需要自己按照我的代码添)
(注意:实际开发软件,链表数据是从数据库中读取的,需要实时同步,如果要多次调用initFlight函数,记得自己写一个释放内存的函数,把所有链表“SINFO和FLINFO”节点都释放掉,释放函数我没写,需要你自己写!!!)
2级菜单:选择购买对应座位号,完成购买,并实时显示购买结果。
位置编号、座位最大排数、舱室类型、折扣等参数均由常量参数空值,需要修改自行改常量。
注意:舱室类型(我默认3个类型头等舱、公务舱、经济舱)对应折扣参数:tDiscount二维数组。如要如要添加新的舱室类型,必须将参数常量TYPESIZE、typeName、types、tDiscount这4个同时修改,具体看代码备注!!
座位票价=基础票价*类型折扣*时段折扣。
因为飞机不让吸烟,所以我没做吸烟区(笑),如果你需要,可以作为类型自行添加!
#include《stdio.h》#include《stdlib.h》#include《conio.h》#include《string.h》#include《malloc.h》#include《time.h》//-----------------------相关参数,想改变,在这里修改!!!!!!!-----------------------------const float timeDiscount=1;//时段折扣,影响所有航班最终价格,默认1const char cID=“ABCD“;//位置编号const int maxRow=20;//位置最大排号//注意:如果修改类型数量,types和tDiscount必须同时修改!!!#define TYPESIZE 3//类型数量const char typeName[TYPESIZE]={“头等舱“,“公务舱“,“经济舱“};const int types[TYPESIZE]={{1,2},{3,4},{5,20}};//排号对应类型。1~2排头等舱,3~4排公务舱,5~20排经济舱const float tDiscount[TYPESIZE]={1.5,1.3,1};//类型折扣。头等舱1.5倍,公务舱1.3倍,经济舱1倍//-------------------------------------------------------------------------------typedef struct seatInfo//座位信息,一条链表对应一个航班信息,链表顺序从第一排左边第一个开始往后A1~D1,A2~D2。。。{ char cloID;//位置编号A、B、C、D int row;//位置排号 int type;//座位所属类型:0:头等舱、1:公务舱、2:经济舱,不同类型对应不同的类型折扣tDiscount int sell;//出售状态,0:未出售;1:已出售 struct seatInfo *next;}SINFO;typedef struct flightInfo//航班信息{ char fid;//航班号 time_t tfTime;//起飞时间 time_t ldTime;//降落时间 char toCity;//抵达城市 float tPrice;//基础票价,不同位置具有不同折扣,座位票价=基础票价*类型折扣*时段折扣 struct flightInfo *next; struct seatInfo *sHead;//对应座位链表的头节点}FLINFO;void meError(void *p);SINFO *getSINFO();//获取座位链表//addFLINFO:添加航班信息链表的节点flinfoHead:头节点(第一次传NULL会自动生成),flinfoTail:尾节点,fNew:要添加的结构信息(成员指针无需赋值)FLINFO *addFLINFO(FLINFO **ffHead,FLINFO *flinfoTail,FLINFO fNew);//返回尾节点time_t getTime_tfromStr(char *sTime);//将YYYY-MM-DD hh:mm:ss格式的时间字符串转换成time_t型数值FLINFO *initFlight();//初始化航班信息,返回航班链表头节点,如果想手动输入,请在这里添加!!!正常软件开发,这一步应该是从数据库读取!char *getTString(struct tm *tm0);//通过tm获取时间字符串void showSinfo(FLINFO *flinfo);//显示航班对应座位信息void printfFlinfo(FLINFO * flinfoHead);FLINFO *selectFlinfo(FLINFO *flinfoHead,char *fid);//选择航班号,返回节点void showSinfo(FLINFO *flinfo);//显示航班对应座位信息SINFO *selectSinfo(FLINFO *flinfo,char *sid);//选择座位,返回节点int main(){ FLINFO *flinfoHead=initFlight(),*ffSelect=NULL; SINFO *sfSelect=NULL; char fid={0},sid={10}; while(1) { ffSelect=NULL; sfSelect=NULL; memset(fid,0,10); memset(sid,0,10); printfFlinfo(flinfoHead); printf(“请输入要购买的航班号:“); scanf(“%s“,fid); ffSelect=selectFlinfo(flinfoHead,fid); if(!ffSelect) { printf(“未找到对应航班,按任意键继续-----\n“); getch(); system(“cls“); continue; } system(“cls“); printf(“航班号:%s 座位信息如下:\n“,ffSelect-》fid); showSinfo(ffSelect); printf(“请输入要购买的座位编号(输入0返回主菜单):“); scanf(“%s“,sid); if(!strcmp(sid,“0“)) { system(“cls“); continue; } else { sfSelect=selectSinfo(ffSelect,sid); if(!sfSelect||sfSelect-》sell) { printf(“未找到对应座位或该座位已出售,请重新输入!按任意键继续-----\n“); getch(); system(“cls“); continue; } printf(“购买成功!按任意键继续-----“); sfSelect-》sell=1; getch(); system(“cls“); } } return 0;}SINFO *selectSinfo(FLINFO *flinfo,char *sid)//选择座位,返回节点{ SINFO *sinfoHead=flinfo-》sHead; while(sinfoHead-》next) { if(sinfoHead-》next-》cloID==sid && sinfoHead-》next-》row==atoi(sid+1)) return sinfoHead-》next; sinfoHead=sinfoHead-》next; } return NULL;}void showSinfo(FLINFO *flinfo)//显示航班对应座位信息{ SINFO *sinfoHead=flinfo-》sHead,*sfp=NULL; int i,j,k,row=maxRow,clo=strlen(cID); char typeStr={0}; for(i=0;i《row;i++) { //---------读取座位所属舱室------------ memset(typeStr,0,10); for(k=0;k《TYPESIZE;k++) if(i+1》=types[k] && i+1《=types[k]) strcpy(typeStr,typeName[k]); //-------------------------------------- printf(“\n“); for(j=0;j《clo;j++) printf(“------------- “); printf(“\n“); sfp=sinfoHead; for(j=0;j《clo;j++) { printf(“| %c%02d | “,sfp-》next-》cloID,sfp-》next-》row); sfp=sfp-》next; } printf(“\n“); sfp=sinfoHead; for(j=0;j《clo;j++) { printf(“| %c | “,sfp-》next-》sell?2:1); sfp=sfp-》next; } printf(“\n“); sfp=sinfoHead; for(j=0;j《clo;j++) { printf(“|%6s:%4.0f| “,typeStr,flinfo-》tPrice*tDiscount[sfp-》next-》type]*timeDiscount); sfp=sfp-》next; } printf(“\n“); sinfoHead=sfp; } for(j=0;i《clo;j++) printf(“------- “); printf(“\n“);}FLINFO *selectFlinfo(FLINFO *flinfoHead,char *fid)//选择航班号,返回节点{ while(flinfoHead-》next) { if(!strcmp(flinfoHead-》next-》fid,fid)) return flinfoHead-》next; flinfoHead=flinfoHead-》next; } return NULL;}void printfFlinfo(FLINFO * flinfoHead){ while(flinfoHead-》next) { printf(“目的地:%s,航班号:%s\n----起飞时间:%s,抵达时间:%s\n\n“,flinfoHead-》next-》toCity,flinfoHead-》next-》fid,getTString(localtime(&flinfoHead-》next-》tfTime)),getTString(localtime(&flinfoHead-》next-》ldTime))); flinfoHead=flinfoHead-》next; }}char *getTString(struct tm *tm0)//通过tm获取时间字符串{ char *str=(char *)malloc(sizeof(char)*20),num={0}; meError(str); memset(str,0,20); sprintf(num,“%4d“,tm0-》tm_year+1900); strcat(str,num); strcat(str,“-“); memset(num,0,5); sprintf(num,“%02d“,tm0-》tm_mon); strcat(str,num); strcat(str,“-“); memset(num,0,5); sprintf(num,“%02d“,tm0-》tm_mday); strcat(str,num); strcat(str,“ “); memset(num,0,5); sprintf(num,“%02d“,tm0-》tm_hour); strcat(str,num); strcat(str,“:“); memset(num,0,5); sprintf(num,“%02d“,tm0-》tm_min); strcat(str,num); strcat(str,“:“); memset(num,0,5); sprintf(num,“%02d“,tm0-》tm_sec); strcat(str,num); return str;}time_t getTime_tfromStr(char *sTime)//将YYYY-MM-DD hh:mm:ss格式的时间字符串转换成time_t型数值{ time_t rt; struct tm *tm1=NULL; rt=time(NULL); tm1=localtime(&rt); sscanf(sTime,(“%4d-%2d-%2d %2d:%2d:%2d“),&tm1-》tm_year,&tm1-》tm_mon,&tm1-》tm_mday,&tm1-》tm_hour,&tm1-》tm_min,&tm1-》tm_sec); tm1-》tm_year-=1900; tm1-》tm_mon--; rt=mktime(tm1); return rt;}FLINFO *initFlight()//初始化航班信息,返回航班链表头节点,如果想手动输入,请在这里添加!!!正常软件开发,这一步应该是从数据库读取!{ FLINFO *ffHead=NULL,*flinfoTail=NULL,fNew; //--------添加一个航班信息----需要增加按照我下面调用方式写-------------------------------- strcpy(fNew.fid,“CI502“); fNew.tfTime=getTime_tfromStr(“2019-02-20 03:30:30“); fNew.ldTime=getTime_tfromStr(“2019-02-20 05:20:30“); strcpy(fNew.toCity,“台北“); fNew.tPrice=1000; fNew.next=NULL; flinfoTail=addFLINFO(&ffHead,flinfoTail,fNew); //-------------------------------------------------------------------------------------------- strcpy(fNew.fid,“9C8921“); fNew.tfTime=getTime_tfromStr(“2019-02-20 14:30:30“); fNew.ldTime=getTime_tfromStr(“2019-02-20 16:40:30“); strcpy(fNew.toCity,“香港“); fNew.tPrice=500; fNew.next=NULL; flinfoTail=addFLINFO(&ffHead,flinfoTail,fNew); return ffHead;}FLINFO *addFLINFO(FLINFO **ffHead,FLINFO *flinfoTail,FLINFO fNew)//返回尾节点//添加航班信息链表的节点flinfoHead:头节点(第一次传NULL会自动生成),flinfoTail:尾节点,fNew:要添加的结构信息(成员指针无需赋值){ FLINFO *flinfoHead=*ffHead; if(flinfoHead==NULL) { *ffHead=(FLINFO *)malloc(sizeof(FLINFO)); flinfoHead=*ffHead; meError(flinfoHead); flinfoHead-》next=NULL; } FLINFO *flinfoNew=(FLINFO *)malloc(sizeof(FLINFO)); meError(flinfoNew); flinfoNew-》next=NULL; flinfoNew-》fid=0; strcpy(flinfoNew-》fid,fNew.fid); flinfoNew-》ldTime=fNew.ldTime; flinfoNew-》tfTime=fNew.tfTime; flinfoNew-》toCity=0; strcpy(flinfoNew-》toCity,fNew.toCity); flinfoNew-》tPrice=fNew.tPrice; flinfoNew-》sHead=getSINFO(); if(flinfoHead-》next==NULL) flinfoHead-》next=flinfoNew; else flinfoTail-》next=flinfoNew; flinfoTail=flinfoNew; return flinfoTail;}SINFO *getSINFO()//获取座位链表{ int maxClo=strlen(cID),cnt=maxClo*maxRow,clo=0,row=1,i; SINFO *sinfoHead=(SINFO *)malloc(sizeof(SINFO)),*sinfoTail=NULL; meError(sinfoHead); sinfoHead-》next=NULL; SINFO *sinfoNew=NULL; while(cnt--)//按顺序生成对应数量的座位链表 { if(clo==maxClo) clo=0,row++; if(row==maxRow+1) row=1; sinfoNew=(SINFO *)malloc(sizeof(SINFO)); meError(sinfoNew); sinfoNew-》cloID=cID[clo]; sinfoNew-》row=row; for(i=0;i《TYPESIZE;i++) if(row》=types[i] && row《=types[i]) { sinfoNew-》type=i; break; } sinfoNew-》sell=0; sinfoNew-》next=NULL; if(sinfoHead-》next==NULL) sinfoHead-》next=sinfoNew; else sinfoTail-》next=sinfoNew; sinfoTail=sinfoNew; clo++; } return sinfoHead;}void meError(void *p)//内存申请失败{ if(p==NULL) { printf(“\n异常:内存申请失败!回车结束程序!\n“); while(getch()!=’\r’); exit(0); }}
飞机订票系统是一个怎么样的类型系统
咨询记录 · 回答于2021-12-08
飞机订票系统是一个怎么样的类型系统
飞机订票系统是一个实时系统
C语言程序设计飞机订票系统
#include 《stdio.h》#include 《string.h》#include 《conio.h》#include 《ctype.h》#include 《stdlib.h》#include 《malloc.h》#include 《math.h》//overflow#define ok 1typedef struct Yidingkehu{//单链表 char name;//已订票的客户姓名 int dingpiaoshu;//已订票数量 struct Yidingkehu *next1;//}Yidingkehu,*Link;typedef struct Weidingkehu{//单链队 char name;//预订票的客户姓名 int yudingpiao;// 要订票数量 struct Weidingkehu *next2;//下一个链队结点指针}Weidingkehu,*Qptr;typedef struct Hangxian{//创建一个含有六个信息的结构体 char hangbanhao;//航班号- char feijihao;//飞机号 int feixingriqi;//起飞时间 int chenkerenshu;//座位数 int yupiao;//余票 char zhongdianzhai;//降落城市 struct Hangxian *next;//指向下一个链结点的指针 struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针 struct Weidingkehu *yudingqueue;}Hangxian,*Linklist;Linklist InitLinklist();//01int InsertLinklist(Linklist &head1);//02void hbhchaxun();//通过航班号查询void mddchaxun();//通过目的地查询void lurugongneng();//初始化录入功能void chaxungongnen();//查询功能void dingpiaogongnen();//订票功能void tuipiaogongnen();//退票功能void main(){ int n; do{ //打印主界面 printf(“\t 欢迎使用航空客运订票系统\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t==》1. 录入功能 ==\n“); printf(“\t==》2. 查询功能 ==\n“); printf(“\t==》3. 订票功能 ==\n“); printf(“\t==》4. 退票功能 ==\n“); printf(“\t==》5. 退出 ==\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t请选择:“); scanf(“%d“,&n);printf(“\n“); switch(n) { case 1: lurugongneng();//录入功能 break; case 2: chaxungongnen();//查询功能 break; case 3: dingpiaogongnen();//订票功能 break; case 4:tuipiaogongnen();//退票功能 break; default :exit(0);//退出 } }while(n==1||n==2||n==3||n==4);}void lurugongneng()//初始化的单链表*********************************************************录入功能{ Linklist p; //int m,n; if(!p) exit(OVERFLOW); printf(“\t请依次输入下面几项内容:\n\n“);//这里的输入采用一个个单独输入,避免了乱赋值的现象 printf(“航班号\n“); gets(p-》hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车 gets(p-》hangbanhao); printf(“飞机号\n“); gets(p-》feijihao); printf(“终点站\n“); gets(p-》zhongdianzhai); printf(“飞行日期\n“); scanf(“%d“,&p-》feixingriqi); printf(“乘客总数\n“); scanf(“%d“,&p-》chenkerenshu); printf(“余票数\n“); scanf(“%d“,&p-》yupiao); }void chaxungongnen()//******************************************************************查询功能{ int n; printf(“\t 查 找 航 线 信 息 \n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t==》1. 通过目的地查询 ==\n“); printf(“\t==》2. 通过航班号查询 ==\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t请选择:“); scanf(“%d“,&n); printf(“\n“);//格式化 switch(n) { case 1:mddchaxun(); break; case 2:hbhchaxun(); break; default :break; }}void mddchaxun()//通过目的地查询{ char c; int m; Linklist p=L; printf(“\t请输入要查询的目的地:“); gets(c); gets(c);//原因同上 do{ p=p-》next; if(p) { m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0; if(m==0) { printf(“\t航班信息:\n“); printf(“\t航班号:%s\n“,p-》hangbanhao); printf(“\t飞机号:%s\n“,p-》feijihao); printf(“\t飞行时间:周%d\n“,p-》feixingriqi); printf(“\t余票量:%d\n“,p-》yupiao); } } else {//如果不匹配的话就做 printf(“\t对不起没有你要找的目的地:\n\n“); m=0; } }while(m!=0);}void hbhchaxun()//通过目的地查询{ char c; int m; Linklist p=L; printf(“\t请输入要查询的航班号:“); gets(c); gets(c);printf(“\n“); do{ p=p-》next; if(p) { m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p-》的作用是一样的 if(m==0) { printf(“\t航班信息:\n“); printf(“\t航班号:%s\n“,p-》hangbanhao); printf(“\t飞机号:%s\n“,p-》feijihao); printf(“\t飞行时间:周%d\n“,p-》feixingriqi); printf(“\t余票量:%d\n\n“,p-》yupiao); } } else {//如果不匹配的话就做 printf(“\t对不起没有你要找的航班号:\n“); m=0; } }while(m!=0);}void dingpiaogongnen()//***************************************************************订票功能{ char c; int m=1,piao,ydpiao=0,yd=0,n;// gets(c); printf(“请输入终点站名:“); gets(c); printf(“\n“); p=L-》next; if(p) { do{//查找一下,是否有这个航班 if(!p) { printf(“对不起,没有你要找的航班:\n\n“); goto loop1; } m=strcmpi(p-》zhongdianzhai,c); if(m==0) { printf(“航班信息:\n“); printf(“航班号:%s\n“,p-》hangbanhao); printf(“飞机号:%s\n“,p-》feijihao); printf(“飞行时间:周%d\n“,p-》feixingriqi); printf(“余票量:%d\n“,p-》yupiao);} else p=p-》next; }while(m!=0); if(m==0) { do{ printf(“\n请输入你要订的票数:“); scanf(“%d“,&piao); if(piao《=p-》yupiao) { h=p-》yiding; if(h) { h1=h; h=h-》next1; h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu)); printf(“请输入你的名字:“); gets(h-》name);gets(h-》name); h-》dingpiaoshu=piao; h-》next1=h1-》next1; h1-》next1=h; p-》yupiao=p-》yupiao-piao; printf(“订票成功:\n“); m=2; } } else { printf(“余票量:%d\n“,p-》yupiao); printf(“对不起,余票 %d 张不足,不能完成订票\n\n“,p-》yupiao); printf(“ 是否要重新订票?\n“); printf(“需要请输入1 否则请按2 预订请输入3 : “); scanf(“%d“,&m); printf(“\n“); if(m==3) goto loop3; } }while(m==1); } } else if(!p) {loop3: struct Weidingkehu *q3;printf(“对不起,该航班的票已售完\n“);q.front=p-》yudingqueue;if(q.front==q.rear) printf(“没有人预订票,是否要预订?\n“);else if(q.front!=q.rear) printf(“已有人预订票,是否要预订?\n“);printf(“预订请输入1 否则输入2 : “);scanf(“%d“,&n);printf(“\n“);if(n==1){ printf(“请输入你的姓名“); gets(q3-》name); gets(q3-》name);//q3不能指向name??? printf(“请输入订票数“); scanf(“%d“,&q3-》yudingpiao); q3-》next2=NULL; q.rear-》next2=q3; q.rear=q3; printf(“ 你已经预订了 !\n“);} }loop1:;}void tuipiaogongnen()//***************************************************************退票功能{ }请采纳答案,支持我一下。
飞机订票系统设计
#include 《stdio.h》#include 《string.h》#include 《conio.h》#include 《ctype.h》#include 《stdlib.h》#include 《malloc.h》#include 《math.h》//overflow#define ok 1typedef struct Yidingkehu{//单链表 char name;//已订票的客户姓名 int dingpiaoshu;//已订票数量 struct Yidingkehu *next1;//}Yidingkehu,*Link;typedef struct Weidingkehu{//单链队 char name;//预订票的客户姓名 int yudingpiao;// 要订票数量 struct Weidingkehu *next2;//下一个链队结点指针}Weidingkehu,*Qptr;typedef struct Hangxian{//创建一个含有六个信息的结构体 char hangbanhao;//航班号- char feijihao;//飞机号 int feixingriqi;//起飞时间 int chenkerenshu;//座位数 int yupiao;//余票 char zhongdianzhai;//降落城市 struct Hangxian *next;//指向下一个链结点的指针 struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针 struct Weidingkehu *yudingqueue;}Hangxian,*Linklist;Linklist InitLinklist();//01int InsertLinklist(Linklist &head1);//02void hbhchaxun();//通过航班号查询void mddchaxun();//通过目的地查询void lurugongneng();//初始化录入功能void chaxungongnen();//查询功能void dingpiaogongnen();//订票功能void tuipiaogongnen();//退票功能void main(){ int n; do{ //打印主界面 printf(“\t 欢迎使用航空客运订票系统\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t==》1. 录入功能 ==\n“); printf(“\t==》2. 查询功能 ==\n“); printf(“\t==》3. 订票功能 ==\n“); printf(“\t==》4. 退票功能 ==\n“); printf(“\t==》5. 退出 ==\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t请选择:“); scanf(“%d“,&n);printf(“\n“); switch(n) { case 1: lurugongneng();//录入功能 break; case 2: chaxungongnen();//查询功能 break; case 3: dingpiaogongnen();//订票功能 break; case 4:tuipiaogongnen();//退票功能 break; default :exit(0);//退出 } }while(n==1||n==2||n==3||n==4);}void lurugongneng()//初始化的单链表*********************************************************录入功能{ Linklist p; //int m,n; if(!p) exit(OVERFLOW); printf(“\t请依次输入下面几项内容:\n\n“);//这里的输入采用一个个单独输入,避免了乱赋值的现象 printf(“航班号\n“); gets(p-》hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车 gets(p-》hangbanhao); printf(“飞机号\n“); gets(p-》feijihao); printf(“终点站\n“); gets(p-》zhongdianzhai); printf(“飞行日期\n“); scanf(“%d“,&p-》feixingriqi); printf(“乘客总数\n“); scanf(“%d“,&p-》chenkerenshu); printf(“余票数\n“); scanf(“%d“,&p-》yupiao); }void chaxungongnen()//******************************************************************查询功能{ int n; printf(“\t 查 找 航 线 信 息 \n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t==》1. 通过目的地查询 ==\n“); printf(“\t==》2. 通过航班号查询 ==\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t请选择:“); scanf(“%d“,&n); printf(“\n“);//格式化 switch(n) { case 1:mddchaxun(); break; case 2:hbhchaxun(); break; default :break; }}void mddchaxun()//通过目的地查询{ char c; int m; Linklist p=L; printf(“\t请输入要查询的目的地:“); gets(c); gets(c);//原因同上 do{ p=p-》next; if(p) { m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0; if(m==0) { printf(“\t航班信息:\n“); printf(“\t航班号:%s\n“,p-》hangbanhao); printf(“\t飞机号:%s\n“,p-》feijihao); printf(“\t飞行时间:周%d\n“,p-》feixingriqi); printf(“\t余票量:%d\n“,p-》yupiao); } } else {//如果不匹配的话就做 printf(“\t对不起没有你要找的目的地:\n\n“); m=0; } }while(m!=0);}void hbhchaxun()//通过目的地查询{ char c; int m; Linklist p=L; printf(“\t请输入要查询的航班号:“); gets(c); gets(c);printf(“\n“); do{ p=p-》next; if(p) { m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p-》的作用是一样的 if(m==0) { printf(“\t航班信息:\n“); printf(“\t航班号:%s\n“,p-》hangbanhao); printf(“\t飞机号:%s\n“,p-》feijihao); printf(“\t飞行时间:周%d\n“,p-》feixingriqi); printf(“\t余票量:%d\n\n“,p-》yupiao); } } else {//如果不匹配的话就做 printf(“\t对不起没有你要找的航班号:\n“); m=0; } }while(m!=0);}void dingpiaogongnen()//***************************************************************订票功能{ char c; int m=1,piao,ydpiao=0,yd=0,n;// gets(c); printf(“请输入终点站名:“); gets(c); printf(“\n“); p=L-》next; if(p) { do{//查找一下,是否有这个航班 if(!p) { printf(“对不起,没有你要找的航班:\n\n“); goto loop1; } m=strcmpi(p-》zhongdianzhai,c); if(m==0) { printf(“航班信息:\n“); printf(“航班号:%s\n“,p-》hangbanhao); printf(“飞机号:%s\n“,p-》feijihao); printf(“飞行时间:周%d\n“,p-》feixingriqi); printf(“余票量:%d\n“,p-》yupiao);} else p=p-》next; }while(m!=0); if(m==0) { do{ printf(“\n请输入你要订的票数:“); scanf(“%d“,&piao); if(piao《=p-》yupiao) { h=p-》yiding; if(h) { h1=h; h=h-》next1; h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu)); printf(“请输入你的名字:“); gets(h-》name);gets(h-》name); h-》dingpiaoshu=piao; h-》next1=h1-》next1; h1-》next1=h; p-》yupiao=p-》yupiao-piao; printf(“订票成功:\n“); m=2; } } else { printf(“余票量:%d\n“,p-》yupiao); printf(“对不起,余票 %d 张不足,不能完成订票\n\n“,p-》yupiao); printf(“ 是否要重新订票?\n“); printf(“需要请输入1 否则请按2 预订请输入3 : “); scanf(“%d“,&m); printf(“\n“); if(m==3) goto loop3; } }while(m==1); } } else if(!p) {loop3: struct Weidingkehu *q3;printf(“对不起,该航班的票已售完\n“);q.front=p-》yudingqueue;if(q.front==q.rear) printf(“没有人预订票,是否要预订?\n“);else if(q.front!=q.rear) printf(“已有人预订票,是否要预订?\n“);printf(“预订请输入1 否则输入2 : “);scanf(“%d“,&n);printf(“\n“);if(n==1){ printf(“请输入你的姓名“); gets(q3-》name); gets(q3-》name);//q3不能指向name??? printf(“请输入订票数“); scanf(“%d“,&q3-》yudingpiao); q3-》next2=NULL; q.rear-》next2=q3; q.rear=q3; printf(“ 你已经预订了 !\n“);} }loop1:;}void tuipiaogongnen()//***************************************************************退票功能{ }以上回答你满意么?
飞机订票系统
#include《stdio.h》 #include《conio.h》 #include《string.h》 #include《stdlib.h》 #define OK 1 #define ERROR 0 #define PR printf #define NULL 0 int N=10; typedef struct customer { char name; int seat_num; int left; struct customer *next; }customer; customer *creat_customer()//初始化链表 { customer *l; l=(customer *)malloc(sizeof(customer)); if(l==NULL) { exit(0); } l-》next=NULL; return l; } int insert_customer(customer **p,char *name,int seat,int left) {//customer链表插入操作 customer *q; q=(customer*)malloc(sizeof(customer)); strcpy(q-》name , name); q-》seat_num =seat; q-》left=left; q-》next=NULL; (*p)-》next=q; (*p)=(*p)-》next; return OK; } int delete_cus(customer *h,char *name)//顾客退票 { customer *p,*pr; pr=h; p=pr-》next ; while(p!=NULL) { if(strcmp(name,p-》name )==0) { pr-》next =p-》next ; PR(“顾客 %s 退票成功!\n“,p-》name ); return OK; } pr=pr-》next ; p=pr-》next ; } PR(“无此顾客,无法退票!\n“); return ERROR; } int save_customer (customer*l)//保存顾客信息 { FILE *fp_customer; customer *p=l-》next; char filename=“c:\\customer.dat“; if((fp_customer=fopen(filename,“wb“))==NULL) { printf(“can not open file to write:%s\n“,filename); return ERROR; } for(;p!=NULL;p=p-》next) { fprintf(fp_customer,“%s,%d%“,p-》name,p-》seat_num); } fclose(fp_customer); return OK; } int book(customer *c,char *name)//订票函数 { customer *q=c-》next ; for(;q-》next !=NULL;q=q-》next){} { if(q-》left 》0) { PR(“恭喜您!订票成功!\n“); PR(“你的座位号是: %d\n“,(N-q-》left +1)); insert_customer(&q,name,N -q-》left +1,q-》left); q-》left --; return OK; } else PR(“对不起,座位已满!\n“); return 0; } } int print_customer(customer*l)//打印顾客信息 { customer *p=l-》next; for(;p!=NULL;p=p-》next) { PR(“%10s %d\n“,p-》name,p-》seat_num); } return OK; } void main() { char choice,name; int t=1; customer *cus=creat_customer(); customer *l = creat_customer(); while(t==1) { PR(“*----------------------------*\n“); PR(“*--航空订票系统选择菜单------*\n“); PR(“* 订票-------0 *\n“); PR(“* 退票-------1 *\n“); PR(“* 查询-------2 *\n“); PR(“* 退出-------5 *\n“); PR(“*----------------------------*\n“); PR(“请选择: “); choice = getch(); PR(“%c\n“,choice); if(choice==’0’) { PR(“请输入你的姓名: “); scanf( “%s“,name); book(cus,name); save_customer(cus); } else if(choice==’1’) { PR(“\n请输入你的姓名: “); scanf( “%s“,name); delete_cus(cus,name); save_customer(cus); } else if(choice==’2’) { customer *p=l-》next; if(l!=NULL) do { PR(“%ld%5.1f\n“,p-》name,p-》seat_num); p=p-》next; }while(p!=NULL); } else if(choice==’3’) { PR(“byb“); t=0; } else { PR(“error\n“); } } getch(); }
c语言如何编写飞机订票系统
#include 《stdio.h》#include 《string.h》#include 《conio.h》#include 《ctype.h》#include 《stdlib.h》#include 《malloc.h》#include 《math.h》//overflow#define ok 1typedef struct Yidingkehu{//单链表 char name;//已订票的客户姓名 int dingpiaoshu;//已订票数量 struct Yidingkehu *next1;//}Yidingkehu,*Link;typedef struct Weidingkehu{//单链队 char name;//预订票的客户姓名 int yudingpiao;// 要订票数量 struct Weidingkehu *next2;//下一个链队结点指针}Weidingkehu,*Qptr;typedef struct Hangxian{//创建一个含有六个信息的结构体 char hangbanhao;//航班号- char feijihao;//飞机号 int feixingriqi;//起飞时间 int chenkerenshu;//座位数 int yupiao;//余票 char zhongdianzhai;//降落城市 struct Hangxian *next;//指向下一个链结点的指针 struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针 struct Weidingkehu *yudingqueue;}Hangxian,*Linklist;Linklist InitLinklist();//01int InsertLinklist(Linklist &head1);//02void hbhchaxun();//通过航班号查询void mddchaxun();//通过目的地查询void lurugongneng();//初始化录入功能void chaxungongnen();//查询功能void dingpiaogongnen();//订票功能void tuipiaogongnen();//退票功能void main(){ int n; do{ //打印主界面 printf(“\t 欢迎使用航空客运订票系统\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t==》1. 录入功能 ==\n“); printf(“\t==》2. 查询功能 ==\n“); printf(“\t==》3. 订票功能 ==\n“); printf(“\t==》4. 退票功能 ==\n“); printf(“\t==》5. 退出 ==\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t请选择:“); scanf(“%d“,&n);printf(“\n“); switch(n) { case 1: lurugongneng();//录入功能 break; case 2: chaxungongnen();//查询功能 break; case 3: dingpiaogongnen();//订票功能 break; case 4:tuipiaogongnen();//退票功能 break; default :exit(0);//退出 } }while(n==1||n==2||n==3||n==4);}void lurugongneng()//初始化的单链表*********************************************************录入功能{ Linklist p; //int m,n; if(!p) exit(OVERFLOW); printf(“\t请依次输入下面几项内容:\n\n“);//这里的输入采用一个个单独输入,避免了乱赋值的现象 printf(“航班号\n“); gets(p-》hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车 gets(p-》hangbanhao); printf(“飞机号\n“); gets(p-》feijihao); printf(“终点站\n“); gets(p-》zhongdianzhai); printf(“飞行日期\n“); scanf(“%d“,&p-》feixingriqi); printf(“乘客总数\n“); scanf(“%d“,&p-》chenkerenshu); printf(“余票数\n“); scanf(“%d“,&p-》yupiao); }void chaxungongnen()//******************************************************************查询功能{ int n; printf(“\t 查 找 航 线 信 息 \n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t==》1. 通过目的地查询 ==\n“); printf(“\t==》2. 通过航班号查询 ==\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t请选择:“); scanf(“%d“,&n); printf(“\n“);//格式化 switch(n) { case 1:mddchaxun(); break; case 2:hbhchaxun(); break; default :break; }}void mddchaxun()//通过目的地查询{ char c; int m; Linklist p=L; printf(“\t请输入要查询的目的地:“); gets(c); gets(c);//原因同上 do{ p=p-》next; if(p) { m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0; if(m==0) { printf(“\t航班信息:\n“); printf(“\t航班号:%s\n“,p-》hangbanhao); printf(“\t飞机号:%s\n“,p-》feijihao); printf(“\t飞行时间:周%d\n“,p-》feixingriqi); printf(“\t余票量:%d\n“,p-》yupiao); } } else {//如果不匹配的话就做 printf(“\t对不起没有你要找的目的地:\n\n“); m=0; } }while(m!=0);}void hbhchaxun()//通过目的地查询{ char c; int m; Linklist p=L; printf(“\t请输入要查询的航班号:“); gets(c); gets(c);printf(“\n“); do{ p=p-》next; if(p) { m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p-》的作用是一样的 if(m==0) { printf(“\t航班信息:\n“); printf(“\t航班号:%s\n“,p-》hangbanhao); printf(“\t飞机号:%s\n“,p-》feijihao); printf(“\t飞行时间:周%d\n“,p-》feixingriqi); printf(“\t余票量:%d\n\n“,p-》yupiao); } } else {//如果不匹配的话就做 printf(“\t对不起没有你要找的航班号:\n“); m=0; } }while(m!=0);}void dingpiaogongnen()//***************************************************************订票功能{ char c; int m=1,piao,ydpiao=0,yd=0,n;// gets(c); printf(“请输入终点站名:“); gets(c); printf(“\n“); p=L-》next; if(p) { do{//查找一下,是否有这个航班 if(!p) { printf(“对不起,没有你要找的航班:\n\n“); goto loop1; } m=strcmpi(p-》zhongdianzhai,c); if(m==0) { printf(“航班信息:\n“); printf(“航班号:%s\n“,p-》hangbanhao); printf(“飞机号:%s\n“,p-》feijihao); printf(“飞行时间:周%d\n“,p-》feixingriqi); printf(“余票量:%d\n“,p-》yupiao);} else p=p-》next; }while(m!=0); if(m==0) { do{ printf(“\n请输入你要订的票数:“); scanf(“%d“,&piao); if(piao《=p-》yupiao) { h=p-》yiding; if(h) { h1=h; h=h-》next1; h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu)); printf(“请输入你的名字:“); gets(h-》name);gets(h-》name); h-》dingpiaoshu=piao; h-》next1=h1-》next1; h1-》next1=h; p-》yupiao=p-》yupiao-piao; printf(“订票成功:\n“); m=2; } } else { printf(“余票量:%d\n“,p-》yupiao); printf(“对不起,余票 %d 张不足,不能完成订票\n\n“,p-》yupiao); printf(“ 是否要重新订票?\n“); printf(“需要请输入1 否则请按2 预订请输入3 : “); scanf(“%d“,&m); printf(“\n“); if(m==3) goto loop3; } }while(m==1); } } else if(!p) {loop3: struct Weidingkehu *q3;printf(“对不起,该航班的票已售完\n“);q.front=p-》yudingqueue;if(q.front==q.rear) printf(“没有人预订票,是否要预订?\n“);else if(q.front!=q.rear) printf(“已有人预订票,是否要预订?\n“);printf(“预订请输入1 否则输入2 : “);scanf(“%d“,&n);printf(“\n“);if(n==1){ printf(“请输入你的姓名“); gets(q3-》name); gets(q3-》name);//q3不能指向name??? printf(“请输入订票数“); scanf(“%d“,&q3-》yudingpiao); q3-》next2=NULL; q.rear-》next2=q3; q.rear=q3; printf(“ 你已经预订了 !\n“);} }loop1:;}void tuipiaogongnen()//***************************************************************退票功能{ }///////////以下是人家的要求//////////1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:起飞地、目的地 航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。2、本系统显示这样的菜单:(1) 输入航班信息(2) 输出航班信息(3) 查找航班信息a.显示空座的数量b.显示空座的信息c.显示已订座的信息d.起飞时间(4)订票预约(5)删除定票预约(6)退出系统1、 本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。2、 查找航班信息既可按线路查,也可按目的地查。4、在两次运行之间,数据被保存于一个文件里,当本程序重新开始的时候,它首先从该文件读入数据
C语言程序写飞机订票系统
#include 《stdio.h》#include 《string.h》#include 《conio.h》#include 《ctype.h》#include 《stdlib.h》#include 《malloc.h》#include 《math.h》//overflow#define ok 1typedef struct Yidingkehu{//单链表 char name;//已订票的客户姓名 int dingpiaoshu;//已订票数量 struct Yidingkehu *next1;//}Yidingkehu,*Link;typedef struct Weidingkehu{//单链队 char name;//预订票的客户姓名 int yudingpiao;// 要订票数量 struct Weidingkehu *next2;//下一个链队结点指针}Weidingkehu,*Qptr;typedef struct Hangxian{//创建一个含有六个信息的结构体 char hangbanhao;//航班号- char feijihao;//飞机号 int feixingriqi;//起飞时间 int chenkerenshu;//座位数 int yupiao;//余票 char zhongdianzhai;//降落城市 struct Hangxian *next;//指向下一个链结点的指针 struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针 struct Weidingkehu *yudingqueue;}Hangxian,*Linklist;Linklist InitLinklist();//01int InsertLinklist(Linklist &head1);//02void hbhchaxun();//通过航班号查询void mddchaxun();//通过目的地查询void lurugongneng();//初始化录入功能void chaxungongnen();//查询功能void dingpiaogongnen();//订票功能void tuipiaogongnen();//退票功能void main(){ int n; do{ //打印主界面 printf(“\t 欢迎使用航空客运订票系统\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t==》1. 录入功能 ==\n“); printf(“\t==》2. 查询功能 ==\n“); printf(“\t==》3. 订票功能 ==\n“); printf(“\t==》4. 退票功能 ==\n“); printf(“\t==》5. 退出 ==\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t请选择:“); scanf(“%d“,&n);printf(“\n“); switch(n) { case 1: lurugongneng();//录入功能 break; case 2: chaxungongnen();//查询功能 break; case 3: dingpiaogongnen();//订票功能 break; case 4:tuipiaogongnen();//退票功能 break; default :exit(0);//退出 } }while(n==1||n==2||n==3||n==4);}void lurugongneng()//初始化的单链表*********************************************************录入功能{ Linklist p; //int m,n; if(!p) exit(OVERFLOW); printf(“\t请依次输入下面几项内容:\n\n“);//这里的输入采用一个个单独输入,避免了乱赋值的现象 printf(“航班号\n“); gets(p-》hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车 gets(p-》hangbanhao); printf(“飞机号\n“); gets(p-》feijihao); printf(“终点站\n“); gets(p-》zhongdianzhai); printf(“飞行日期\n“); scanf(“%d“,&p-》feixingriqi); printf(“乘客总数\n“); scanf(“%d“,&p-》chenkerenshu); printf(“余票数\n“); scanf(“%d“,&p-》yupiao); }void chaxungongnen()//******************************************************************查询功能{ int n; printf(“\t 查 找 航 线 信 息 \n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t==》1. 通过目的地查询 ==\n“); printf(“\t==》2. 通过航班号查询 ==\n“); printf(“\t+++++++++++++++++++++++++++++\n“); printf(“\t请选择:“); scanf(“%d“,&n); printf(“\n“);//格式化 switch(n) { case 1:mddchaxun(); break; case 2:hbhchaxun(); break; default :break; }}void mddchaxun()//通过目的地查询{ char c; int m; Linklist p=L; printf(“\t请输入要查询的目的地:“); gets(c); gets(c);//原因同上 do{ p=p-》next; if(p) { m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0; if(m==0) { printf(“\t航班信息:\n“); printf(“\t航班号:%s\n“,p-》hangbanhao); printf(“\t飞机号:%s\n“,p-》feijihao); printf(“\t飞行时间:周%d\n“,p-》feixingriqi); printf(“\t余票量:%d\n“,p-》yupiao); } } else {//如果不匹配的话就做 printf(“\t对不起没有你要找的目的地:\n\n“); m=0; } }while(m!=0);}void hbhchaxun()//通过目的地查询{ char c; int m; Linklist p=L; printf(“\t请输入要查询的航班号:“); gets(c); gets(c);printf(“\n“); do{ p=p-》next; if(p) { m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p-》的作用是一样的 if(m==0) { printf(“\t航班信息:\n“); printf(“\t航班号:%s\n“,p-》hangbanhao); printf(“\t飞机号:%s\n“,p-》feijihao); printf(“\t飞行时间:周%d\n“,p-》feixingriqi); printf(“\t余票量:%d\n\n“,p-》yupiao); } } else {//如果不匹配的话就做 printf(“\t对不起没有你要找的航班号:\n“); m=0; } }while(m!=0);}void dingpiaogongnen()//***************************************************************订票功能{ char c; int m=1,piao,ydpiao=0,yd=0,n;// gets(c); printf(“请输入终点站名:“); gets(c); printf(“\n“); p=L-》next; if(p) { do{//查找一下,是否有这个航班 if(!p) { printf(“对不起,没有你要找的航班:\n\n“); goto loop1; } m=strcmpi(p-》zhongdianzhai,c); if(m==0) { printf(“航班信息:\n“); printf(“航班号:%s\n“,p-》hangbanhao); printf(“飞机号:%s\n“,p-》feijihao); printf(“飞行时间:周%d\n“,p-》feixingriqi); printf(“余票量:%d\n“,p-》yupiao);} else p=p-》next; }while(m!=0); if(m==0) { do{ printf(“\n请输入你要订的票数:“); scanf(“%d“,&piao); if(piao《=p-》yupiao) { h=p-》yiding; if(h) { h1=h; h=h-》next1; h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu)); printf(“请输入你的名字:“); gets(h-》name);gets(h-》name); h-》dingpiaoshu=piao; h-》next1=h1-》next1; h1-》next1=h; p-》yupiao=p-》yupiao-piao; printf(“订票成功:\n“); m=2; } } else { printf(“余票量:%d\n“,p-》yupiao); printf(“对不起,余票 %d 张不足,不能完成订票\n\n“,p-》yupiao); printf(“ 是否要重新订票?\n“); printf(“需要请输入1 否则请按2 预订请输入3 : “); scanf(“%d“,&m); printf(“\n“); if(m==3) goto loop3; } }while(m==1); } } else if(!p) {loop3: struct Weidingkehu *q3;printf(“对不起,该航班的票已售完\n“);q.front=p-》yudingqueue;if(q.front==q.rear) printf(“没有人预订票,是否要预订?\n“);else if(q.front!=q.rear) printf(“已有人预订票,是否要预订?\n“);printf(“预订请输入1 否则输入2 : “);scanf(“%d“,&n);printf(“\n“);if(n==1){ printf(“请输入你的姓名“); gets(q3-》name); gets(q3-》name);//q3不能指向name??? printf(“请输入订票数“); scanf(“%d“,&q3-》yudingpiao); q3-》next2=NULL; q.rear-》next2=q3; q.rear=q3; printf(“ 你已经预订了 !\n“);} }loop1:;}void tuipiaogongnen()//***************************************************************退票功能{ }请采纳答案,支持我一下。
飞机、火车订票系统属于什么方面的计算机应用
属于数据处理方面的计算机应用。
数据处理流程主要包括数据收集、数据预处理、数据存储、数据处理与分析、数据展示/数据可视化、数据应用等环节,其中数据质量贯穿于整个大数据流程,每一个数据处理环节都会对大数据质量产生影响作用。
通常,一个好的数据产品要有大量的数据规模、快速的数据处理、精确的数据分析与预测、优秀的可视化图表以及简练易懂的结果解释。
扩展资料:
数据的分布式处理技术与存储形式、业务数据类型等相关,针对大数据处理的主要计算模型有MapReduce分布式计算框架、分布式内存计算系统、分布式流计算系统等。
MapReduce是一个批处理的分布式计算框架,可对海量数据进行并行分析与处理,它适合对各种结构化、非结构化数据的处理。分布式内存计算系统可有效减少数据读写和移动的开销,提高大数据处理性能。分布式流计算系统则是对数据流进行实时处理,以保障大数据的时效性和价值性。
总之,无论哪种大数据分布式处理与计算系统,都有利于提高大数据的价值性、可用性、时效性和准确性。
大数据的类型和存储形式决定了其所采用的数据处理系统,而数据处理系统的性能与优劣直接影响大数据质量的价值性、可用性、时效性和准确性。因此在进行大数据处理时,要根据大数据类型选择合适的存储形式和数据处理系统,以实现大数据质量的最优化。
参考资料来源:百度百科——数据处理