下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

飞机订票系统

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2007-12-25 09:36:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<stdio.h>
4 o3 x( N; \! H#include<stdlib.h>
- a- X8 E5 i2 [. C6 {; H" x#include<string.h>, q% ~. ?+ l* C% F  D2 b9 G! i
#include<conio.h>; n9 V7 r: J( d/ }) }9 |
#define OK 1
' A- q% P4 z% ~3 e0 d, F4 Q#define ERROR 0
5 S1 A  ~5 j/ ~0 Ptypedef struct airline{/ q" C' g7 U$ d" r9 |
        char air_num[8];( c2 z2 j  E8 Y7 g
        char plane_num[8];
. M% W+ a0 d) R. q        char end_place[20];
( ?; I/ U- Z" s' z; [' {* v$ v        int  total;9 T9 J1 X* ?, `7 n9 M
        int  left;
2 d/ B4 B$ b: q3 I: V. z        struct airline *next;
3 Q0 n1 l0 }: ]+ h& x' j# F2 J: o}airline;
4 y( I3 s% W1 V& H( D8 E; B7 s. U# utypedef struct customer{
7 Q) h9 e6 S4 @! H' A7 \) h" t        char name[8];- `, h4 D/ Z6 D
        char air_num[8];$ t, H# _0 _* ~/ @
        int  seat_num;
- y/ h9 ?; W- p6 T; Q7 l% o        struct customer *next;
9 y: C. k" u( |# C& G) `}customer;
, l5 }$ u$ K" E) _( a' c. C+ F' x8 z- Mairline *start_air()
) L' L2 R( a2 N8 E0 P{
: K% T* q0 ?9 ^        airline *a;
% b( h; }* L7 G) W8 u4 Y6 Z* v% {        a=(airline*)malloc(sizeof(airline));% }* t! ~$ o7 |; m6 J
        if(a==NULL)9 }2 O6 i' G2 W% r* o! c, A
        a->next=NULL;
4 Z& v$ g. ~* A& x        return a;
' x) o0 O) F$ J% J; J+ X1 m}  d* p4 ?+ e* K9 E( l* P  ^5 S2 g
customer *start_cus(), N- t8 J0 n. _
{
9 `2 t, G& R, {        customer *c;, u( m+ [) B5 h3 K* |* {
        c=(customer*)malloc(sizeof(customer));
, `% s! L2 k6 ]* N& ]        if(c==NULL)" w2 g( Z4 c; o$ Z8 [0 O
        c->next=NULL;: Q1 M8 K& @8 ^9 s2 Q4 P
        return c;
