📄 datatype.c
字号:
#include "DATATYPE.H"
void Add_Flight(flight pflight[])
{
flight fl;
char ch = 'y';
int i = 0;
for (; i < 40; i++)
{
if (pflight[i].f_flight_num == -1)break;
}
if (i == 40)
{
printf("航班已满,无法操作!\n");
return ;
}
while ((ch == 'y' || ch == 'Y') && i < 40)
{
printf("航班始点:\n");
scanf("%s", pflight[i].f_from);
printf("航班终点>:\n");
scanf("%s", pflight[i].f_to);
printf("途经:\n");
scanf("%s", pflight[i].f_pass);
printf("航班编号:\n");
scanf("%ld", &pflight[i].f_flight_num);
printf("满员人数:\n");
scanf("%d", &pflight[i].f_people);
pflight[i].f_seat = pflight[i].f_people;
printf("%d", pflight[i].f_seat);
getchar();
printf("是否满员(y/n):\n");
pflight[i].f_full = getchar();
printf ("机票价格:\n");
scanf("%f", &pflight[i].f_ticket_pri);
getchar();
printf("%.2f", pflight[i].f_ticket_pri);
i++;
printf("是否继续(y/n)?\n");
ch = getchar();
}
return ;
}
void Del_Flight(flight pflight[])
{
int flight_num;
int i;
char tag = 'n';
printf("输入要删除的航班编号:\n");
scanf("%ld", &flight_num);
for (i = 0; i < 40; i++)
{
if (pflight[i].f_flight_num == flight_num)
{
pflight[i].f_flight_num = -1;
tag = 'y';
printf("删除成功!\n");
break;
}
}
if (i == 40)
{
printf("要删除的航班不存在!\n");
}
if (tag == 'n')
{
printf("删除操作失败!\n");
return ;
}
return ;
}
void Read_Flight(flight pflight[])
{
int i;
FILE *fp;
if ((fp = fopen("flight.dat","rb")) == NULL)
{
printf("打开文件有误!");
exit(0);
}
for (i = 0; i < 40; i++)
fread(&pflight[i], sizeof(struct _flight), 1, fp);
return ;
}
void Add_Passenger(pa_node pa)
{
char ch = 'y';
pa_node pb,pc;
pc = pa;
for (; pc->next== NULL; pc=pc->next)
{
pb =(pa_node)malloc(sizeof(struct _passenger_));
printf("输入姓名:\n");
scanf("%s", pb->_pnode.p_name);
printf("%s", pb->_pnode.p_name);
printf("请您输入证件号:\n");
scanf("%s", pb->_pnode.p_id);
printf("输入住址:\n");
scanf("%s", pb->_pnode.p_address);
pb->_pnode.p_ticket_cou=0;
pc->next = pb;
pc = pb;
break;
}
pc->next = NULL;
return ;
}
void Del_Passenger(pa_node pa)
{
pa_node pb, pc;
if (pa->next == NULL)
{
printf("没有乘客,无法删除!\n");
return ;
}
}
void Read_Passenger(pa_node pa)
{
FILE *fp;
pa_node pb;
passenger pc;
int n;
if ((fp = fopen("passenger.dat", "rb")) == NULL)
{
printf("打开文件有误!\n");
pa->next == NULL;
exit(0);
}
fread(&n, sizeof(int), 1, fp);
for (; n>0; n--)
{
fread(&pc, sizeof(struct _passenger), 1, fp);
pb=(pa_node)malloc(sizeof(struct _passenger_));
pb->_pnode=pc;
pb->next=pa->next;
pa->next=pb;
}
fclose(fp);
return ;
}
int Getpacount(pa_node pa)
{
int n=0;
pa_node pb;
pb=pa->next;
while (pb!=NULL)
{
n++;
pb=pb->next;
}
return n;
}
void Read(flight pflight[], pa_node pa)
{
Read_Flight(pflight);
Read_Passenger(pa);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -