ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:180.92KB ,
资源ID:26522703      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26522703.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(机票预定系统实验报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

机票预定系统实验报告.docx

1、机票预定系统实验报告机票预订系统实验报告:潘凯学号:1041903119专业:通信工程一、目的用面向对象分析、设计方法来分析机票系统。二、主要内容及问题需求分析:为方便旅客,某航空公司拟开发一个机票预订系统。旅行社把预订机票的旅客信息(、性别、工作单位、身份证号码、旅行时间、旅行目的地等)输入进该系统,系统为旅客安排航班,印出取票通知和账单,旅客在飞机起飞的前一天凭取票通知和账单交款取票,系统校对无误即印出机票给旅客。功能需求该系统主要分为五大功能:系统管理、新增、修改、查询和系统维护。机票预定系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有

2、开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。三、使用环境操作系统:Windows XP建模工具:StarUML、Microsoft Visio四、设计内容1-1、用例模型图用例模型图说明:机票预订系统主要使用的对象是旅行社管理员。管理员根据顾客填写的目的地和时间信息,将其输入系统,系统根据相关信息进行处理,则系统其中的一个功能即用例就是接收顾客信息。顾客需要用取票单去航空公司取票,系统由管理员输入的信息来识别,则系统的另一个功能即用例就是预定管理员输入信息符合的票。1-2、

3、类图类图说明:为此系统定义了4个类,分别是顾客类,管理员类,航空公司类,机票类。各个类对应的属性和操作方法在图中已表示出,目前应该还是有很多不完善的地方,在后期再加以修改。1-3、对象图对象图说明:对象图是根据设置的类图而设置的。一个对象就是类的一个具体实例,本例中设置了一个custom的取票操作,详细信息在图中已经设置,根据顾客的相关信息和操作,系统会调用相应的类的对象来处理,在本例中不一定会全部都涉及。1-4、顺序图 顺序图说明: 顺序图用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。由于在顾客,旅行社,航空公司之间也有先后顺序,所以在顺序图中会有两个生命周期,分别是订票

4、和取票操作。旅行社根据顾客填写的信息,就操作系统的订票功能。系统在对管理进行处理时,会先记录顾客的相关信息,最后再打印取票单给顾客。系统对取票进行处理时,会先收取款,最后会把票给顾客。1-5、状态图状态图说明: 在订票系统中,主要会有两个对象的状态:顾客和管理员。顾客的状态最开始是填写信息,再管理员将信息输入系统,此时系统查询合适的航班,顾客收到系统打印出的相应单据,最后顾客将取票单和款返回给系统得到票。1-6、活动图 活动图说明: 状态图着重描述对象的状态变化以及触发状态变化的事件,活描述系统中各种活动的执行顺序,刻画一个方法中所要进行的各项活动的执行流程。在订票系统中,各种活动由顾客和管理

5、员的状态图转化而来。顾客的信息,之后就由管理员输入系统,系统对应的活动就有查询订票,各自活动都有自己的的后续活动。2、动态模型动态模型说明:动态模型主要是描述系统的动态行为和控制结构。动态行为包括系统中对象生存期内可能的状态以及事件发生时状态的迁移,还包括对象之问动态合作关系,显示对象之间的交互过程以及交互顺序,同时描述了为满足用例要求所进行的活动以及活动问的约束关系。动态模型主要包括的状态图、顺序图和活动图已经在1-4、1-5、1-6中画出。建立动态模型的第一步是编写交互行为的脚本;第二步从脚本中提取出事件,确定后触发每个事件的动作对象及接收事件的目标对象;第三步排列事件发生的次序,确定每个

6、对象可能有的状态及状态间的转换关系,并用状态图描绘它们。最后,比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。3、功能模型 11旅客信息记录 旅客1 2传给航空公司2 1 安排航班22传给旅行社13产生取票通知 旅客 旅客清单 航班机票 旅客订票记录订票 机票信息 航班机票信息 航班机票信息 订票信息 取票通知 订票信息 功能模型说明: 功能模型表明了系统中数据之间的依赖关系,以及有关的数据处理功能,它由一组数据流图组成,此功能模型的分析与设计依照对象模型和动态模型而来。 DFD图(数据流图)描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流中没有任何具体的物理部件,

7、它知识描绘数据在软件中流动和被处理的逻辑过程,流程如图。4、对象模型对象模型说明: 对象模型描述了现实世界中的类与对象以及它们之间的关系,表示了目标系统的静态数据结构。首先确定对象类和关联,对于大型复杂问题还要进一步划分出若干个主题;然后给类和关联增添属性,以进一步描述它们;接下来利用适当的继承关系进一步合并和组织类。而对类中操作的最后确定,则需要等到建立了动态模型和功能模型之后,以为这两个子模型更准确地描述了对类中提供的服务的需求。数据库表航空公司表字段类型含义说明Airline_IDVarchar(50)航空公司的ID用来唯一标识一个航空公司(PK)Airline _NameVarchar

8、(200)航空公司的名字航空公司的名字Airline _AddrVarchar(200)航空公司所在地航空公司所在地航班表字段类型含义说明Flight_IDVarchar(50)航班的ID用来唯一标识次航班(PK)Flight_TimeTime航班时间飞机的起飞时间Flight _StartVarchar(200)航班起点飞机的起飞地点Flight_EndVarchar(200)航班终点飞机的飞行目的地Flight_NumberInt(8)航班乘坐人数航班乘坐人数Flight_PriceInt(8)航班价格本次航班的价格Flight_AIDVarchar(50)航空公司的ID表示本次航班飞机属

9、于那个飞机(FK)旅客表字段类型含义说明Customer_IDVarchar(50)旅客的ID用来唯一标识一个旅客(PK)Customer_NameVarchar(200)旅客的名字旅客的名字Customer_SexVarchar(200)旅客的性别旅客的性别Customer_unitVarchar(200)旅客的单位旅客的单位Customer_IdenVarchar(200)旅客的身份证旅客的身份证管理员表字段类型含义说明Admin_IDVarchar(50)管理员ID管理员ID(PK)Admin_passwordVarchar(200)管理员密码管理员密码Admin_NameVarchar

10、(200)管理员姓名管理员姓名订飞机票表字段类型含义说明Order_idVarchar(50)订飞机票号主键(PK)Order_FIDVarchar(50)航班号外键(FK)Order_CIDVarchar(50)旅客号外键(FK)Order_BIDVarchar(50)售票员号外键(FK)Order_PriceInt(16)票价外键(FK)C语言代码#include /标准输入、输出头文件#include /包含字符串函数处理头文件#include /包含动态存储与释放函数头文件#define N 10000 struct air /定义结构体数组 int num; char start20

11、; char over20; char time10; int count;sN;int i;int m=0;#define PRINT %-d%12s%12s%10s%12dn ,si.num,si.start,si.over,si.time,si.count /定义输出格式void input();void print();void search();void Delete();void Booking();void Modify();void Refund();void save();void read();void main() int j; do printf( -您好,欢迎进入中国

12、民航管理系统!- n); printf(= ); printf( - 1.输入航班信息 -n - 2.浏览航班信息 - n - 3.查询航班信息 - n - 4.删除航班信息 - n - 5.订票信息 -n - 6.修改信息 -n - 7.退票信息 - n - 0.退出 - n); printf(=n ); printf(请在0-7中选择以回车键结束: ); scanf(%d,&j); switch(j) case 1: input();/调用输入模块 break; case 2:print();/调用打印模块 break; case 3:search();/调用查询模块 break; cas

