资源简介
数据结构课程设计的飞机订票系统,源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
- 上一篇:基于C语言的《点餐系统》
- 下一篇:单片机旋钮电位器控制电机速度
评论
共有 条评论