谁能叫我一下语言设计,是飞机购票系统的,交个朋友?

代码,编程,好难现在,大家交个朋友,以后我肯定好好学习,就是从开头都结尾都不会,真心求帮我的小姐姐与男生,

img

img

img

img

代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
 
 
/*************************************************************************/
/* 登陆分管理员和用户                                                    */
/* 管理员功能:                                                          */ 
/*            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;i<g_nmbHb;i++)
    {
        if(strcmp(g_allHb[i].hangban,id)==0)
            return g_allHb[i];
    }
    printf("未找到航班信息\n");
    return stnull;
}
 
//根据时间生成订单编号
void getId(char buf[])
{
    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);//输出结果
}
 
//获取当前时间
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<g_nmbHb;i++)
            {
                if(strcmp(g_allHb[i].src,start)==0 && strcmp(g_allHb[i].dst,end)==0)
                    showSingleHbInfo(g_allHb[i]);
            }
            break;
        }
        printf("是否继续查询(Y/N)?");
        fflush(stdin);
        ch = getchar();
        if(ch=='N' || ch=='n')
            break;
    }
 
}
 
 
//----------------管理员功能------------------//
//新增航班
void addHangban()
{
    struct StHangbanInfo st;
    system("cls");
    fflush(stdin);
    printf("请输入航班号:");
    scanf("%s",st.hangban);
    printf("请输入航班公司名称:");
    scanf("%s",st.name);
    printf("请输入起始地:");
    scanf("%s",st.src);
    printf("请输入目的地:");
    scanf("%s",st.dst);
    printf("请输入起飞日期(YYYY-M-D):");
    scanf("%d-%d-%d",&st.date.year,&st.date.month,&st.date.day);
    printf("请输入起飞时间(H:M):");
    scanf("%d:%d",&st.tm.hour,&st.tm.mint);
    printf("请输入票价:"); //这里不再区分头等舱和经济舱
    scanf("%d",&st.price);
    printf("请输入座位数量:");
    scanf("%d",&st.nmbZw);
    st.nmbUse = 0;
    g_allHb[g_nmbHb++] = st; //保存数据
    printf("添加航班成功\n");
    system("pause");
}
 
 
//从订单信息中删除某航班的所有订票信息
void delSpecHb(char* id)
{
    int i,j;
    for (i=0;i<g_nmbTicks;i++)
    {
        if(strcmp(g_allTicks[i].hangban,id)==0)
        {
            for(j=i;j<g_nmbTicks-1;j++)
            {
                g_allTicks[j] = g_allTicks[j-1];
            }
            g_nmbTicks--;
            i--; //i回退一下,for循环i++后,仍指向该删除元素的位置,并开始判断
        }
    }
}
 
 
//删除航班(航班也需要从订票信息中删除)
void delHb()
{
    int i;
    char id[16]={0};
    fflush(stdin);
    system("cls");
    printf("请输入要删除的航班号:");
    scanf("%s",id);
    for (i=0;i<g_nmbHb;i++)
    {
        if (strcmp(id,g_allHb[i].hangban)==0)
        {
            //从订票信息中删除该航班的所有订票信息(退费、短信通知等功能这里就不写了)
            delSpecHb(g_allHb[i].hangban);
            printf("删除成功\n");
            g_nmbHb--;
            system("pause");
            return ;
        }
    }
    printf("未找到该航班号\n");
    system("pause");
}
 
 
//管理员功能入口
void deal_manager()
{
    int opt;
    while(1)
    {
        system("cls");
        printf("1.查询航班\n");
        printf("2.添加航班\n");
        printf("3.删除航班\n");
        printf("4.退出\n");
        printf("请选择:");
        scanf("%d",&opt);
        switch(opt)
        {
        case 1:
            search();
            break;
        case 2:
            addHangban();
            break;
        case 3:
            delHb();
            break;
        case 4:
            return;
        }
    }
}
 
 
//----------------客户功能------------------//
//购票
void gouPiao()
{
    struct StTickInfo tk;
    int i,flag=0;
 
    system("cls");
    fflush(stdin);
    printf("请输入航班号:");
    while(1)
    {
        scanf("%s",tk.hangban);
        //这里最好对航班进行处理,比如查看航班是否存在,票是否已经售完
        for (i=0;i<g_nmbHb;i++)
        {
            if (strcmp(g_allHb[i].hangban,tk.hangban)==0 )
            {
                if( g_allHb[i].nmbZw-g_allHb[i].nmbUse == 0)
                    flag = 1;
                break;
            }
        }
        if(i==g_nmbHb)
        {
            printf("未找到该航班,请重新输入航班号:");
        }else
        {
            if(flag==1)
                printf("该航班机票已售罄,请选择其他航班:\n");
            else
            {
                g_allHb[i].nmbUse+=1; //将该航班的已售票数+1
                break;
            }
        }
 
    }
 
    printf("请输入订票人姓名"); 
    scanf("%s",tk.guest);
    printf("请输入订票人身份证号:");
    scanf("%s",tk.guId);
    printf("请输入订票人手机号:");
    scanf("%s",tk.phone);
    //生成订单号
    getId(tk.id);
    //填充购票时间
    tk.date = getCurrentDate();
    //保存
    g_allTicks[g_nmbTicks++] = tk;
    printf("购票成功\n");
    system("pause");
}
//退票(通过身份证退票,限定一人只能买一张票)
void tuiPiao()
{
    char buf[16];
    int i,j;
    fflush(stdin);
    printf("请输入退票人的身份证号:");
    scanf("%s",buf);
    for (i=0;i<g_nmbTicks;i++)
    {
        if(strcmp(g_allTicks[i].guId,buf)==0)
        {
            //修改该航班的已售票数
            for (j=0;j<g_nmbHb;j++)
            {
                if(strcmp(g_allHb[j].hangban,g_allTicks[i].hangban)==0)
                {
                    g_allHb[j].nmbUse-=1;
                    break;
                }
            }
            //删除该订票信息
            for (j=i;j<g_nmbTicks-1;j++)
            {
                g_allTicks[j] = g_allTicks[j+1];
            }
            g_nmbTicks--;
            printf("退票成功\n");
            break;
        }
    }
    if(i==g_nmbTicks)
        printf("没有此人的购票信息\n");
    system("pause");
}
//客户功能入口
void deal_customer()
{
    int opt;
    while(1)
    {
        system("cls");
        printf("1.查询航班\n");
        printf("2.购票\n");
        printf("3.退票\n");
        printf("4.退出\n");
        printf("请选择:");
        scanf("%d",&opt);
        switch(opt)
        {
        case 1:
            search();
            break;
        case 2:
            gouPiao();
            break;
        case 3:
            tuiPiao();
            break;
        case 4:
            return;
        }
    }
}
 
 
 
 
int main(void)
{
    int opt;
    while(1)
    {
        system("cls");
        printf("----------订票管理系统-----------------|\n");
        printf("|         1.管理员登陆                 |\n");
        printf("|         2.客户登陆                   |\n");
        printf("|         9.退出系统                   |\n");
        printf("---------------------------------------|\n");
        printf("请选择:");
        scanf("%d",&opt);
        switch(opt)
        {
        case 1:
            deal_manager();
            break;
        case 2:
            deal_customer();
            break;
        case 9:
            return 0;
        }
    }
 
    return 0;
}
 
 

可以参考下这篇文章,希望对你有帮助:

飞机订票系统(c语言)_十言1的博客-CSDN博客_飞机订票系统c语言 飞机订票系统(c语言)一、项目背景二、设计目的三、项目功能需求1、添加机票信息2、查询可预订的机票信息3、预定机票并输入个人信息4、修改机票信息5、退票6、根据目的地和最早出发时间,系统可以推荐合适的机票信息7、显示当前时间四、系统的功能结构图五、功能模块介绍1、添加模块2、查找模块3、订票模块4、修改模块5、退票模块6、显示模块7、推荐模块8、保存模块9、时间模块六、详细设计1、主函数2、添加模块3、查找模块4、订票模块5、修改模块6、退票模块7、显示模块8、推荐模块9、保存模块10、时间模块七、代码一 https://blog.csdn.net/qq_45771313/article/details/120556935

网上搜搜吧
https://blog.csdn.net/qq_33966112/article/details/89075335

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632