9 x, u" B1 [$ G. O}  ?2 f  }2 L3 C/ _  b
airline *modefy_airline(airline *l,char *air_num)
- Y, L( s: v, K% U{
# H6 C8 V! ?7 M$ i9 `9 |5 R6 x        airline *p;
9 @, r  @  K% R$ R        p=l->next;
$ Y& R0 a$ o6 L- A        for(;p!=NULL;p=p->next)
+ Y/ R! v% p! W' G; b        {
0 {" M+ k' c' q, Y" G# v                if(strcmp(air_num,p->air_num)==0)
* s7 w! T3 s* @) q. a# Y" ^% s                {
2 {# c* [5 j, ^                        p->left++;) C0 \0 {. x5 n9 _+ r9 M
                        return l;
# \2 A. P* ?4 M# o5 Q                }
' c- h, a# f' _7 @5 @  I                printf("NO the airline!");5 T3 L- R6 `3 W) @9 T+ W
                return 0;$ Q, X9 X9 Q( _/ {
        }
% ?0 I" {1 n$ B! ?# x. m}: R  X$ j8 p4 ^5 _
int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)$ i& D( ]% M( y6 @. ~7 U$ F
{7 \& N) d! u. M5 c. t  {
        airline *q;
6 \  v3 \" u5 p  D+ u# s; O" x        q=(airline*)malloc(sizeof(airline));! w# p8 N; {, t' e( ?
        strcpy(q->air_num,air_num);
# H7 o5 w5 y# u* z& u$ O        strcpy(q->plane_num,plane_num);
! }4 Y% k+ v  r        strcpy(q->end_place,end_place);  W2 y& J9 h, a# u- M* W
        q->total=total;
% o0 w6 i3 u$ L+ s* o) n7 |' U        q->left=left;
# y# l0 r2 x) H7 J  `        q->next=NULL;2 c: B# u/ z/ N7 {: q% }
        (*p)->next=q;
. O, S5 w2 u, m, _" m2 E        (*p)=(*p)->next;
* v- m( l" c: H8 b3 y- _        return OK;' E2 z* Z/ b. k2 e! P
        }4 H; o- c0 U& B7 ]* @
int  insert_cus(customer **p,char *name,char *air_num,int seat_num)& [( Z8 ]  N& m: H  e* L
{& B5 w% C/ b; c# F3 B
        customer *q;6 d% s1 N0 R7 ~8 G' D
        q=(customer*)malloc(sizeof(customer));8 [' h* i; v! W6 ^9 u( ^% w! a- M
        strcpy(q->name,name);
+ B, Q1 I! ]2 j- F- d2 I        strcpy(q->air_num,air_num);
0 F; Y* U8 R9 X9 u0 T; k8 L* ?- ^        q->seat_num=seat_num;
+ _: q4 f& r$ u7 F        q->next=NULL;- E1 u2 u& G) Y* i
        (*p)->next=q;5 y' p! [% a4 x
        (*p)=(*p)->next;, ^, M5 Q- R2 S# ?% ~; e4 H
        return OK;6 q% q% y& z3 |1 U% T" v7 O: D4 J8 w
}7 `0 K! P+ B7 j& \  ?; i
int book(airline *a,char *air_num,customer *c,char *name)( [. |7 X5 P# E  T& l5 [
{
, m' ]5 J+ Y( W4 _- a; r, {        airline *p=a;& Z. C2 h" `. }/ @4 l- @0 P+ m
        customer *q=c->next;: R- n" g# Y% ~, M1 L# v
        p=a->next;1 j" z) p. E/ x% S4 h5 H
        for(;q->next!=NULL;q=q->next){}3 i' C! ?. m1 b1 g
        for(;p->next!=NULL;p=p->next)
3 Y) r4 U; r9 ?" `# W        {' e9 q" d# C3 H6 {6 M5 |' Z" J
                if(p->left>0)
, Q6 {( z& z7 J+ z# l, {! X4 @& m                {
; `* f! ~6 I; h                        printf("Your seat number is %d",(p->total-p->left+1));. H! R2 [& g& ?+ T$ @0 j
                        insert_cus(&q,name,air_num,p->total-p->left+1);1 L+ @$ S; F; g- k
                        p->left--;2 J5 H+ {! w: N8 J6 `- w
                        return OK;! s8 A- d: }# S1 l# F, U4 @
                }  I* Q4 j+ D' W+ ]% h
                else# y( p6 r* p- }! `4 C* r
                {1 s4 ?# W. z8 Q4 N" N0 R
                        printf("seat is full");
+ k$ V' Z& P  r2 \0 ^                        return 0;
* ^5 r- M$ `( b( P6 l$ \* w' t: P                }3 d3 v: h7 s8 E$ K3 L) X6 O
        }  s0 J+ g5 m( t' w- a
return OK;! V  N$ l9 P; s3 Z6 Q( A. N
}
1 u6 [1 z. p, j1 i. w1 a1 d- dint del_cus(customer *c,airline *l,char *name). {+ U3 u, A( l
{
0 J! v7 K0 F- E2 n* _' f4 i" ~        customer *p,*pr;2 @8 U' C/ U) B. U. G7 {( J
        char air_num[8];
3 a* G: t5 ^2 w4 v& p        pr=c;
0 @* z1 s9 E( o0 M% ]        p=pr->next;9 x- U. k9 d8 O$ J' D8 S% k0 v
        while(p!=NULL): F  ?$ q7 a5 I
        {
4 ^# _3 S! g5 N& w# j2 J- M! A+ s: T                if(strcmp(p->name,name)==0)7 `4 B% s* @9 w% ]$ e  G- |$ \* [
                {
; V& U& ^( y" p; ^% v( }. G                        strcpy(air_num,p->air_num);. q' n5 b9 X; N1 O8 p) a: a# C. ^
                        l=modefy_airline(l,air_num);2 {! K+ m, I0 \) L8 _
                        pr->next=p->next;, k) a; {/ @; K1 b4 r7 H3 V3 E
                        p=pr->next;$ {- X( V; P* F! z) D" s6 j# n+ G
                        printf("finish!");+ F  I5 ~, s+ h% g& J
                        return OK;
7 a1 V2 I5 H, E' N% h% I                }
- X9 k6 s, N& H8 A7 O                pr=pr->next;3 V; s7 L4 Q1 t" m8 o# j. F
                p=pr->next;
$ h% Y) m5 K5 E) G; \) D7 b        }9 V, i( P) I% z  P
        printf("NO the customer!");3 E9 j- T' B' h2 Y4 o4 E
        return ERROR;' M2 X+ o$ f8 y3 L! `3 W# h- d
}
* A- b% o# |  }5 B% K' \# Hint search_air(airline *head)
5 z' D% J0 ^  N! C5 N" Q, M  G{
3 o/ s2 ~1 P" y( E( v        airline *p=head->next;0 {. u4 V& K$ R
        printf("air_num  plane_num  end_place  total  left\n");0 \* J* p1 K+ \( m4 t  Z  u" ^0 S
        for(;p!=NULL;p=p->next)7 N$ R" z, R$ J4 a" U* t) u
        {5 V& T. a( z+ {) N3 A$ c4 w: o
                printf("%s    %-10s %-8s    %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);) W5 @1 l% a, G) B5 O
        }" i  |: N: j1 o
        return OK;' ~9 M$ {) u! s) g$ ^( j
}6 K1 X1 N( }4 N) I* E
int search_cus(customer *head)
* l& R' r7 }1 J) W{
' i- Q) d6 I* H/ H7 A        struct customer *q=head->next;8 L* M3 C9 a# |/ L
        printf("name    air_num    seat_num\n");
