下沙论坛

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

QQ登录

QQ登录

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

飞机订票系统

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2007-12-25 09:36:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<stdio.h>
2 N$ _$ X  ?6 {- ^#include<stdlib.h>: ?) q$ O( M: ^! S
#include<string.h>  X- }$ N7 m9 @; [4 X
#include<conio.h>
  P, T2 N9 P( X# f#define OK 1# j- M1 \  R& F2 D, E
#define ERROR 0
, o+ l2 o' a* `- ^  Htypedef struct airline{
9 P- V$ T; X8 p+ Z- @3 G# R        char air_num[8];
$ B. g1 y+ h% z, k$ {- ~        char plane_num[8];: y& t! X  o* D9 r5 k/ x! N
        char end_place[20];, a1 V% g0 e3 Y& R
        int  total;
& y+ i. F7 {* d) l        int  left;
# Y% {! ~7 E0 V* S  a        struct airline *next;
9 T( {: L# D" m1 x; u8 {}airline;
: ^5 O9 W1 n4 B" S9 mtypedef struct customer{! |, X! K+ X/ t& }- D( r1 b" w% E5 U
        char name[8];
) x5 k$ w' w) Y. @, W* |8 d/ x1 C- U0 \        char air_num[8];
% g7 l) R) f! v- u        int  seat_num;) U( @2 ~6 ?* }, V$ h6 g# J
        struct customer *next;
8 X, C- X5 P+ a; |, e8 r- t}customer;
2 r, s0 `& @  N7 b8 U- kairline *start_air()( I& e3 @( F: M/ U. q2 H
{; t/ s: K7 U& N' q1 T
        airline *a;" V  A0 l7 a$ Q$ O
        a=(airline*)malloc(sizeof(airline));9 O6 ?( R5 W$ \! }! E2 ]3 }/ ~
        if(a==NULL)
- s) H% x. u( }        a->next=NULL;2 v1 W: \$ ]4 m4 M& X5 A& K5 k
        return a;
" a6 e# \; ]  r( ]  v* f2 o2 j  i( @}/ K' O- p" }9 x& h  y( K: }( |
customer *start_cus()% e% }  B5 @& l2 a
{+ ^( H* D6 b) M: |! _
        customer *c;2 ]7 }, `4 i6 u& ^
        c=(customer*)malloc(sizeof(customer));
$ E: h4 B! J* i# i% t0 G" U        if(c==NULL)- W$ R+ T7 U& \4 `* u8 j
        c->next=NULL;* }2 _. Q4 O7 Q. o) f- Q
        return c;
8 V$ Q4 x, z/ t2 T" U" S, y}
1 w( W% D" w+ fairline *modefy_airline(airline *l,char *air_num)6 g4 r$ G2 h8 @3 a5 _0 A( \
{
! r7 O* S& U) w$ D        airline *p;
# s% g  u5 S- \- n4 C* c        p=l->next;
9 i* _, J1 j7 s0 T6 ?1 O        for(;p!=NULL;p=p->next)
' ?2 f  c& O  z+ `6 J        {9 O* [- Y; P) v( c9 f& _/ E7 z4 g
                if(strcmp(air_num,p->air_num)==0)
% {6 I5 c9 b, H  [( E( G9 Y                {
' k8 Q+ s4 a3 i$ x                        p->left++;* S! z. Q$ v5 g3 a& _; m( i/ v
                        return l;8 m) d" S4 O: O
                }$ a; ~6 q% T' ~" b6 {) ^
                printf("NO the airline!");
5 h0 w2 n. D" }* t. I' ?: d/ P                return 0;
. x, l1 S3 c8 u+ X5 n        }& ]# k: t2 g1 c1 d$ ^' J( Z
}
& q3 \& C% r  q" J8 f: rint insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)
) c: w- M" `! d2 `5 |7 _0 Y& s{: b3 y/ w" E2 B6 ?
        airline *q;2 s7 m5 V, N! L9 _: Z& T8 y
        q=(airline*)malloc(sizeof(airline));
