飞机订票系统
学生姓名:兰海军指导老师:易禹
摘要本系统主要是为了方便用户飞机订票,能使用户方便快捷的了解各航线信息。本系统设置了航线创建功能、浏览航班信息和查询航线信息功能、订票退票功能及查看剩余票数功能。在该系统当中,系统开发平台是Windows XP,程序设计设计语言采用Visual C++,数据库采用Microsoft Access,程序运行平台为Windows XP。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以在应用中解决实际问题。
关键词Access;Visual C++;飞机订票
目录
1问题描述与分析2
2数据结构设计描述3
3软件结构设计(系统功能模块图)3
4算法设计思想3
5调试分析6
6总结127参考文献138附录(源程序清单)14飞机订票系统要求可以实现如下功能:可以录入航班情况,可以查询某个航线的情况,如输入飞机到达城市,查询飞机航班情况;可以订票、退票。从问题的描述分析,该飞机定票系统必须具备以下几个功能模块:1)航线创建功能模块:包括终点站名、航班号、分机号、飞行日期、乘员定额、及余票量,准载人数等信息.。
2)浏览航班信息功能模块:查看创建的所有航线信息。
3)查询航线信息功能模块:可通过航班号查询,也可通过飞机到达地点查询。
4)订票功能模块:包括航班号、定票数量、订票客户姓名、舱位等级、身份证号码。所以采用如下方案:int tkt_sur;/*4.2.4我的心得也就这么多了,总之,不管学会的还是学不会的的
#include
#include
#include
#include
#define OK 1
#define ERROR 0
#define PR printf
#define NULL 0
int N=10;
typedef struct customer
{
char name;
int seat_num;
int left;
struct customer *next;
}customer;
customer *creat_customer()//初始化链表
{
customer *l;
l=(customer *)malloc(sizeof(customer));
if(l==NULL)
{
exit(0);
}
l->next=NULL;
return l;
}
int insert_customer(customer **p,char *name,int seat,int left)
{//customer链表插入操作
customer *q;
q=(customer*)malloc(sizeof(customer));
strcpy(q->name , name);
q->seat_num =seat;
q->left=left;
q->next=NULL;
(*p)->next=q;
(*p)=(*p)->next;
return OK;
}
int delete_cus(customer *h,char *name)//顾客退票
{
customer *p,*pr;
pr=h;
p=pr->next ;
while(p!=NULL)
{
if(strcmp(name,p->name )==0)
{
pr->next =p->next ;
PR("顾客 %s 退票成功!\n",p->name );
return OK;
}
pr=pr->next ;
p=pr->next ;
}
PR("无此顾客,无法退票!\n");
return ERROR;
}
int save_customer (customer*l)//保存顾客信息
{
FILE *fp_customer;
customer *p=l->next;
char filename[]="c:\\customer.dat";
if((fp_customer=fopen(filename,"wb"))==NULL)
{
printf("can not open file to write:%s\n",filename);
return ERROR;
}
for(;p!=NULL;p=p->next)
{
fprintf(fp_customer,"%s,%d%",p->name,p->seat_num);
}
fclose(fp_customer);
return OK;
}
int book(customer *c,char *name)//订票函数
{
customer *q=c->next ;
for(;q->next !=NULL;q=q->next){}
{
if(q->left >0)
{
PR("恭喜您!订票成功!\n");
PR("你的座位号是: %d\n",(N-q->left +1));
insert_customer(&q,name,N -q->left +1,q->left);
q->left --;
return OK;
}
else PR("对不起,座位已满!\n");
return 0;
}
}
int print_customer(customer*l)//打印顾客信息
{
customer *p=l->next;
for(;p!=NULL;p=p->next)
{
PR("%10s %d\n",p->name,p->seat_num);
}
return OK;
}
void main()
{
char choice,name;
int t=1;
customer *cus=creat_customer();
customer *l = creat_customer();
while(t==1)
{
PR("*----------------------------*\n");
PR("*--航空订票系统选择菜单------*\n");
PR("* 订票-------0 *\n");
PR("* 退票-------1 *\n");
PR("* 查询-------2 *\n");
PR("* 退出-------5 *\n");
PR("*----------------------------*\n");
PR("请选择: ");
choice = getch();
PR("%c\n",choice);
if(choice=='0')
{
PR("请输入你的姓名: ");
scanf( "%s",name);
book(cus,name);
save_customer(cus);
}
else if(choice=='1')
{
PR("\n请输入你的姓名: ");
scanf( "%s",name);
delete_cus(cus,name);
save_customer(cus);
}
else if(choice=='2')
{
customer *p=l->next;
if(l!=NULL)
do
{
PR("%ld%5.1f\n",p->name,p->seat_num);
p=p->next;
}while(p!=NULL);
}
else if(choice=='3')
{
PR("byb");
t=0;
}
else
{
PR("error\n");
}
}
getch();
}
民航定位系统没见过这些乱码哦!!!
标签:订票,飞机,系统