简易飞机订票系统实现(C语言)

该程序实现航班信息的管理和顾客订票功能,分管理员和顾客两种角色。

#include 
#include 
#include 
#include 
 
 
/*************************************************************************/
/* 登陆分管理员和用户                                                    */
/* 管理员功能:                                                          */ 
/*            1.管理航班信息(如增加、删除、修改航班信息)               */
/*            2.查看订票信息(如查看所有航班的售票情况、查询某次航班信息)*/
/* 用户功能:                                                            */
/*            1.查看所有航班信息(根据航班号、出发地、目的地等)         */
/*            2.订票                                                     */
/*            3.退票                                                     */
/*************************************************************************/
 
//机票实际上应够由航班号、日期来共同确定其唯一性,这里为了简便,不再做具体处理
 
 
 
//定义日期结构体
struct Date
{
    int year;
    int month;
    int day;
};
 
//定义时间
struct StTime 
{
    int hour;
    int mint;
    int sec;
};
 
 
//定义购票信息结构体
struct StTickInfo
{
    char id[16];     //订单号(根据时间生成,或者随机生成,这里这个这个字段可以没有,实际系统中肯定是要有的)
    Date date;       //订票日期
    char hangban[16];//航班号,通过航班号,可以查询航班信息
    char guest[20];  //订票人名
    char guId[20];   //订票人身份证号
    char phone[12];  //订票人电话
};
 
//航班信息
struct StHangbanInfo 
{
    char hangban[16];//航班号
    char name[16];   //航空公司名称
    char src[16];    //出发地
    char dst[16];    //目的地
    Date date;       //航班日期
    StTime tm;       //起飞时间
    int nmbZw;       //座位数量
    int nmbUse;      //已售票数
    int price;       //票价
};
 
//定义全局变量,管理航班和订票信息
struct StHangbanInfo g_allHb[100]; //保存当前所有航班信息
int g_nmbHb=0; //实际航班数量
 
struct StTickInfo g_allTicks[200]; //保存当前所有的订单信息
int g_nmbTicks=0; //当前系统中实际购票数量
 
//根据航班号查询航班信息
struct StHangbanInfo searchById(char* id)
{
    int i;
    struct StHangbanInfo stnull;
    memset(&stnull.hangban,0,16);
    for (i=0;itm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);//输出结果
}
 
//获取当前时间
struct Date getCurrentDate()
{
    Date oo;
    time_t t;
    struct tm * lt;
    time (&t);//获取时间戳
    lt = localtime (&t);//转为时间结构
    //sprintf不安全,可以更换为sprintf_s
    //sprintf(buf,"%d%02d/%02d%02d%02d%02d",lt->tm_year+1900, lt->tm_mon, lt->tm_mday, lt->tm_hour, lt->tm_min, lt->tm_sec);//输出结果
    oo.year = lt->tm_year+1900;
    oo.month = lt->tm_mon;
    oo.day = lt->tm_mday;
    return oo;
}
 
//显示航班信息标题
void showHbTitle()
{
    printf("航班号  航空公司  起始地  目的地  起飞日期及时间  价格  座位数  剩余票数\n");
}
 
//显示单条航班信息
void showSingleHbInfo(struct StHangbanInfo st)
{
    printf("%s  %s  %s  %s  %d-%02d-%02d %02d:%02d  %d  %d  %d\n",st.hangban,st.name,st.src,st.dst,
        st.date.year,st.date.month,st.date.day,st.tm.hour,st.tm.mint,st.price,st.nmbZw,st.nmbZw-st.nmbUse);
}
 
//查询航班-管理员和用户通用
void search()
{
    int opt,i;
    char ch;
    char id[16]={0};
    char start[16]={0},end[16]={0};
    struct StHangbanInfo hb;
    int nmb=0;
    system("cls");
    if(g_nmbHb==0)
    {
        printf("目前暂无航班信息,请先添加航班\n");
        system("pause");
        return;
    }
    while (1)
    {
        system("cls");
        printf("1.根据航班号查询\n");
        printf("2.根据出发地、目的地查询\n");
        while(1)
        {
            scanf("%d",&opt);
            if(opt ==1 || opt ==2) break;
        }
        fflush(stdin); //清空输入缓存
        switch(opt)
        {
        case 1:
            printf("请输入航班号:");
            scanf("%s",id);
            hb = searchById(id);
            if(strlen(hb.hangban) > 0)
            {
                showHbTitle();
                showSingleHbInfo(hb);
            }
            break;
        case 2:
            printf("请输入起始地、目的地:");
            scanf("%s %s",start,end);
            showHbTitle();
            for (i=0;i

你可能感兴趣的:(c语言,算法,开发语言)