该用户从未签到
|
#include<stdio.h>
& L' o& n# @" Z7 Y4 V#include<stdlib.h>; R1 X2 k! ~; F l) O' k# |% e# a) B
#include<string.h>' L. S8 H& ^0 L
#include<conio.h>( o s* I4 O4 F! g7 G1 M) V
#define OK 1
! x" O$ l: U! c6 R% F6 Z$ r5 a#define ERROR 0
5 a" b J5 k3 q5 T1 `9 v( Xtypedef struct airline{
; V1 m. ?2 | S" ?8 k! P char air_num[8];5 p7 W2 p. K$ z+ V4 F+ g& p) Q
char plane_num[8];" a1 ?2 s" B! M+ u. E( T8 O; S0 X3 [6 Q
char end_place[20];/ }1 r0 V1 x+ K- Q A
int total;3 H* {1 o7 z8 o' x; o0 z1 G3 |
int left;
* d e' C! C% t; K: b struct airline *next;
, t: \7 F- t: [/ b& ~; `}airline;5 A8 ^+ q+ F+ i- ]* K& u3 |6 v0 _! s
typedef struct customer{
* E" y1 W- ^ |; ^4 g char name[8];3 J7 S, I. p G1 K
char air_num[8];
( Q& s g8 ]# X9 z0 l _ int seat_num;& d/ n, J0 Q' l9 k% @8 ^( @/ s
struct customer *next;
& v4 G5 k. I6 G3 Q}customer;
* P2 s$ a4 K4 D# hairline *start_air()6 [. G" G( w& C
{
0 L! s. q( k0 v* C5 s0 m airline *a;1 `9 x Y" G2 K
a=(airline*)malloc(sizeof(airline));- q- _6 |) y& c( x5 Z7 s/ H6 i
if(a==NULL)
& S) Z A6 H/ t) s; z a->next=NULL;; i+ G0 e) @% q# v4 k+ m; _: U- }
return a;
4 P! [ x4 n2 `+ {* b" T7 P* L& _}& e' ^$ M2 W8 q6 G* S1 V
customer *start_cus()! B* {; a3 S9 A$ c4 ^* ~
{
& B/ M8 [0 {; | customer *c;* Q+ r7 I' u, h) T v1 V* V* W7 ~
c=(customer*)malloc(sizeof(customer));% E1 W: K4 M# K. q* r3 a. S% d
if(c==NULL)# K# B" s& F+ _
c->next=NULL;. p4 A, b; k; N% F/ \
return c;: z( W5 T3 @2 G4 U! q4 [, E
}+ f1 g, r5 h3 @$ R0 u
airline *modefy_airline(airline *l,char *air_num)
) k2 ?% C4 r% y' d/ }8 h( @{9 K- Y, L8 Q1 \
airline *p;4 L& V# a! A( D- Y9 x" M
p=l->next;
1 v1 g1 P$ y- G% D K for(;p!=NULL;p=p->next)8 G! Z! H9 ^- v9 p# P6 W
{5 U* @0 r4 V7 r
if(strcmp(air_num,p->air_num)==0)
( |: Y2 j. D3 V: x {1 f+ s3 x: _# U4 g' m2 P
p->left++;+ P8 y$ I! D0 Y
return l;" A1 _7 @* ^3 d4 Z; q( D, {4 V
}- b+ y8 J) z8 S9 u
printf("NO the airline!");
7 G9 C" `$ N- E2 i2 Q return 0;! y& ]9 \0 G+ j% ~) x: F; O
}
; E5 F; n/ c* M) a}5 `% |; c0 P2 r! }8 y
int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)! E) ?- m8 \) ^& h1 x
{: ?; Y- j' J4 E% d! B- _$ g! t
airline *q;! m: ^" ?( e5 j$ p, P+ v0 P
q=(airline*)malloc(sizeof(airline));9 j8 d$ x, r0 u/ ?. Q
strcpy(q->air_num,air_num);3 \+ Z% s0 J+ P$ i1 p
strcpy(q->plane_num,plane_num);
6 F6 M4 h2 I. }! G4 y& ^. }8 A strcpy(q->end_place,end_place);
4 d3 l, Y" @" S7 m4 i3 ^6 u6 T q->total=total; ~9 E6 n$ j, B7 s# @& g& X. k
q->left=left;6 M% u: n P+ w: ^2 c- Y
q->next=NULL;7 S9 v- O r$ ?2 P V' r
(*p)->next=q;
& N! C) X2 x" ]7 Q (*p)=(*p)->next;1 T4 V5 J D2 d9 V5 T' k* Z. s0 n
return OK;
! n. b4 p ]0 e1 e }
$ B! [( f Z: I! I! h2 pint insert_cus(customer **p,char *name,char *air_num,int seat_num)$ N& }* M- y B
{( B) _8 f% Y. M1 E" `9 q
customer *q;
s' l: ?$ b0 ]9 ^% V+ W+ w2 [ q=(customer*)malloc(sizeof(customer));
3 e- D$ Y# Q3 D* T3 f strcpy(q->name,name);
. f* V& @6 O% |5 \4 O1 X0 q strcpy(q->air_num,air_num);
& n2 @( |" u0 O; G' m7 s* {- y q->seat_num=seat_num;
+ M% d# j H) z- w q->next=NULL;
* S. F9 H# n( L: A (*p)->next=q;
& y1 @ g1 N/ \9 T/ `( w (*p)=(*p)->next;
2 e7 \/ F$ X3 e p2 V/ X return OK;$ N3 e1 M9 W* i- i* p/ P* W# C' W0 E
}8 Z* ~- v' B* k7 p8 h0 t- D( i- C2 _* ?
int book(airline *a,char *air_num,customer *c,char *name)
% t v1 l/ U4 K! {; E{- p' F _/ {6 N' f" w! f
airline *p=a;6 h' Z) x) t) h8 H: N
customer *q=c->next;
1 G4 f7 n/ O/ F$ ^5 E' B+ ? p=a->next;
5 @2 e4 n3 g8 A1 w for(;q->next!=NULL;q=q->next){}
6 f/ f+ v, _$ C( V; S( J! X for(;p->next!=NULL;p=p->next)
- O: c0 t. \4 D$ T% n. V {
* s6 q! ^0 k: }$ ?# Z if(p->left>0)
$ Z1 \- k1 j' { {6 ~/ _, K( x6 O! ]5 `1 k$ Z# U
printf("Your seat number is %d",(p->total-p->left+1));
% y! i4 T: R9 v2 T7 J insert_cus(&q,name,air_num,p->total-p->left+1);
: a D. |; N2 G. e7 m8 ?4 Q/ N. L p->left--; d x4 g* j2 ?, a4 ^
return OK;
; Z* n' E2 V5 n }
7 G9 D C1 o8 m/ r: c( F. z* b else
" Z; Y1 e: }* r) M/ a* s, q {' F2 I& e7 q" s; S g6 [
printf("seat is full");$ k1 ~# z8 u& n! v
return 0;; j+ D1 O) n0 h7 Q
}
9 T' A- Z) X5 W) O. R; M }, `; p8 |$ y) m3 T
return OK;" F1 z6 y& f- i, z" X4 w
}) z6 T3 k. w+ W' s# b
int del_cus(customer *c,airline *l,char *name)
8 E% K/ k4 M1 @{6 h d* D( k7 @* ?2 R5 s
customer *p,*pr;
( Q3 T1 x8 X* \9 K- v& ` char air_num[8];
4 Y7 C0 @$ _: F- `2 n9 c# R pr=c;; W* `1 Z+ D- a- a
p=pr->next;5 M) h4 ^% j+ E0 B
while(p!=NULL). B$ T, h+ d# r" m: X1 w5 Q
{; S) P/ b8 m- I) Z5 _$ K: T+ m" ^* r
if(strcmp(p->name,name)==0)
, L/ j/ q$ Q5 y4 D D3 V {
* H/ f: k2 c! {) ?( d3 T strcpy(air_num,p->air_num);
* Y1 _0 j0 a# C- P- S+ } l=modefy_airline(l,air_num);
6 r0 I# B- M, f& t9 b2 b pr->next=p->next;
( a6 T. A% [# U4 w0 m: u4 ]- F2 H- h3 A p=pr->next;
1 U" K0 ]) X( K( q printf("finish!");3 l& T% Q2 g% C' q7 t v
return OK; $ L/ |# M+ o4 F. [, G2 V/ k+ Q
}5 G4 d9 m( J' ?) X7 k7 @5 t" q( ^
pr=pr->next;
( C9 ?; x/ h6 c/ S' W0 ] p=pr->next;
# A2 d8 a/ X u7 s3 b: F }
( f8 P( q7 G5 K printf("NO the customer!");
$ |4 f- M! u' e0 x6 G! \8 o1 G) Q return ERROR;. T6 m, f0 h0 H
}$ ~5 z9 B) D# _8 _& E
int search_air(airline *head)
( N: @4 H; _+ o% v1 E8 I8 c' S- j{
) T+ l7 L3 x: E5 f airline *p=head->next;( Q4 K' r& V- I( k5 e8 m
printf("air_num plane_num end_place total left\n");8 _" A. ^7 U, ?# [! H4 f
for(;p!=NULL;p=p->next)
F1 }4 T8 w& j4 u% f {
7 v/ r. m7 m3 ?9 K printf("%s %-10s %-8s %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);
- I4 D8 R4 F l& @ }+ D, j9 I. f" S! @: W, l X
return OK;
9 V* `! `6 ^7 y. l+ p}9 c7 x* q6 V: a
int search_cus(customer *head)
6 s7 W! P$ H" R7 G: G* i# l{
" E! s' k }6 b* h" q# t2 q8 {# H' x struct customer *q=head->next;4 L) N0 Z6 A% P% [) i" N9 C
printf("name air_num seat_num\n");5 J* m1 O1 P! F( E5 P
for(;q!=NULL;q=q->next)
; @3 a9 f& V" ~% ^: ?/ Z+ l) T( z! L {
5 e8 w+ H: I' u) r# S! @4 D printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);. S6 h9 w9 o5 X6 y2 E" z$ P- }: B
}3 ^. O: ]/ `0 q9 A$ B, V
return OK;: e5 R! Z9 O" Y" N, C! e- V
}5 a" _, ?7 v8 T
int creat_air(airline **l)
& s' h3 ~1 s! N$ ~ J9 q6 V{
- f1 v: }* o& [+ Q1 e/ d airline *p=*l;
4 V4 F4 A4 Z: r, x' o0 c. U int i=0;" H b* t# b+ z* ~
char *air_num[3]={"007af","008af","009af"};: _, c& N# e3 l" K L
char *plane_num[3]={"plane1","plane2","plane3"};
% F6 s) c$ e4 c char *end_place[3]={"Beijing","Shanghai","Tianjin"};
7 H# R Q" }7 p: Y9 K! e; e: V" T int total[3]={100,100,100};
2 l3 Q g- C+ f int left[3]={52,54,76};
% o8 y5 [2 ^3 T1 v$ H4 Z for(i=0;i<3;i++)- ?4 y6 Q8 n# r9 j' d4 D o, K
insert_air(&p,air_num,plane_num,end_place,total,left);
1 b1 O/ m) E7 v% |1 M# x return OK;
# l# U* o$ w( w0 g) a( q+ o}. c3 f: h9 {) I% b3 ~; q, K! t! _
int creat_cus(customer **l) r# ?" V$ T" C1 Q* _
{3 b/ p4 m+ e: t: y
customer *p=*l;7 C3 S% {+ E R* B1 U
int i=0;% ]! `; R; O' M* S( u. l2 A1 q
char *name[3]={"zhsan","lisi","wangwu"};- s6 @% F ?. t( [
char *air_num[3]={"007af","008af","009af"};7 `2 ?- ~/ M. X2 M' V( F0 t. r' B7 G
int seat_num[3]={2,5,7};. r. R, k, [$ {: @, y
for(i=0;i<3;i++)% d9 \; M$ o1 l+ g& q3 Q) Q
insert_cus(&p,name,air_num,seat_num);1 P3 b& X5 @: {& T* ]2 r
return OK;
' f, K, e* n- o) `% s$ X}
/ Q8 B% y8 A. M$ A5 c2 wvoid main()# U% ^1 V% ]- {: U/ z- [
{, a0 B6 R$ u& E0 ~
int t=1;6 i- F# O/ z. k- c1 W
customer *cus=start_cus();
3 q; b5 h$ W/ x. o airline *air=start_air();
/ _; z7 ]0 F3 |: h5 d- z char name[8],air_num[8],ch;0 r* ^% h( ^* s" Y! j
creat_air(&air);
2 s: _$ x' f8 O) R creat_cus(&cus);
0 X5 m$ n D: W* g while(t==1)
7 i4 @- K' S* N* S# ~6 W6 D2 c {
1 ]! W- [$ c; `1 o printf("\n");
! q# g, P4 i4 }- U* j printf("*********************************\n");
: q& ^3 v0 c: p printf("* Welcome to air firm! *\n");6 @" ~" j1 ~3 u: x- c
printf("* book--------1 *\n");, P1 z0 l ~; b0 ^
printf("* cancel------2 *\n");& O7 |8 F: p! F r$ W* C, O) ~
printf("* search------3 *\n");: [; P* z2 H* z
printf("* exit--------4 *\n");0 M. U& w) T3 _$ \4 Y* t
printf("*********************************\n");3 D8 U: A' U0 P0 M
ch=getch();' M& S* |: k* N- C0 i- ]% W+ n
if(ch=='1')
* W1 N- N$ q: \- E {
1 ^; X( o0 O6 @9 G$ G" f, ` printf("Please input a airline number:");$ [' S+ P$ m3 P) Y& v; s3 }
scanf("%s",air_num);
9 r2 r, v; E' m printf("Please input a name:");
, w' A% w$ Q d" q. O l7 { scanf("%s",name);
% X# X4 L2 g0 ]3 r& E9 k book(air,air_num,cus,name);
2 q$ p; q! I3 l- N4 b4 p6 I }
( h3 I! W/ D# p else
; \( E0 |& n$ @. i) X# t! Z% } if(ch=='2'), E" w: U! r& `' _8 O: K5 \7 K
{: M6 A3 V- S# F: z, k
printf("Please input the cancel name:");
, U; @# V* Z. X* ` scanf("%s",name);' P0 q2 {; B9 a. z a/ e5 W
del_cus(cus,air,name);
3 t& l6 T+ F/ a3 j" } }
' V/ D" e% q i' L& ]) H% ] else
\! b1 l+ B7 p( P% n8 b if(ch=='3')6 U: k; I3 P6 |
{( p* l6 t# q$ {
search_air(air);/ B2 Z; \* g1 c
printf("\n"); z; f% b) z; C# c' W# Q* G t: u# O
search_cus(cus);( R: W$ D+ J$ U- V
}
, v! ^7 E4 j# P: g) d0 z3 m else, ]2 [; L/ T' A- a
if(ch=='4')5 `8 _% a' B* B/ \. v
{
5 T+ e& T M4 w# @/ g' @, \' V t=0;! E% l; z) ~; b/ q& W
}, v9 ~# S8 F- } W! G+ L
}# I/ U& P @$ e0 o
}
/ v$ J3 e3 S! s- D/*任务:通过此系统可以实现如下功能:
% m6 u- h7 i8 ?( N9 P录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
/ ~ j6 Q0 Y1 S$ s+ v查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);1 o4 e' O: q. g4 F1 m9 t( E' W7 D
可以输入起飞抵达城市,查询飞机航班情况;
* s% o* c; n) ?- K* ]订票:(订票情况可以存在一个数据文件中,结构自己设定)+ o Y$ k# K. Q# T
可以订票,如果该航班已经无票,可以提供相关可选择航班;! A, U" j6 F2 a8 {- P/ X. N
退票:可退票,退票后修改相关数据文件;( O! H2 _: {6 G7 j, J
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
7 S; @" q' o# P/ K) A; B修改航班信息:当航班信息改变可以修改航班数据文件
& h1 b% A, K- l. _要求:
- A. }4 E- B `根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/ |
|