该用户从未签到
|
#include<stdio.h>
9 z/ s3 }) K" B: S. \* R: g5 s#include<stdlib.h>
3 ]# d# c1 i; y, [1 J9 j#include<string.h>) S2 J$ T, T2 E# X' @0 [$ u* D
#include<conio.h>
" E- L: J2 v' q0 w#define OK 1
& f t+ n+ O* P) {1 a#define ERROR 0
+ d& L( ^+ z; v& Q, Jtypedef struct airline{
2 U, {' l& X' s4 C* T char air_num[8];
' z+ h# v1 K9 j# K# @; V char plane_num[8];
0 f3 o# K, p% W. ~ char end_place[20];
( j* F$ A* Z( W9 i int total;
$ ~' w* ~8 T4 `& E0 x int left;) Z0 b7 V5 l. H! q2 p
struct airline *next;2 B. p& Z& e/ m+ J( @# i2 N, q
}airline;& ?3 s3 T* u& |2 t! ?
typedef struct customer{3 Z- ?. c3 x* w P! B
char name[8];, `8 Q9 ]. p. Q0 k* a% O4 @
char air_num[8];0 d" V' a3 Q' p) A! c( H( e
int seat_num;
0 q9 b( W( ~( m0 r* ] struct customer *next;8 r* R3 w5 H( h! i5 T# j. g8 ^1 O9 u1 Q
}customer;
# I2 N3 M' x: }7 @$ L, f' {airline *start_air()
2 k+ |" W- v) _* `7 r' d5 n, y{
, _+ H. W4 Q* [7 v1 M/ a airline *a; S/ P( C4 k7 _/ z7 ]* u
a=(airline*)malloc(sizeof(airline));) r: O! v7 l$ U8 e
if(a==NULL)
9 ?: g9 c, S0 w+ ]- z; }% t* G a->next=NULL;1 S0 X: N% l5 N8 H- d
return a;
( X; z) B. ]7 W( m2 i3 L1 V* q' E}
* }* P! S2 }; q/ e% |9 a1 G* [customer *start_cus()
' a+ P8 B: ~* l2 G{
, {/ \- `4 n9 r" Q, j customer *c;* d3 {: u$ l" C+ l0 s, V8 }
c=(customer*)malloc(sizeof(customer));
! {1 [* |$ ]' n) k if(c==NULL)- R; l# }& `4 I% }6 H9 z5 U
c->next=NULL;
7 e! Q& N( i; r return c;1 d' A! F4 m5 m8 B
}
! S5 [8 f2 t0 f, Q0 tairline *modefy_airline(airline *l,char *air_num)
7 P- f% ?3 l. p/ ?9 W2 S& T. M{
: S# u' p! l; X airline *p;
0 {# ]: o# |, {9 h8 ^9 L p=l->next;
! b: ?# G1 K4 H( ~. C2 b& |) x for(;p!=NULL;p=p->next)2 e2 e- n9 H! W1 N
{
7 e; y$ R$ S6 }: a0 P3 z if(strcmp(air_num,p->air_num)==0)* D6 }5 Q C' R" a5 P: F
{: q7 d0 `1 N3 m
p->left++;# y- e" \$ \0 A. j# d. T
return l;
5 W: I+ ]2 g) X }0 |$ `0 c+ ~- ]' b3 N" g0 @# m
printf("NO the airline!");5 B8 J* W0 Z% _- p) G2 |9 E
return 0;8 S) Z7 f6 E# T$ D
}8 d- T5 v' `- u2 Y
}4 O6 @( S. @% j6 }+ e
int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)5 `2 R: ~5 M& y% c' T
{
6 F% O; U4 G0 N8 t+ C) j airline *q;
* f; l7 ?; `- V5 b; }4 q. ] q=(airline*)malloc(sizeof(airline));2 j2 I+ I/ F( ?" q; C/ o* Y8 f- |5 Z
strcpy(q->air_num,air_num);: H/ A3 ~' {; ?( F" l% p E
strcpy(q->plane_num,plane_num);
+ b2 I- {6 [' T ]6 D* K# B strcpy(q->end_place,end_place);
* k* H: f# o3 ^" J' ?1 g2 X' I* d q->total=total;5 i; T* I& o1 v. c$ |' d% f- [
q->left=left;- F: G- F3 a8 X7 B6 z
q->next=NULL;9 j# e \2 M! }) w/ K7 A
(*p)->next=q;
( F; x. i/ g2 Y' j1 @0 J2 l (*p)=(*p)->next;( T- `- U# ]+ N: B6 O' i$ l
return OK;
+ r3 C0 F+ V; g" h/ I6 W- ^" Q3 j }
& B# R7 `+ L7 J) \& ^" iint insert_cus(customer **p,char *name,char *air_num,int seat_num)
+ I. K8 a B$ |7 M) V8 S+ d# x{
# m& z" I) R* K4 C+ E2 p customer *q;
" b+ L _6 J |$ V q=(customer*)malloc(sizeof(customer));
( H' F, |. V& \' m' Q strcpy(q->name,name);% x% y6 s d& h% b( k6 t/ S
strcpy(q->air_num,air_num);' S, q8 R. k) O
q->seat_num=seat_num;
9 E4 i% }( Q9 m q->next=NULL;
. s% r& t5 }+ m5 |5 r; K2 C# H (*p)->next=q;5 l& h7 z. h6 f
(*p)=(*p)->next;$ Y6 ?) ], q _5 |9 ~8 \
return OK;/ G( `3 m" v. S8 a
}
" [* u# ~) ]8 m2 T7 \& ]int book(airline *a,char *air_num,customer *c,char *name)
% C$ }5 n! C t; k, r{1 a& H" \0 d/ k ]3 u
airline *p=a;
b/ ?; U/ q' }' \ customer *q=c->next; j, x6 _& C+ e5 ?
p=a->next;) s& O/ L4 A4 A. R$ Q/ g
for(;q->next!=NULL;q=q->next){}
9 s/ n/ _: ^3 a# B9 O9 j% i! A$ ] for(;p->next!=NULL;p=p->next)# ^5 `& X- |$ B, f0 \
{
3 r k: R% Y: s if(p->left>0)
* [2 C+ c! b5 m$ v5 t. N/ @ {4 R, z& j) Y* W V1 k: `* P& ?
printf("Your seat number is %d",(p->total-p->left+1));
8 R* e/ n! @/ x. U# n. a insert_cus(&q,name,air_num,p->total-p->left+1);4 `1 [; }4 ^* ?1 s l; {5 y9 B
p->left--;
$ G3 R+ o1 S, ^4 S return OK;2 R, b& ?% t+ f
}( d, _# a6 u1 K% {; g& M* d0 @6 a
else/ {# m. l, F, }
{& n& G: Y4 d8 Y5 ]
printf("seat is full");
3 ?9 ~/ V6 G! K' U; T i" ] return 0;
b) y0 H) V8 a( U }
: y- R& ]* t! v T- e }
' s4 _& L+ r! {+ l! {$ Lreturn OK;! |# M1 h2 b9 i6 P1 [( W& A
}) B: j& B& I0 @: V- _
int del_cus(customer *c,airline *l,char *name)
. t$ {9 P- d* e{
4 q- v' h+ T$ `0 q' ~ customer *p,*pr;
. C9 M& [$ y7 w3 L0 t! X D' V7 P: q char air_num[8];
2 ]7 Z Z3 X g' q* s& v- B pr=c;% c4 R+ \7 u6 x: e) j3 U
p=pr->next;
$ G: H8 M- v! h+ L0 R: T5 N: ` while(p!=NULL)! W: H3 m( \/ N$ W1 f$ `# w) y
{. h; N* H! j% Q L5 t
if(strcmp(p->name,name)==0)$ N f' p) p& K
{8 _* K6 t# t+ {: d9 |! o; f, Z/ ]1 r& d
strcpy(air_num,p->air_num);
5 U9 B' S% M* I: z( J* d l=modefy_airline(l,air_num);
1 f3 O7 J; V, y, y8 K& k pr->next=p->next;
( P# R- j: u2 V' x. ^8 u. V+ I4 q p=pr->next;, q S* U C7 X1 m
printf("finish!");
+ j. |' x3 s# K return OK;
: h/ O0 Q' C. {, b# v8 y- b. t }
$ v% k6 B+ d$ _! l8 g7 g( i. f pr=pr->next;/ v) }6 W3 E& O; r, q: P% w$ X
p=pr->next;& H" f- I' Q9 X( I# D/ D
}8 w- `; ~% y: b3 U- X" @
printf("NO the customer!");4 a2 B1 G6 ~/ r, w; J7 o" f( C
return ERROR;9 \% c4 @1 c! i0 {
}' S- }1 C F5 V; Y
int search_air(airline *head)& n1 W* Y/ K: _! |4 t5 v6 b
{+ c0 B7 {. g% e
airline *p=head->next;
+ J% D W# Y. ~) j# y( ? printf("air_num plane_num end_place total left\n");
. n* {1 C- ]; j6 z for(;p!=NULL;p=p->next)
8 n/ l6 m/ Y5 N0 c2 t {
( x1 I6 r% n) ]$ c( A/ v printf("%s %-10s %-8s %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);
. O: y! b: `" M) `; T* g }3 f# \3 ~ K1 N% |: _' I) a
return OK;
3 x, M. V! L/ {4 L/ k& {}7 A9 p X- Q$ l; @6 X N3 ^& K& f q3 e
int search_cus(customer *head)! l9 L8 q) b* s& R0 W. o# |
{
; f0 x m% u i0 j3 w: c) y" k struct customer *q=head->next;
' n4 ~; y. Z5 J printf("name air_num seat_num\n");
3 Y6 T& I2 G. `6 `2 U for(;q!=NULL;q=q->next)/ y. F# C4 k6 g; s
{6 h) [4 y) U6 Y0 C5 n* K3 k% K
printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);; D6 J- e Y* w' ^: e
}
' u+ O5 Q9 W3 X- z+ | return OK;
, f& ]5 G/ t2 U; g' X}
# `' Y# T, I5 D( J" Eint creat_air(airline **l)" T0 M9 T- ^' |! b
{
0 _, ?2 ?( M. s9 D8 l airline *p=*l;
5 k! S! Q `$ _ q" B1 I9 ~: D int i=0;" N: }& _) J" W# Y* Y
char *air_num[3]={"007af","008af","009af"};1 G# Z6 P1 T4 l6 L
char *plane_num[3]={"plane1","plane2","plane3"};3 x- d* N8 n: O4 b* x8 U ^
char *end_place[3]={"Beijing","Shanghai","Tianjin"};/ l, k ~3 Y3 B9 L
int total[3]={100,100,100};
3 c/ {/ e( X# C$ _& A0 m# w int left[3]={52,54,76};8 [2 S( I- Q. z6 F# k6 O% W
for(i=0;i<3;i++)" J( f/ S. P+ |0 A) l5 |. e
insert_air(&p,air_num,plane_num,end_place,total,left);
& X6 Z3 X7 b" N8 _( i) d7 A return OK;
7 ]2 i1 P- O6 K7 f) W @3 s. ]} l& u; E# t! @# d
int creat_cus(customer **l)/ b3 }) \7 ]$ A5 Y0 g7 ]0 R' `
{9 |6 [3 l9 P8 _9 c7 W. x5 x0 c! P
customer *p=*l;
2 I0 z7 d4 f& n" F9 |3 n* V6 R int i=0;
! `$ { J( Y5 C# c8 O6 _ char *name[3]={"zhsan","lisi","wangwu"};
! a _' x2 s7 P$ ~ char *air_num[3]={"007af","008af","009af"};
! O4 F3 U, I0 @- `, S) M& Q int seat_num[3]={2,5,7};
+ c) _! D7 F8 P6 L for(i=0;i<3;i++)4 K0 S: a x/ K6 p
insert_cus(&p,name,air_num,seat_num);1 \4 O/ F; |+ d. j% Z9 a8 S
return OK;; A! r- Q' z# l* e. e
}
' J3 O4 ?: F. A( ~9 v% N5 V/ b6 u: p; Bvoid main()& X6 V" t) }. {$ i4 ^; \& k
{- Z6 m2 D/ @0 V( s% x7 o& }
int t=1;" O1 V+ E! Y* |& e" x4 M4 C! \* {; o
customer *cus=start_cus();6 \0 G/ Z* b- C, L4 E
airline *air=start_air();0 T& \" i6 j6 }
char name[8],air_num[8],ch;
! k' M! }# z9 [ creat_air(&air);
6 d4 b3 t0 s y) k0 o! Y creat_cus(&cus);8 Q4 @8 k6 {+ c
while(t==1)
7 O7 ~8 d/ H4 L5 c4 u3 O1 A {0 A; t- s3 p* {# Q7 C. C5 i
printf("\n");
; n' x6 {: y* P printf("*********************************\n");
( u7 C" l' ?8 f& Q) b8 ^ printf("* Welcome to air firm! *\n");
1 y0 U5 w, o) ? printf("* book--------1 *\n");
/ X- H7 r+ d( T2 ~4 \) i' q printf("* cancel------2 *\n");
; f. d& ~ p4 R2 m printf("* search------3 *\n");8 C4 {4 L. ~0 F, }2 R
printf("* exit--------4 *\n");; a7 F2 A& x( m7 j: a6 U/ T
printf("*********************************\n");, R# ]2 x5 R; U% n9 r8 b
ch=getch();
+ } Z) \# c3 e: \0 H if(ch=='1')
& B }1 e- ]0 x! | {' t7 |5 [( g) g5 Q2 w
printf("Please input a airline number:"); U# ~0 S# P4 Q2 x+ h# k
scanf("%s",air_num);+ H. W, `8 Y- i( [' J$ [5 n
printf("Please input a name:");- D. y* r- T! Y$ q
scanf("%s",name);& C& C$ S" X3 v. c5 z( c9 }
book(air,air_num,cus,name);$ A J+ O3 t+ M& F. T, a; F, H
}. g% ~% b- Y2 @6 _
else
/ q3 S7 Y, a$ n3 r, h9 F. S if(ch=='2')
( k, u C9 e5 [3 |0 S$ X% e {6 ]9 p- Z0 ]$ K6 Y% I% @2 \6 t: `
printf("Please input the cancel name:");& r* c% r& q7 B- P- ?* W7 \
scanf("%s",name);, |/ b4 a8 g4 J9 d4 t) @2 S
del_cus(cus,air,name);/ q! r" w. O& m0 G v1 Q
}
3 J# ?% I# U7 O" x else
2 Y4 F) b# f4 F4 M if(ch=='3')( v3 S" D0 f2 M8 P0 g
{, B7 ~+ z, b) b T8 c( N9 s* A& Z
search_air(air);
5 Y* M- G( n6 [2 | printf("\n"); + P% [/ C3 m! c
search_cus(cus);
* Y ~7 Y/ ]/ o0 ^ }& d t" [( e1 p8 a" y& k
else/ R% O$ u1 s9 {6 d
if(ch=='4')
2 t2 m: T- I5 l; ^: |2 \ {
2 c* V# d, _+ D2 W t=0;* _0 X+ c8 E0 x
}4 R: p1 f U6 C5 I( ^" ~
}
% u( S0 L, Y! ?/ B! W4 k6 T}
/ v& r1 s) h) ]+ S- S# O/*任务:通过此系统可以实现如下功能:
5 _) D. `+ }9 Y. p4 J录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
& W: ~' m& q; g& a( q查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);- p- C: r; f% C) O, |" x
可以输入起飞抵达城市,查询飞机航班情况;
1 e4 \0 |+ c! l% r: i订票:(订票情况可以存在一个数据文件中,结构自己设定)/ s& I9 l- y1 k: A) f
可以订票,如果该航班已经无票,可以提供相关可选择航班;. Z/ C: P9 ?, }
退票:可退票,退票后修改相关数据文件;; `; y# [ E" a/ y
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
* f( _1 |! {+ [0 r3 q3 p1 e' r修改航班信息:当航班信息改变可以修改航班数据文件% h. s6 ^& h# T( n0 [* g' D
要求:
7 K* _7 s) ~( p根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/ |
|