下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

飞机订票系统

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2007-12-25 09:36:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<stdio.h>
$ l; S2 |$ T0 }: y; [" q3 |2 p#include<stdlib.h>* U3 b+ V7 o' U/ S6 n
#include<string.h>, u9 ?- O2 u/ n% J6 r
#include<conio.h>! J. E5 O8 z! P5 `- z/ b3 H
#define OK 1
; L) |  u2 V( l/ U; E( p, ?$ \#define ERROR 0/ z8 M1 l  r  \, E5 A( S5 _4 `
typedef struct airline{
* U" I; F7 q- P$ \$ P4 t        char air_num[8];
$ h* S) s! S  K5 m        char plane_num[8];
1 g( c. r, `, h1 X+ M7 d  @        char end_place[20];0 X" o8 ]6 M9 H( o; }) P
        int  total;
& s& x0 @7 I1 U, E& i. a* {        int  left;
0 r9 ?" `+ h9 |$ B        struct airline *next;8 s7 p6 {1 b3 _$ N  T$ z) P5 Z! `
}airline;
4 j: a! j9 L- _7 n2 r% |: _typedef struct customer{
3 A8 f' [& R$ _' M7 ~! j  U  a5 J        char name[8];
" k/ f6 ~! j6 _+ L        char air_num[8];7 |- p0 R3 ]1 {  u% J
        int  seat_num;2 @& n5 Y: x( Y1 K
        struct customer *next;
$ l) B1 T( P' b  k1 T$ t3 x3 L}customer;6 {; b6 ^, d# g+ f0 g
airline *start_air(). z5 X" K4 f0 i! J/ [
{
: ^6 G8 G" f$ U3 n: z: U        airline *a;
% x) b. n* i+ w% I% d        a=(airline*)malloc(sizeof(airline));/ u$ ^( F0 ^1 o( y
        if(a==NULL)- v( m  f0 E3 V/ b8 w. l" f3 u
        a->next=NULL;
: ?' R3 }! q0 v+ r" j        return a;
5 r/ @" W# f% ?+ x2 |; ^}5 ]+ }- z/ ~; {
customer *start_cus()/ a7 S1 E& n+ S- a7 s
{2 N! o1 M# s" p* w  G8 M2 V
        customer *c;+ D9 x9 M; J/ R, \9 v8 h+ v
        c=(customer*)malloc(sizeof(customer));: p& u, N5 v! {8 ?
        if(c==NULL)" {8 h4 `3 Q2 ]
        c->next=NULL;: z. @3 e8 O& X& V
        return c;0 r1 o# D- ]3 o: K) R. `2 ~
}* b+ z+ i* t1 `; I8 O
airline *modefy_airline(airline *l,char *air_num)
1 h' K! [7 `) ~{
, t( z8 m% T2 s3 \2 Q& |8 H        airline *p;
0 X$ i8 i! |4 P8 J        p=l->next;7 b- {* G9 G) O3 i; h
        for(;p!=NULL;p=p->next)
$ p3 ?! R3 I) b/ W& Z' w. O        {! T3 ~* W5 A$ y) z3 d
                if(strcmp(air_num,p->air_num)==0)
8 R/ F. a. R8 {2 ^3 h2 R4 w8 R; F                {$ p0 ]  c/ j  e1 U% B$ m
                        p->left++;- `  q8 x9 _8 T
                        return l;
6 W! H' b$ m) I- C                }
" J( x* t, N% Z% e" g                printf("NO the airline!");
3 p) [2 M  e4 @9 i                return 0;2 z. M, w, [0 P8 Z' h
        }
" r/ d; W9 c& O+ Q7 }}
2 V7 b" i1 k, w3 Iint insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)
4 F, O, C& E( u; y9 s! c5 f{
$ @) h$ U6 a# p+ J* R' |7 g        airline *q;
" _! y6 j& w4 F  ~7 t1 C0 R        q=(airline*)malloc(sizeof(airline));
8 Q: M7 l* w4 |- G* t) u% K" D9 _        strcpy(q->air_num,air_num);
% V7 h* L( h2 F8 ~0 n" R& N  d        strcpy(q->plane_num,plane_num);
3 A5 K" l% d1 a* P( p+ g3 }        strcpy(q->end_place,end_place);8 [- r1 s% f, ?( |
        q->total=total;
+ l. S1 H/ k9 M+ d        q->left=left;) ^9 a& a# e2 c
        q->next=NULL;
6 v! w3 G: Q/ U  p( A% Z        (*p)->next=q;) M; H3 w0 x) n7 h& b/ N
        (*p)=(*p)->next;2 Z" N- o2 c7 q; r. ]0 Z$ G
        return OK;0 n: g0 e% \  R4 V, h
        }
' Y- Y4 ]$ ?( q: }% r7 mint  insert_cus(customer **p,char *name,char *air_num,int seat_num)
: T' a/ A4 S4 q( s{
' _& ]9 _- i! @        customer *q;
2 G% g) }, o! {' A3 H3 ^        q=(customer*)malloc(sizeof(customer));( X- z( h5 H. Q; y0 X
        strcpy(q->name,name);5 g- L. }  U& U$ Y* m4 s5 }3 ], ?5 S
        strcpy(q->air_num,air_num);1 X; h2 g$ ~6 `4 `
        q->seat_num=seat_num;/ R, r2 @) q' \. ]
        q->next=NULL;
: M+ Q. h9 d3 e$ w) Y9 {/ g  ?        (*p)->next=q;7 N0 ^4 `: p# c
        (*p)=(*p)->next;" {5 A, ]# ?8 t' O
        return OK;
& C$ Y% P8 X: O3 E* \}
5 l1 H/ k8 X! u' F7 ?' q) x' c( Jint book(airline *a,char *air_num,customer *c,char *name)
( A8 I' x- l0 J. ?- Z{
1 f- J# _+ O% O" M# N        airline *p=a;
0 V3 U$ }4 b- _4 E3 ^" P# q! N        customer *q=c->next;! I# [- [3 g  T# X, N) C# N
        p=a->next;0 d: J% M5 I) _, D/ j1 F6 t
        for(;q->next!=NULL;q=q->next){}
