下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

飞机订票系统

[复制链接]

该用户从未签到

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

本版积分规则

关闭

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

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