飞机订票系统项目源码(java机票预订系统源代码)
本文目录一览:
什么是机票预订源码,这个怎么用呢?请详细讲讲,谢谢
机票预订源码是订票处在机票预订系统里定位后系统给出的一个由数字和字母组成的6位代码。用这个代码在一个月内可以在系统里面提出你的订票信息。订票人拿这个代码是没有什么用处的。
航空公司订票系统源代码 要求要 c++ 来写
#include iostream.h
#include stdio.h
#include string.h
#include conio.h
#define m 4 //3架飞机
#define n 5 //每架飞机5张票
struct node
{
char name[21];
char id[21];
int seat,plane,date;
node *next,*pre;
};
struct wait
{
char name[21];
char id[21];
char phone[8];
int seat,plane,date,count;
wait *next,*pre;
};
struct piao
{
int seat[n+1];
};
void makenull();
void makenull_piao();
void makenull_information();
void list_menu();
void list_piao();
void makenull_wait();
void list_information();
void plane_information(node *head);
void book();
void add_information(node *head,int x,int y);
void add_wait(int x,int y);
void search_delete(int x);
void write_to_file();
void show_wait();
bool comp(node *x,node*y);
node *head1,*head2,*head3,*q;
wait *wait_head,*wait_end;
char c;
piao a[m];
void main()
{
makenull();
do
{ list_menu();
coutendl"choose an operation: ";
cinc;
if (c!='6')
switch(c)
{
case '0' : show_wait();break;
case '1' : {list_piao();book();}break;
case '2' : search_delete(1);break;
case '3' : list_piao();break;
case '4' : list_information();break;
case '5' : search_delete(0);break;
default : break;
}
}while(c!='6');
cout"Exit System ";
}
void makenull()
{
makenull_piao();
makenull_information();
makenull_wait();
}
void list_menu()
{ coutendl"";
coutendl" 菜单";
coutendl" ************************";
coutendl" * 0 . 查看排队情况 *";
coutendl" * 1 . 订票 *";
coutendl" * 2 . 退票 *";
coutendl" * 3 . 查看剩余票 *";
coutendl" * 4 . 查看飞机信息 *";
coutendl" * 5 . 查看乘客信息 *";
coutendl" * 6 . 退出 *";
coutendl" ************************";
coutendl"";
}
void makenull_piao()
{
FILE *fp;
int i;
if((fp=fopen("piao.dat","r")) == NULL )
{
fp=fopen("piao.dat","w");
for (i=1;i=m-1;i++)
fwrite(a[i],sizeof(piao),1,fp);
fclose(fp);
fp=fopen("piao.dat","r");
}
for(i=1;i=m-1;i++)
fread(a[i],sizeof(piao),1,fp);
fclose(fp);
}
void makenull_information()
{
node *r;
FILE *fp;
int i,j,sum;
sum=a[1].seat[0]+a[2].seat[0]+a[3].seat[0];
fp=fopen("information.dat","r");
head1=new node;
head2=new node;
head3=new node;
head1-pre=NULL;
head1-next=NULL;
head2-pre=NULL;
head2-next=NULL;
head3-pre=NULL;
head3-next=NULL;
q=head1;
for(i=1;i=sum;i++)
{
j=0;
r=new node;
fread(r,sizeof(node),1,fp);
q-next=r;
r-pre=q;
r-next=NULL;
q=q-next;
fclose(fp);
if(i==a[1].seat[0]+1) {
head2-next=q;
q-pre-next=NULL;
q-pre=head2;
}
if(i==a[1].seat[0]+a[2].seat[0]+1) {
head3-next=q;
q-pre-next=NULL;
q-pre=head3;
}
}
}
void makenull_wait()
{
wait *tempw;
FILE *fp;
tempw=new wait;
int i;
if((fp=fopen("wait.txt","r")) ==NULL )
{
fp=fopen("wait.txt","w");
fclose(fp);
}
wait_end=new wait;
wait_head=new wait;
wait_end-next=NULL;
wait_end-pre=NULL;
wait_head=wait_end;
wait_head-count=0;
fp=fopen("wait.txt","r");
fread(wait_head,sizeof(wait),1,fp);
for(i=1;i=wait_head-count;i++)
{
fread(tempw,sizeof(wait),1,fp);
wait_end-next=tempw;
tempw-pre=wait_end;
tempw-next=NULL;
wait_end=tempw;
}
}
void list_piao()
{
int i,j;
for(i=1;i=m-1;i++)
{
if(a[i].seat[0]!=n)
{
coutendl"第 "i" 架飞机剩余的票 :"endl;
for(j=1;j=n;j++)
if (a[i].seat[j]==0) cout" "j;
coutendl;
}
else coutendl"The "i" plane is full !"endlendl;
}
}
void list_information()
{
int x;
do {coutendl"显示哪架飞机的信息 ? "; cinx;coutendl;}while(x1 || x=m);
coutendl"第 "x" 架飞机的信息如下 "endl;
if(x==1) plane_information(head1);
if(x==2) plane_information(head2);
if(x==3) plane_information(head3);
}
void plane_information(node *head)
{
node *q;
char ch;
int x=0;
if(head!=NULL head-next!=NULL)
q=head-next;
else {
q=NULL;
cout"飞机空,无预订票 !"endl;
}
while(q!=NULL)
{
coutendl"*******************"endl;
q-date=q-plane;
cout"日期 :"q-dateendl;
cout"座位号 : "q-seatendl;
cout"姓名 : "q-name;
coutendl"ID 号 : "q-id;
q=q-next;x++;
if (x % 3 ==0) ch=getch();
}
coutendl;
}
void book()
{
int i,j,p;
coutendl"请选择地点:(1、2、3) ";
do {
cini;
if (i1 || i=m) {
coutendl"**** 超出范围!****"endl"请重新输入:";
}
else
{coutendl"你要订的是到"i"地的飞机"endl;
coutendl"第 "i" 架飞机剩余的票 :"endl;
for(p=1;p=n;p++)
if (a[i].seat[p]==0) cout" "p;
coutendl;
break;}
}while(1);
coutendl"请选择座位号 : ";
do {
cinj;
if (j1 || jn) {
coutendl"**** 超出范围!****"endl"请重新输入:";
}
else
{
q-date=i;
coutendl"您的订票日期 : "q-dateendl;
break;
}
}while(1);
if (a[i].seat[j]==0) {
a[i].seat[j]=1;
coutendl;
a[i].seat[0]++;
if(i==1) add_information(head1,1,j);
if(i==2) add_information(head2,2,j);
if(i==3) add_information(head3,3,j);
}
else
{
coutendl"**** 对不起,该座位已被预订,您被安排到订票等候队列 ****"endl;
add_wait(i,j);
}
}
void add_wait(int x,int y)
{
wait *tempw;
tempw=new wait;
tempw-next=NULL;
cout"请输入个人信息"endl;
coutendl"*************"endl;
cout"姓名 : ";cintempw-name;
cout"ID号 : ";cintempw-id;
cout"电话 :";cintempw-phone;
tempw-seat=y;
tempw-plane=x;
wait_end-next=tempw;
tempw-pre=wait_end;
wait_end=wait_end-next;
coutendl"**** 正在排队等候 ****"endl;
wait_head-count++;
write_to_file();
}
void show_wait()
{
wait *tempw;
tempw=wait_head-next;
if (tempw==NULL) coutendl"排队中没有人!"endl;
while(tempw!=NULL)
{
couttempw-name" - ";
tempw=tempw-next;
}
}
void add_information(node *head,int x,int y)
{
node *temp;
temp=new node;
temp-pre=NULL;
temp-next=NULL;
cout"请输入个人信息"endl;
coutendl"*************"endl;
cout"姓名 : ";cintemp-name;
cout"ID号 : ";cintemp-id;
temp-seat=y;
temp-plane=x;
temp-next=head-next;
temp-pre=head;
if (head-next!=NULL) head-next-pre=temp;
head-next=temp;
write_to_file();
coutendl"**** 订票成功 ****"endl;
}
void search_delete(int x)
{
node *p,*q,*r;
wait *tempw,*tempw2,*tempw3;
int step=1,t1,t2,i;
char ch;
p=new node;
tempw=new wait;
tempw2=new wait;
tempw3=new wait;
q=head1;
coutendl"请输入个人信息"endl;
cout"*************"endl;
coutendl"姓名 : ";cinp-name;
do{
q=q-next;
if ( (q!=NULL)
(comp(q,p)) )
{
coutendl;
q-date=q-plane;
cout"Located!"endl;
cout"****************";
coutendl"姓名 : "q-name;
coutendl"ID号 : "q-id;
coutendl"座位号 : "q-seat;
coutendl"班机号 : "q-plane;
coutendl"日期 : "q-dateendl;
if (x==1) {
cout"删除该纪录 ? [Y/N] ";
cinch;
if (ch=='Y' || ch=='y') {
t1=q-plane;
t2=q-seat;
a[t1].seat[t2]=0;
a[t1].seat[0]--;
r=q;q=q-pre;
r-pre-next=r-next;
if(r-next!=NULL) r-next-pre=r-pre;
delete(r);
cout"**** 记录删除成功 ! ****";
write_to_file();
tempw=wait_head;
for(i=0;iwait_head-count;i++)
{
tempw=tempw-next;
if(tempw==NULL) break;
if((tempw-plane==t1) (tempw-seat==t2))
{
strcpy(tempw3-name,tempw-name);
strcpy(tempw3-phone,tempw-phone);
coutendl"等候的人中有可以订票的了:"endl;
coutendl"姓名 : "tempw-name;
coutendl"ID号 : "tempw-idendl;
a[t1].seat[0]++;
a[t1].seat[t2]=1;
if(tempw-plane==1) add_information(head1,1,tempw-seat);
if(tempw-plane==2) add_information(head2,2,tempw-seat);
if(tempw-plane==3) add_information(head3,3,tempw-seat);
tempw2=tempw-pre;
tempw2-next=tempw-next;
if(tempw-next==NULL) wait_end=tempw2;
else tempw-next-pre=tempw2;
delete(tempw);
wait_head-count--;
write_to_file();
coutendl"等候的"tempw3-name"已经成功订票,已经由电话"tempw3-phone"通知了"endl;
break;
}
}
}
}continue;
}
else
{
if (q==NULL)
{
step++;
if(step==2) q=head2;
if(step==3) q=head3;
if(step==4) {coutendl"**** 信息检索完毕 ****";break;}
}
}
}while(1);
}
bool comp(node *x,node *y)
{
node *p,*q;
int i,j,k;
p=x;
q=y;
i=j=0;
do
{
while ( (p-name[i] != q-name[j]) (p-name[i] != '\0') ) i++;
if (p-name[i] == '\0') {return(false);break;}
else
{
k=i;
while ( (p-name[k] == q-name[j]) (q-name[j]!='\0') ) {k++;j++;}
if (q-name[j]=='\0') return(true);
else
{
j=0;
i++;
}
}
}while( (q-name[j]!='\0') (p-name[i] != '\0') );
return(false);
}
void write_to_file()
{
FILE *fp;
int i,j;
int x[m];
node *p;
wait *tempw;
tempw=new wait;
tempw=wait_head;
fp=fopen("piao.dat","w");
for (i=1;i=m-1;i++)
{
fwrite(a[i],sizeof(piao),1,fp);
}
fclose(fp);
fp=fopen("information.dat","w");
x[0]=0;x[1]=a[1].seat[0];
for(i=0,j=1;j=m-1;j++) {i=i+a[j].seat[0];x[j]=a[j].seat[0]+x[j-1];}
j=1;p=head1-next;
for(j=1;j=i;j++)
{
if(j==x[1]+1) p=head2-next;
if(j==x[2]+1) p=head3-next;
if(p==NULL)break;
fwrite(p,sizeof(node),1,fp);
p=p-next;
}
fclose(fp);
fp=fopen("wait.txt","w");
for(j=0;j=wait_head-count;j++)
{
if(tempw==NULL)break;
fwrite(tempw,sizeof(wait),1,fp);
tempw=tempw-next;
}
fclose(fp);
}
飞机订票系统的源代码
机票预定系统概要设计说明书1.引言
1.1 编写目的
在本机票预定系统项目的前一阶段,也就是需求分析阶段中,已经将系统用户对本系统的需求做了详细的阐述,这些用户需求已经在上一阶段中对航空公司、各旅行社及机场的实地调研中获得,并在需求规格说明书中得到详尽得叙述及阐明。
本阶段已在系统的需求分析的基础上,对机票预定系统做概要设计。主要解决了实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。在以下的概要设计报告中将对在本阶段中对系统所做的所有概要设计进行详细的说明。
在下一阶段的详细设计中,程序设计员可参考此概要设计报告,在概要设计对机票预定系统所做的模块结构设计的基础上,对系统进行详细设计。在以后的软件测试以及软件维护阶段也可参考此说明书,以便于了解在概要设计过程中所完成的各模块设计结构,或在修改时找出在本阶段设计的不足或错误。 1.2 项目背景 本项目(机票预定系统)时由浙江航空公司委托,由负责开发。
机票预定系统将由两部分组成:置于个旅行社定票点的前台客户程序,以及置于航空公司的数据库服务器。本系统与其他系统的关系如下: 1.3 定义 1.3.1 专门术语
SQL SERVER: 系统服务器所使用的数据库管理系统(DBMS)。
SQL: 一种用于访问查询数据库的语言
事务流:数据进入模块后可能有多种路径进行处理。
主键:数据库表中的关键域。值互不相同。
外部主键:数据库表中与其他表主键关联的域。
ROLLBACK: 数据库的错误恢复机制。
1
1.3.2 缩写
系统:若未特别指出,统指本机票预定系统。
SQL: Structured Query Language(结构化查询语言)。
ATM: Asynchronous Transfer Mode (异步传输模式)。
1.4 参考资料 以下列出在概要设计过程中所使用到的有关资料:
1. 机票预定系统项目计划任务书 浙江航空公司 1999/3 2.机票预定系统项目开发计划 《》软件开发小组 1999/3
3.需求规格说明书 《》软件开发小组 1999/3
4.用户操作手册(初稿) 《》软件开发小组 1999/4
5.软件工程及其应用 周苏、王文等 天津科学技术出版社 1992/1
6.软件工程 张海藩 清华大学出版社 1990/11
7.Computer Network A.S.Tanenbaun Prentice Hall 1996/01
文档所采用的标准是参照《软件工程导论》沈美明著 的“计算机软件开发文档编写指南”。
2.任务概述