下沙论坛

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

QQ登录

QQ登录

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

飞机订票系统

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2007-12-25 09:36:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<stdio.h>% N: H  a  s9 r; o0 p
#include<stdlib.h>
1 Q" C4 P9 b. M* L! ?. K, \#include<string.h>
; |$ l% {2 @* I/ q#include<conio.h>
; ]* W" b0 c" Z( N$ c' e( I#define OK 12 J  h1 ~; b1 \
#define ERROR 0
. x9 E: H8 {% R1 A& L% k. Jtypedef struct airline{' C6 J) s6 g; d) Z8 _' [$ K5 d- U
        char air_num[8];
1 _0 V3 z5 _) N& p0 i        char plane_num[8];
  B. I$ m7 O) E, V& c9 v1 A; D        char end_place[20];
1 Z7 ^5 O- H! W7 Q' U        int  total;
" ~( v; H$ H7 Y6 p8 v' `        int  left;8 \) }" e/ t( A2 c6 i2 R
        struct airline *next;
* W3 F0 y( d$ R7 a}airline;- Z" }' P3 H! ^. @9 j) g2 S6 S, a
typedef struct customer{
9 x) k5 P* J: ]1 ^  ]# S% b* s0 a! D        char name[8];
! |* B' j$ ~7 n: q7 V        char air_num[8];, a, m7 \! b5 x& {  b% Q
        int  seat_num;3 L' \( Z, P$ R1 m8 T. _
        struct customer *next;& \6 _- I# R% ^
}customer;
% A+ V; y( f) Rairline *start_air()
+ y; E+ q' s" ?( \$ ]{3 W6 ]* f. t2 `7 r- l
        airline *a;% t) ~  _) V  e  H. ]) [0 f
        a=(airline*)malloc(sizeof(airline));
/ v+ j, X, Y) R; C* y8 M        if(a==NULL)5 s  p3 Y% x' k- o9 P4 o& {3 o& P5 @
        a->next=NULL;
