该用户从未签到
|
#include<stdio.h>
1 o9 L8 G6 U: J4 \% Q ^4 V+ M) A#include<stdlib.h>
/ F5 _; P7 R3 H R& F; b#include<string.h>6 v' A! T: l. Y* z, D2 i
#include<conio.h>
5 b: }# w; y; \* F, F5 K#define OK 1
: l6 x- G! Y/ D$ l1 ]% K2 ]: l#define ERROR 0
5 w1 P& F4 P, m3 z0 f$ ]typedef struct airline{0 B% V. M0 P; y$ B0 P+ ]( |
char air_num[8];2 o5 y8 ~3 A: M
char plane_num[8];
) I' E H0 P0 U( w1 u char end_place[20];4 O. q) A) d0 {) B0 |: ~# W
int total;0 l+ {" {/ D2 b2 m
int left;
' D% R' s$ \/ O; k9 \" N: u struct airline *next; I& C. S1 ]# h6 i! P
}airline;
o4 W/ w$ j+ \% }2 S- |$ Ftypedef struct customer{
5 b; p9 U9 D- u& d6 o% V char name[8];
4 y9 m+ M. A( B1 l! S) W0 G/ B: b char air_num[8];# s3 W& i( O, e8 Z7 V
int seat_num;. f8 Z0 E P2 }4 ~
struct customer *next;
6 ^, h' M& q. z5 s, z}customer;5 A: m, W, p. ^
airline *start_air()
0 M/ `8 F. s0 ^{3 @0 w" s& C1 E$ N1 H
airline *a;
`0 ^# f( C8 T' f6 x a=(airline*)malloc(sizeof(airline));# h' h. s; z2 D! C p
if(a==NULL)
4 l# k- ~9 C3 F a->next=NULL;1 e6 O U7 M6 Y# F
return a;9 \+ g% j) M$ b# z0 l; n
}
4 d/ D1 ~) r. {6 C' u& jcustomer *start_cus()7 J/ t, m X9 H- e' J# _
{3 L/ n) I' a$ E- j
customer *c;
/ k; y! g y, N: \4 e4 ]! c c=(customer*)malloc(sizeof(customer));- o o/ Q( p0 g# K8 v8 O) D
if(c==NULL): A! W1 s9 u; Q$ a7 \8 k8 }
c->next=NULL;
$ ?9 R) f5 L y return c;
4 r3 Q6 M E) T- ]/ z}2 x' C6 p$ F' `% E
airline *modefy_airline(airline *l,char *air_num)
3 H, a* X" [' ?: ]: N! p1 W{
0 Z7 C0 B: A5 ?: q) p E4 E airline *p;" T- w9 C6 k* B0 T7 S6 c
p=l->next;
: A& d2 I0 ^6 k8 b# ]) t9 v G0 T! A for(;p!=NULL;p=p->next)
; y' T/ e5 N) J6 c% j( c" B3 w {
- c! @2 f4 H1 Q" b if(strcmp(air_num,p->air_num)==0)
7 a! ?( ~# u( g& e {; m) x; ?" X! f: i. R, u, b
p->left++;
6 @1 Y' k% V5 f3 J return l;) r+ o, B& c4 L
}: a! Y8 _$ a7 h4 t1 Q# f/ F
printf("NO the airline!");
; x% H8 V8 N3 c+ }8 o0 D8 S return 0;
& {- C7 ?) {% j0 Y; @' J# D5 s }
, h, Z0 }+ |4 k7 P! D* G}, r3 i/ F& u5 ]: S
int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)
9 K: O& q K9 L' x{
5 A* x- z( z8 Z& C airline *q;4 q" K% ^0 `) w U1 Q0 l
q=(airline*)malloc(sizeof(airline));
6 B) k0 L6 i/ }' K" g" M0 J" z strcpy(q->air_num,air_num);
0 P+ A% N, ~9 e3 I/ @; j0 O! f( f2 j strcpy(q->plane_num,plane_num);: x/ L) k) _6 d* m6 ?; L
strcpy(q->end_place,end_place);4 L$ n5 V) r( s! ~. N
q->total=total;
2 e8 K. o! B( H+ D3 W* b q->left=left;( M. e6 M9 _& |( k% f
q->next=NULL;$ Y3 [2 k [ X! G* O0 {
(*p)->next=q;
0 C0 V7 K0 O6 o$ L (*p)=(*p)->next;
: k; K( @# S6 w5 ? return OK;2 X. C( R0 _% i; w0 w- F8 `
}
5 x. n2 I# {4 f' ^int insert_cus(customer **p,char *name,char *air_num,int seat_num)% m# {( c& C& R/ ?2 @& }/ v
{
- P& i, F8 V1 [/ x customer *q;
" j6 A7 i# z2 A1 v2 |; h q=(customer*)malloc(sizeof(customer));$ n2 Q) ?+ \4 F# {$ }
strcpy(q->name,name);: e6 V- r7 @# @6 x6 o/ v, \2 k4 |
strcpy(q->air_num,air_num);! x+ Y7 W% \9 p& V) l
q->seat_num=seat_num;$ W* ~* y$ M( t% v5 x% G
q->next=NULL;8 T: T) h% D) o7 |6 P% u0 ~
(*p)->next=q;
$ V" t" X: V4 }' @+ s$ n (*p)=(*p)->next;
2 B" O& y+ Q* @. F return OK;
, @4 t& D0 C- V. Y}
' T# {7 i. _2 _, e+ L. o+ ^int book(airline *a,char *air_num,customer *c,char *name)
& D4 y. b$ _3 T4 ^7 |5 o{- V/ W/ q3 X, u" P# Y
airline *p=a;+ C) E6 J1 i0 t: _3 A7 T. D5 z
customer *q=c->next;
3 T4 Q3 b e' f& o$ }4 N: ` p=a->next;
% ^: o1 T( x# U& I1 k- e, t for(;q->next!=NULL;q=q->next){}0 _$ S, R* o! s& G
for(;p->next!=NULL;p=p->next)9 F; ~% C& V- r2 m1 a8 p/ L* s; A
{
" p$ O- K, b: `0 S if(p->left>0)
% F# C9 j9 p: Y2 y: B8 W# _ {
# l5 f. V5 x8 O6 r printf("Your seat number is %d",(p->total-p->left+1));/ {1 e4 K- y3 X) u) s. K3 M
insert_cus(&q,name,air_num,p->total-p->left+1);7 P' N3 i; v3 D. y: X
p->left--;* w. @* Q# N/ ^5 ~# a! G6 O* F
return OK;
2 L. {" t! w1 H7 V% b2 G" h }8 }2 {" P: f8 `$ L/ O1 o
else- b0 Y- T2 K' @
{5 H! q0 |, p* x) U/ p
printf("seat is full");% I4 N7 |+ A3 s- W" d
return 0;
, P" i3 v! @+ _! z }
+ x! |4 `- z# W/ C T }( B7 K; s/ K) f
return OK;5 Q% A) r; G$ ~# o! v, v
}
$ N: [/ B' c0 l) G$ W+ J3 aint del_cus(customer *c,airline *l,char *name)0 m3 y8 V& O6 j Q: z" B0 k
{
2 y9 a$ t; g' `5 v customer *p,*pr;
1 o3 Y8 V# e) r char air_num[8];
" z4 w3 Z I8 h pr=c;% }( N% r' E' F+ E, o5 O
p=pr->next;7 P# {! F8 T1 S/ c! A# g
while(p!=NULL)
! ?! e3 |! [9 D" m7 j- \ {; F" E& A% S7 I& e' [
if(strcmp(p->name,name)==0)
: P& L* w; r$ ~& }4 K {$ L" }( i* X" s! m1 i
strcpy(air_num,p->air_num);
6 J) @$ }0 K5 p l=modefy_airline(l,air_num);
5 s) a4 a) o+ c [$ L1 l pr->next=p->next;
0 @1 c% Y4 i8 b5 p9 S% C7 ? p=pr->next;
+ W& m4 y8 B& @, x printf("finish!");; [$ L) o# ~9 w. |) N
return OK; $ {+ s8 v. @- C7 G0 J
}2 Y! p5 F& ^/ h' h4 A
pr=pr->next;$ m' [5 `# P/ L+ A; I; i( h, Z
p=pr->next;
2 R* v' M5 x1 E }6 @' B& k4 C2 x7 b/ ?! d# R0 m
printf("NO the customer!");
" i1 N5 U& U: |; @ return ERROR;0 C8 i4 |8 X; m; N7 D' U+ [
}
3 b' R6 A; F; f; X0 bint search_air(airline *head)
* ~# a8 W" n2 b; l" l{
# C/ a% @' @9 I airline *p=head->next;
2 w+ R& m- K9 R, Z0 @ @6 i8 O: z; { printf("air_num plane_num end_place total left\n");
3 y* G/ y! `% d7 A: [" K for(;p!=NULL;p=p->next)
' n$ \% A5 a7 F! ~& n4 L! ~0 P6 w2 g {1 S( h) G5 F8 r; Q! m
printf("%s %-10s %-8s %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);- d" F4 E$ U, k- x) q4 p" ~7 k
}
- T3 B; C: b$ v. r: @# ~" r( t return OK;
0 P y0 U4 U1 b& d}
, D. ]+ e) N3 kint search_cus(customer *head)
8 Q9 y" r) h9 a8 _! A' D6 l{
2 I+ G$ Y. e2 V* s5 A+ Y, _ struct customer *q=head->next;
3 Q! @, k4 F+ D5 _: M8 D printf("name air_num seat_num\n");
2 n3 E+ b! z% f0 F& o4 x for(;q!=NULL;q=q->next)
% V' X. V/ |: x+ ^: G! `- J {( M, n$ S# Q7 i, t
printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);2 o5 l/ \3 f2 R r; [1 ~( s9 E
}7 _& q+ p; c0 _2 c5 ]/ v# B+ e: Y
return OK;
* T5 l7 C) @- O$ S- b}
+ ~% g" [0 U% Q* }int creat_air(airline **l)! Z! E% v- ~5 h; i: a, g7 w' _2 X% `
{
! M5 D4 b& v# e- Q% N airline *p=*l;) d2 L- l( h& `& K" u. B2 o# `% o
int i=0;
" f& w2 X' Z9 m% l8 W( ] char *air_num[3]={"007af","008af","009af"};
1 F1 q' ^; m; n3 r8 N: i( S- Z char *plane_num[3]={"plane1","plane2","plane3"};
+ [: l5 L8 L: v y1 z ]$ @0 N char *end_place[3]={"Beijing","Shanghai","Tianjin"};1 w% m6 k4 e8 w+ ?7 @3 m/ F( L4 O P: W
int total[3]={100,100,100};
& V9 \: `8 O) m! S8 |. r int left[3]={52,54,76};- v4 B# n, [. \$ A. E
for(i=0;i<3;i++)9 H- k6 n2 F! \
insert_air(&p,air_num,plane_num,end_place,total,left);# Q$ K7 B2 d7 x" p# w
return OK;
5 |% B; q5 D! s}8 l0 v/ }( E/ Q4 I" s8 T
int creat_cus(customer **l)
9 F1 S$ t2 t, p/ X5 k8 n9 `" |{
0 r/ Q J4 i; g' ` customer *p=*l;
y4 I9 d! P Y& V; Z int i=0;$ v3 e, N0 o% X( L% L, E( A
char *name[3]={"zhsan","lisi","wangwu"};
! {- V9 F1 X4 w' Y5 `$ F char *air_num[3]={"007af","008af","009af"};
5 I1 _3 C: V1 w9 M# O- n" v: l int seat_num[3]={2,5,7};
% H; E3 ^' g$ v% |5 \2 L for(i=0;i<3;i++)) z+ L- n6 z( C$ {) D: z. I
insert_cus(&p,name,air_num,seat_num);
# o# M% O4 c2 g# b return OK;
$ F" i N: h q0 ?- ]& W}& Z1 @& E+ N! D$ K" M; J
void main()- N$ J( q* X1 k$ m
{) z# a# r& t5 m
int t=1;8 S+ B+ n( y; O' k( p* _+ P
customer *cus=start_cus();
! j# C" Q ]4 H A0 }7 Y2 m: X airline *air=start_air();- @4 M, @8 t/ c& o6 x$ [
char name[8],air_num[8],ch;" E. m* _, J0 V
creat_air(&air);6 r' N! b& W% Z- Z
creat_cus(&cus);/ i# V: ^" I. D+ ]2 k
while(t==1)
+ h3 w6 `, h0 S0 v {4 v# Q" C, H/ H
printf("\n");
1 r$ b& ]: ~) l; h. B" O- _ printf("*********************************\n");
3 x) W% U/ L, J. d H; l- A( ]3 c printf("* Welcome to air firm! *\n");( I F/ {! _4 A8 n/ G% x+ W
printf("* book--------1 *\n");! G% K# G$ U6 E& a& R7 L
printf("* cancel------2 *\n");& o6 `9 Q# c) K& Y% J1 ^
printf("* search------3 *\n");
! m. `# M2 z0 e# P8 C% E! M printf("* exit--------4 *\n");9 V; B8 Q' P* I& a; s! q8 r! c8 ]! G
printf("*********************************\n");: g2 D% W3 z) z
ch=getch();
) m% h v- ~3 T# C; Z* \ if(ch=='1')1 b: g- Q) G6 _9 p
{! Y9 R6 r5 m, T I
printf("Please input a airline number:");
/ r7 j1 l, e: S9 E scanf("%s",air_num);$ x! Y* U( h3 h
printf("Please input a name:");! ^0 w1 P+ ]. X$ w! n# ]3 \) e* {' k
scanf("%s",name);" C7 ]" G; T# n: r( j; I3 ~0 Z
book(air,air_num,cus,name);
5 G# q8 f9 Q, z }
6 l9 }9 S5 {8 [/ R" L. e/ F2 Z else3 [, p2 T- D$ m2 {
if(ch=='2')
( E5 X5 `8 o; S( H {9 B: _# H% A7 V/ t. n6 e: e
printf("Please input the cancel name:");7 T/ c9 j; n1 j) s8 F. T& c- g
scanf("%s",name);& A6 P) n- P# N" L0 h1 @; e8 n( O3 g
del_cus(cus,air,name);; g; R* X# z- i1 {
}) H) d' _. k8 x; ?8 w( q
else
' c6 P* R2 M5 h' @: j& M2 b: v2 i if(ch=='3')
9 ]8 Z \' h4 D4 |$ J0 H' E0 l {, [6 E2 Z( A. h9 r8 `9 q K
search_air(air);
6 Z# j: c5 L% x: L$ [ printf("\n"); : T" |4 y+ d- Z6 @+ b8 E! h/ g5 d
search_cus(cus);$ v* o4 C1 `4 c, F
}
. {6 i% j9 `* x7 g0 v/ M5 ]9 |( r else7 e$ y9 ?* r' g4 B
if(ch=='4')
; l3 L h6 Y1 `, y8 f {: v/ u, H; W: p$ K8 N* P
t=0;
+ B6 y; |) S* j- w }
4 L7 l O1 y9 ?1 | }
' Q% X# N) a; ]& V( i" c) n2 Q}" p* E( t* h9 D* f5 H
/*任务:通过此系统可以实现如下功能:
; v5 N1 w! {5 R0 l4 }" T! S, v录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
; h& f) B7 Y! H& M查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);" y& s4 q0 j/ J2 q' g3 x
可以输入起飞抵达城市,查询飞机航班情况;
8 y, d8 b8 c; o9 \* Y4 n订票:(订票情况可以存在一个数据文件中,结构自己设定)
- F. u- o1 E! v8 ?可以订票,如果该航班已经无票,可以提供相关可选择航班;
2 d, g+ F0 i' D退票:可退票,退票后修改相关数据文件;
9 i/ c, L, Q1 R7 G: N0 ~: G客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。4 f/ J& ^( U7 L* M+ s# Q1 q9 `
修改航班信息:当航班信息改变可以修改航班数据文件: T- B+ O1 l* J) ~8 a# t& L! y5 a
要求:: @( U; r8 R& G, b
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/ |
|