! _! B4 S( c. b/ E8 g        for(;q!=NULL;q=q->next)
7 R- ]0 ]8 O& M        {
+ H& q5 q! @1 x' Z7 o6 H* c* z                printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);% K& [3 _1 ?; H1 f
        }6 S; W% i8 W0 e" Z2 y  ^& d( ~
        return OK;
; `% I3 s( U5 j- V# g; z# g4 }}
- G  [6 ]1 T9 _4 m+ T$ T1 N3 R1 mint creat_air(airline **l). ?; {! W5 j/ I3 U% j
{# j$ X. z& ]8 s3 Z
        airline *p=*l;
3 X9 g. P3 u4 y! a" P8 `, l0 _        int i=0;6 h0 S' @! c" C
        char *air_num[3]={"007af","008af","009af"};
6 m9 ]- ~9 Z! A) P. K5 w% d        char *plane_num[3]={"plane1","plane2","plane3"};
5 U1 o" m( |  M3 m        char *end_place[3]={"Beijing","Shanghai","Tianjin"};
1 Y. F" x8 [; \+ I        int total[3]={100,100,100};5 J: v5 O3 C) ]6 {1 R( K8 P% b
        int left[3]={52,54,76};
4 E, C8 M3 k( [        for(i=0;i<3;i++)5 J# ]$ s$ L: f+ }0 d$ I4 A
        insert_air(&p,air_num,plane_num,end_place,total,left);( f+ O# V: X/ {
        return OK;
( `$ n2 x/ X1 ]" m) M4 v. P* e7 n}
$ |7 f( {( w) p7 l6 U  Bint creat_cus(customer **l)1 p/ Z. Q0 n, C1 X
{& B4 y! A7 e- B! w2 M& a
        customer *p=*l;' i2 W1 V( H- k
        int i=0;% V/ T2 M  `% T" ^! V
        char *name[3]={"zhsan","lisi","wangwu"};) w* p) \1 l) j( }$ A, @
        char *air_num[3]={"007af","008af","009af"};
* p0 g( j: d: q2 F+ `        int seat_num[3]={2,5,7};
8 O) ?1 G; K' e' P6 o. B        for(i=0;i<3;i++)
+ C& F& I) ?- J: a6 m9 T  n3 o        insert_cus(&p,name,air_num,seat_num);
/ E7 w; e2 c/ \8 b        return OK;5 i2 ~* j+ x; h$ {: u# t0 ]4 Z
}
. E- P' x4 y) V( I9 _% `/ X2 [, `void main()
( ^3 z( q! T+ ?, {4 f, Z{
1 D3 E( l' }5 X8 G+ F& T        int t=1;
* p) M3 U/ W* J$ f6 t( t        customer *cus=start_cus();" u: h. i6 n+ ^# g
        airline  *air=start_air();
9 {( T* Q9 k* b0 `5 Z        char name[8],air_num[8],ch;
1 g5 Q$ f, w, `1 c9 t/ d        creat_air(&air);
& m8 I* t6 C  C5 l* n$ P/ X8 Y# U        creat_cus(&cus);
4 ~/ Y0 R2 w  ^        while(t==1)4 H. Z, B" o. S4 u- Q
        {2 p3 @2 h5 G4 @7 ^4 L
                printf("\n");3 r; A# _$ p) c! `5 C
                printf("*********************************\n");/ A0 _7 m$ b6 D. k
                printf("*     Welcome to air firm!      *\n");
. z, S* I0 R9 ?! i2 T& \" L# ^/ u/ N                printf("*         book--------1         *\n");  d/ a# d3 e. {/ n6 w
                printf("*         cancel------2         *\n");$ k9 ^% H7 z( R  }6 K: m! k% |
                printf("*         search------3         *\n");8 ?: {0 V2 Z- A/ T  M' G0 c
                printf("*         exit--------4         *\n");
* ?# ]1 V4 Q! x: \% I0 \1 |" P0 Y+ ~                printf("*********************************\n");4 `+ v# e2 b4 y5 ~% [, w$ }/ F6 ~
                ch=getch();
4 H" Z7 Y4 E. s6 n; v                if(ch=='1')
/ Y  p1 J: M) F* ~" Q                {
; V) ?! S# u2 y. m5 d                        printf("Please input a airline number:");4 _! S2 m1 s7 S7 |
                        scanf("%s",air_num);/ x' {( B5 m: t' Y1 {; X' S
                        printf("Please input a name:");
3 z* K7 N% e* r                        scanf("%s",name);
1 Y0 E# ^3 ]0 \- o                        book(air,air_num,cus,name);/ _. y' N; Y% a& W6 g
                }9 m3 q$ O- S+ g/ O! D0 v' m+ m
                else
  d7 M" A6 }7 J+ B0 P" w                    if(ch=='2')4 G! }$ n6 n' Z
                    {
8 v# a2 J7 y( u+ ^7 F: G! w                        printf("Please input the cancel name:");
' c2 _5 J7 i. }                        scanf("%s",name);& ^# E6 }5 @( H$ {
                        del_cus(cus,air,name);' Q% L9 D$ O0 B: s3 u$ [
                     }
+ B2 G3 u5 ?9 \- d& h                     else# b- U8 J5 H! \: b
                         if(ch=='3')
5 M  E8 |+ j: Y* `( A4 I                         {8 C4 n% z5 ?  H2 r( C. c5 G- h
                                search_air(air);4 |& d7 f$ n- J
                                printf("\n");      
$ ], p" Y$ e/ z2 c2 R+ n2 u        search_cus(cus);+ X' ?0 z4 C; M% E5 }, n5 m
                         }
3 ~  _: Y0 R4 T! k; i7 d                         else
+ W: I/ ]" w6 ~# O9 l+ \                              if(ch=='4')5 s% c" G7 Z7 I% t; {# m- Z" T
                              {5 {+ L& ?6 |6 V3 z5 S; i3 l
                                t=0;
5 T! L) V! P5 I! c8 u                              }2 i7 W$ m7 B0 y; Q* E
         }6 w! k+ M7 X+ |/ f2 C/ f% G2 o$ i
}
1 v: @# R7 a. b- T4 w/*任务:通过此系统可以实现如下功能:3 B/ r) g; E# F5 M5 i& p. j% N- D
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)2 Z2 ?1 m! Z$ Z! E* v$ U9 n
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);: T% c: N1 X1 U, ^5 R7 s
可以输入起飞抵达城市,查询飞机航班情况;
; z( ~$ ?$ `/ d9 Z% B; M订票:(订票情况可以存在一个数据文件中,结构自己设定)
  h; r! I+ C. H5 |! x5 l可以订票,如果该航班已经无票,可以提供相关可选择航班;; u( y3 g, K& t$ l
退票:可退票,退票后修改相关数据文件;
! F! w+ U6 r9 U3 S( [- X客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
. F/ x7 p& I' H  Y( ~4 b, X修改航班信息:当航班信息改变可以修改航班数据文件! Y' ?+ i$ }) Z* u
要求:. P: [5 A( J( F4 v4 }& a' o
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩 转发到微博

本版积分规则

关闭

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

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