$ Q- K2 H1 K0 K" q4 _        return a;
; `  c9 M$ p. x( L0 F}
/ S8 k3 ~+ m5 d3 F- u# _customer *start_cus()9 C% H2 V5 r6 U# A
{
3 L5 ]: e2 f. d" S' ~, k* Q        customer *c;9 l' K# F/ U% R- s  L
        c=(customer*)malloc(sizeof(customer));
, a+ J. x5 V* h" a* Z  h* x        if(c==NULL)3 D, x8 _' M& _/ _5 h) U: i6 F
        c->next=NULL;
& I8 ^- B( G; M        return c;
3 t- k/ x5 H6 w}* O; L& Z9 v# P/ P3 f
airline *modefy_airline(airline *l,char *air_num)
; K1 K* u9 V2 c{5 @# v" Z$ r3 d) X4 P
        airline *p;
: t- Q8 z2 o/ a4 M  E4 J( G3 g        p=l->next;
' B/ V9 C+ d3 w        for(;p!=NULL;p=p->next)$ w) s- d9 W$ a" ^. T
        {
9 l" q7 M7 C8 F! H' e7 s- B6 }                if(strcmp(air_num,p->air_num)==0)
0 G. p' r' h+ h! d                {& r" x+ t: T0 S8 j
                        p->left++;9 L* K2 M" B/ {
                        return l;
" _& M( A+ a# ?" ]0 d                }
0 y4 R: F" I- D" K                printf("NO the airline!");
8 w* X5 q4 m: Q                return 0;# _, u3 D& U' u( j* T/ P  S+ P; a
        }9 }6 G4 U1 Z" w+ e+ M2 o
}
0 j' O% E7 B4 c, x2 J/ Vint insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int total,int left)+ c. l2 Q% s$ G+ l4 v( V. P
{
7 B8 a6 Z; N9 i+ ^, d7 g( f        airline *q;
  ~, i: N9 a/ L$ C! m% H% ]        q=(airline*)malloc(sizeof(airline));' n8 ~/ h9 C6 D: o! O2 S
        strcpy(q->air_num,air_num);6 C$ n: Q  M0 Z
        strcpy(q->plane_num,plane_num);. |% S; x/ x  U0 T) f; ~- T$ L
        strcpy(q->end_place,end_place);, o" z7 g5 a5 E" Z
        q->total=total;
$ [$ n0 q9 [. k* o0 R        q->left=left;+ B0 E5 v! B% o2 ]. E, p( ]
        q->next=NULL;
' o9 ~8 v* P0 B. W+ u/ ~        (*p)->next=q;# s  D( R$ _/ q$ {- d
        (*p)=(*p)->next;" e& G, ?% m- U: M  \0 V
        return OK;5 h. H6 k2 V: {4 ]! ~4 B
        }' ]  b# r$ c7 Z. h% T4 K  X
int  insert_cus(customer **p,char *name,char *air_num,int seat_num)# R3 J: j3 q, C1 Y; _# E  k
{
7 b* \9 [7 a5 H        customer *q;
& e1 E% Y! l1 _8 B! o$ o        q=(customer*)malloc(sizeof(customer));1 b9 M0 W" R. k
        strcpy(q->name,name);
# C6 E, |4 H6 h' C" P" W0 S5 i        strcpy(q->air_num,air_num);
! S; g2 ]3 u) [4 v- e& ]        q->seat_num=seat_num;
$ m9 S' y+ c% N# z% I8 o8 X        q->next=NULL;% S  M) [2 G: l
        (*p)->next=q;! I  Q& F5 w' y& T2 p; T/ s% d# I
        (*p)=(*p)->next;
9 x. Z, l) \8 g1 @        return OK;
7 E  R& @' X% g, v2 Q0 J6 r3 M}8 e, ~) d& l1 X! L& ]
int book(airline *a,char *air_num,customer *c,char *name)
: ?5 q8 ?5 @- G1 X) ]3 h{% o- c2 o" p* E! y! ?9 t& i1 I" |
        airline *p=a;
! y3 A. h: G' @& R/ i        customer *q=c->next;
+ y7 ^# h* X" f/ c9 d8 m        p=a->next;
" h5 v6 W) v& s+ _4 [" t        for(;q->next!=NULL;q=q->next){}
' q2 z3 R4 g1 l. h- @        for(;p->next!=NULL;p=p->next), ?. X) F9 j/ \8 c/ v/ o8 t9 T
        {
* t, y" l* z- d# G                if(p->left>0)5 \7 p8 Z5 |0 g+ L* l" `9 _2 k6 ~
                {" ^7 w# w1 ]4 P% d& i( f4 O" y
                        printf("Your seat number is %d",(p->total-p->left+1));* f, a& s' q1 d" E
                        insert_cus(&q,name,air_num,p->total-p->left+1);
8 t8 e9 m% C- j0 T$ Q  i1 m                        p->left--;0 {  r' ~# T  M+ M$ f
                        return OK;
/ M2 L$ a0 Y# r  `                }- q0 ^2 F; q" Y. P0 ~( M, a
                else
" U. `4 ^) Y# L4 Y: y& @                {
/ @# ~8 w. e, t1 N, p' y! G5 P                        printf("seat is full");3 C7 ^  @2 B' }4 T. W( d2 c' t
                        return 0;
0 L2 R% d( L; [2 T: Y2 l( @                }! }% U$ i: U. e9 v7 q
        }1 a- _1 ]4 n* G$ }1 {0 q2 n. w$ z" Q
return OK;* Q) Q5 R) Q" k8 T% ]& J' s# X8 I
}. D; l' Q, _4 Q$ z/ U1 K) a
int del_cus(customer *c,airline *l,char *name)4 P- s$ D' N6 Y* T
{
6 G; r" ^# P" \6 q        customer *p,*pr;
) N+ |! u- ?6 n2 _        char air_num[8];+ x9 U( o+ X% R% }
        pr=c;: \8 t  l2 }* D  J
        p=pr->next;) o# Z3 p  }2 U$ F3 Y6 h9 R
        while(p!=NULL)
