下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

飞机订票系统

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2007-12-25 09:36:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩 转发到微博

本版积分规则

关闭

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

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