该用户从未签到
|
#include<stdio.h>9 `5 U: F6 H9 E
#include<stdlib.h># c" n! g7 ?: s, g2 X
#include<string.h>( }3 t8 `7 _* B% a9 F6 a; P
#include<conio.h>
3 i: ]0 [$ `' _3 S) u8 I, F. ]. H, P#define OK 1# N2 L" g! a" ?
#define ERROR 0
5 k& t( M$ M2 a; Z1 @/ k9 d- H$ qtypedef struct airline{" G+ M7 K3 f) `6 [. A9 J* S7 U
char air_num[8];( }7 @9 e& D' H3 k
char plane_num[8];
6 {8 T, O; i' w- ~7 x: x$ T) j char end_place[20];2 p2 c# K3 _% D0 B! q
int total;: O8 I$ d4 K3 C
int left;/ p0 {- Z$ k/ g$ |# C% F! U
struct airline *next;3 j. p' @; Y9 J- S
}airline;
& a. w8 Z/ h5 f; j; G! G; a, [typedef struct customer{
- J: F6 z7 A# Y% x4 J: X char name[8];2 O6 d$ Q e! J8 O$ k7 x0 L) l! L1 |
char air_num[8];
$ n, A9 ^; G( b/ t4 ]9 o int seat_num;6 p T7 I/ j- P) G0 \
struct customer *next;
5 }& J$ f8 G$ P4 Z6 M}customer;
* V D0 ^& L8 {5 oairline *start_air()
$ o; S- i7 }; ~; ?2 J{
- G. ]: p7 K5 l2 O' S5 |+ A airline *a;
5 y5 V5 w: g2 E% a% ^& v3 I, s a=(airline*)malloc(sizeof(airline));2 `" j. G9 e, E+ w8 @% u
if(a==NULL)- J; v9 z; \7 X) a* o
a->next=NULL;& z6 @6 L5 T/ j) W- K
return a;
: t# n. X1 I7 a1 |}7 S" B9 i+ P8 [0 J# W" f
customer *start_cus()% {2 f1 F" ]2 O: h4 S
{' Z5 E2 b# a/ F9 W6 c1 g
customer *c;
" ?) [5 b0 x; i4 T4 [2 T c=(customer*)malloc(sizeof(customer)); X% I7 C! f% d# q5 Z
if(c==NULL)
( W9 z, X2 n8 p) h/ v& a' ?' t c->next=NULL;9 P* A0 U0 J6 _+ v9 E
return c;
l4 F2 v8 [# y, K! |: U1 T}4 E/ O, p, `1 ~5 y6 {" I
airline *modefy_airline(airline *l,char *air_num)
% I$ V0 E0 P" ^1 b0 `5 F{
5 r* H( r' B Q0 K8 d airline *p;+ D' _1 T: E6 t: n
p=l->next;5 b2 l: \4 b5 D8 V
for(;p!=NULL;p=p->next)1 n6 z5 @' t& `1 r* S
{- b+ M% j4 L8 k& Z& q8 d" I N0 A
if(strcmp(air_num,p->air_num)==0)
5 P( ]* T2 u3 A1 [0 W$ U6 X9 ^ {
' i6 k) L1 n+ `5 n p->left++;
" m! a- N! a* c7 ]! {7 U return l;/ y9 g9 K( T' q
}
- `0 u7 n% g4 i( J printf("NO the airline!");: L" r0 P8 S4 i G3 C
return 0;
* M: W6 `& Z% [ z# K S }; g, \' P3 x, O J; s
}
, `* E2 q( e' ^ \ Y7 Q0 ]: dint insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)
6 a8 x8 T' R% [7 S{
* G: F( f3 J% N$ [/ Y* _; r: u airline *q;
; Q. N- h; Z. [- `( h q=(airline*)malloc(sizeof(airline));( n3 A. j! _# Y+ ]: E( Z# X+ \1 [
strcpy(q->air_num,air_num);
6 t" s7 s! T9 ~; x X8 q strcpy(q->plane_num,plane_num);
! V/ }& W3 e, S* t% Q0 c6 C strcpy(q->end_place,end_place);
. }% @% z9 }# _ q->total=total;
9 l! z8 F* X- S9 O' i q->left=left;
6 A7 D; Q& S! c* o$ _( \! |6 b6 M q->next=NULL; D2 |$ _9 w, I$ t3 [
(*p)->next=q;9 U/ z0 K: y8 P H4 p2 D& [
(*p)=(*p)->next;
7 Z0 d! \7 M3 G return OK;, n% E) g0 C* O
}
8 `) R. ]; @7 A' ?% Z5 Qint insert_cus(customer **p,char *name,char *air_num,int seat_num)
) L/ h: F: M9 [# `' |. }" c; j{1 d) l3 S3 l& ^5 k- E! W* a
customer *q;' S, ^3 H) i/ H. x9 m3 _
q=(customer*)malloc(sizeof(customer));, V& d. A2 R! _/ J; D! O. t1 ?5 G
strcpy(q->name,name);
! R' j# K2 B' ]. l: R strcpy(q->air_num,air_num);
; F: g7 B% ~$ w# d q->seat_num=seat_num;% C' v" X! }5 }8 ~
q->next=NULL;( c# p: m1 S* ~7 L9 s6 @+ H
(*p)->next=q;: V4 `: k5 P+ v8 A! S% W
(*p)=(*p)->next;4 h+ j3 s' |! D F' V9 M
return OK;
0 I# j& `2 E" U y1 F W}
9 q3 z7 B+ W! Z+ C7 g4 b2 Y; ^4 Q) }int book(airline *a,char *air_num,customer *c,char *name)
k; m1 L8 a& U# @/ r4 P9 t5 o2 B, b{' u8 ~, Y2 B$ G! j L
airline *p=a;8 w. i3 T1 e C
customer *q=c->next;
( j2 l. F1 }+ g p=a->next;
; x" u$ z# `" B M' z for(;q->next!=NULL;q=q->next){}& O8 r) Y0 l N% e4 ?: s3 n
for(;p->next!=NULL;p=p->next)4 _) q+ y' k' K. r! s/ M, ?
{ v5 T* Z1 e% j- k! o
if(p->left>0)$ J, Z6 o: G. \# W# D9 m
{
8 d& l# U( s( t! S' ?! { printf("Your seat number is %d",(p->total-p->left+1));) q2 X3 S( ]8 K+ i$ |2 r
insert_cus(&q,name,air_num,p->total-p->left+1);
2 _ L3 Z3 [5 j4 P9 R p->left--;, w5 d) m5 x3 K5 g
return OK;
& q' `7 t; [6 F% W- o0 k }
& L8 r% Q* `+ ]5 E) v else
1 H# x, h8 R; @+ e" _ {
0 n) ?7 ~8 k( I8 h3 ~3 w0 ? printf("seat is full");
, I9 I% B4 W$ R; U. e. D! M3 R0 D* g return 0;- E5 P# }- r2 s% i
}+ Q' a' O6 v3 P Q: `
}* \. [5 W/ V' c) _; S, `3 W1 l
return OK;
+ k+ W; ]8 I8 i# l# f}, T% x1 }1 F' l, b. u
int del_cus(customer *c,airline *l,char *name)
3 j! O4 s4 t6 @( G! J$ C{
1 y7 J: H7 V& W3 y customer *p,*pr;
|7 u A- ] K7 b* W char air_num[8];) j [) `7 U1 i
pr=c;
& |- x* f" |6 e/ u0 o% F6 A5 z p=pr->next;
* W7 M/ C9 g, l4 m% E% C( m& y4 A4 E while(p!=NULL)* f8 f* a$ w8 M& b* s
{
) J" f% b6 s' n$ x+ o! ^ if(strcmp(p->name,name)==0)5 M2 I( S) q; Z
{3 X( w. |3 Q/ E% \& i+ Q
strcpy(air_num,p->air_num);8 C0 s" U0 ]1 q7 @
l=modefy_airline(l,air_num);0 Z4 F* r6 |) }8 R
pr->next=p->next;) v8 M( @8 D: O* X! J- b
p=pr->next;
( W4 g- N6 T0 f) [0 L0 y+ W3 X) f printf("finish!");
( I' {8 i4 e: }+ u return OK; $ k+ I- v7 H% U+ t
}/ Y d$ ]* D5 E7 x/ Z) |3 y9 ]. d
pr=pr->next;( l$ {6 j1 I: g* v& K
p=pr->next;1 D5 p: u- b9 R
}) y: f: A/ ^( M" u
printf("NO the customer!");% y7 j3 _" t. t
return ERROR;1 ?1 c6 U3 Z- z8 Q+ ~7 p! N- }+ F
}7 b6 l5 } o6 ~
int search_air(airline *head)
8 E3 n4 s0 g, D{
]- D- e3 d5 t2 j airline *p=head->next;3 Z z- |' M, s: @/ |
printf("air_num plane_num end_place total left\n");( L1 u; R) {$ ?( |& D
for(;p!=NULL;p=p->next)) v2 J. f9 l! w2 K
{% m# ]6 |/ y0 F$ U- t
printf("%s %-10s %-8s %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);
+ H; i1 B) R, p) j) g+ W! ^" [! a }" S. G3 l/ d# H- T: `4 i b% \
return OK;
. o& Z- J# G; N( G: Z: z1 b" G8 ~}6 F* \* _: p- D6 l; V' |5 t
int search_cus(customer *head)/ N5 p# L5 v8 l8 f
{8 T, t. N G( O$ \* A K* q& d0 x
struct customer *q=head->next;
0 f2 c$ M, |0 |$ ?+ @ printf("name air_num seat_num\n");5 [5 y+ J4 q3 w9 D+ F
for(;q!=NULL;q=q->next)
: y4 o2 u( H9 f4 L, d/ w1 s5 ~ {2 Q* }! v9 o7 s3 t' t# b
printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);/ }( h* g. O" Y# U( Q" z6 f
}) r/ b% t3 Z" Y1 O. Z
return OK;
) T! O* y9 a0 K}3 k4 L9 g" f) `/ e* L5 `# R7 A
int creat_air(airline **l), e. Y. i9 e( L5 w& ^" N
{) K% y2 K; O5 I' `/ k
airline *p=*l;1 I0 M6 J3 x- i# \+ @5 B( |! x
int i=0;, @, E6 w' O/ h9 ^
char *air_num[3]={"007af","008af","009af"};! C3 j: d" S, d3 R1 k: K2 P7 ~
char *plane_num[3]={"plane1","plane2","plane3"};! s5 s! Z* a) q$ S `# Y9 a
char *end_place[3]={"Beijing","Shanghai","Tianjin"};
6 H' w/ q r# ] int total[3]={100,100,100};, }/ \7 [; h7 F* [
int left[3]={52,54,76};
1 x4 a6 t7 n# \& `* d% N) X for(i=0;i<3;i++)& Y! [! X' P3 y6 u
insert_air(&p,air_num,plane_num,end_place,total,left);. w; ^9 \1 q% S, B( T* g
return OK;
{& r/ I* p$ E# p2 O}
+ U, T8 `4 V- u3 l0 R% s sint creat_cus(customer **l)
# K( @2 M+ O6 V6 u# D( F% ~{7 A: \) P8 B8 W& C9 Z% B
customer *p=*l;
* u2 \8 A5 K& I$ d! `/ H int i=0;
6 A2 f E6 C8 A; }, G% h5 F char *name[3]={"zhsan","lisi","wangwu"};% _& E9 @0 l; ?. B$ [
char *air_num[3]={"007af","008af","009af"}; I2 x( ]9 G, i& d) I- H
int seat_num[3]={2,5,7};
- D3 a; n* S+ w1 Z+ T5 c. u8 [ for(i=0;i<3;i++)
7 Y! r( v( i" M/ K4 g; j( \ d insert_cus(&p,name,air_num,seat_num);
0 d V( Z0 W* m+ ^ return OK;
% {; `% P; s j}# W1 q L" k0 m' L; d, K9 |& p5 D* |
void main()/ p# S& A1 q6 p: J
{
/ b( j F: u8 b# g* ]. a int t=1;
; Z$ d) H. N F& [" \% F customer *cus=start_cus();& G) b6 q5 f6 m% e$ ?6 d; x* t! L
airline *air=start_air();) X+ M' C' z6 |, p
char name[8],air_num[8],ch;6 c' G6 t% L, l; n
creat_air(&air);* U, P$ E: h" X
creat_cus(&cus);" {% E# H$ W. A0 |7 K
while(t==1)
# i! C, ?1 D4 b6 I2 d; Y& K# t {* d! O3 Q1 e+ f) q- N
printf("\n");
5 a4 S8 ?- N/ {) C4 ? printf("*********************************\n");
- W- _& K* L9 d) W printf("* Welcome to air firm! *\n");
) w0 ]1 e" i" d4 s% R1 J: H; ? printf("* book--------1 *\n");, T1 G9 f# \) O) W, f5 u* B) P
printf("* cancel------2 *\n");+ R! X! e! S- p- }3 J( ]2 t
printf("* search------3 *\n");
! S+ n% ^. u( v$ v printf("* exit--------4 *\n");" t3 B) ~8 G- e1 B5 E0 x
printf("*********************************\n");9 X6 p8 D4 e+ g9 {8 l
ch=getch();
1 a1 \1 \; x- k* d$ r) D+ M if(ch=='1')- k- o! C, C5 f; O
{' i& n! R S# W, x( \/ _! M
printf("Please input a airline number:");
" ]' j3 z) H: W* K scanf("%s",air_num);
2 z9 D! F" a3 _) K* \! r4 d printf("Please input a name:");# u: \* R, W, F' ~
scanf("%s",name);" C& e- `* J9 R" z4 Q" X. ]0 c0 ]
book(air,air_num,cus,name);- E9 Z: Q& H) H/ y& o" V* h' d
}
$ t9 o) N) J0 k else
4 Z! \1 \. v! S% `% ^( { d if(ch=='2')
( Y6 E3 u' W- q/ I {
. |4 i+ Y* V: ] printf("Please input the cancel name:");
3 S' I8 f# Q9 Y$ g/ e9 z scanf("%s",name);
- B. W+ c5 H) P. C del_cus(cus,air,name);
6 \2 h( }4 {% g }9 l0 W2 r2 \8 j
else
( a! B$ z5 D3 E if(ch=='3')* J; m, n4 O6 j; T7 C$ ~/ D
{
; X' Q7 V3 s: x( u {7 h0 M u search_air(air);7 H8 s7 M4 M4 ?$ B) |8 _+ t6 a# ~
printf("\n");
" b$ F5 K8 t9 ]8 G: [' b9 `& Z2 e search_cus(cus);
( Z$ v* C3 O4 h2 V# t% @9 v7 L+ T }
8 M8 Y6 ?* V; \$ x# I) a* n else
. h; w1 ^4 p2 N7 ~1 Y! K7 v if(ch=='4')
7 D2 G+ g0 q# c) F {+ ~( ~# j* D0 h3 V
t=0;
+ {2 S1 o V2 Y1 v }
8 v P* F6 T0 ?7 u }
+ M9 m$ ]/ Q5 _/ K}" g1 W. w* i2 t( B" w2 I
/*任务:通过此系统可以实现如下功能:$ s7 E' v) h( k: @4 @
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)" f2 M6 u/ @% R( D2 A
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);( w* Z( }; D3 n& `; ~8 i% H$ L
可以输入起飞抵达城市,查询飞机航班情况;9 z+ {4 i' D9 S9 ~& N! I
订票:(订票情况可以存在一个数据文件中,结构自己设定)' }' ]8 Z' S% P0 N
可以订票,如果该航班已经无票,可以提供相关可选择航班;% V( J( h1 P. [1 \' J( V
退票:可退票,退票后修改相关数据文件;" {* Z4 E5 K$ D5 b- ~
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
' G; H* y8 D: U# U修改航班信息:当航班信息改变可以修改航班数据文件
3 ] T) S1 H- ]要求:
0 Q7 d+ m* r! c2 N# l V8 D根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/ |
|