. H) J  F3 z& ~  g/ I        {
/ p) S! \6 \$ d* y& X                if(strcmp(p->name,name)==0)
5 G9 `& s3 P* C# h9 R                {
2 \1 q  c2 `& A! Z, C0 @. o                        strcpy(air_num,p->air_num);
+ Z4 q+ ]! {2 i3 }: u0 ]  D6 H                        l=modefy_airline(l,air_num);
" w  L, m2 Z! X2 s- t& z/ j% m: t                        pr->next=p->next;
8 y% h9 X* ]8 ~* _, c$ z* N                        p=pr->next;
6 j  z( X% e5 M                        printf("finish!");
+ e1 j: K8 s' {                        return OK;
) C# a( n( b$ z/ f- s% ]) Z                }
0 t9 k0 h) S& I* X% J- n5 r                pr=pr->next;# @- m3 E( {7 ]9 `+ @9 K
                p=pr->next;, x7 G' u6 W5 A" F1 Q
        }  C* W4 o2 Y* E! I) X
        printf("NO the customer!");4 M! B* b# h% B
        return ERROR;8 s2 E; A* U0 k3 W) W/ t/ d" u! j
}
- m2 G3 d( H* \' z2 `+ A* E2 vint search_air(airline *head)& ]0 ~# T6 i+ l
{
  |6 i( t; p8 K6 x# O* d6 T. l        airline *p=head->next;
' |4 k# \$ p, r6 m# z- D$ l/ {) @        printf("air_num  plane_num  end_place  total  left\n");+ l- \; _1 i. V0 `( {4 u
        for(;p!=NULL;p=p->next)4 n/ G* E4 b+ c1 x& o$ e# B
        {
! A0 D/ h( O* I                printf("%s    %-10s %-8s    %-8d%-8d\n",p->air_num,p->plane_num,p->end_place,p->total,p->left);  ]/ l  r: O. L3 b
        }5 L, _  N9 y1 {
        return OK;# ?, c4 U$ W) u! X) y/ d
}1 U7 {5 L2 H# g& Z- q* ]4 @9 I
int search_cus(customer *head)
6 f$ x! o, e  ?{+ |6 M5 P% G3 `4 ^' J- }0 [& L. G
        struct customer *q=head->next;
$ M0 A* h9 K, `% p: m- k) b7 u1 ?        printf("name    air_num    seat_num\n");
' O  H2 S- |4 w        for(;q!=NULL;q=q->next)
5 _! W/ Y6 w2 q% f, F, F        {/ P) [5 J; y& a3 S) k4 W. h
                printf("%-8s%-12s%-d\n",q->name,q->air_num,q->seat_num);
3 M2 h5 y1 D( ~3 [        }* D- z% P. F- J2 I
        return OK;
' E. s& E! R+ Y. f5 A}
$ ]- g" m* Z. j3 b4 i+ O. Z' Lint creat_air(airline **l)2 o* j1 n" }# }2 Q
{( u6 [8 u( U3 H& k1 ]$ h' x
        airline *p=*l;: p' ?9 g1 B9 r  \
        int i=0;$ }) U, t, A; ~+ p
        char *air_num[3]={"007af","008af","009af"};
; a! c0 y; F& y& l7 ]6 n        char *plane_num[3]={"plane1","plane2","plane3"};) h0 X# q) o1 _0 x4 O. _) _6 ]4 P2 \
        char *end_place[3]={"Beijing","Shanghai","Tianjin"};
' c  w+ t% J+ r8 ]" y9 U        int total[3]={100,100,100};
, y* x0 E" C7 ~7 V- Z. r        int left[3]={52,54,76};
5 K1 G% N/ b1 Y" Q0 C# ~        for(i=0;i<3;i++)
1 w. Q; h' r. b0 V! S, R        insert_air(&p,air_num,plane_num,end_place,total,left);
" T$ Q+ f3 ^! p' T% d$ z3 n' q        return OK;
1 e1 ^! t) x' |6 f: w5 ^" Y}7 P/ I0 g/ C" S- H. A& `. W3 x
int creat_cus(customer **l)! v$ s. H9 X( ?9 h0 x* A
{
4 y8 w! G  q! z5 z2 X/ }7 d4 a        customer *p=*l;
1 [2 U# y3 i  e; c: ^2 b( E        int i=0;" \7 {; B  w# L: }0 e
        char *name[3]={"zhsan","lisi","wangwu"};
3 G9 Q2 s0 _% p8 R! c        char *air_num[3]={"007af","008af","009af"};
; N, _+ I$ q, R1 e4 j* T        int seat_num[3]={2,5,7};1 q& C* \& ?- I' ]& ?) K  l
        for(i=0;i<3;i++)7 c& G* q% H) ]
        insert_cus(&p,name,air_num,seat_num);
7 {: w6 ~& g' Q: Z$ J" ?1 W        return OK;* Z+ w* P8 e( g9 N/ T* @( V
}5 m/ J# o4 }9 p# `1 h3 i
void main()
8 ^6 U" _* x; D2 F3 m& N. U1 H{
3 }3 i& a2 X- J: @- n) B2 O        int t=1;
& l! w# ~. N# Q# P* E4 s        customer *cus=start_cus();
/ O# G2 `9 r- d/ U8 u( p7 O4 S        airline  *air=start_air();
  h# H+ [1 g" A3 v        char name[8],air_num[8],ch;
: {3 x' m& ?* O$ w8 [        creat_air(&air);% U2 E$ ]7 j! q
        creat_cus(&cus);) e) P9 g* ~9 H/ m
        while(t==1)
