课程设计~民航管理系统

这是一个民航管理系统的实现,包括飞机航线信息、乘客信息的管理。系统提供了插入航班和乘客信息、退票、查询飞机基本信息和乘客购票情况等功能。通过结构体和链表数据结构进行操作。
摘要由CSDN通过智能技术生成


#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>

/*宏定义*/
#define OK 1
#define ERROR 0
#define Max   7
 
/*全局变量*/
char *air_num[3]={"CA1588","FM9258","OZ3085"};//航班号
char password[Max];
  
//飞机航线信息,包括飞机航班号,此航线飞机总装载量等
typedef struct airline
{
        char air_num[8];//航班号
        char plane_num[8];//飞机型号
        char end_place[20];//达到地点
        int  total;//飞机总载量
        int  seat_number[130];
        int  left;//剩余座位
        struct airline *next;//指向下一结点
      
}airline;

//乘客的信息,包括姓名,所乘飞机航班号,以及座位号等
typedef struct customer
{
        char name[16];
        char password[6];
        char air_num[15];
        int  seat_num;
        struct customer *next;//指向下一结点
       
}customer;


//实现首架飞机基本信息的插入
airline *start_air()
{
        airline *air;
     
        //分配动态内存
      if(air=(airline*)malloc(sizeof(airline)))
      {  
    
          if(air==NULL)  //插入第一架飞机时
        
               air->next=NULL;
           
       } 
       
        else //分配内存失败
        
           printf("Memory's allotment is error");
           
        return air;
}

//实现首位乘客基本信息的插入
customer *start_customer()
{
        customer *cus;
       
         if(cus=(customer*)malloc(sizeof(customer)))//分配动态内存
         {
            if(cus==NULL)  //插入第一个乘客
        
             cus->next=NULL;
            
         }
        
         else //分配内存失败
        
           printf("Memory's allotment is error");
   
      return cus;
}

//实现乘客退票时,该飞机剩余座位数加1
airline *modefy_airline(airline *line,char *air_num,int seat_num)
{
     airline *p;
     p=line->next;
     
      for(;p!=NULL;p=p->next)//当还被没全部删除完毕时
      { 
         if(strcmp(p->air_num,air_num)==0)
             {
                 //如果删除乘客有效
                if(strcmp(air_num,p->air_num)==0)//字符串的比较
                {
                    p->seat_number[seat_num]=0;
                    p->left++;//则飞机剩余座位数加1
                   
                    return line;
                }
              
                //else printf("/nNO the airline!/n");
              
                return 0;
             }
        }
       
}


//对飞机所形成链表节点的添加

int insert_air(airline **p,char *air_num,char *plane_num,char *end_place,int *seat_number,int total,int left)
{
      
        airline *q;
        q=(airline*)malloc(sizeof(airline));//开辟内存
      
        strcpy(q->air_num,air_num);
        strcpy(q->plane_num,plane_num);
        strcpy(q->end_place,end_place);//复制飞机航班号,飞机型号 ,飞往地点
       
        strcpy(q->seat_number,seat_number);
 
       
        q->total=total;
        q->left=left;
        q->next=NULL;
       
        (*p)->next=q;   
         (*p)=(*p)->next;//添加节点数
       
        return OK;
}
       
//对乘客所形成链表节点的添加
       
int  insert_cus(customer **p,char *name,char *password,char *air_num,int seat_num)
{
        customer *q;
       
        q=(customer*)malloc(sizeof(customer));//开辟内存
      
        strcpy(q->name,name);
       
        strcpy(q->password,password);//储存密码
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值