• 大小: 16KB
    文件类型: .c
    金币: 2
    下载: 1 次
    发布日期: 2021-06-02
  • 语言: C/C++
  • 标签:

资源简介

数据结构课程设计的飞机订票系统,源C语言代码,不涉及数据库。

资源截图

代码片段和文件信息

#include
#include
#include

static int airnum=0;//静态变量,自动统计航班数
static int customer_num=0;//静态变量,自动统计客户数

/*航班信息*/
/*typedef */struct airplane{
   char airno[30];//航班号
   char qidianzhan[50];//起点站
   char departure_time[50];//起飞时间
   char landing_time[50];//降落时间
   char zhongdianzhan[50];//终点站
   int seat;//座位数
   int standby_ticket;//余票
   struct airplane *next1;
}/*airplane*linklist1*/;

/*客户信息*/
typedef struct customer{
   char name[20];//姓名
   char passport_no[20];//证件号
   int  booking_ticket;//订票数
   int  booking_airnum;//订票编号
   char airno[30];//航班号
   char departure_time[50];//到达时间
   char landing_time[50];//起飞时间
   char zhongdianzhan[50];//终点站
   struct customer *next2;
 //  struct customer *prior;
}customer*linklist2;

//打印航班信息
void print(struct airplane *pl)
{
struct airplane *t;
t=pl->next1;
printf(“航班号\t起点站\t终点站\t起飞时间\t到达时间\t座位数\t余票\n“);
while(t!=NULL)
{
printf(“%-6s\t%-6s\t%-6s\t%-8s\t“t->airnot->qidianzhant->zhongdianzhant->departure_time);
printf(“%-8s\t%-6d\t%-4d\n“t->landing_timet->seatt->standby_ticket);
t=t->next1;
}
}

//添加航班
void insert_airplane(struct airplane *pl)
{
struct airplane *insert_node*q*t;
int ijk=0;
//printf(“121324“);
pl=pl->next1;
printf(“请输入所要添加的航班数目:“);
scanf(“%d“&j);
getchar();
for(i=0;i {
insert_node=(struct airplane *)malloc(sizeof(struct airplane));
if(insert_node==NULL)
{
printf(“动态内存分配失败“);
exit(0);
}
printf(“请输入第%d个航班的信息\n“++k);
printf(“航班号\n“);
gets(insert_node->airno);
printf(“起点站\n“);
gets(insert_node->qidianzhan);
printf(“终点站\n“);
gets(insert_node->zhongdianzhan);
printf(“起飞时间格式如:20110101 00:00\n“);
gets(insert_node->departure_time);
printf(“到达时间格式如:20110101 00:00\n“);
gets(insert_node->landing_time);
printf(“座位数\n“);
scanf(“%d“&insert_node->seat);
printf(“余票数\n“);
scanf(“%d“&insert_node->standby_ticket);
getchar();
if(pl->next1==NULL)
{//如果链表是空的话,直接插入头结点之后
pl->next1=insert_node;
insert_node->next1=NULL;
}
else
{//如果链表不是空的
q=pl->next1;//此时q指向第一个数据结点
if(strcmp(insert_node->airnoq->airno)<0)
{//如果成立,则将insert_node指向的结点插入头结点之后
pl->next1=insert_node;
insert_node->next1=q;
}
else
{//否则,继续向后寻找插入的位置
while(strcmp(insert_node->airnoq->airno)>0&&(q->next1!=NULL))
{//如果insert_node指向的航班号大于q所指向的航班号并且q指向的不是表尾
//则t指向q所指的当前结点,q指向下一个结点
t=q;
q=q->next1;
}
if(strcmp(insert_node->airnoq->airno)<=0)
{//如果成立,则将insert_node所指向的结点插入到链表中间
t->next1=insert_node;
insert_node->next1=q;
}
else
{//否则,则将insert_node指向的结点插入到q指向的表尾之后
q->next1=insert_node;
insert_node->next1=NULL;
}
}
}
airnum++;
}
printf(“已成功插入航班\n“);
}

//修改信息
void change_airplane(struct airplane *pl/*linklist2 kehu*/)
{
int /*changei*/jflag=0;
char /*passport_1[20]*/air_num[30];//证件号和航班号
// kehu

评论

共有 条评论