. W! d$ u+ c- o2 x; @7 Q9 p% a        {9 O& T9 H1 j1 ^- M
                printf("\n");
: a5 o7 i8 A" Y. E                printf("*********************************\n");
6 Z# M% b8 P+ a3 @0 J                printf("*     Welcome to air firm!      *\n");" @. Y0 Z6 f! _+ @% W: M  L
                printf("*         book--------1         *\n");
3 n6 C/ P$ N0 o0 q                printf("*         cancel------2         *\n");: ]& p* A$ `+ b
                printf("*         search------3         *\n");- D+ e: s3 G* F) ^! L% \6 D
                printf("*         exit--------4         *\n");* u1 H! a. b1 a- }% e
                printf("*********************************\n");
- X9 p! R" w# b+ Q8 ^                ch=getch();! K. ^- N0 h' r; D/ r1 `
                if(ch=='1')4 U( V7 G! L4 t
                {2 N' f* c$ K/ h& {3 @4 P
                        printf("Please input a airline number:");" P/ |; B% z3 ?
                        scanf("%s",air_num);
8 \) h1 S5 z- L                        printf("Please input a name:");
% @! X: U1 X7 l" M$ ~6 B                        scanf("%s",name);4 m! Z" a* \! p' `' |0 [# P, }
                        book(air,air_num,cus,name);9 \' ]9 S( h# c2 q0 f
                }% c* @) [8 j' B0 r0 o
                else
2 O; b6 K: I2 ]6 T! e                    if(ch=='2')8 s3 F4 E+ ~9 _- M8 e1 w  E& C
                    {
, P7 M& s/ F6 G6 `                        printf("Please input the cancel name:");
. a) a1 g$ a* m( {                        scanf("%s",name);* B' g7 z/ p, E2 S( b% S, N0 p
                        del_cus(cus,air,name);9 }% E  `" r: r, Q; j9 D! |
                     }
- v( c+ n2 f! {9 V, t  t  w; i                     else
4 z9 [# |5 @: l( N( R2 w2 h4 L( s                         if(ch=='3')
. B- `: x- U) F7 `$ W                         {; @3 I2 A- {, g# J6 a( D: S/ l8 O
                                search_air(air);
2 |1 c: T" i* L, |# P/ a                                printf("\n");      - Q' a5 r& G  @7 g/ ?6 @' p% q8 \
        search_cus(cus);
! Q/ \: C' X5 a6 _' _                         }' }8 z. ?  h% x7 I! T5 D
                         else+ f& [( G. U: O' t& U
                              if(ch=='4')% L2 f1 i, l3 R4 F/ p& {  H
                              {* ~6 u# D. `  t& B& Q
                                t=0;& Z% N8 r2 e- U
                              }
: h2 [$ Q1 o/ Z$ P- L# @7 G         }
1 b/ p/ K) ?0 U}& V9 F2 B: V! x+ r
/*任务:通过此系统可以实现如下功能:. s0 x! B8 |  z$ d- G
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定). K& C$ s4 W. q+ a& b; n: M3 f
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);; I. y9 I* `  G4 ^6 U" ~
可以输入起飞抵达城市,查询飞机航班情况;8 p0 ]  T' X/ [
订票:(订票情况可以存在一个数据文件中,结构自己设定)
' f& ^7 K) U) O9 X可以订票,如果该航班已经无票,可以提供相关可选择航班;; a( t7 X8 V2 S& I
退票:可退票,退票后修改相关数据文件;
1 y2 j% V* ~' U% A客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
* u7 d9 b9 E2 O( Z修改航班信息:当航班信息改变可以修改航班数据文件
7 c- s4 ~$ R5 E6 N要求:4 r8 W. @. t) k/ w' F
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;*/
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩

本版积分规则

关闭

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

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