" ^; e& i, I4 h0 @! ~8 a# p        strcpy(q->air_num,air_num);) b5 n! z7 b. P  R8 U: y1 y
        strcpy(q->plane_num,plane_num);! M- `$ h  v4 d, U5 V9 ]5 L8 S, X* n
        strcpy(q->end_place,end_place);# H  v# _2 b$ J; j3 [& E0 H+ u: A# H* t
        q->total=total;
' ]1 _" @6 m6 W0 ?3 t8 l; f$ ]        q->left=left;
; r$ H+ \9 o* K, \) V8 q        q->next=NULL;
' a+ Y& h7 z* O5 m4 v        (*p)->next=q;
" l1 r) x$ N' E" F. k        (*p)=(*p)->next;( L' Y9 N- a( L- Y6 {
        return OK;6 F' j/ `% m0 O$ N
        }
6 @) B* e2 |/ A( y+ A# v* [6 D1 m. O2 kint  insert_cus(customer **p,char *name,char *air_num,int seat_num)
  g  L/ I4 C* B4 d& T{
6 W/ b  {! t$ h! B6 a% D        customer *q;5 Y2 U" ?) ]4 D9 ?0 c6 K' C6 i
        q=(customer*)malloc(sizeof(customer));
5 ?9 V! ^) l( y3 b% p% p        strcpy(q->name,name);
% Z$ w- ]; p+ ?  I3 _# N* s7 Y9 f. r+ Z        strcpy(q->air_num,air_num);
3 i, B0 t! _3 m+ [( u2 o        q->seat_num=seat_num;8 _/ |" F+ ~) b6 s% p# R
        q->next=NULL;: x7 Z& ?" I  B6 ~) Z0 O
        (*p)->next=q;5 Z# o: ~  |/ |: z$ v/ G/ O" ~
        (*p)=(*p)->next;
6 A$ l9 \" o- p1 C        return OK;& Z& ]; D: N$ P! C2 J" T
}
8 T! U- n: |# u1 @int book(airline *a,char *air_num,customer *c,char *name). N  M) @+ i* F5 p3 A- [
{6 r3 i4 \- E4 M; ?
        airline *p=a;, |1 Y2 z1 r2 p' P# d
        customer *q=c->next;
& A2 D2 k$ @0 v# z9 g8 e' W) Q+ x        p=a->next;- y; F9 ]6 p$ N# S
        for(;q->next!=NULL;q=q->next){}; x! d" n( }, a, }: H2 P
        for(;p->next!=NULL;p=p->next)5 H3 x% Y+ ?3 p6 I6 [  Z9 }
        {
1 H6 f7 l* u9 c+ f                if(p->left>0)' T- g' z% v9 w4 V( w7 w
                {
; s% x: L& `# z                        printf("Your seat number is %d",(p->total-p->left+1));* K# |1 t. J% \
                        insert_cus(&q,name,air_num,p->total-p->left+1);  }; v; Y% z; a: K8 M+ p, ]% Q
                        p->left--;* l( B3 y: \$ [+ c' t- E9 k
                        return OK;% q0 ?. m( l4 w* O
                }
: _- p: g7 Z' v+ @                else
/ @$ R( z$ g& {9 Z7 L% h- x' b                {
9 P9 o/ k2 J7 Q5 L0 G; Z                        printf("seat is full");1 D& v  L) a  n6 y2 `
                        return 0;
% G9 m- l  R6 j5 u                }, D% q% g1 c% b) h+ ~
        }
# G( |+ F  z$ i  B) i& }return OK;4 [: y$ S" [5 q/ P, j8 i( R( g* H
}2 Q2 o/ Q; r$ q8 d/ r% c- W
int del_cus(customer *c,airline *l,char *name)
8 q0 m$ y9 ?5 i+ B# q{
! O7 }( o+ X9 a& C        customer *p,*pr;
' K  O0 R$ Y! ~$ M2 k8 n8 L        char air_num[8];
( }2 I4 A8 D' e+ W, p7 ?        pr=c;" J6 i/ ]. G; {8 [& B6 q5 F
        p=pr->next;( j& M6 U% }4 d. M* K2 W
        while(p!=NULL)
' a& C" R  i/ z        {' p5 P6 Z# b6 R
                if(strcmp(p->name,name)==0)
; X+ l( N/ n8 x2 _" T& B                {- F  _% h; P) a, M! f+ B" ?* X
                        strcpy(air_num,p->air_num);
/ ~  \# [3 b6 v, w) y7 Z                        l=modefy_airline(l,air_num);" X: y# U7 S0 t( n- \
                        pr->next=p->next;& ?' f0 W3 Y5 W1 D$ c- d
                        p=pr->next;
8 p. C! v( B& K$ [4 _1 I. b                        printf("finish!");
* m3 h, z) a, y! Z. z8 V2 `: @                        return OK;
  G5 [: [+ w+ \0 a                }
  }, R- s' s8 _9 W* J                pr=pr->next;' Q: M, ~4 n" [+ Q- `* z
                p=pr->next;9 c: r- |1 o' U9 `8 }0 m8 e
        }3 v8 b$ o8 N1 @: I: Z& c1 q( l, N
        printf("NO the customer!");
2 C% ~/ H" H% q1 ^/ b1 O; o        return ERROR;
, m* |) V1 v8 I! W. D$ ~, Y% }}" R9 @9 q8 ~3 s9 ]( @
int search_air(airline *head)- q8 g4 V9 m+ N2 `6 P: u( Y0 v
{
8 o* O4 p8 N- O7 c: @        airline *p=head->next;
- P) j) e1 W& [9 J- z        printf("air_num  plane_num  end_place  total  left\n");/ c7 K& z* N( ^7 n. s
        for(;p!=NULL;p=p->next)
5 S. X8 O8 ?  w1 q) r        {
3 c8 A3 Y) a0 F4 I5 {1 f                printf("%s    %-10s %-8s    %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);
- ]- C4 V. R0 E( R* d1 ~        }
; X8 h- E7 Y. C        return OK;! f4 \9 C' K, l" B
}
1 S: `% @  Y8 _) V, f" U$ Y  _+ }int search_cus(customer *head)
( I/ f' z: e' |& K5 X, y! ^4 h$ S0 ^! R{$ }) P; X/ d* e5 {2 E* _- {
        struct customer *q=head->next;
" V- u! w3 U. P/ y3 s" w        printf("name    air_num    seat_num\n");
  O; ]% ^6 H( ]  `! Q1 B" ^        for(;q!=NULL;q=q->next)
' @- U( f: u* P' |        {; e1 m* t6 C3 ~& P
                printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);; i+ j% N0 K% X  ~* b
        }
. i, U; m  e( R" f* H7 E        return OK;
- i1 R  @; y0 H8 G# M" W, N& \}7 a! z/ T6 T- f; j" e
int creat_air(airline **l)
+ `- p: F% }/ V+ F+ F{
& t$ t0 u+ V( }# x# b- ]! M        airline *p=*l;
6 S1 D* D, E8 j: a" \( V6 B; U1 F        int i=0;
, T4 U2 [) {" }        char *air_num[3]={"007af","008af","009af"};
& n; [% G  c" s        char *plane_num[3]={"plane1","plane2","plane3"};  ~$ v1 g* [1 d; T
        char *end_place[3]={"Beijing","Shanghai","Tianjin"};
1 w% Z. F. @; B5 w9 g, v) h        int total[3]={100,100,100};
0 p/ v' ^4 V/ V2 D        int left[3]={52,54,76};8 ]! g: M; {! ?# h
        for(i=0;i<3;i++)4 a/ Z' c6 N" c/ [: `/ l/ _
        insert_air(&p,air_num,plane_num,end_place,total,left);
: g0 {0 j- m3 G8 W4 s- W" Z        return OK;
8 E9 f# C& {( m0 N0 m}7 p" ^( Y7 n2 ~( N& N: z* H
int creat_cus(customer **l)
2 O1 Q* @, j, A8 s1 n{8 z  B- _5 S2 R2 |% s/ D/ J) A9 ~
        customer *p=*l;, M: M4 z/ ~9 ~" W  D6 }3 j
        int i=0;2 K  ~4 t+ y6 N- U3 ?$ P0 L* m
        char *name[3]={"zhsan","lisi","wangwu"};
# f. F2 o7 v7 j3 `5 o        char *air_num[3]={"007af","008af","009af"};! _; @  w- g8 w5 O/ f
        int seat_num[3]={2,5,7};
7 ]  ~/ `$ \& X2 F* W' V2 E        for(i=0;i<3;i++)) I) E2 P" [# |6 d( v: d
        insert_cus(&p,name,air_num,seat_num);0 R2 K7 Q( z: K  R
        return OK;( g" M8 H. d0 o; f: I! d$ n
}. ~! [6 w  X& D) h
void main()' g2 R$ L/ a9 X
{: n; A0 y% x& M/ R+ v7 l. X
        int t=1;
, v( y, f  `9 `$ D/ y        customer *cus=start_cus();) ^1 Q  C( S* f6 {. ^
        airline  *air=start_air();6 G: {9 k3 M" p: z0 i! q7 W
        char name[8],air_num[8],ch;
7 O# s; S( I& m- I- m/ R        creat_air(&air);
) N& `& W7 |- K' N8 t$ K        creat_cus(&cus);
4 l' m, [6 U. b        while(t==1)( ^0 x, s  R, C
        {/ O6 l! Y1 ?) L3 c% a6 c
                printf("\n");) ]: \9 w8 S3 o% J5 j4 s/ o1 T
                printf("*********************************\n");! z  D0 c5 ]; ^) w5 w+ d
                printf("*     Welcome to air firm!      *\n");
