下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

飞机订票系统

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2007-12-25 09:36:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<stdio.h>
& L' o& n# @" Z7 Y4 V#include<stdlib.h>; R1 X2 k! ~; F  l) O' k# |% e# a) B
#include<string.h>' L. S8 H& ^0 L
#include<conio.h>( o  s* I4 O4 F! g7 G1 M) V
#define OK 1
! x" O$ l: U! c6 R% F6 Z$ r5 a#define ERROR 0
5 a" b  J5 k3 q5 T1 `9 v( Xtypedef struct airline{
; V1 m. ?2 |  S" ?8 k! P        char air_num[8];5 p7 W2 p. K$ z+ V4 F+ g& p) Q
        char plane_num[8];" a1 ?2 s" B! M+ u. E( T8 O; S0 X3 [6 Q
        char end_place[20];/ }1 r0 V1 x+ K- Q  A
        int  total;3 H* {1 o7 z8 o' x; o0 z1 G3 |
        int  left;
* d  e' C! C% t; K: b        struct airline *next;
, t: \7 F- t: [/ b& ~; `}airline;5 A8 ^+ q+ F+ i- ]* K& u3 |6 v0 _! s
typedef struct customer{
* E" y1 W- ^  |; ^4 g        char name[8];3 J7 S, I. p  G1 K
        char air_num[8];
( Q& s  g8 ]# X9 z0 l  _        int  seat_num;& d/ n, J0 Q' l9 k% @8 ^( @/ s
        struct customer *next;
& v4 G5 k. I6 G3 Q}customer;
* P2 s$ a4 K4 D# hairline *start_air()6 [. G" G( w& C
{
0 L! s. q( k0 v* C5 s0 m        airline *a;1 `9 x  Y" G2 K
        a=(airline*)malloc(sizeof(airline));- q- _6 |) y& c( x5 Z7 s/ H6 i
        if(a==NULL)
& S) Z  A6 H/ t) s; z        a->next=NULL;; i+ G0 e) @% q# v4 k+ m; _: U- }
        return a;
4 P! [  x4 n2 `+ {* b" T7 P* L& _}& e' ^$ M2 W8 q6 G* S1 V
customer *start_cus()! B* {; a3 S9 A$ c4 ^* ~
{
& B/ M8 [0 {; |        customer *c;* Q+ r7 I' u, h) T  v1 V* V* W7 ~
        c=(customer*)malloc(sizeof(customer));% E1 W: K4 M# K. q* r3 a. S% d
        if(c==NULL)# K# B" s& F+ _
        c->next=NULL;. p4 A, b; k; N% F/ \
        return c;: z( W5 T3 @2 G4 U! q4 [, E
}+ f1 g, r5 h3 @$ R0 u
airline *modefy_airline(airline *l,char *air_num)
) k2 ?% C4 r% y' d/ }8 h( @{9 K- Y, L8 Q1 \
        airline *p;4 L& V# a! A( D- Y9 x" M
        p=l->next;
1 v1 g1 P$ y- G% D  K        for(;p!=NULL;p=p->next)8 G! Z! H9 ^- v9 p# P6 W
        {5 U* @0 r4 V7 r
                if(strcmp(air_num,p->air_num)==0)
( |: Y2 j. D3 V: x                {1 f+ s3 x: _# U4 g' m2 P
                        p->left++;+ P8 y$ I! D0 Y
                        return l;" A1 _7 @* ^3 d4 Z; q( D, {4 V
                }- b+ y8 J) z8 S9 u
                printf("NO the airline!");
7 G9 C" `$ N- E2 i2 Q                return 0;! y& ]9 \0 G+ j% ~) x: F; O
        }