13、e 4:Delete();/调用删除模块 break; case 5:Booking();/调用订票模块 break; case 6:Modify();/调用修改模块 break; case 7:Refund();/调用退票模块 break; case 0:break; while(j=!0); void input()/打印模块程序 char f=2008china; /设置密码 int y; printf(请输入密码并以回车键结束: ); scanf(%s,f); /读取密码 if(strcmp(f,chinahk)=0) printf(请依次输入航班信息(机票数为0结束输入): 完成输入

14、信息请键入w以回车键结束 n); /打印提示信息 printf(- n); for(i=0;iN;i+) printf(请输入航班号: ); scanf(%d,&si.num); /读取航班号 printf(请输入起始站: ); scanf(%s,si.start);/读取起始站 printf(请输入终点站: ); scanf(%s,si.over);/读取终点站 printf(请输入时间: ); scanf(%s,si.time);/读取时间 printf(请输入机票数(机票数为0结束输入): ,m); scanf(%d,&si.count);/读取机票数 m+; printf(第%d个信息

15、已经输完是否继续?按任意键继续,按 0结束,m); scanf(%d,&y);/在此需输入任意一个整数值数值,程序才能继续执行 if(y=0) break; save();/保持输入数据 else printf(输入密码错误!请检查您的密码是否正确!谢谢!再见! n); void save()/保存模块程序 FILE *fp;/定义文件指针 if(fp=fopen(E:飞机票系统数据保存.txt,w)=NULL)/打开文件并判断是否出错 printf(文件打开失败! );/打印出错提示 else fprintf( fp,航班号 起始站 终点站 时间 机票数 n); fprintf( fp,=n

16、 ); for(i=0;im;i+) fprintf(fp,%-d%12s%12s%10s%12dn ,si.num,si.start,si.over,si.time,si.count); fclose(fp);/关闭文件 void read()/从文件读取信息模块 FILE *fp;/定义文件指针 if(fp=fopen(E:飞机票系统数据保存.txt,r)=NULL)/打开文件,并判断是否出错 printf(创建文件失败! );/打印出错提示 else for(i=0;im;i+) fscanf(fp,%-d%12s%12s%10s%12dn ,&si.num,si.start,si.ov

17、er,si.time,&si.count ); printf(PRINT); fclose(fp);/关闭文件 void print()/打印模块 char w10; printf(航班号 起始站 终点站 时间 机票数 n); read();/调用读取文件函数 /*for(i=0;im;i+) printf(PRINT);/打印信息 printf(n); */ printf(请按任意键回车键结束返回上层菜单以: n); scanf(%s,w); void search()/查询模块 char name120; char name220; char ii10; int n,no;do print

18、f(请选择查找方式: );/打印查询方式菜单 printf(1.按航班号查找 2.按终点站查找 3.按航线查找 0.返回 ); printf(请在0-3中选择: 按其他键以回车键结束返回主菜单:n ); scanf(%d,&n);/读取查找方式 if(n=0) break; switch(n) case 1: printf(请输入航班号: ); scanf(%d,&no);/航班号 break; case 2: printf(请输入终点站名称: ); scanf(%s,name2);/读取终点站 break; case 3: printf(请输入起始站名称: ); scanf(%s,name1

19、);/读取起始站 printf(请输入终点站名称: ); scanf(%s,name2);/终点站 break; printf(航班号 起始站 终点站 时间 机票数 n); read();/调用读取函数 for(i=0;im;i+) if(strcmp(si.over,name1)=0&strcmp(si.over,name2)=0)/按终点站起始站判断输出条件 printf( 对不起,没有您要的航班信息!n ); break; if(strcmp(si.over,name2)=0) printf(航班号 起始站 终点站 时间 机票数 n); printf(PRINT);/打印信息 break

20、; if(si.num=no)/按航班号判断输出条件 printf( 查找航班信息成功!n ); printf(航班号 起始站 终点站 时间 机票数 n); printf(PRINT);/打印信息 break; no=0;/将航班号赋值为0 printf(没有您需要的信息或查找完毕:n 是否继续查找?请键入yes或no以回车键结束n ); scanf(%s,ii);while(strcmp(ii,yes)=0|strcmp(ii,no)=0);/判断结束 void Delete()/删除模块 char name120; char name220; char ii10; char f=2008c

21、hina;/设置密码 int no,n; printf(请输入密码并以回车键结束: n); scanf(%s,f);/读取密码 if(strcmp(f,2008china)=0) /判断密码是否正确 do printf(请选择删除以方式回车键结束:n );/打印删除方式菜单 printf(*1.按航班号删除 *2.按航线删除 *0.返回 ); printf(请在0-2中选择以回车键结束: n); scanf(%d,&n);/读取删除方式 if(n=0) break; /跳出循环 switch(n) case 1: printf(请输入航班号: ); scanf(%d,&no);/读取航班号 r

22、ead();/调用读取函数 break;/跳出循环 case 2: printf(请输入起始站 名称: ); scanf(%s,name1);/读取起始站 printf(请输入终点站名称: ); scanf(%s,name2);/读取终点站 read();/调用读取函数 break;/跳出循环 for(i=0;im;i+) if(si.num=no)/按航班号删除 printf(航班号 起始点 终点站 时间 票数 n); for(int j=i;jm;j+) sj=sj+1; m-; for(int i=0;im;i+) printf(PRINT); if(strcmp(si.start,na

23、me1)=0&strcmp(si.over,name2)=0) printf(航班号 起始点 终点站 时间 票数 n); for(int k=i;km;k+) sk=sk+1; m-; for(int i=0;im;i+) printf(PRINT); printf(查找完毕或没有这个信息 ); printf(是否继续删除 n); printf(请键入yes或no以回车键结束 n); scanf(%s,ii); /读取是否继续信息 save(); /调用读取函数 if(!strcmp(ii,yes) /判断是否继续删除 printf(请按任意键以回车键结束返回上层菜单: ); break; w

24、hile(n!=1&n!=2&n!=0); /判断结束 else printf(对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!n ); void Booking()/订票模块 int n; char a10; do search();/调用查询模块 printf(请输入您要订的机票数以回车键结束:n ); scanf(%d,&n);/读取所订机票数 if(n0|si.count=n)/判断是否出错 si.count=si.count-n; save();/调用保存函数 printf(订票成功!nn ); printf(是否继续? 请输入yes或no以回车键结束: n);/判断是否

25、继续订票 scanf(%s,a); while(!strcmp(a,yes);/判断结束 void Refund()/退票模块 int n; char a10; do search();/调用查询模块 printf(请输入您要退的机票数目: ); scanf(%d,&n);/输入所退票数 if(n0) /判断票数是否有效 printf(请输入有效的机票数! );else si.count=si.count+n; save(); /调用保存模块 printf(退票成功! ); printf(是否继续? 请键入yes或no以回车键结束: );/判断是否继续退票 scanf(%s,a); while(!strcmp(a,yes);/判断并跳出循环void Modify() /修改模块 struct modify /定义结构体 int mo; char start120; char over120; char time120; int count1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1