下沙论坛

 找回密码
 注册论坛(EC通行证)

用新浪微博连接

一步搞定

QQ登录

QQ登录

下沙大学生网QQ群8(千人群)
群号:6490324 ,验证:下沙大学生网。
用手机发布本地信息严禁群发,各种宣传贴请发表在下沙信息版块有问必答,欢迎提问 提升会员等级,助你宣传
新会员必读 大学生的论坛下沙新生必读下沙币获得方法及使用
查看: 13263|回复: 2
打印 上一主题 下一主题

飞机订票系统

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2007-12-25 09:36:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
#include<stdio.h>4 K9 O( T- {2 X$ T8 q7 ~7 p7 u; Y
#include<stdlib.h>: ~& l+ j6 S* E5 [
#include<string.h>
$ S/ [8 J& [7 S#include<conio.h>6 U# _5 _7 T3 w
#define OK 19 H" G3 R" n' i
#define ERROR 0  \* j0 J. _6 |) m
typedef struct airline{5 V, o1 ]& K' w- c8 z
        char air_num[8];( y0 d- }) T" b6 S
        char plane_num[8];4 Q5 `) e% x1 c% @$ X
        char end_place[20];; G- I. n% f1 G2 y. t' G' f0 a& d
        int  total;
' X4 Y# U  ]4 |: a        int  left;
& M% i  t9 H/ h9 g" M: h& X        struct airline *next;
# o! D+ x: ~# n4 {6 L/ D) Q8 l" ^8 i}airline;/ y4 _6 i/ |3 q1 v) x. D5 k
typedef struct customer{" r, `/ P5 J8 F( L, [. q0 V
        char name[8];
' Q- L8 `& G( [( @        char air_num[8];( q, W, P- B6 O; N: ^
        int  seat_num;8 m: G% I" E' l3 n
        struct customer *next;1 |4 j9 o6 X. f3 D! k
}customer;
6 r, w4 D  ?- I9 g4 B8 oairline *start_air()4 Y# x% ?& J+ O+ _
{
+ |! }& e3 O0 {1 {& C* G' h4 Z2 l        airline *a;6 d" Z( a) C- N" V( P5 F! I, w
        a=(airline*)malloc(sizeof(airline));4 k; `/ j9 w% P) v. ], P! x  n  M
        if(a==NULL): k! P" f8 R1 p, E  _
        a->next=NULL;; k4 i# x, R4 g' i
        return a;
6 T: P8 k8 R! v& k: P# q}( i9 Z; F4 k* y" [9 F# \  {
customer *start_cus(); u5 W& U6 C+ _9 `2 ^# c- g9 @
{
6 ]' e; [4 ^7 Y% w1 p( U9 e        customer *c;* y- g. S* |) T5 K
        c=(customer*)malloc(sizeof(customer));; {# _  x4 x* |6 g( G% s- G
        if(c==NULL)
) e4 [$ T* u& A7 c, K8 Y        c->next=NULL;
+ a+ N' d: l- C        return c;
. e2 x/ ~8 d0 F" C2 N9 t}# Q: J* I5 @+ K, q  O5 n  ]5 p
airline *modefy_airline(airline *l,char *air_num)
( i; `6 y+ k. `; {{1 l; J  F! M9 W# r  a/ y
        airline *p;
# f& H/ v% J  `: x        p=l->next;6 p  w: v: [* z+ f7 A: z  t$ s
        for(;p!=NULL;p=p->next)3 ^9 N5 x# N. r( [
        {
; u& B3 f# T# Q                if(strcmp(air_num,p->air_num)==0)3 G8 k! C7 C8 y" N8 s
                {
; X$ [& q0 I" D8 X$ u) X6 E                        p->left++;2 W1 U' X6 R1 }+ \  }* k4 l" w
                        return l;
9 c! @# [. K( C! @+ Y* a" r$ s                }
0 @' E$ |7 T  B6 e  S) [) p                printf("NO the airline!");& S/ S9 s$ [( `" i9 R
                return 0;& g2 e# F. F7 d/ f: B: l' d
        }
5 Z, V, }4 m! Z% @' n}8 C% t7 A  |# ]1 [
int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)
6 w, g* N" N5 v9 W8 l; I# i- R/ T{4 f- T# w8 V+ [1 j  ^+ V+ V" \
        airline *q;9 Y; S  ?& Q' ~, Z. ^( L
        q=(airline*)malloc(sizeof(airline));
$ |& J+ S% \& c/ h5 K        strcpy(q->air_num,air_num);
2 ?9 h" M& @, d5 j. w/ q        strcpy(q->plane_num,plane_num);
) H7 Z7 U6 u# |        strcpy(q->end_place,end_place);
$ U- G3 B0 X* Y* j2 Y  ^        q->total=total;
% Q" |; V' x! f3 v: c        q->left=left;$ ~  w9 Q& f, o" O8 B9 V( S+ |
        q->next=NULL;# U& d/ Y0 ^; r2 A6 i( b( T$ H
        (*p)->next=q;) W6 Z* d; k9 Y* ~- a$ s% H
        (*p)=(*p)->next;
' t* o, C4 V( Z# G+ D        return OK;* p, K0 u5 h! q4 Q4 d% s
        }
2 N+ }0 i  _  C) \int  insert_cus(customer **p,char *name,char *air_num,int seat_num)) a0 ?6 @3 S( ~/ G
{
5 T* [3 V' C/ _        customer *q;) B+ D8 Q: t) U1 z
        q=(customer*)malloc(sizeof(customer));
% ?- b  M/ {; U- j  v- l5 ^* k6 x        strcpy(q->name,name);7 @3 H7 n- F7 n9 ?4 ~
        strcpy(q->air_num,air_num);
( J# J" C2 H8 t; H# y        q->seat_num=seat_num;) l: c0 |) P' M$ q; r
        q->next=NULL;
- M. p; O  r: \) n# q8 p) d: e        (*p)->next=q;
! V0 r5 D: T: v! g% z+ R8 `        (*p)=(*p)->next;( X1 p" c4 N% e0 g
        return OK;
7 Q9 {; h% z6 X" @; M}
' F1 j& I) R: Z3 p( Nint book(airline *a,char *air_num,customer *c,char *name)
1 L3 v* j, p/ F! {- k4 i{# ~5 a/ l! `  M
        airline *p=a;
# u( p7 y! m4 E7 h; S        customer *q=c->next;" \5 K$ }* t% |4 B' _
        p=a->next;- K- z$ }5 R2 V# O# P8 y
        for(;q->next!=NULL;q=q->next){}
2 l% k1 c! y: [/ K, e9 y! w8 [        for(;p->next!=NULL;p=p->next)
7 e: k; f& o: W! \6 J: `8 S% n        {
( b6 ?1 T. A: h' l( @+ i                if(p->left>0)
- \) }5 p) E+ ]" Z                {
0 {% u- W( g9 R5 I+ j                        printf("Your seat number is %d",(p->total-p->left+1));
7 E; a% D1 w1 A4 U  f" c                        insert_cus(&q,name,air_num,p->total-p->left+1);( d0 M* F9 _5 n- B$ y, u
                        p->left--;) x2 q' y# g: x# f- I+ [
                        return OK;1 o5 D* _5 R" U3 e
                }
9 w7 m; t( x# V+ X* C% k5 |! t                else. T) v: E2 w' G0 j7 v, _! B
                {3 b; A3 }4 m( M* P& V$ ]
                        printf("seat is full");1 Q7 `( ~, f( u( u2 j1 u) Q
                        return 0;
1 Q  N  k1 x0 ]5 V, R- v                }
2 x( j) F9 l3 ~3 {        }  K& S/ `: j' v5 \( m7 k1 r
return OK;
* X9 C/ m% J! B4 f}" X" w* P' f- k$ D
int del_cus(customer *c,airline *l,char *name)
4 Z8 F& d9 f/ e/ p/ M{
) B$ m; `! a6 {3 Y2 C0 ]- d        customer *p,*pr;
# r; H9 Y, C" t3 f; r        char air_num[8];4 R4 j0 u3 q3 X7 i7 p' G
        pr=c;
& w3 ~& H9 z# p7 \& B/ U        p=pr->next;# E' w5 u: u" |8 k
        while(p!=NULL)
5 I% S: g' F" |4 W" F        {+ l  g; j/ F. s# Y6 F" q( D% W
                if(strcmp(p->name,name)==0)
, x9 \$ z4 \2 H$ e% ]                {5 r, Z- O5 i5 U0 O. g8 i' O
                        strcpy(air_num,p->air_num);3 S5 W- r" P/ @  @$ J
                        l=modefy_airline(l,air_num);9 E( J) c1 Q! R
                        pr->next=p->next;
4 P/ G( O, D- T4 x, H                        p=pr->next;( W  Q/ `: `: k! B
                        printf("finish!");
5 v- i4 \# c! q                        return OK;
% l2 Q" H* I- y* {+ ?                }7 F& t, T4 |, c& W
                pr=pr->next;$ j) H2 P: _" [2 S# }* R5 T
                p=pr->next;
) Q* g7 {4 A+ q% s# v* I        }+ n" a! |4 A/ l; R, k
        printf("NO the customer!");
( m% |; y1 ]! Q- S/ H        return ERROR;. u* k4 }0 g- ~4 ?9 p  W
}
7 `1 a! m! p6 t3 h( M: qint search_air(airline *head)! `. K: G+ g# {$ C
{' g4 o: n4 k* C" f# [
        airline *p=head->next;# N( A7 D# x! W" G( i
        printf("air_num  plane_num  end_place  total  left\n");
& e' ]: H) V# ?! ]4 ~; \        for(;p!=NULL;p=p->next)% f1 ]- J1 C* y5 _! ]- q
        {
8 b$ J4 p6 I# E! ?3 V2 n, C                printf("%s    %-10s %-8s    %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);
* b9 r% v+ z# ?        }; Z* d' a, J6 z! ^+ r& w" d
        return OK;; w  f$ p4 e/ O. {8 s2 k
}" Y0 k& y8 c: H$ \" \
int search_cus(customer *head)
+ {9 d+ W) K5 A- ^$ I! r- m{
; Q9 `2 c% `# B" ?. E        struct customer *q=head->next;4 @5 m4 j- G; |
        printf("name    air_num    seat_num\n");
' ~% v+ C) z2 e( w7 C% K        for(;q!=NULL;q=q->next)
1 ^5 Y3 T7 d' P: c8 Y6 c" d        {
3 k" a" b  Y: [                printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);8 @2 A9 Z5 F3 z5 |3 h0 d8 V' T
        }& E1 s+ [0 C! k. L
        return OK;! u! O# q. O+ u
}
& X- ^! D6 j) tint creat_air(airline **l)
8 l/ D# F. c& o; E3 Q" W4 r{
& V- V0 H! V, b1 r) S! h        airline *p=*l;
! [0 x( `, f9 N! k# |9 J) z! V, v        int i=0;
2 B, n, S5 `3 j5 b) p; _+ ^        char *air_num[3]={"007af","008af","009af"};
4 s& H! o6 v8 z        char *plane_num[3]={"plane1","plane2","plane3"};
8 `' u# m: S6 i: p) L        char *end_place[3]={"Beijing","Shanghai","Tianjin"};
; `" K# v' |. N7 g6 n$ n0 Y; A        int total[3]={100,100,100};
+ e- E5 M, ^$ E/ h: a- @        int left[3]={52,54,76};
) N9 }( f+ P! I7 J, T6 Q        for(i=0;i<3;i++)
" {9 Q0 a& h  U  X0 Y/ y/ n        insert_air(&p,air_num,plane_num,end_place,total,left);  R; e, _- i9 Z/ W4 a
        return OK;2 \9 X  j, e, {6 b6 F. m4 \
}
# B- O8 u  b- I6 n; Z" xint creat_cus(customer **l)
* B; f4 O) f8 Q, S2 K; F! M3 x{  U& G: c) O8 o$ Y, N# j
        customer *p=*l;: M6 o/ H  b+ {, Y7 P# R
        int i=0;
* E2 h' S% W: p( i% \! X6 K7 f        char *name[3]={"zhsan","lisi","wangwu"};7 i, \: E2 ]9 v. ~6 [! L; }$ |
        char *air_num[3]={"007af","008af","009af"};
8 ~5 g& r' G7 G) ?        int seat_num[3]={2,5,7};! b: A7 U' w) C+ T. t8 }/ y$ \- S
        for(i=0;i<3;i++)
. T! A' @) l/ Z, Q( r        insert_cus(&p,name,air_num,seat_num);$ T; J4 v: Q. A, h, c
        return OK;7 |" i, g8 W( `9 I8 O2 G
}
* _& z, j8 g; K, u0 _void main()
4 f6 ?1 Z) a0 I9 U( \# G{
2 B" Z5 F; p4 n6 z: J        int t=1;
; J7 N# A% K6 s' U4 K6 s8 \        customer *cus=start_cus();6 F3 `/ P$ B4 I; K( o' r7 f5 v  l
        airline  *air=start_air();
. T5 f( f( s% e& W        char name[8],air_num[8],ch;
/ T1 g/ S, f. H, D' |' L        creat_air(&air);
! e% m: p4 N: \- M1 X1 ?        creat_cus(&cus);
" V* t8 ?4 M4 L2 t! q        while(t==1)
# ?( ?) u4 }. o- ?+ Z        {
, e, Q5 ~  U; n- i                printf("\n");+ ^( n; q) i. L. h5 k
                printf("*********************************\n");
4 t+ z% }% R  m9 ^                printf("*     Welcome to air firm!      *\n");8 b: j; r/ d0 g7 x# w- [: z& q0 m+ r
                printf("*         book--------1         *\n");, M$ A7 j1 }! l; p% m7 C0 {) x! W
                printf("*         cancel------2         *\n");/ Q. q3 a7 u8 d2 l
                printf("*         search------3         *\n");; R  w7 G- Z. w8 [
                printf("*         exit--------4         *\n");0 q( @; \% r- {+ Q* Q
                printf("*********************************\n");
* c- Y) C# h0 c& U. p+ o% ]                ch=getch();; i" ]4 ~7 Q+ m5 I
                if(ch=='1')
8 G- |9 T- s' u                {+ S0 `5 f, n1 m) d7 I
                        printf("Please input a airline number:");
! G6 m5 H5 _# l( }4 d5 a; A                        scanf("%s",air_num);
, i( D) E/ b3 N6 b. U! N8 Z6 r% I2 S) ^                        printf("Please input a name:");
3 m% ^7 y4 O( R$ E6 _) E                        scanf("%s",name);5 |9 v% d) x( q6 X* S3 b0 h
                        book(air,air_num,cus,name);
8 U7 c3 g! J- Z: z                }
+ A7 f! A0 c' F* P+ B4 m) K! Q) E                else" w1 W8 o  R7 N3 ?
                    if(ch=='2')
/ L2 X$ Z* v  o  ?% d6 Q& B! j, {                    {( d( m/ z* [6 \% T
                        printf("Please input the cancel name:");2 `! I9 H. I2 @) N
                        scanf("%s",name);
$ j; M+ ?/ r& d$ Y                        del_cus(cus,air,name);0 x1 g( J1 ^$ |3 z7 b, ?0 p
                     }* J! j( P0 E# t6 ?
                     else' H5 K* N5 A0 a
                         if(ch=='3')  w/ y6 g: S; s- F% r7 u
                         {9 B2 `" l9 B* z% p) G/ S" S" T. e
                                search_air(air);, }+ O& a4 M" d9 x3 ^
                                printf("\n");      
2 c' c1 k$ l% _% p& h        search_cus(cus);' a  y0 O- d' U7 X1 p. J/ Z
                         }
! X: P* c2 f0 q                         else
; @" P3 Z- ~0 @7 c3 V                              if(ch=='4')9 L' C& ?$ _: K5 e! b! }& S+ f5 s
                              {
8 W& k2 _4 y% q: c                                t=0;3 K7 _$ O" C- H
                              }
( ?- D& R' i( x8 l" b" a4 C         }2 \" I; T: w( T! @! A+ R) P+ x, P
}
/ L+ \7 ?$ A! v: R! Y' ^- e) M$ u/*任务:通过此系统可以实现如下功能:4 h% n: O2 @  c; X* i8 |, O2 P
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
( i! T  j0 t- F8 k4 q7 E3 ~0 i1 E4 N& w查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
1 @  u3 U6 p7 c8 N4 a# e可以输入起飞抵达城市,查询飞机航班情况;& \+ a' L! _0 m2 V  V. L! S
订票:(订票情况可以存在一个数据文件中,结构自己设定)8 X& x/ h+ J: R3 s, \
可以订票,如果该航班已经无票,可以提供相关可选择航班;
) L& y  i+ e" ~* ]! D# m退票:可退票,退票后修改相关数据文件;
* [' k8 y# E2 R9 E8 d! [客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。' o7 c' }4 h  `2 B" _# }
修改航班信息:当航班信息改变可以修改航班数据文件
5 d4 I7 a9 d1 {" {' m0 D要求:0 q3 N2 \, V& M1 G) B$ y4 ]
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩 转发到微博
关闭

下沙大学生网推荐上一条 /1 下一条

快速回复 返回顶部 返回列表