#include "nodeitem.h"
#include "Variable_declarations.h"
#include <string.h>
#include <stdio.h>
#include "menu_get_command.h"
#include "node.h"
#include "customer.h"
int is_equal_nodeiteama(nodeitema p1,pnodeitema p2)//判断两个元素是否相等 相等为1 不相等为0 传参是指针
{
if(p1.airnum!=p2->airnum)
return 0;
if(p1.discount-p2->discount>1e6)
return 0;
if(strcmp(p1.end,p2->end)!=0)
return 0;
if(strcmp(p1.start,p2->start)!=0)
return 0;
if(p1.price!=p2->price)
return 0;
if(p1.left!=p2->left)
return 0;
if(p1.total!=p2->total)
return 0;
if(strcmp(p1.time,p2->time)!=0)
return 0;
return 1;
}
int is_equal_nodeiteamc(nodeitemc p1,pnodeitemc p2)//判断两个元素是否相等 相等为1 不相等为0 传参是指针
{
if(p1.airnum!=p2->airnum)
return 0;
if(p1.discount-p2->discount>1e6)
return 0;
if(strcmp(p1.end,p2->end)!=0)
return 0;
if(strcmp(p1.start,p2->start)!=0)
return 0;
if(p1.price!=p2->price)
return 0;
if(p1.number!=p2->number)
return 0;
if(strcmp(p1.name,p2->name)!=0)
return 0;
if(strcmp(p1.id,p2->id)!=0)
return 0;
return 1;
}
void display_nodeitema(pnodeitema pn)//输出一个元素的信息
{
printf("Airnum: %d\n",pn->airnum);
printf("Start: %s\n",pn->start);
printf("End: %s\n",pn->end);
printf("Time: %s\n",pn->time);
printf("Passenger capacity: %d\n",pn->total);
printf("Discount: %.2lf\n",pn->discount);
printf("Ticket left: %d\n",pn->left);
printf("Price: %d\n",pn->price);
putchar('\n');
}
void display_nodeitemc(pnodeitemc pn)//输出一个元素的信息
{
printf("Name: %s\n",pn->name);
printf("Id: %s\n",pn->id);
printf("Airnum: %d\n",pn->airnum);
printf("Start: %s\n",pn->start);
printf("End: %s\n",pn->end);
printf("Price: %d\n",pn->price);
printf("Discount: %.2lf\n",pn->discount);
printf("Ticket number: %d\n",pn->number);
putchar('\n');
}
void input_nodeitema(pnodeitema ps,plinklista pl)//键盘输入元素信息到已经存在的元素里去
{
while(1)
{
puts("请输入航班号:");
scanf("%d",&(ps->airnum));
getchar();
if(find_nodea_airnum(pl,ps->airnum)==NULL)
break;
puts("航班号已存在,请重新输入。");
}
puts("请输入起始站点:");
gets(ps->start);
while(1)
{
puts("请输入结束站点:");
gets(ps->end);
if(strcmp(ps->end,ps->start)!=0)
break;
puts("结束站点和起始站点相同,输入错误,请重试");
}
puts("请输入起飞时间:");
gets(ps->time);
puts("请输入航班的客容量:");
scanf("%d",&ps->total);
getchar();
puts("请输入航班折扣:");
scanf("%lf",&ps->discount);
getchar();
while(1)
{
puts("请输入剩余机票数:");
scanf("%d",&ps->left);
getchar();
if(ps->left<=ps->total)
break;
else
puts("输入错误(剩余机票数大于客容量),请重试。");
}
puts("请输入机票价格:");
scanf("%d",&ps->price);
getchar();
}
void input_nodeitemc(pnodeitemc ps,pnodeitema pa,plinklistc pl)//键盘输入元素信息到已经存在的元素里去
{
puts("请输入姓名:");
gets(ps->name);
while(1)
{
while(1)
{
puts("请输入您的身份证号:");
gets(ps->id);
if(check_id(ps->id)==1)
break;
puts("输入错误,请重试。");
}
if(find_nodec_id(pl,ps->id)!=NULL)
{
puts("该身份证已经订购过机票,请重试。");
continue;
}
break;
}
(ps->airnum)=(pa->airnum);
strcpy((ps->start),pa->start);
strcpy((ps->end),pa->end);
(ps->discount)=(pa->discount);
(ps->price)=(pa->price);
(ps->number)=1;
}
void copy_nodeitema(pnodeitema pn1,pnodeitema pn2)//把元素2的信息复制到元素1里
{
*pn1=*pn2;
}
void copy_nodeitemc(pnodeitemc pn1,pnodeitemc pn2)//把元素2的信息复制到元素1里
{
*pn1=*pn2;
}
void edit_nodeitema(pnodeitema ps)//修改元素的信息
{
char t;
printf( "Please input the information you want to change :\n"
"1.Airnum,2.Start, 3.End, 4.Time, 5.Passenger capacity\n"
"6.Discount, 7.Ticket left, 8.Price\n");
do
{
t=get_command();
}while(!('1'<=t&&t<='8'));
printf("Please input the new information : \n");
int ttemp;
switch(t)
{
case '1': scanf("%d",&(ps->airnum)); getchar(); break;
case '2': gets(ps->start); break;
case '3': gets(ps->end); break;
case '4': gets(ps->time); break;
case '5':
scanf("%d",&ttemp);
getchar();
if(ttemp<(ps->left))
{
printf("请先修改剩余票数!");
puts("Press Enter to continue.");
getchar();
return;
}
(ps->total)=ttemp;
break;
case '6': scanf("%lf",&(ps->discount)); getchar(); break;
case '7': scanf("%d",&(ps->left)); getchar(); break;
case '8': scanf("%d",&(ps->price)); getchar(); break;
}
}
void edit_nodeitemc(pnodeitemc ps)//修改元素的信息
{
char t;
printf( "Please input the information you want to change :\n"
"1.Name,2.Id, 3.Airnum, 4.Start, 5.End\n"
"6.Price, 7.Discount, 8.Ticket number\n");
do
{
t=get_command();
}while(!('1'<=t&&t<='8'));
printf("Please input the new information : \n");
switch(t)
{
case '1': gets(ps->name); break;
case '2': gets(ps->id); break;
case '3': scanf("%d",&(ps->airnum)); getchar(); break;
case '4': gets(ps->start); break;
case '5': gets(ps->end); break;
case '6': scanf("%d",&(ps->price)); getchar(); break;
case '7': scanf("%lf",&(ps->discount)); getchar(); break;
case '8': scanf("%d",&(ps->number)); getchar(); break;
}
}
飞机订票系统 C语言期末作业 zxf
5星 · 超过95%的资源 需积分: 50 129 浏览量
2018-06-25
17:57:49
上传
评论 19
收藏 51KB ZIP 举报
Bug_Programmer
- 粉丝: 93
- 资源: 9
最新资源
- 高等数学第一章第二节数列的极限
- Python 版冒泡排序算法源代码
- tensorflow-gpu-2.7.2-cp38-cp38-manylinux2010-x86-64.whl
- tensorflow-2.7.3-cp39-cp39-manylinux2010-x86-64.whl
- tensorflow-2.7.2-cp39-cp39-manylinux2010-x86-64.whl
- Python版本快速排序源代码
- Python 语言版的快速排序算法实现
- 450815388207377安卓_base.apk
- 超微主板 X9DRE-TF+ bios 支持 nvme启动
- 基于Python通过下载气象数据和插值拟合离散数据曲线实现对寒潮过程的能量分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