C++订票系统
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#define MAXSIZE 5
typedef struct passengernode{
char name[15];
int passengernode_amt;
struct passengernode*next;
}linklist;
typedef struct airline
{
char ter_name[15];
char tr_no[10];
char time[10];
char pri[7];
int tkt_amt;
int tkt_sur;
linklist*passengernode;
}lineinfo;
struct airline*start;
void display(struct airline*info)
{
printf("%8s\t%3s\t%s\t\t%4s\t%3d\t%10d\n",info->ter_name,info->tr_no,info->time,info->pri,info->tkt_amt,info->tkt_sur);
}
void list()
{
struct airline*info;
int i=0;
printf("终点站/t航班号\t起飞时间\t票价\t限定乘客\t剩余票量\n");
for(info=start;i<MAXSIZE;info++,i++)
{
display(info);
}
printf("\n\n");
}
void search()
{
struct airline*info;
char number[15];
int i;
info=start;
printf("请输入航班:");
scanf("%s",number);
for(i=0;i<MAXSIZE;info++,i++)
{
if(!strcmp(number,info->tr_no))
break;
}
if(i>=MAXSIZE)
{
printf("对不起,找不到这个航线没有\n");
}
else
{
printf("终点站/t航班号\t起飞时间\t票价\t限定乘客\t剩余票量\n");
display(info);
}
}
linklist*insertlink(linklist*head,int amount,char name[])
{
linklist*p1,*p2;
p1=head;
p2=(linklist*)malloc(sizeof(linklist));
if(!p2){
printf("\n溢出!\n");
return NULL;
}
strcpy(p2->name,name);
p2->passengernode_amt=amount;
p2->next=NULL;
if(head==NULL)
{
head=p2;
p2->next=NULL;
}
else{
head=p2;
}
p2->next=p1;
return head;
}
void order()
{
struct airline*info;
int i;
int amount;
char name[10];
char number[15];
info=start;
printf("请输入你所需要的航线:");
scanf("%s",number);
for(i=0;i<MAXSIZE;info++,i++)
{
if(!strcmp(number,info->tr_no))
break;
}
if(i>=MAXSIZE)
{
printf("对不起,找不到这个航线没有\n");
}
else{
printf("请输入你需要的票数:");
scanf("%d",&amount);
if(amount> info->tkt_amt)
{
printf("\n对不起,你输入的票数以超过限定成员!");
return;
}
if(amount<=info->tkt_sur)
{
int i;
printf("请输入你的名字:");
scanf("%s",name);
info->passengernode=insertlink(info->passengernode,amount,name);
for(i=0;i<amount;i++)
{
printf("%s座位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1);
}
info->tkt_sur-=amount;
printf("\n祝你乘坐快乐\n");
}
else
{
printf("\n以满人\n");
}}}
void return_tkt()
{
struct airline*info;
linklist*p1,*s1,*head;
char aname[15];
head=info->passengernode;
p1=head;
printf("请输入你的名字:");
scanf("%s",aname);
while(p1!=NULL)
{
if(!strcmp(aname,p1->name))
{
break;
}
s1=p1;
p1=p1->next;
}
if(p1==NULL)
{
printf("对不起,你没订票\n");
return;
}
else
{
if(p1==head)
{
head=p1->next;
}
else
{
s1->next=p1->next;
}
info->tkt_sur+=p1->passengernode_amt;
printf("%s退票成功\n",p1->name);
free(p1);
}
info->passengernode=head;
}
int menu_select()
{
int c;
char s[40];
printf("\t订票系统\n");
printf("___________\n");
printf("1.查看航线信息\n");
printf("2.查询航线\n");
printf("3.订票\n");
printf("4.退票\n");
printf("5.退出系统\n");
printf("________\n");
do{
printf("请选择:");
scanf("%s",s);
c=atoi(s);
}while(c<1||c>5);
return c;
}
int main()
{
struct airline air[MAXSIZE]=
{
{"a","1","2000","860",30,30},
{"b","2","1000","750",30,30},
{"c","3","1500","650",20,20},
{"d","4","1100","520",40,40},
{"e","5","1600","450",10,10},
};
start=air;
for(;;)
{
system("cls");
switch(menu_select())
{
case 1:list();
break;
case 2:search();
break;
case 3:order();
break;
case 4:return_tkt();
break;
case 5:printf("\n感谢你的使用,再见\n");
exit(0);
}
printf("\n任意按键继续\n");
getch();
}
}
- 海报
免责声明:本站除原创代码外的资源均收集于网络,不保证代码的完整性和可用性,只做学习和交流使用,版权归原作者所有,请在下载后24小时之内自觉删除。若作商业用途,请购买正版,由于未及时购买正版授权发生的侵权行为,与本站无关。本站的内容如果侵犯了您的权益,请及时告知我们,我们即刻处理!
少儿编程课程 儿童编程教育 编程启蒙班 青少年编程培训 Scratch编程学习 Python少儿编程 机器人编程教育 编程思维训练 编程游戏化教学 在线少儿编程平台 儿童编程软件推荐 编程竞赛准备 编程兴趣班 逻辑思维与编程 少儿编程教材 编程与STEM教育 编程技能培养 编程语言入门(如:JavaScript少儿版) 家长如何选择少儿编程课 编程对孩子未来的影响 编程项目实践 编程与创造力培养 编程思维在日常生活中的应用 编程教育专家观点 编程教育趋势分析 少儿编程社区 编程夏令营 编程冬令营 编程学习路线图 编程证书考试 少儿编程启蒙 儿童图形化编程(如Scratch编程) 青少年Python编程 编程基础班(针对小学生) 编程进阶课程(适合高年级学生) 机器人编程工作坊 AI启蒙编程课 逻辑思维编程游戏 编程与数学能力提升 编程思维训练营 编程解决问题的能力培养 在线互动编程课堂 编程项目实战演练 编程创意工坊 编程教育APP推荐 编程教育论坛与社区 编程兴趣小组 编程竞赛辅导 编程证书考试准备 编程教育政策解读 编程教育家长指南 编程与跨学科学习(STEM/STEAM) 编程与创新能力培养 编程与未来职业规划 编程教育师资培训 编程教育研究成果分享 编程教育行业标准 编程教育市场动态 编程教育投资前景 编程教育公益项目
微点点-专业的知识付费平台 » C++订票系统
少儿编程课程 儿童编程教育 编程启蒙班 青少年编程培训 Scratch编程学习 Python少儿编程 机器人编程教育 编程思维训练 编程游戏化教学 在线少儿编程平台 儿童编程软件推荐 编程竞赛准备 编程兴趣班 逻辑思维与编程 少儿编程教材 编程与STEM教育 编程技能培养 编程语言入门(如:JavaScript少儿版) 家长如何选择少儿编程课 编程对孩子未来的影响 编程项目实践 编程与创造力培养 编程思维在日常生活中的应用 编程教育专家观点 编程教育趋势分析 少儿编程社区 编程夏令营 编程冬令营 编程学习路线图 编程证书考试 少儿编程启蒙 儿童图形化编程(如Scratch编程) 青少年Python编程 编程基础班(针对小学生) 编程进阶课程(适合高年级学生) 机器人编程工作坊 AI启蒙编程课 逻辑思维编程游戏 编程与数学能力提升 编程思维训练营 编程解决问题的能力培养 在线互动编程课堂 编程项目实战演练 编程创意工坊 编程教育APP推荐 编程教育论坛与社区 编程兴趣小组 编程竞赛辅导 编程证书考试准备 编程教育政策解读 编程教育家长指南 编程与跨学科学习(STEM/STEAM) 编程与创新能力培养 编程与未来职业规划 编程教育师资培训 编程教育研究成果分享 编程教育行业标准 编程教育市场动态 编程教育投资前景 编程教育公益项目
微点点-专业的知识付费平台 » C++订票系统