该用户从未签到
|
#include<stdio.h>
4 o3 x( N; \! H#include<stdlib.h>
- a- X8 E5 i2 [. C6 {; H" x#include<string.h>, q% ~. ?+ l* C% F D2 b9 G! i
#include<conio.h>; n9 V7 r: J( d/ }) }9 |
#define OK 1
' A- q% P4 z% ~3 e0 d, F4 Q#define ERROR 0
5 S1 A ~5 j/ ~0 Ptypedef struct airline{/ q" C' g7 U$ d" r9 |
char air_num[8];( c2 z2 j E8 Y7 g
char plane_num[8];
. M% W+ a0 d) R. q char end_place[20];
( ?; I/ U- Z" s' z; [' {* v$ v int total;9 T9 J1 X* ?, `7 n9 M
int left;
2 d/ B4 B$ b: q3 I: V. z struct airline *next;
3 Q0 n1 l0 }: ]+ h& x' j# F2 J: o}airline;
4 y( I3 s% W1 V& H( D8 E; B7 s. U# utypedef struct customer{
7 Q) h9 e6 S4 @! H' A7 \) h" t char name[8];- `, h4 D/ Z6 D
char air_num[8];$ t, H# _0 _* ~/ @
int seat_num;
- y/ h9 ?; W- p6 T; Q7 l% o struct customer *next;
9 y: C. k" u( |# C& G) `}customer;
, l5 }$ u$ K" E) _( a' c. C+ F' x8 z- Mairline *start_air()
) L' L2 R( a2 N8 E0 P{
: K% T* q0 ?9 ^ airline *a;
% b( h; }* L7 G) W8 u4 Y6 Z* v% { a=(airline*)malloc(sizeof(airline));% }* t! ~$ o7 |; m6 J
if(a==NULL)9 }2 O6 i' G2 W% r* o! c, A
a->next=NULL;
4 Z& v$ g. ~* A& x return a;
' x) o0 O) F$ J% J; J+ X1 m} d* p4 ?+ e* K9 E( l* P ^5 S2 g
customer *start_cus(), N- t8 J0 n. _
{
9 `2 t, G& R, { customer *c;, u( m+ [) B5 h3 K* |* {
c=(customer*)malloc(sizeof(customer));
, `% s! L2 k6 ]* N& ] if(c==NULL)" w2 g( Z4 c; o$ Z8 [0 O
c->next=NULL;: Q1 M8 K& @8 ^9 s2 Q4 P
return c;
9 x, u" B1 [$ G. O} ?2 f }2 L3 C/ _ b
airline *modefy_airline(airline *l,char *air_num)
- Y, L( s: v, K% U{
# H6 C8 V! ?7 M$ i9 `9 |5 R6 x airline *p;
9 @, r @ K% R$ R p=l->next;
$ Y& R0 a$ o6 L- A for(;p!=NULL;p=p->next)
+ Y/ R! v% p! W' G; b {
0 {" M+ k' c' q, Y" G# v if(strcmp(air_num,p->air_num)==0)
* s7 w! T3 s* @) q. a# Y" ^% s {
2 {# c* [5 j, ^ p->left++;) C0 \0 {. x5 n9 _+ r9 M
return l;
# \2 A. P* ?4 M# o5 Q }
' c- h, a# f' _7 @5 @ I printf("NO the airline!");5 T3 L- R6 `3 W) @9 T+ W
return 0;$ Q, X9 X9 Q( _/ {
}
% ?0 I" {1 n$ B! ?# x. m}: R X$ j8 p4 ^5 _
int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)$ i& D( ]% M( y6 @. ~7 U$ F
{7 \& N) d! u. M5 c. t {
airline *q;
6 \ v3 \" u5 p D+ u# s; O" x q=(airline*)malloc(sizeof(airline));! w# p8 N; {, t' e( ?
strcpy(q->air_num,air_num);
# H7 o5 w5 y# u* z& u$ O strcpy(q->plane_num,plane_num);
! }4 Y% k+ v r strcpy(q->end_place,end_place); W2 y& J9 h, a# u- M* W
q->total=total;
% o0 w6 i3 u$ L+ s* o) n7 |' U q->left=left;
# y# l0 r2 x) H7 J ` q->next=NULL;2 c: B# u/ z/ N7 {: q% }
(*p)->next=q;
. O, S5 w2 u, m, _" m2 E (*p)=(*p)->next;
* v- m( l" c: H8 b3 y- _ return OK;' E2 z* Z/ b. k2 e! P
}4 H; o- c0 U& B7 ]* @
int insert_cus(customer **p,char *name,char *air_num,int seat_num)& [( Z8 ] N& m: H e* L
{& B5 w% C/ b; c# F3 B
customer *q;6 d% s1 N0 R7 ~8 G' D
q=(customer*)malloc(sizeof(customer));8 [' h* i; v! W6 ^9 u( ^% w! a- M
strcpy(q->name,name);
+ B, Q1 I! ]2 j- F- d2 I strcpy(q->air_num,air_num);
0 F; Y* U8 R9 X9 u0 T; k8 L* ?- ^ q->seat_num=seat_num;
+ _: q4 f& r$ u7 F q->next=NULL;- E1 u2 u& G) Y* i
(*p)->next=q;5 y' p! [% a4 x
(*p)=(*p)->next;, ^, M5 Q- R2 S# ?% ~; e4 H
return OK;6 q% q% y& z3 |1 U% T" v7 O: D4 J8 w
}7 `0 K! P+ B7 j& \ ?; i
int book(airline *a,char *air_num,customer *c,char *name)( [. |7 X5 P# E T& l5 [
{
, m' ]5 J+ Y( W4 _- a; r, { airline *p=a;& Z. C2 h" `. }/ @4 l- @0 P+ m
customer *q=c->next;: R- n" g# Y% ~, M1 L# v
p=a->next;1 j" z) p. E/ x% S4 h5 H
for(;q->next!=NULL;q=q->next){}3 i' C! ?. m1 b1 g
for(;p->next!=NULL;p=p->next)
3 Y) r4 U; r9 ?" `# W {' e9 q" d# C3 H6 {6 M5 |' Z" J
if(p->left>0)
, Q6 {( z& z7 J+ z# l, {! X4 @& m {
; `* f! ~6 I; h printf("Your seat number is %d",(p->total-p->left+1));. H! R2 [& g& ?+ T$ @0 j
insert_cus(&q,name,air_num,p->total-p->left+1);1 L+ @$ S; F; g- k
p->left--;2 J5 H+ {! w: N8 J6 `- w
return OK;! s8 A- d: }# S1 l# F, U4 @
} I* Q4 j+ D' W+ ]% h
else# y( p6 r* p- }! `4 C* r
{1 s4 ?# W. z8 Q4 N" N0 R
printf("seat is full");
+ k$ V' Z& P r2 \0 ^ return 0;
* ^5 r- M$ `( b( P6 l$ \* w' t: P }3 d3 v: h7 s8 E$ K3 L) X6 O
} s0 J+ g5 m( t' w- a
return OK;! V N$ l9 P; s3 Z6 Q( A. N
}
1 u6 [1 z. p, j1 i. w1 a1 d- dint del_cus(customer *c,airline *l,char *name). {+ U3 u, A( l
{
0 J! v7 K0 F- E2 n* _' f4 i" ~ customer *p,*pr;2 @8 U' C/ U) B. U. G7 {( J
char air_num[8];
3 a* G: t5 ^2 w4 v& p pr=c;
0 @* z1 s9 E( o0 M% ] p=pr->next;9 x- U. k9 d8 O$ J' D8 S% k0 v
while(p!=NULL): F ?$ q7 a5 I
{
4 ^# _3 S! g5 N& w# j2 J- M! A+ s: T if(strcmp(p->name,name)==0)7 `4 B% s* @9 w% ]$ e G- |$ \* [
{
; V& U& ^( y" p; ^% v( }. G strcpy(air_num,p->air_num);. q' n5 b9 X; N1 O8 p) a: a# C. ^
l=modefy_airline(l,air_num);2 {! K+ m, I0 \) L8 _
pr->next=p->next;, k) a; {/ @; K1 b4 r7 H3 V3 E
p=pr->next;$ {- X( V; P* F! z) D" s6 j# n+ G
printf("finish!");+ F I5 ~, s+ h% g& J
return OK;
7 a1 V2 I5 H, E' N% h% I }
- X9 k6 s, N& H8 A7 O pr=pr->next;3 V; s7 L4 Q1 t" m8 o# j. F
p=pr->next;
$ h% Y) m5 K5 E) G; \) D7 b }9 V, i( P) I% z P
printf("NO the customer!");3 E9 j- T' B' h2 Y4 o4 E
return ERROR;' M2 X+ o$ f8 y3 L! `3 W# h- d
}
* A- b% o# | }5 B% K' \# Hint search_air(airline *head)
5 z' D% J0 ^ N! C5 N" Q, M G{
3 o/ s2 ~1 P" y( E( v airline *p=head->next;0 {. u4 V& K$ R
printf("air_num plane_num end_place total left\n");0 \* J* p1 K+ \( m4 t Z u" ^0 S
for(;p!=NULL;p=p->next)7 N$ R" z, R$ J4 a" U* t) u
{5 V& T. a( z+ {) N3 A$ c4 w: o
printf("%s %-10s %-8s %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);) W5 @1 l% a, G) B5 O
}" i |: N: j1 o
return OK;' ~9 M$ {) u! s) g$ ^( j
}6 K1 X1 N( }4 N) I* E
int search_cus(customer *head)
* l& R' r7 }1 J) W{
' i- Q) d6 I* H/ H7 A struct customer *q=head->next;8 L* M3 C9 a# |/ L
printf("name air_num seat_num\n");
! _! B4 S( c. b/ E8 g for(;q!=NULL;q=q->next)
7 R- ]0 ]8 O& M {
+ H& q5 q! @1 x' Z7 o6 H* c* z printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);% K& [3 _1 ?; H1 f
}6 S; W% i8 W0 e" Z2 y ^& d( ~
return OK;
; `% I3 s( U5 j- V# g; z# g4 }}
- G [6 ]1 T9 _4 m+ T$ T1 N3 R1 mint creat_air(airline **l). ?; {! W5 j/ I3 U% j
{# j$ X. z& ]8 s3 Z
airline *p=*l;
3 X9 g. P3 u4 y! a" P8 `, l0 _ int i=0;6 h0 S' @! c" C
char *air_num[3]={"007af","008af","009af"};
6 m9 ]- ~9 Z! A) P. K5 w% d char *plane_num[3]={"plane1","plane2","plane3"};
5 U1 o" m( | M3 m char *end_place[3]={"Beijing","Shanghai","Tianjin"};
1 Y. F" x8 [; \+ I int total[3]={100,100,100};5 J: v5 O3 C) ]6 {1 R( K8 P% b
int left[3]={52,54,76};
4 E, C8 M3 k( [ for(i=0;i<3;i++)5 J# ]$ s$ L: f+ }0 d$ I4 A
insert_air(&p,air_num,plane_num,end_place,total,left);( f+ O# V: X/ {
return OK;
( `$ n2 x/ X1 ]" m) M4 v. P* e7 n}
$ |7 f( {( w) p7 l6 U Bint creat_cus(customer **l)1 p/ Z. Q0 n, C1 X
{& B4 y! A7 e- B! w2 M& a
customer *p=*l;' i2 W1 V( H- k
int i=0;% V/ T2 M `% T" ^! V
char *name[3]={"zhsan","lisi","wangwu"};) w* p) \1 l) j( }$ A, @
char *air_num[3]={"007af","008af","009af"};
* p0 g( j: d: q2 F+ ` int seat_num[3]={2,5,7};
8 O) ?1 G; K' e' P6 o. B for(i=0;i<3;i++)
+ C& F& I) ?- J: a6 m9 T n3 o insert_cus(&p,name,air_num,seat_num);
/ E7 w; e2 c/ \8 b return OK;5 i2 ~* j+ x; h$ {: u# t0 ]4 Z
}
. E- P' x4 y) V( I9 _% `/ X2 [, `void main()
( ^3 z( q! T+ ?, {4 f, Z{
1 D3 E( l' }5 X8 G+ F& T int t=1;
* p) M3 U/ W* J$ f6 t( t customer *cus=start_cus();" u: h. i6 n+ ^# g
airline *air=start_air();
9 {( T* Q9 k* b0 `5 Z char name[8],air_num[8],ch;
1 g5 Q$ f, w, `1 c9 t/ d creat_air(&air);
& m8 I* t6 C C5 l* n$ P/ X8 Y# U creat_cus(&cus);
4 ~/ Y0 R2 w ^ while(t==1)4 H. Z, B" o. S4 u- Q
{2 p3 @2 h5 G4 @7 ^4 L
printf("\n");3 r; A# _$ p) c! `5 C
printf("*********************************\n");/ A0 _7 m$ b6 D. k
printf("* Welcome to air firm! *\n");
. z, S* I0 R9 ?! i2 T& \" L# ^/ u/ N printf("* book--------1 *\n"); d/ a# d3 e. {/ n6 w
printf("* cancel------2 *\n");$ k9 ^% H7 z( R }6 K: m! k% |
printf("* search------3 *\n");8 ?: {0 V2 Z- A/ T M' G0 c
printf("* exit--------4 *\n");
* ?# ]1 V4 Q! x: \% I0 \1 |" P0 Y+ ~ printf("*********************************\n");4 `+ v# e2 b4 y5 ~% [, w$ }/ F6 ~
ch=getch();
4 H" Z7 Y4 E. s6 n; v if(ch=='1')
/ Y p1 J: M) F* ~" Q {
; V) ?! S# u2 y. m5 d printf("Please input a airline number:");4 _! S2 m1 s7 S7 |
scanf("%s",air_num);/ x' {( B5 m: t' Y1 {; X' S
printf("Please input a name:");
3 z* K7 N% e* r scanf("%s",name);
1 Y0 E# ^3 ]0 \- o book(air,air_num,cus,name);/ _. y' N; Y% a& W6 g
}9 m3 q$ O- S+ g/ O! D0 v' m+ m
else
d7 M" A6 }7 J+ B0 P" w if(ch=='2')4 G! }$ n6 n' Z
{
8 v# a2 J7 y( u+ ^7 F: G! w printf("Please input the cancel name:");
' c2 _5 J7 i. } scanf("%s",name);& ^# E6 }5 @( H$ {
del_cus(cus,air,name);' Q% L9 D$ O0 B: s3 u$ [
}
+ B2 G3 u5 ?9 \- d& h else# b- U8 J5 H! \: b
if(ch=='3')
5 M E8 |+ j: Y* `( A4 I {8 C4 n% z5 ? H2 r( C. c5 G- h
search_air(air);4 |& d7 f$ n- J
printf("\n");
$ ], p" Y$ e/ z2 c2 R+ n2 u search_cus(cus);+ X' ?0 z4 C; M% E5 }, n5 m
}
3 ~ _: Y0 R4 T! k; i7 d else
+ W: I/ ]" w6 ~# O9 l+ \ if(ch=='4')5 s% c" G7 Z7 I% t; {# m- Z" T
{5 {+ L& ?6 |6 V3 z5 S; i3 l
t=0;
5 T! L) V! P5 I! c8 u }2 i7 W$ m7 B0 y; Q* E
}6 w! k+ M7 X+ |/ f2 C/ f% G2 o$ i
}
1 v: @# R7 a. b- T4 w/*任务:通过此系统可以实现如下功能:3 B/ r) g; E# F5 M5 i& p. j% N- D
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2 Z2 ?1 m! Z$ Z! E* v$ U9 n
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);: T% c: N1 X1 U, ^5 R7 s
可以输入起飞抵达城市,查询飞机航班情况;
; z( ~$ ?$ `/ d9 Z% B; M订票:(订票情况可以存在一个数据文件中,结构自己设定)
h; r! I+ C. H5 |! x5 l可以订票,如果该航班已经无票,可以提供相关可选择航班;; u( y3 g, K& t$ l
退票:可退票,退票后修改相关数据文件;
! F! w+ U6 r9 U3 S( [- X客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
. F/ x7 p& I' H Y( ~4 b, X修改航班信息:当航班信息改变可以修改航班数据文件! Y' ?+ i$ }) Z* u
要求:. P: [5 A( J( F4 v4 }& a' o
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/ |
|