7 `/ ~2 k5 H; i0 ?                printf("*         book--------1         *\n");  ~2 D2 B0 E# l; v% H3 F3 h3 G7 R' n! H
                printf("*         cancel------2         *\n");
* j; f, N9 W9 U9 b8 Z" V6 U- k                printf("*         search------3         *\n");) t) f( e+ G- M7 f/ f
                printf("*         exit--------4         *\n");! M0 o. F0 ]5 g7 W
                printf("*********************************\n");
3 m+ a$ W. |0 e& {+ |) v! `/ L                ch=getch();+ g. y9 O2 o4 l: B1 i" @. a3 a
                if(ch=='1')& Z2 {4 [" y4 a0 w* y8 \
                {
& W0 U1 M$ ~; r" [* v+ p0 n/ P                        printf("Please input a airline number:");
* |9 l' L6 H* p+ T2 H                        scanf("%s",air_num);
+ N6 A+ e2 X$ ~" }% z* N                        printf("Please input a name:");
& v9 s" e& M* e' G" j, J                        scanf("%s",name);
" T' m$ ?! B, j3 }                        book(air,air_num,cus,name);
" @) F7 m5 q) B( \                }% z6 Q2 J0 ?- x9 B1 N' x- s0 L$ p
                else
! a' S+ I, g- p, T7 O8 r# A                    if(ch=='2')
& k: {4 g* }$ T: L' S! d                    {
* |/ M7 [# U7 n( Z                        printf("Please input the cancel name:");
: b; u) S' B# K) i                        scanf("%s",name);) g; k+ ?5 m2 Z4 U
                        del_cus(cus,air,name);. V% j4 V1 l) ^: k( k, w
                     }0 U6 o( W4 _1 k9 ]8 U
                     else
' j! _3 d& `& k: D. i                         if(ch=='3')
4 J5 w) c1 p* O" G; Y+ {0 \                         {
1 ?6 s0 N0 X5 R+ |. x" a                                search_air(air);
! Z' |: D. h. A8 L; [                                printf("\n");      - ^- f6 Q$ Z" _
        search_cus(cus);6 ?7 m+ g* D- ^# r2 a. N
                         }1 N7 D. D& k# W/ K
                         else
