资源描述:
《航班信息查系统.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、某公司每天有10航班(航班号、价格),每个航班的飞机,共有80个坐位,分20排,每排4个位子。编号为A,B,C,D。如座位号:10D表示10排D座。设计一程序,完成以下功能:1)1)订票:输入乘客的姓名、身份证号、航班号、乘坐日期,座位号,完成订票功能(一次只能预定一张机票)。需要判断航班号是否存在,身份证号的长度是否为15位或18位,判断座位号是否为航班上正确的座位号,座位号是否已经被其他顾客预定,乘坐日期格式是否合法(格式为:YYYY-MM-DD,如2009-01-02)))2)2)退票:输入乘客的
2、姓名、航班号、日期,完成退票功能。需要判断该乘客是否已经订购了该日期的该航班)(不考虑航班飞机是否已经起飞,认为任何时候都可以退票)3)3)查询指定航班、指定日期的乘客信息4)4)查询指定航班的飞机票的销售额5)5)查询指定身份证号的顾客的乘坐飞机历史。提示:ll定义一个日期结构体保存日期,具体信息为:年、月、日ll判断乘坐日期的格式是否合法时,需要判断长度是否为10,第5位和第8位是否为’-’,字符,将1-4位表示的年份,6-7位表示的月份,9-10位表示的日期分别转换成整数。判断是否满足构成日期的条
3、件闰年月份只能是1-12之间的数,如果是闰年,二月可以是29天否则不能大于28,1,3,5,7,8,10,12月可以是31天,其余只能小于等于30(建议写成函数)。ll定义一个结构体数组保存航班信息,具体为:航班号、价格ll定义一个结构体保存座位号,具体为:排,座ll定义一个订票链表,保存订票信息,具体为:乘客的姓名、身份证号、航班号、乘坐日期,座位号。输入时,判断排号是否大于0小于等于20,座号是否为A、B、C、D,同时需要查询订票链表,是否存在相同乘坐日期、相同航班、相同座位号的记录,如果有则表示已
4、经预定,如果没有则插入订票链表ll退票时,需要从输入身份证号、航班号、乘坐日期,查询订票链表,如果在该记录,则删除,#include#include#include#include#defineN10typedefstruct{intyear;intmonth;intday;}DATE;typedefstruct{charno[5];intprice;}FLUG;FLUGflug[N]={{"A01",100},{"A02",1
5、00},{"A03",120},{"A04",120},{"A05",150},{"A06",150},{"A07",180},{"A08",180},{"A09",200},{"A10",200}};typedefstruct{introw;charcol;}SEAT;typedefstructnode{charname[20];charid[20];charflugNo[5];DATEdate;SEATseat;structnode*next;}TICKET;TICKET*head=NULL;//将
6、日期字符串转换为日期型数据DATEstrToDate(charstrDate[]){DATEdate;date.year=atoi(&strDate[0]);date.month=atoi(&strDate[5]);date.day=atoi(&strDate[8]);returndate;}//检查日期是否合法intcheckDate(charstrDate[]){DATEdate;if(strlen(strDate)!=10
7、
8、strDate[4]!='-'
9、
10、strDate[7]!='-')ret
11、urn0;date=strToDate(strDate);if(date.month<1
12、
13、date.month>12)return0;if((date.year%4==0&&date.year%100!=0)
14、
15、(date.year%400==0)){if(date.month==2&&date.day>29)return0;}else{if(date.month==2&&date.day>28)return0;}switch(date.month){case1:case3:case5:case7:c
16、ase8:case10:case12:if(date.day>31)return0;case4:case6:case9:case11:if(date.day>30)return0;}return1;}voidprintMenu(){//clrsrc();printf("");printf("--------------------------------------------------------------");pri