6 H) [. W9 D" U9 S        for(;p->next!=NULL;p=p->next)( M% h9 _3 n, G& O% L
        {4 b% N8 \" ]2 ], t# x* S
                if(p->left>0)
9 E1 s6 n4 q. d1 y' ~: i* ^                {
7 x* t2 g- x5 x6 p' c0 f( `6 S                        printf("Your seat number is %d",(p->total-p->left+1));
2 p) ~: f  F, p% O% z% p8 A                        insert_cus(&q,name,air_num,p->total-p->left+1);
+ S. f, \" d9 r4 X4 T                        p->left--;- Z% z: n" q) H
                        return OK;
+ z" |, }; T, }                }# n4 Z( c+ m" h& Y3 l
                else  O: B2 Y% M% J  k$ d
                {2 }$ a  k* I5 j+ Z$ \
                        printf("seat is full");8 K  k% z+ @# U+ i0 t, V
                        return 0;
9 B  E" ^: `( k* ]- m                }/ ^7 F" _  n" r! x
        }
1 v% F+ t" u/ wreturn OK;
& X- U$ Y8 S0 B; k  ^/ s}
# ~8 i& v5 P8 V2 N# Nint del_cus(customer *c,airline *l,char *name)5 G" U0 x& ?: N# K9 Q1 S
{0 A% ?8 |3 a& G9 s5 {7 i% p
        customer *p,*pr;4 r6 ~/ X( g; e' ]: e; b% Q
        char air_num[8];
) |' h: V! ^+ F        pr=c;
5 Z: a. b, V0 a# |        p=pr->next;
$ g* t, w" _4 i  {7 I        while(p!=NULL)0 ^  {) I7 I0 R& q7 M+ f4 b
        {
, o- @& m+ o1 A0 z6 \( R5 v1 V' Q                if(strcmp(p->name,name)==0)% e* R3 l+ D# N8 v# `7 n% k- a- m
                {8 u8 ^* n8 q+ j6 y
                        strcpy(air_num,p->air_num);
- t, D( u: X( g                        l=modefy_airline(l,air_num);2 g8 q) h4 v" Z# u- E- H* R+ n
                        pr->next=p->next;
1 A1 o& J' ]/ b  E                        p=pr->next;! {, S* m. W. M" d& k( _
                        printf("finish!");
7 A: `. m* x8 J! j% `1 T0 x% A, M                        return OK;
7 _7 k! D7 J+ I) N9 n: V8 R                }9 L% b" A0 p- }  x) k% b
                pr=pr->next;
3 t% `) A- ]0 |' e3 Z/ p3 a                p=pr->next;1 n$ q8 @- p. r# m4 {. N
        }  h' ~4 W( A& I
        printf("NO the customer!");% Q9 u) b- i# `, }# {
        return ERROR;
9 [2 r, D* }# F0 K  }}; Z' C* E" v& E
int search_air(airline *head)2 W# I) _, F+ K3 e$ B& D  i" I+ Q- ~
{0 G% q) u; f' i6 [2 X" k8 Y
        airline *p=head->next;
$ Q! d6 F, H" }! {$ p$ ?; g- c        printf("air_num  plane_num  end_place  total  left\n");! q2 y& k! R; [( }# R( P# G  l
        for(;p!=NULL;p=p->next)
4 _6 ]/ |/ P8 Y4 O% e  j2 ]' ?        {
0 K9 s* B/ }9 N                printf("%s    %-10s %-8s    %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);( c3 \; V) }! u: v
        }2 \$ k! q0 `6 k8 i# [$ O+ s7 X
        return OK;
8 G, T/ a( ?0 Y# U8 Z}
7 X* h- M* r0 e( Kint search_cus(customer *head)
6 R0 H& l4 U2 s# _1 G! H{
& Q  C% B* @. S6 Y/ X        struct customer *q=head->next;- [4 f# m! A& G, n
        printf("name    air_num    seat_num\n");2 P+ P- Q( o4 ~' O! S' [- i+ c
        for(;q!=NULL;q=q->next)3 I  s) I9 \) Q& r' k
        {
& P6 F7 M9 r$ f7 f                printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);: a3 _5 o- W& A3 V. x2 H4 T
        }
- v& E& U+ x/ a* T. {) r2 B        return OK;- ^( H0 s0 F# }8 |! d3 i
}  i4 l, l, M  U, O
int creat_air(airline **l)$ P2 H! v5 i% Z! L) [8 Y
{) V) f% o4 `+ X8 k( z( S. [9 H
        airline *p=*l;- I. |; `, q% G0 ]+ R
        int i=0;
) b% l+ W) ?, C5 {* W8 f% `" h5 \        char *air_num[3]={"007af","008af","009af"};
4 @' G, s; o3 s0 L! R        char *plane_num[3]={"plane1","plane2","plane3"};% u4 H0 d/ B6 l* I# v
        char *end_place[3]={"Beijing","Shanghai","Tianjin"};2 R3 L' [1 k8 i. q  z" n1 ^
        int total[3]={100,100,100};- X5 e0 n; z2 S; [( I) _
        int left[3]={52,54,76};" i) ]2 D1 d% r  E0 W, f0 S
        for(i=0;i<3;i++)
  u5 }! A; {6 Z' q) C! C" b        insert_air(&p,air_num,plane_num,end_place,total,left);, E" I( ?0 L1 h7 W% p0 {7 @' [+ R+ t" {
        return OK;
, h4 Y) C3 l8 Q" e7 {}
$ R1 P9 ^7 O: [  @5 x0 Vint creat_cus(customer **l)
( s! O% o  t8 e{' z! ^3 f! \6 w( m: j
        customer *p=*l;9 A6 T% L8 Z6 d
        int i=0;
4 o% k% m/ c5 w( E5 @( S7 Z        char *name[3]={"zhsan","lisi","wangwu"};' T9 o/ M: ^# B8 r) _- g
        char *air_num[3]={"007af","008af","009af"};
. F& b7 j# z$ N$ u5 }        int seat_num[3]={2,5,7};
' d( J1 S! e# n        for(i=0;i<3;i++)/ v! H4 E4 L; a$ D. N7 @3 @) A
        insert_cus(&p,name,air_num,seat_num);2 }- ~$ y. A3 b0 ]( b
        return OK;
2 F! ^4 |) R) }8 ?3 V3 n}
& s" J/ @4 |. |5 G5 ~9 Svoid main()  _! v# j3 d' J/ ?4 o4 C* v2 r
{; V3 N; B% j. B& E! J6 N
        int t=1;
& W- O8 D# p2 _5 t! u4 c% M: p; |        customer *cus=start_cus();' F) a, f0 M. V; s& Q
        airline  *air=start_air();
: c) X( q/ {0 Y/ A# Y4 _% G        char name[8],air_num[8],ch;
6 C+ s: X# J, T        creat_air(&air);
+ |, S* l* ]; a; S( @( J- e6 A        creat_cus(&cus);& q; O( j5 D+ k" a
        while(t==1)8 z0 m9 i7 ?3 `/ x- [
        {- U/ G6 H+ H0 P3 |2 N; S; u
                printf("\n");
( c+ F8 e( n" x' U: O" T: J. q: `                printf("*********************************\n");
. n0 w% [  }& U+ |( ^                printf("*     Welcome to air firm!      *\n");4 H% S* v7 f7 O& n, q
                printf("*         book--------1         *\n");
5 C# B2 e" ?5 a" v                printf("*         cancel------2         *\n");* A$ @& q8 q% _# \/ f
                printf("*         search------3         *\n");6 X% i1 R3 `, _$ s* G
                printf("*         exit--------4         *\n");3 U2 Y5 {" Y" w7 l1 ?, P7 h
                printf("*********************************\n");
8 X8 q5 I2 o& L; }. h1 D                ch=getch();6 x& y" w7 x; q" R9 M
                if(ch=='1')) f8 u2 t( b% ]4 y* h" O: l# X' D
                {5 B4 Z7 y: W+ [0 P8 T. q( B* D
                        printf("Please input a airline number:");6 p9 ?6 ~- \4 V( \0 I0 i5 U/ E
                        scanf("%s",air_num);
. p0 J. B+ L! A' Z                        printf("Please input a name:");( t, K  U9 h- X4 D6 Z
                        scanf("%s",name);
! I9 k7 Y8 n& j  [$ U) A                        book(air,air_num,cus,name);
2 `4 f) H% {5 V7 X1 D2 _9 {" z                }# [3 S- {9 j/ a% l! \
                else
+ h& J3 k9 z6 t6 p                    if(ch=='2')
9 a5 X- _! F1 P- p: Y1 l                    {
2 t: l! D/ X9 L                        printf("Please input the cancel name:");
4 b7 @) o/ b2 l/ d+ R4 v  a+ S' F                        scanf("%s",name);
! d% E# o2 c& z$ F3 K- Y                        del_cus(cus,air,name);, x# M1 k4 H) ]: p# Z
                     }
8 c7 A. m4 J2 o' _4 I1 ]9 D                     else5 }# N# c" e8 q3 S; L9 Y/ Q
                         if(ch=='3')
8 l- R& {7 R5 H                         {7 \0 t4 q5 K& T; P
                                search_air(air);
1 u4 p5 c3 i; i& q  V! \3 ]                                printf("\n");      8 d5 X5 s6 H) [! K' n* S
        search_cus(cus);
' U7 W$ n* B2 P$ }                         }0 A9 v7 @0 B% r3 g2 c$ Y% n
                         else' f( o5 a2 N0 v3 r2 l" z) v  }5 g1 U1 n
                              if(ch=='4')
* t7 U3 R" |. S$ b                              {" M9 t' l' o) _
                                t=0;5 a6 t9 \* k" `/ q; K
                              }
/ N( k( V7 N1 d3 s4 J8 n         }
6 u' t. a" G; k9 o}( ]5 ~9 `. T9 F, n
/*任务:通过此系统可以实现如下功能:# O  ~$ f! ^+ {8 A+ c1 H# Y/ q
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)( M) i3 G; J: d8 c# p9 ]
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
* }* h' b$ v$ {4 c; T可以输入起飞抵达城市,查询飞机航班情况;4 X1 Y1 |4 J% P, d9 S
订票:(订票情况可以存在一个数据文件中,结构自己设定)$ w/ e/ I% K9 J) V/ I+ U$ U3 \
可以订票,如果该航班已经无票,可以提供相关可选择航班;
& k) E- A5 ?4 P6 X退票:可退票,退票后修改相关数据文件;# o: c. B7 j2 `& L) x
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。* e5 y8 E/ }' M8 d& Z9 }6 O
修改航班信息:当航班信息改变可以修改航班数据文件
1 B1 ?9 I* m- b  a& i要求:& \  D: N2 K( M- q" J) U
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩 转发到微博

本版积分规则

关闭

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

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