; E5 F; n/ c* M) a}5 `% |; c0 P2 r! }8 y
int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)! E) ?- m8 \) ^& h1 x
{: ?; Y- j' J4 E% d! B- _$ g! t
        airline *q;! m: ^" ?( e5 j$ p, P+ v0 P
        q=(airline*)malloc(sizeof(airline));9 j8 d$ x, r0 u/ ?. Q
        strcpy(q->air_num,air_num);3 \+ Z% s0 J+ P$ i1 p
        strcpy(q->plane_num,plane_num);
6 F6 M4 h2 I. }! G4 y& ^. }8 A        strcpy(q->end_place,end_place);
4 d3 l, Y" @" S7 m4 i3 ^6 u6 T        q->total=total;  ~9 E6 n$ j, B7 s# @& g& X. k
        q->left=left;6 M% u: n  P+ w: ^2 c- Y
        q->next=NULL;7 S9 v- O  r$ ?2 P  V' r
        (*p)->next=q;
& N! C) X2 x" ]7 Q        (*p)=(*p)->next;1 T4 V5 J  D2 d9 V5 T' k* Z. s0 n
        return OK;
! n. b4 p  ]0 e1 e        }
$ B! [( f  Z: I! I! h2 pint  insert_cus(customer **p,char *name,char *air_num,int seat_num)$ N& }* M- y  B
{( B) _8 f% Y. M1 E" `9 q
        customer *q;
  s' l: ?$ b0 ]9 ^% V+ W+ w2 [        q=(customer*)malloc(sizeof(customer));
