标题:订票系统
只看楼主
吴珂
Rank: 1
等 级:新手上路
帖 子:16
专家分:2
注 册:2010-3-31
结帖率:50%
 问题点数:0 回复次数:2 
订票系统
实现一个简单的订票系统
基本要求:
(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
(3)可以输入起飞抵达城市,查询飞机航班情况;
(4)订票:(订票情况可以存在一个数据文件中,结构自己设定),可以订票,如果该航班已经无票,可以提供相关可选择航班;退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号;
(5)修改航班信息:当航班信息改变可以修改航班数据文件。
搜索更多相关主题的帖子: 系统 订票 
2010-07-17 11:16
jason110hb
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-8-29
得分:0 
貌似我们大一的课设,要求基本一致。
2010-08-20 00:29
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:0 
//plane_h.h
#ifndef plane_h
#define plane_h
#define SIZE 10//航班号位数

struct citys
{
    char *leave_city;
    char *land_city;
};

struct time
{
    int yea;
    int mon;
    int day;
    int tim;
    int min;
};

struct timer
{
    time start_off_time;
    time arrive_time;
};

typedef struct Airplane
{
    float value;//票价
    int chech_NU;//票数
    char plane_Nu[SIZE];// 航班号
    struct timer Tim;//起降时间
    struct citys City;// 期间城市
    int target;//标志航班是否满员
    struct Airplane *next;
}Airplane;





int read_infomation( Airplane *r_plane );
Airplane *refer_to_nu( Airplane *r_plane );
Airplane *refer_to_road( Airplane *r_plane );
void book_ticket( Airplane *r_plane );
int save_text( Airplane *r_plane );

#endif

////member.cpp
#include "plane_h.h"
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <string.h>

/*
**从指定的路径文件中读取信息到单链表r_plane中
**如果成功则返回值0, 否则返回值-1
*/
int read_infomation( Airplane *r_plane )
{
    FILE *fp;
    if( !(fp=fopen("d:\\plane.txt", "r")) )
        return -1;
    Airplane *temp;

    while( feof(fp) == 0 )
    {
        temp=(Airplane *) malloc (sizeof(Airplane));
        fread( temp, sizeof(Airplane), 1, fp );
        temp->next = r_plane->next;
        r_plane->next = temp;
    }
    return 0;
}

/*
**功能:依照航班号进行查询工作
**查询成功则返回相应的指针值,否则返回值NULL
*/
Airplane *refer_to_nu( Airplane *r_plane )
{
    if( !r_plane->next )
        return NULL;
    Airplane *temp = r_plane->next;
#if SIZE
    char string[SIZE];
    printf("输入航班号:");
    scanf("%s", string);
    while( temp )
    {
        if( strcmp(temp->plane_Nu, string ) == 0 )
            return temp;
        temp = temp->next;
    }
#endif
}

/*
**功能:依照航班的起止位置进行查询工作
**查询成功则返回相应的指针值, 否则返回值NULL
*/
Airplane *refer_to_road( Airplane *r_plane )
{
    if( !r_plane->next )
        return NULL;
    Airplane *temp = r_plane->next;
    char str_start[15], str_arriv[15];//定义起止位置字符串变量
    printf("输入航班的起飞城市:");
    scanf("%s", str_start);
    printf("输入航班的降落城市:");
    scanf("%s", str_arriv);
   
    while( temp )
    {
        if( strcmp(temp->City.leave_city, str_start ) == 0 && strcmp(
            temp->City.land_city, str_arriv ) == 0 )
            return temp;
        temp = temp->next;
    }
}

/*
**功能:实现订票操作功能
**本函数是采用调用refer_to_road()函数功能
*/
void book_ticket( Airplane *r_plane )
{
    Airplane *temp;

    temp = refer_to_road( r_plane );
    //判断是否航班满员1 表示满  0 表示没有满状态
    if( temp->target == 1 )
        printf("\t对不起, 此次航班机票已经全部售完!\n");
    else
    {
        temp->chech_NU--;
        if( temp->chech_NU == 0 )
            temp->target = 1;
    }
}

/*
**功能:完成在指定路径的文件进行存储
**如果成功则返回值0, 否则返回值-1
*/
int save_txt( Airplane *r_plane )
{
    FILE *fp;

    if( !(fp=fopen("d:\\plane.txt", "w")))
        return -1;
    Airplane *temp = r_plane->next;
    while( temp )
    {
        fwrite( temp, sizeof( Airplane ), 1, fp );
        temp = temp->next;
    }
    return 0;
}

///main.cpp
#include "plane_h.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int main()
{
    Airplane *r_plane = (Airplane *) malloc (sizeof( Airplane ));
    r_plane->next = NULL;
   
    if( read_infomation( r_plane ) == -1 )
        exit( -1 );

    int choose;
    while( 1 )
    {
        printf("");//提示菜单输出
        printf("根据提示菜单进行选择:");
        scanf("%d", &choose);
        switch( choose )
        {
        case 1:
            break;
        case 2:
            break;
        case 3:
            break;
        case 4:
            break;
        //...
        }
    }
    return 0;
}
2010-08-26 15:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-313250-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023407 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved