机票预订系统设计说明书.docx
《机票预订系统设计说明书.docx》由会员分享,可在线阅读,更多相关《机票预订系统设计说明书.docx(27页珍藏版)》请在冰豆网上搜索。
机票预订系统设计说明书
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2011年秋季学期
面向对象课程设计
题目:
机票预订系统
专业班级:
计算机科学与技术4班
姓名:
学号:
指导教师:
成绩:
_______________
目录
1.摘要···································2
2.序言·····································3
3.系统分析···································4
4.系统给总体设计···································5
5.详细设计···································6
6.系统测试···································7
7.软件使用说明书···································12
参考文献···································15
致谢···································16
1.摘要
机票预定系统的总目标是:
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息
⏹系统实现后,大大提高旅游局的机票预定服务效率。
降低售票服务中的错误发生率
⏹减少信息交流的烦琐过程及其带来的开销。
提高信息准确度;改进管理和服务;
⏹系统设计优良,界面设计精美、友好、快捷,人性化设计,后台管理功能强大、效率高;
关键词:
机票预订系统,人机交互,准确度
2.引言
旅客信息程序:
本程序的目的是便于旅行社输入旅客的订票信息,为旅行社传输数据给航空公司数据库提供数据。
特点:
作为一个旅客的基本信息,在系统中要不断的访问其个人信息,必须在内存中常驻以便程序系统快速访问。
而该程序只是一个便于访问的个人信息,因些是作为一个子程序中来运行。
不可以覆盖,基本信息不能被覆盖。
并发处理,在系统中不断被访问的数据,需要并发处理。
程序中的性能要求:
对于数据中的精度要求,通常用整型类型来定义,便于运算与操作。
灵活性中对于用到的变量数据,能做到指令调用即用的方法,使变量的灵活性使用率最高。
3.系统分析
1.系统处理的准确性和及时性是系统的必备性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。
由于机票预定系统的查询功能对于整个系统的功能和性能完成举足轻重。
作为系统的很多数据来源,而机票数量和时间又影像企业的决策活动,其准确性很大程度上决定了机票预定系统的成败。
在系统开发的过程中,必须采用一定的方法保证系统的准确性。
2.系统的开放性和系统的可扩充性
机票预定系统在开放过程中,应该充分考虑以后的可扩充性。
例如订票系统的方式的改变(网上订票),用户查询的需求也会不断的更新和完善。
所有这些,都要求系统提供足够的手段进行功能的调整和扩充。
而要求实现这一点,应通过系统的开放性完成,既系统应是一个开放系统,只好符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。
通过软件的修补,替换完成系统的升级和更新换代。
3.系统的易用性和易维护性
机票预订系统是直接面对使用人员,而使用人员往往对计算机并不是非常的熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽力量使用用户熟悉的术语和中文信息的界面,针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉过程。
机票预订
4.系统总体设计
5.详细设计
本系统主要用于机票预订,所以提供了以下几个子功能:
机票预订,取票通知,查询航班,查询机票,退票,打印机票,各航班的营运统计,以及后台方面的航班的添加,取消航班,机票的生成,以及航班的查询等后台功能。
1、机票预订功能:
旅行社和机场管理员有权力进行该项功能。
首先通过查询得到旅客所需的航班,确定该航班还有没有被预订的座位,然后选择座位的等级,填写旅客的详细信息之后就可进行网上预订机票。
2、取票通知:
该项功能只有旅行社和机场管理员有权力进行操作,在机票预订功能成功完成之后,系统会自动给浏览器端发送一条取票信息以及所需缴纳的费用。
旅行社可以利用特定设备将该取票信息打印出来,这就是取票通知。
3、查询航班:
可以通过输入出发地,目的地,日期和时间选定自己航班。
4、查询机票:
该项功能三方都可以操作,可以通过自己的身份证号以及取票通知上的机票号查询自己的机票信息。
5、退订机票:
该功能只有旅行社和机场管理员有权力操作,利用身份证号和对应的机票号就可以查询到机票信息,然后就可以退订机票。
6、打印机票:
该功能只有机场管理员有权力操作,只有当管理员确认旅客已经付款后才予以打印机票,可以通过身份证号和对应的取票信息上的机票号查询机票信息,然后服务器返回机票信息,管理员就可以打印该机票信息,交给旅客。
7、各航班的营运统计:
该项功能只有机场管理员才能操作,他可以通过输入年份和月份查询当月个航班的营运情况,以便机场能够及时掌握航班动态。
8、后台的航班添加:
该项功能只有机场管理员才能操作,他通过提供航班的具体信息添加航班信息。
9、后台的取消航班:
该项功能只有机场管理员才能操作,先通过航班号和航班日期查询到航班信息后,取消航班就可以将该航班从数据库中删除。
10、后台的航班查询:
该项功能只有机场管理员才能操作,通过航班号和航班日期查询到航班信息。
11、后台的机票生成:
该项功能只有机场管理员才能操作,可以通过该项功能给刚添加的航班生成对应的飞机票号纪录。
6.系统测试
输入项:
旅客信息程序各个变量数据:
1旅客姓名String在字符串的有效范围中2性别char在字符串的有效范围中
3身份证号longint在长整型的有效范围中4工作单位String在字符串的有效范围中
5电子邮件String在字符串的有效范围中6联系电话longint在长整型的有效范围中
以上的数据的输入方式在系统界面中全用键盘输入的方式输入。
安全保密条件:
在退出系统中,自动删除基本的信息。
输出项:
旅客信息程序各个变量数据:
1旅客姓名String在字符串的有效范围中2性别char在字符串的有效范围中
3身份证号longint在长整型的有效范围中4工作单位String在字符串的有效范围中
5电子邮件String在字符串的有效范围中6联系电话longint在长整型的有效范围中
以上的数据的输出方式在系统界面中的旅客信息框中输出。
安全保密条件:
在退出系统中,自动删除基本的信息。
流程逻辑:
旅客信息
7.软件使用说明书
1程序描述
该程序为机票信息模块。
用于机票的查询,机票的预订等等。
非常驻内存的。
顺序处理
首先通过查询得到旅客所需的航班,确定该航班还有没有被预订的座位,然后选择座位的等级,填写旅客的详细信息之后就可进行网上预订机票。
2功能
⏹本系统主要用于机票预订,所以提供了以下几个子功能:
机票预订,取票通知,查询航班,查询机票,退票,打印机票,各航班的营运统计,以及后台方面的航班的添加,取消航班,机票的生成,以及航班的查询等后台功能。
⏹1.机票预订功能:
旅行社和机场管理员有权力进行该项功能。
首先通过查询得到旅客所需的航班,确定该航班还有没有被预订的座位,然后选择座位的等级,填写旅客的详细信息之后就可进行网上预订机票。
⏹
⏹2.查询航班:
可以通过输入出发地,目的地,日期和时间选定自己航班。
⏹3.查询机票:
该项功能三方都可以操作,可以通过自己的身份证号以及取票通知9、后台的取消航班:
该项功能只有机场管理员才能操作,先通过航班号和航班日期查询到航班信息后,取消航班就可以将该航班从数据库中删除。
⏹4.后台的航班查询:
该项功能只有机场管理员才能操作,通过航班号和航班日期查询到航班信息。
⏹5.后台的机票生成:
该项功能只有机场管理员才能操作,可以通过该项功能给刚添加的航班生成对应的飞机票号纪录。
⏹上的机票号查询自己的机票信息。
3性能
输入的机票信息能准确快速地保存到数据库里面去。
输入信息要求精度:
机票的基本信息,例如:
起飞地,目的地,时间,座舱号等。
输出信息要求精度:
机票的基本信息。
时间特性:
响应时间<=2秒
更新处理时间:
至少一星期更新一次
灵活性要求:
操作方式上的变化:
假如用户觉得操作不方便,要及时进行修改
运行环境的变化:
能适合在一般需求的环境下运行
同其他软件的接口的变化:
对一般的软件能兼容
4输人项和输出项
机票信息程序各个变量数据:
1航班号String2目的地string3起飞时间Date/time4旅客姓名string
5旅客性别char6旅客身份证号码longint7座位号string
5算法
1.按所输入的机票信息的关键字来进行机票的查询。
2.查询失败的时候,重新返回到输入窗口,重新输入信息再进行查询。
3.如果没有航班的时候,则显示结果信息。
4.当订票成功的时候,将订票的结果信息插入到之前已经保存好的每位旅客信息当中,将旅客信息和机票信息统一起来保存到数据库里面,以方便以后机票的打印。
参考文献
[1]初小璐.完全掌握SQLServer2000[M]机械工业出版社,2004
[2]JeraodV.Post.数据库管理系统(英文版.第三版)[美]清华大学出版社,2006.1
[3]张海藩.软件工程导论[M].北京:
清华大学出版社,1998.1
[4]谢希仁.计算机网络(第二版)[M].北京:
电子工业出版社,2003.6
[5]戴志诚,赵国峰.JSP信息化系统建设案例[M].北京:
人民邮电出版社,2006.12
[6]成晓静,毕靖.网页设计三剑客完全学习手册[M].北京:
中国电力出版社,2004.11
[7]赵强.精通JSP编程[M].北京:
电子工业出版社,2006.3
[8]萨师煊,王珊.数据库系统概论[M].北京:
高等教育出版社,2002.2
[9]张海藩,李劲,谢兆阳.SQLServer2000数据库设计与系统管理[M].北京:
清华大学出版社,2000.9
[10]刘禾,蔡锋.Web数据库假设技巧[M].北京:
科技技术出版社,1999.4
[11]徐建波.Internet与Web设计教程[M].北京:
中国矿业大学出版社,2000.12
[12]于书举,许向众.数据库设计与开发教程[M].北京:
电子工业出版社,2003.11
[13]安海忠,李文斌,林旭新.商业网站建设与管理[M].北京:
人民交通出版社,2006.8
[14]T.UmedaandS.Hagiwara.web-baseddatabaseforEPRcentersinsemiconductors[J].BPhysicaB:
CondensedMatter,3(7),249-252,2006.3
[15]Yih-LingHedley,MuhammadYounas.Sampling,informationextractionandsummarisationofHiddenWebdatabases[J].Data&KnowledgeEngineering,InPress,UncorrectedProof,Availableonline10March2006.2
致谢
本课题在选题及进行过程中得到张琪文老师悉心指导,张老师严谨求实治学态度
踏实坚韧工作精神将使我终生受益再多华丽言语也显苍白;同学多次帮助我分析思路,
开拓视角
在我遇到困难想放弃时候给予我最大支持和鼓励。
在此谨向张老师以及我的同学们致以诚挚的谢意
附录:
源代码
#include
#include
#include
#include
#definem3//3架飞机
#definen25//每架飞机25张票
structnode
{
charname[21];
charid[21];
intseat,plane,date;
node*next,*pre;
};
structwait
{
charname[21];
charid[21];
charphone[8];
intseat,plane,date,count;
wait*next,*pre;
};
structpiao
{
intseat[n+1];
};
voidmakenull();
voidmakenull_piao();
voidmakenull_information();
voidlist_menu();
voidlist_piao();
voidmakenull_wait();
voidlist_information();
voidplane_information(node*head);
voidbook();
voidadd_information(node*head,intx,inty);
voidadd_wait(intx,inty);
voidsearch_delete(intx);
voidwrite_to_file();
voidshow_wait();
boolcomp(node*x,node*y);
node*head1,*head2,*head3,*q;
wait*wait_head,*wait_end;
charc;
piaoa[m];
voidmain()
{
makenull();
do
{list_menu();
cout<";
cin>>c;
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<<"ExitSystem";
}
voidmakenull()
{
makenull_piao();
makenull_information();
makenull_wait();
}
voidlist_menu()
{cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<cout<}
voidmakenull_piao()
{
FILE*fp;
inti;
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);
}
voidmakenull_information()
{
node*r;
FILE*fp;
inti,j,sum;
sum=a[1].seat[0]+a[2].seat[0]+a[3].seat[0];
fp=fopen("information.dat","r");
head1=newnode;
head2=newnode;
head3=newnode;
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=newnode;
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;
}
}
}
voidmakenull_wait()
{
wait*tempw;
FILE*fp;
tempw=newwait;
inti;
if((fp=fopen("wait.txt","r"))==NULL)
{
fp=fopen("wait.txt","w");
fclose(fp);
}
wait_end=newwait;
wait_head=newwait;
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;
}
}
voidlist_piao()
{
inti,j;
for(i=1;i<=m-1;i++)
{
if(a[i].seat[0]!
=n)
{
cout<"<for(j=1;j<=n;j++)
if(a[i].seat[j]==0)cout<<""<cout<}
elsecout<"<}
}
voidlist_information()
{
intx;
do{cout<";cin>>x;cout<=m);
cout<if(x==1)plane_information(head1);
if(x==2)plane_information(head2);
if(x==3)plane_information(head3);
}
voidplane_information(node*head)
{
node*q;
charch;
intx=0;
if(head!
=NULL&&head->next!
=NULL)
q=head->next;
else{
q=NULL;
cout<<"飞机空,无预订票!
"<}
while(q!
=NULL)
{
cout<q->date=q->plane;
cout<<"日期:
"<date<cout<<"座位号:
"<seat<cout<<"姓名:
"<name;
cout<"<id;
q=q->next;x++;
if(x%3==0)ch=getch();
}
cout<}
voidbook()
{
inti,j,p;
cout<(1、2、3)";
do{
cin>>i;
if(i<1||i>=m){
cout<****"<";
}
else
{cout<cout<"<for(p=1;p<=n;p++)
if(a[i].seat[p]==0)cout<<""<
cout<break;}
}while
(1);
cout<";
do{
cin>>j;
if(j<1||j>n){
cout<****"<";
}
else
{
q->date=i;
cout<"<date<brea