3 e- D$ Y# Q3 D* T3 f        strcpy(q->name,name);
. f* V& @6 O% |5 \4 O1 X0 q        strcpy(q->air_num,air_num);
& n2 @( |" u0 O; G' m7 s* {- y        q->seat_num=seat_num;
+ M% d# j  H) z- w        q->next=NULL;
* S. F9 H# n( L: A        (*p)->next=q;
& y1 @  g1 N/ \9 T/ `( w        (*p)=(*p)->next;
2 e7 \/ F$ X3 e  p2 V/ X        return OK;$ N3 e1 M9 W* i- i* p/ P* W# C' W0 E
}8 Z* ~- v' B* k7 p8 h0 t- D( i- C2 _* ?
int book(airline *a,char *air_num,customer *c,char *name)
% t  v1 l/ U4 K! {; E{- p' F  _/ {6 N' f" w! f
        airline *p=a;6 h' Z) x) t) h8 H: N
        customer *q=c->next;
1 G4 f7 n/ O/ F$ ^5 E' B+ ?        p=a->next;
5 @2 e4 n3 g8 A1 w        for(;q->next!=NULL;q=q->next){}
6 f/ f+ v, _$ C( V; S( J! X        for(;p->next!=NULL;p=p->next)
- O: c0 t. \4 D$ T% n. V        {
* s6 q! ^0 k: }$ ?# Z                if(p->left>0)
$ Z1 \- k1 j' {                {6 ~/ _, K( x6 O! ]5 `1 k$ Z# U
                        printf("Your seat number is %d",(p->total-p->left+1));
% y! i4 T: R9 v2 T7 J                        insert_cus(&q,name,air_num,p->total-p->left+1);
: a  D. |; N2 G. e7 m8 ?4 Q/ N. L                        p->left--;  d  x4 g* j2 ?, a4 ^
                        return OK;
; Z* n' E2 V5 n                }
7 G9 D  C1 o8 m/ r: c( F. z* b                else
" Z; Y1 e: }* r) M/ a* s, q                {' F2 I& e7 q" s; S  g6 [
                        printf("seat is full");$ k1 ~# z8 u& n! v
                        return 0;; j+ D1 O) n0 h7 Q
                }
9 T' A- Z) X5 W) O. R; M        }, `; p8 |$ y) m3 T
return OK;" F1 z6 y& f- i, z" X4 w
}) z6 T3 k. w+ W' s# b
int del_cus(customer *c,airline *l,char *name)
8 E% K/ k4 M1 @{6 h  d* D( k7 @* ?2 R5 s
        customer *p,*pr;
( Q3 T1 x8 X* \9 K- v& `        char air_num[8];
4 Y7 C0 @$ _: F- `2 n9 c# R        pr=c;; W* `1 Z+ D- a- a
        p=pr->next;5 M) h4 ^% j+ E0 B
        while(p!=NULL). B$ T, h+ d# r" m: X1 w5 Q
        {; S) P/ b8 m- I) Z5 _$ K: T+ m" ^* r
                if(strcmp(p->name,name)==0)
, L/ j/ q$ Q5 y4 D  D3 V                {
* H/ f: k2 c! {) ?( d3 T                        strcpy(air_num,p->air_num);
* Y1 _0 j0 a# C- P- S+ }                        l=modefy_airline(l,air_num);
6 r0 I# B- M, f& t9 b2 b                        pr->next=p->next;
( a6 T. A% [# U4 w0 m: u4 ]- F2 H- h3 A                        p=pr->next;
1 U" K0 ]) X( K( q                        printf("finish!");3 l& T% Q2 g% C' q7 t  v
                        return OK; $ L/ |# M+ o4 F. [, G2 V/ k+ Q
                }5 G4 d9 m( J' ?) X7 k7 @5 t" q( ^
                pr=pr->next;
( C9 ?; x/ h6 c/ S' W0 ]                p=pr->next;
# A2 d8 a/ X  u7 s3 b: F        }
( f8 P( q7 G5 K        printf("NO the customer!");
$ |4 f- M! u' e0 x6 G! \8 o1 G) Q        return ERROR;. T6 m, f0 h0 H
}$ ~5 z9 B) D# _8 _& E
int search_air(airline *head)
( N: @4 H; _+ o% v1 E8 I8 c' S- j{
) T+ l7 L3 x: E5 f        airline *p=head->next;( Q4 K' r& V- I( k5 e8 m
        printf("air_num  plane_num  end_place  total  left\n");8 _" A. ^7 U, ?# [! H4 f
        for(;p!=NULL;p=p->next)
  F1 }4 T8 w& j4 u% f        {
7 v/ r. m7 m3 ?9 K                printf("%s    %-10s %-8s    %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);
- I4 D8 R4 F  l& @        }+ D, j9 I. f" S! @: W, l  X
        return OK;
9 V* `! `6 ^7 y. l+ p}9 c7 x* q6 V: a
int search_cus(customer *head)
6 s7 W! P$ H" R7 G: G* i# l{
" E! s' k  }6 b* h" q# t2 q8 {# H' x        struct customer *q=head->next;4 L) N0 Z6 A% P% [) i" N9 C
        printf("name    air_num    seat_num\n");5 J* m1 O1 P! F( E5 P
        for(;q!=NULL;q=q->next)
; @3 a9 f& V" ~% ^: ?/ Z+ l) T( z! L        {
5 e8 w+ H: I' u) r# S! @4 D                printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);. S6 h9 w9 o5 X6 y2 E" z$ P- }: B
        }3 ^. O: ]/ `0 q9 A$ B, V
        return OK;: e5 R! Z9 O" Y" N, C! e- V
}5 a" _, ?7 v8 T
int creat_air(airline **l)
& s' h3 ~1 s! N$ ~  J9 q6 V{
- f1 v: }* o& [+ Q1 e/ d        airline *p=*l;
4 V4 F4 A4 Z: r, x' o0 c. U        int i=0;" H  b* t# b+ z* ~
        char *air_num[3]={"007af","008af","009af"};: _, c& N# e3 l" K  L
        char *plane_num[3]={"plane1","plane2","plane3"};
% F6 s) c$ e4 c        char *end_place[3]={"Beijing","Shanghai","Tianjin"};
7 H# R  Q" }7 p: Y9 K! e; e: V" T        int total[3]={100,100,100};
2 l3 Q  g- C+ f        int left[3]={52,54,76};
% o8 y5 [2 ^3 T1 v$ H4 Z        for(i=0;i<3;i++)- ?4 y6 Q8 n# r9 j' d4 D  o, K
        insert_air(&p,air_num,plane_num,end_place,total,left);
1 b1 O/ m) E7 v% |1 M# x        return OK;
# l# U* o$ w( w0 g) a( q+ o}. c3 f: h9 {) I% b3 ~; q, K! t! _
int creat_cus(customer **l)  r# ?" V$ T" C1 Q* _
{3 b/ p4 m+ e: t: y
        customer *p=*l;7 C3 S% {+ E  R* B1 U
        int i=0;% ]! `; R; O' M* S( u. l2 A1 q
        char *name[3]={"zhsan","lisi","wangwu"};- s6 @% F  ?. t( [
        char *air_num[3]={"007af","008af","009af"};7 `2 ?- ~/ M. X2 M' V( F0 t. r' B7 G
        int seat_num[3]={2,5,7};. r. R, k, [$ {: @, y
        for(i=0;i<3;i++)% d9 \; M$ o1 l+ g& q3 Q) Q
        insert_cus(&p,name,air_num,seat_num);1 P3 b& X5 @: {& T* ]2 r
        return OK;
' f, K, e* n- o) `% s$ X}
/ Q8 B% y8 A. M$ A5 c2 wvoid main()# U% ^1 V% ]- {: U/ z- [
{, a0 B6 R$ u& E0 ~
        int t=1;6 i- F# O/ z. k- c1 W
        customer *cus=start_cus();
3 q; b5 h$ W/ x. o        airline  *air=start_air();
/ _; z7 ]0 F3 |: h5 d- z        char name[8],air_num[8],ch;0 r* ^% h( ^* s" Y! j
        creat_air(&air);
2 s: _$ x' f8 O) R        creat_cus(&cus);
0 X5 m$ n  D: W* g        while(t==1)
7 i4 @- K' S* N* S# ~6 W6 D2 c        {
1 ]! W- [$ c; `1 o                printf("\n");
! q# g, P4 i4 }- U* j                printf("*********************************\n");
: q& ^3 v0 c: p                printf("*     Welcome to air firm!      *\n");6 @" ~" j1 ~3 u: x- c
                printf("*         book--------1         *\n");, P1 z0 l  ~; b0 ^
                printf("*         cancel------2         *\n");& O7 |8 F: p! F  r$ W* C, O) ~
                printf("*         search------3         *\n");: [; P* z2 H* z
                printf("*         exit--------4         *\n");0 M. U& w) T3 _$ \4 Y* t
                printf("*********************************\n");3 D8 U: A' U0 P0 M
                ch=getch();' M& S* |: k* N- C0 i- ]% W+ n
                if(ch=='1')
* W1 N- N$ q: \- E                {
1 ^; X( o0 O6 @9 G$ G" f, `                        printf("Please input a airline number:");$ [' S+ P$ m3 P) Y& v; s3 }
                        scanf("%s",air_num);
9 r2 r, v; E' m                        printf("Please input a name:");
, w' A% w$ Q  d" q. O  l7 {                        scanf("%s",name);
% X# X4 L2 g0 ]3 r& E9 k                        book(air,air_num,cus,name);
2 q$ p; q! I3 l- N4 b4 p6 I                }
( h3 I! W/ D# p                else
; \( E0 |& n$ @. i) X# t! Z% }                    if(ch=='2'), E" w: U! r& `' _8 O: K5 \7 K
                    {: M6 A3 V- S# F: z, k
                        printf("Please input the cancel name:");
, U; @# V* Z. X* `                        scanf("%s",name);' P0 q2 {; B9 a. z  a/ e5 W
                        del_cus(cus,air,name);
3 t& l6 T+ F/ a3 j" }                     }
' V/ D" e% q  i' L& ]) H% ]                     else
  \! b1 l+ B7 p( P% n8 b                         if(ch=='3')6 U: k; I3 P6 |
                         {( p* l6 t# q$ {
                                search_air(air);/ B2 Z; \* g1 c
                                printf("\n");        z; f% b) z; C# c' W# Q* G  t: u# O
        search_cus(cus);( R: W$ D+ J$ U- V
                         }
, v! ^7 E4 j# P: g) d0 z3 m                         else, ]2 [; L/ T' A- a
                              if(ch=='4')5 `8 _% a' B* B/ \. v
                              {
5 T+ e& T  M4 w# @/ g' @, \' V                                t=0;! E% l; z) ~; b/ q& W
                              }, v9 ~# S8 F- }  W! G+ L
         }# I/ U& P  @$ e0 o
}
/ v$ J3 e3 S! s- D/*任务:通过此系统可以实现如下功能:
% m6 u- h7 i8 ?( N9 P录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
/ ~  j6 Q0 Y1 S$ s+ v查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);1 o4 e' O: q. g4 F1 m9 t( E' W7 D
可以输入起飞抵达城市,查询飞机航班情况;
* s% o* c; n) ?- K* ]订票:(订票情况可以存在一个数据文件中,结构自己设定)+ o  Y$ k# K. Q# T
可以订票,如果该航班已经无票,可以提供相关可选择航班;! A, U" j6 F2 a8 {- P/ X. N
退票:可退票,退票后修改相关数据文件;( O! H2 _: {6 G7 j, J
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
7 S; @" q' o# P/ K) A; B修改航班信息:当航班信息改变可以修改航班数据文件
& h1 b% A, K- l. _要求:
- A. }4 E- B  `根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩 转发到微博

本版积分规则

关闭

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

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