下沙论坛

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

用新浪微博连接

一步搞定

QQ登录

QQ登录

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

飞机订票系统

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2007-12-25 09:36:19 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
#include<stdio.h>
1 o9 L8 G6 U: J4 \% Q  ^4 V+ M) A#include<stdlib.h>
/ F5 _; P7 R3 H  R& F; b#include<string.h>6 v' A! T: l. Y* z, D2 i
#include<conio.h>
5 b: }# w; y; \* F, F5 K#define OK 1
: l6 x- G! Y/ D$ l1 ]% K2 ]: l#define ERROR 0
5 w1 P& F4 P, m3 z0 f$ ]typedef struct airline{0 B% V. M0 P; y$ B0 P+ ]( |
        char air_num[8];2 o5 y8 ~3 A: M
        char plane_num[8];
) I' E  H0 P0 U( w1 u        char end_place[20];4 O. q) A) d0 {) B0 |: ~# W
        int  total;0 l+ {" {/ D2 b2 m
        int  left;
' D% R' s$ \/ O; k9 \" N: u        struct airline *next;  I& C. S1 ]# h6 i! P
}airline;
  o4 W/ w$ j+ \% }2 S- |$ Ftypedef struct customer{
5 b; p9 U9 D- u& d6 o% V        char name[8];
4 y9 m+ M. A( B1 l! S) W0 G/ B: b        char air_num[8];# s3 W& i( O, e8 Z7 V
        int  seat_num;. f8 Z0 E  P2 }4 ~
        struct customer *next;
6 ^, h' M& q. z5 s, z}customer;5 A: m, W, p. ^
airline *start_air()
0 M/ `8 F. s0 ^{3 @0 w" s& C1 E$ N1 H
        airline *a;
  `0 ^# f( C8 T' f6 x        a=(airline*)malloc(sizeof(airline));# h' h. s; z2 D! C  p
        if(a==NULL)
4 l# k- ~9 C3 F        a->next=NULL;1 e6 O  U7 M6 Y# F
        return a;9 \+ g% j) M$ b# z0 l; n
}
4 d/ D1 ~) r. {6 C' u& jcustomer *start_cus()7 J/ t, m  X9 H- e' J# _
{3 L/ n) I' a$ E- j
        customer *c;
/ k; y! g  y, N: \4 e4 ]! c        c=(customer*)malloc(sizeof(customer));- o  o/ Q( p0 g# K8 v8 O) D
        if(c==NULL): A! W1 s9 u; Q$ a7 \8 k8 }
        c->next=NULL;
$ ?9 R) f5 L  y        return c;
4 r3 Q6 M  E) T- ]/ z}2 x' C6 p$ F' `% E
airline *modefy_airline(airline *l,char *air_num)
3 H, a* X" [' ?: ]: N! p1 W{
0 Z7 C0 B: A5 ?: q) p  E4 E        airline *p;" T- w9 C6 k* B0 T7 S6 c
        p=l->next;
: A& d2 I0 ^6 k8 b# ]) t9 v  G0 T! A        for(;p!=NULL;p=p->next)
; y' T/ e5 N) J6 c% j( c" B3 w        {
- c! @2 f4 H1 Q" b                if(strcmp(air_num,p->air_num)==0)
7 a! ?( ~# u( g& e                {; m) x; ?" X! f: i. R, u, b
                        p->left++;
6 @1 Y' k% V5 f3 J                        return l;) r+ o, B& c4 L
                }: a! Y8 _$ a7 h4 t1 Q# f/ F
                printf("NO the airline!");
; x% H8 V8 N3 c+ }8 o0 D8 S                return 0;
& {- C7 ?) {% j0 Y; @' J# D5 s        }
, h, Z0 }+ |4 k7 P! D* G}, r3 i/ F& u5 ]: S
int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)
9 K: O& q  K9 L' x{
5 A* x- z( z8 Z& C        airline *q;4 q" K% ^0 `) w  U1 Q0 l
        q=(airline*)malloc(sizeof(airline));