4 q. N( q$ i1 P4 z3 t$ J, ~                              if(ch=='4')0 i, q0 A% Q8 c; t9 {: |. o) d
                              {
' ^* j1 F% E6 G5 o/ m3 f" a                                t=0;
. c' ^6 a% i* f3 Q! }% k6 h  {                              }
6 i; t# _/ R8 \4 V4 K* e! B         }
9 t; y+ W, _8 x}
" O9 Y' C1 s1 F# a2 s/*任务:通过此系统可以实现如下功能:
8 w8 K) t8 {# X7 U录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定): m: x, `) q. @4 m8 [2 y
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
8 c: Q- M' N* k; f& H8 R4 N可以输入起飞抵达城市,查询飞机航班情况;$ w' H& i( G; u
订票:(订票情况可以存在一个数据文件中,结构自己设定): C$ l' V- u: q: t* [4 V- _7 \
可以订票,如果该航班已经无票,可以提供相关可选择航班;
0 A5 ]0 ^: @; o% J7 f* X0 m退票:可退票,退票后修改相关数据文件;% D# }2 q" [! m- k5 A/ T6 `
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
+ z- z: y' m" i% o修改航班信息:当航班信息改变可以修改航班数据文件& A, i# @) B7 I( f. N2 \! |
要求:
2 w# ^) l- L. O" X' U5 J+ t! F根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩

本版积分规则

关闭

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

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