6 B) k0 L6 i/ }' K" g" M0 J" z        strcpy(q->air_num,air_num);
0 P+ A% N, ~9 e3 I/ @; j0 O! f( f2 j        strcpy(q->plane_num,plane_num);: x/ L) k) _6 d* m6 ?; L
        strcpy(q->end_place,end_place);4 L$ n5 V) r( s! ~. N
        q->total=total;
2 e8 K. o! B( H+ D3 W* b        q->left=left;( M. e6 M9 _& |( k% f
        q->next=NULL;$ Y3 [2 k  [  X! G* O0 {
        (*p)->next=q;
0 C0 V7 K0 O6 o$ L        (*p)=(*p)->next;
: k; K( @# S6 w5 ?        return OK;2 X. C( R0 _% i; w0 w- F8 `
        }
5 x. n2 I# {4 f' ^int  insert_cus(customer **p,char *name,char *air_num,int seat_num)% m# {( c& C& R/ ?2 @& }/ v
{
- P& i, F8 V1 [/ x        customer *q;
" j6 A7 i# z2 A1 v2 |; h        q=(customer*)malloc(sizeof(customer));$ n2 Q) ?+ \4 F# {$ }
        strcpy(q->name,name);: e6 V- r7 @# @6 x6 o/ v, \2 k4 |
        strcpy(q->air_num,air_num);! x+ Y7 W% \9 p& V) l
        q->seat_num=seat_num;$ W* ~* y$ M( t% v5 x% G
        q->next=NULL;8 T: T) h% D) o7 |6 P% u0 ~
        (*p)->next=q;
$ V" t" X: V4 }' @+ s$ n        (*p)=(*p)->next;
2 B" O& y+ Q* @. F        return OK;
, @4 t& D0 C- V. Y}
' T# {7 i. _2 _, e+ L. o+ ^int book(airline *a,char *air_num,customer *c,char *name)
& D4 y. b$ _3 T4 ^7 |5 o{- V/ W/ q3 X, u" P# Y
        airline *p=a;+ C) E6 J1 i0 t: _3 A7 T. D5 z
        customer *q=c->next;
3 T4 Q3 b  e' f& o$ }4 N: `        p=a->next;
% ^: o1 T( x# U& I1 k- e, t        for(;q->next!=NULL;q=q->next){}0 _$ S, R* o! s& G
        for(;p->next!=NULL;p=p->next)9 F; ~% C& V- r2 m1 a8 p/ L* s; A
        {
" p$ O- K, b: `0 S                if(p->left>0)
% F# C9 j9 p: Y2 y: B8 W# _                {
# l5 f. V5 x8 O6 r                        printf("Your seat number is %d",(p->total-p->left+1));/ {1 e4 K- y3 X) u) s. K3 M
                        insert_cus(&q,name,air_num,p->total-p->left+1);7 P' N3 i; v3 D. y: X
                        p->left--;* w. @* Q# N/ ^5 ~# a! G6 O* F
                        return OK;
2 L. {" t! w1 H7 V% b2 G" h                }8 }2 {" P: f8 `$ L/ O1 o
                else- b0 Y- T2 K' @
                {5 H! q0 |, p* x) U/ p
                        printf("seat is full");% I4 N7 |+ A3 s- W" d
                        return 0;
, P" i3 v! @+ _! z                }
+ x! |4 `- z# W/ C  T        }( B7 K; s/ K) f
return OK;5 Q% A) r; G$ ~# o! v, v
}
$ N: [/ B' c0 l) G$ W+ J3 aint del_cus(customer *c,airline *l,char *name)0 m3 y8 V& O6 j  Q: z" B0 k
{
2 y9 a$ t; g' `5 v        customer *p,*pr;
1 o3 Y8 V# e) r        char air_num[8];
" z4 w3 Z  I8 h        pr=c;% }( N% r' E' F+ E, o5 O
        p=pr->next;7 P# {! F8 T1 S/ c! A# g
        while(p!=NULL)
! ?! e3 |! [9 D" m7 j- \        {; F" E& A% S7 I& e' [
                if(strcmp(p->name,name)==0)
: P& L* w; r$ ~& }4 K                {$ L" }( i* X" s! m1 i
                        strcpy(air_num,p->air_num);
6 J) @$ }0 K5 p                        l=modefy_airline(l,air_num);
5 s) a4 a) o+ c  [$ L1 l                        pr->next=p->next;
0 @1 c% Y4 i8 b5 p9 S% C7 ?                        p=pr->next;
+ W& m4 y8 B& @, x                        printf("finish!");; [$ L) o# ~9 w. |) N
                        return OK; $ {+ s8 v. @- C7 G0 J
                }2 Y! p5 F& ^/ h' h4 A
                pr=pr->next;$ m' [5 `# P/ L+ A; I; i( h, Z
                p=pr->next;
2 R* v' M5 x1 E        }6 @' B& k4 C2 x7 b/ ?! d# R0 m
        printf("NO the customer!");
" i1 N5 U& U: |; @        return ERROR;0 C8 i4 |8 X; m; N7 D' U+ [
}
3 b' R6 A; F; f; X0 bint search_air(airline *head)
* ~# a8 W" n2 b; l" l{
# C/ a% @' @9 I        airline *p=head->next;
2 w+ R& m- K9 R, Z0 @  @6 i8 O: z; {        printf("air_num  plane_num  end_place  total  left\n");
3 y* G/ y! `% d7 A: [" K        for(;p!=NULL;p=p->next)
' n$ \% A5 a7 F! ~& n4 L! ~0 P6 w2 g        {1 S( h) G5 F8 r; Q! m
                printf("%s    %-10s %-8s    %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);- d" F4 E$ U, k- x) q4 p" ~7 k
        }
- T3 B; C: b$ v. r: @# ~" r( t        return OK;
0 P  y0 U4 U1 b& d}
, D. ]+ e) N3 kint search_cus(customer *head)
8 Q9 y" r) h9 a8 _! A' D6 l{
2 I+ G$ Y. e2 V* s5 A+ Y, _        struct customer *q=head->next;
3 Q! @, k4 F+ D5 _: M8 D        printf("name    air_num    seat_num\n");
2 n3 E+ b! z% f0 F& o4 x        for(;q!=NULL;q=q->next)
% V' X. V/ |: x+ ^: G! `- J        {( M, n$ S# Q7 i, t
                printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);2 o5 l/ \3 f2 R  r; [1 ~( s9 E
        }7 _& q+ p; c0 _2 c5 ]/ v# B+ e: Y
        return OK;
* T5 l7 C) @- O$ S- b}
+ ~% g" [0 U% Q* }int creat_air(airline **l)! Z! E% v- ~5 h; i: a, g7 w' _2 X% `
{
! M5 D4 b& v# e- Q% N        airline *p=*l;) d2 L- l( h& `& K" u. B2 o# `% o
        int i=0;
" f& w2 X' Z9 m% l8 W( ]        char *air_num[3]={"007af","008af","009af"};
1 F1 q' ^; m; n3 r8 N: i( S- Z        char *plane_num[3]={"plane1","plane2","plane3"};
+ [: l5 L8 L: v  y1 z  ]$ @0 N        char *end_place[3]={"Beijing","Shanghai","Tianjin"};1 w% m6 k4 e8 w+ ?7 @3 m/ F( L4 O  P: W
        int total[3]={100,100,100};
& V9 \: `8 O) m! S8 |. r        int left[3]={52,54,76};- v4 B# n, [. \$ A. E
        for(i=0;i<3;i++)9 H- k6 n2 F! \
        insert_air(&p,air_num,plane_num,end_place,total,left);# Q$ K7 B2 d7 x" p# w
        return OK;
5 |% B; q5 D! s}8 l0 v/ }( E/ Q4 I" s8 T
int creat_cus(customer **l)
9 F1 S$ t2 t, p/ X5 k8 n9 `" |{
0 r/ Q  J4 i; g' `        customer *p=*l;
  y4 I9 d! P  Y& V; Z        int i=0;$ v3 e, N0 o% X( L% L, E( A
        char *name[3]={"zhsan","lisi","wangwu"};
! {- V9 F1 X4 w' Y5 `$ F        char *air_num[3]={"007af","008af","009af"};
5 I1 _3 C: V1 w9 M# O- n" v: l        int seat_num[3]={2,5,7};
% H; E3 ^' g$ v% |5 \2 L        for(i=0;i<3;i++)) z+ L- n6 z( C$ {) D: z. I
        insert_cus(&p,name,air_num,seat_num);
# o# M% O4 c2 g# b        return OK;
$ F" i  N: h  q0 ?- ]& W}& Z1 @& E+ N! D$ K" M; J
void main()- N$ J( q* X1 k$ m
{) z# a# r& t5 m
        int t=1;8 S+ B+ n( y; O' k( p* _+ P
        customer *cus=start_cus();
! j# C" Q  ]4 H  A0 }7 Y2 m: X        airline  *air=start_air();- @4 M, @8 t/ c& o6 x$ [
        char name[8],air_num[8],ch;" E. m* _, J0 V
        creat_air(&air);6 r' N! b& W% Z- Z
        creat_cus(&cus);/ i# V: ^" I. D+ ]2 k
        while(t==1)
+ h3 w6 `, h0 S0 v        {4 v# Q" C, H/ H
                printf("\n");
1 r$ b& ]: ~) l; h. B" O- _                printf("*********************************\n");
3 x) W% U/ L, J. d  H; l- A( ]3 c                printf("*     Welcome to air firm!      *\n");( I  F/ {! _4 A8 n/ G% x+ W
                printf("*         book--------1         *\n");! G% K# G$ U6 E& a& R7 L
                printf("*         cancel------2         *\n");& o6 `9 Q# c) K& Y% J1 ^
                printf("*         search------3         *\n");
! m. `# M2 z0 e# P8 C% E! M                printf("*         exit--------4         *\n");9 V; B8 Q' P* I& a; s! q8 r! c8 ]! G
                printf("*********************************\n");: g2 D% W3 z) z
                ch=getch();
) m% h  v- ~3 T# C; Z* \                if(ch=='1')1 b: g- Q) G6 _9 p
                {! Y9 R6 r5 m, T  I
                        printf("Please input a airline number:");
/ r7 j1 l, e: S9 E                        scanf("%s",air_num);$ x! Y* U( h3 h
                        printf("Please input a name:");! ^0 w1 P+ ]. X$ w! n# ]3 \) e* {' k
                        scanf("%s",name);" C7 ]" G; T# n: r( j; I3 ~0 Z
                        book(air,air_num,cus,name);
5 G# q8 f9 Q, z                }
6 l9 }9 S5 {8 [/ R" L. e/ F2 Z                else3 [, p2 T- D$ m2 {
                    if(ch=='2')
( E5 X5 `8 o; S( H                    {9 B: _# H% A7 V/ t. n6 e: e
                        printf("Please input the cancel name:");7 T/ c9 j; n1 j) s8 F. T& c- g
                        scanf("%s",name);& A6 P) n- P# N" L0 h1 @; e8 n( O3 g
                        del_cus(cus,air,name);; g; R* X# z- i1 {
                     }) H) d' _. k8 x; ?8 w( q
                     else
' c6 P* R2 M5 h' @: j& M2 b: v2 i                         if(ch=='3')
9 ]8 Z  \' h4 D4 |$ J0 H' E0 l                         {, [6 E2 Z( A. h9 r8 `9 q  K
                                search_air(air);
6 Z# j: c5 L% x: L$ [                                printf("\n");      : T" |4 y+ d- Z6 @+ b8 E! h/ g5 d
        search_cus(cus);$ v* o4 C1 `4 c, F
                         }
. {6 i% j9 `* x7 g0 v/ M5 ]9 |( r                         else7 e$ y9 ?* r' g4 B
                              if(ch=='4')
; l3 L  h6 Y1 `, y8 f                              {: v/ u, H; W: p$ K8 N* P
                                t=0;
+ B6 y; |) S* j- w                              }
4 L7 l  O1 y9 ?1 |         }
' Q% X# N) a; ]& V( i" c) n2 Q}" p* E( t* h9 D* f5 H
/*任务:通过此系统可以实现如下功能:
; v5 N1 w! {5 R0 l4 }" T! S, v录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
; h& f) B7 Y! H& M查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);" y& s4 q0 j/ J2 q' g3 x
可以输入起飞抵达城市,查询飞机航班情况;
8 y, d8 b8 c; o9 \* Y4 n订票:(订票情况可以存在一个数据文件中,结构自己设定)
- F. u- o1 E! v8 ?可以订票,如果该航班已经无票,可以提供相关可选择航班;
2 d, g+ F0 i' D退票:可退票,退票后修改相关数据文件;
9 i/ c, L, Q1 R7 G: N0 ~: G客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。4 f/ J& ^( U7 L* M+ s# Q1 q9 `
修改航班信息:当航班信息改变可以修改航班数据文件: T- B+ O1 l* J) ~8 a# t& L! y5 a
要求:: @( U; r8 R& G, b
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩 转发到微博

本版积分规则

关闭

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

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