民航售票系统.docx
- 文档编号:18552307
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:44
- 大小:451.30KB
民航售票系统.docx
《民航售票系统.docx》由会员分享,可在线阅读,更多相关《民航售票系统.docx(44页珍藏版)》请在冰点文库上搜索。
民航售票系统
民航售票系统
班级:
西北大学***
时间:
2008-**-**
1.需求分析
以无歧义的陈述说明项目开发的任务,强调的是该项目要实现什么?
并明确规定:
(1)项目采用的技术路线,支持软件;
(2)系统整体框架图;
(3)项目实现的功能点;
该项目为民航订票系统。
由于经济水平的不断提高,出行选择飞机的旅客也逐渐增多,为方便用户订票退票买票,对民航订票系统的要求也在逐年提高。
特此编写了一个民航机票订票系统的代码程序,它的功能主要是完成航班信息的录入、编辑、修改;用户的注册、订票、查票、退票、买票
(1)项目采用的技术路线,支持软件
该项目用c语言实现,创建结构体变量,并以链表的形式将航班信息、订票人信息、国内航班已订票信息和国际航班已订票信息写入文件中。
程序运行开始,打开文件并将其分别链入链表之中;程序结束关闭并保存文件。
整体系统功能全部由链表实现。
在主函数main()函数中,只调用一个函数,在系统中,函数之间采用级联调用,即一个函数里调用另一个函数,每个函数实现一个单独的功能,可被一次或多次调用。
(2)系统整体框架图
(3)项目实现的功能点
航班信息录入、删除、修改
分别按照航班号、起始站、终点站、航班日期、航班价钱、打折信息、用户名、身份证号、护照号查找航班信息
分别按照航班号、起点站、终点站、座位数总数、已售出座位数、价格、折扣信息对航班信息进行排序
分别对航班总数、已售出机票数、未售出机票数、打折机票情况、某个航班的售票情况、热门航班的前十名、本月消费额最大的五个用户、入座率不足50%的航班进行统计
文件的打开、保存和另存为
用户信息的注册、信息的修改、用户密码的修改、民航机票售票员的创建
注册用户的国际航班订票、国内航班订票、国际和国内航班对已订票信息的查询、退票、已订票用户买票、未定票用户买票
2.概要设计
说明项目包含的所有模块及其交互关系,所有类和接口的定义,类或接口之间的层次/调用关系,数据的定义形式,文件的组织结构。
系统定义了4个.h文件,2个.c文件。
Flight_Book.h用来存放所有库文件的声明,如#include
Flight_Book_define.h用来存放所有变量的宏定义,如#defineName_Length_Max(20)(姓名的最大长度)。
Flight_Book_hanshu.h用来存放所有函数的声明语句,如intSearch_by_no()(按航班号查找函数)。
Flight_Book_struct.h用来存放所有的结构体及枚举类型信息,如
typedefenumtagF_SORT{//排序菜单的用户输入选择
F_SORT_BY_NO=1,//通过航班号排序
F_SORT_BY_FROMPLACE,//通过起始站排序
F_SORT_BY_TOPLACE,//通过终点站排序
F_SORT_BY_SEATAMOUNT,//通过座位数排序
F_SORT_BY_PRICE,//通过票价排序
F_SORT_BY_DISCOUNT,//通过折扣排序
F_SORT_BY_UNSOLDAMOUNT,//通过未售座位数排序
F_SORT_EXIT//退出排序菜单
}F_SORT_MENU_SELECT;
Flight_Book_main.c函数,用来编写主函数voidmain()。
Flight_Book_hanshu.c函数,用来编写程序调用的所有子函数。
系统分为四种用户:
浏览用户、注册用户、售票员和系统管理员。
每种用户的具体功能如下。
各种用户的功能有交叉,有相同点也有不同点。
浏览用户:
航班信息查找、航班信息排序、注册信息录入
注册用户:
航班信息查找、排序、国际航班订票、国内航班订票、查看订票信息、退票、修改个人信息、修改密码
售票员:
航班信息查找、排序、国际航班已订票用户买票、国内航班已订票用户买票、未订票用户买票、
系统管理员:
航班信息查找、排序、统计、航班信息录入、修改、删除、创建民航机票售票员、管理员密码修改、文件备份
程序中所需的所有数据的宏定义都定一在Flight_Book_define.h头文件中,枚举类型变量选择以及及构体变量的定义都在Flight_Book_struct.h中。
程序中不出现任何数字。
系统定义了四个主要结构体
(1)航班信息结构体
typedefstructFlight_Info//航班信息结构体
{
charFlightNo[Flight_No_Max];//航班号
charFromPlace[Place_Length_Max];//航线起始站
charToPlace[Place_Length_Max];//航线终点站
charDate[Date_Length];//航班日期
intSeatAmount;//票数
intunSoldAmount;//剩余票数
intPrice;//票价
floatDiscount;//折扣信息
structFlight_Info*next;
}F_Info,*Flight_List;
此结构体创建的链表用来存放航班信息。
此链表节点的信息存放在flight1.txt文件中。
程序开始时,进行文件载入调用voidFlight_Load()函数,将文件中的所有信息存放在以FL为头结点的链表中。
程序运行中,只对链表进行修改,不对文件进行直接操作。
程序结束后调用voidFlight_Save()函数,执行用户信息保存功能,将链表中的所有用户信息重新写入文件flight1.txt中
用户信息结构体。
包括注册用户、售票员和系统管理员
typedefstructBooker_Info//用户信息
{
charUserName[Name_Length_Max];//用户名
charPassword[Password_Length];//密码
charName[Name_Length_Max];//姓名
charSex;//性别
charNation[Nation_Length_Max];//民族
charID[ID_No];//身份证号
floatCrash;//累计购票金额
MENU_SELECTtype;//用户类型
structBooker_Info*next;
}Booker_Info,*Booker_List;
此结构体创建的链表用来存放系统管理员、售票员、以及注册用户的信息。
此链表节点的信息存放在flight.txt文件中。
程序开始时,进行文件载入调用voidBooker_Load()函数,将文件中的所有信息存放在以L为头结点的链表中。
程序运行中,只对链表进行修改,不对文件进行直接操作。
程序结束后调用voidBooker_Save()函数,执行用户信息保存功能,将链表中的所有用户信息重新写入flight.txt文件中。
国内航班订票人信息结构体
typedefstructUser_Booked_Ticket//国内用户订票信息
{
charUserName[Name_Length_Max];//用户名
charFlightNo[Flight_No_Max];//航班号
charDate[Date_Length];//航班日期
intBookAmount;//订票数
charID[ID_No];//身份证号
structUser_Booked_Ticket*next;
}User_Booked_Ticket,*Ticket_List;
此结构体创建的链表用来存放注册用户所订的国内航班机票信息。
此链表节点的信息存放在d:
\\book_ticket_info.txt文件中。
程序开始时,进行文件载入,调用voidTicket_Load()函数,将文件中的所有信息存放在以T为头节点的链表中。
程序运行中,支队链表进行修改,不对文件进行直接操作。
程序结束后,调用voidTicket_Save()函数,执行用户信息保存功能,将链表中的所有用户信息重新写入文件book_ticket_info.txt中。
国际航班订票人信息结构体
typedefstructoutcountry_User_Booked_Ticket//国际用户订票信息
{
charUserName[Name_Length_Max];//用户名
charFlightNo[Flight_No_Max];//航班号
charDate[Date_Length];//航班日期
intBookAmount;//订票数
charID[ID_No];//身份证号
charVisaCountry[Country_Length_Max];//签证国家
charVisaDate[Date_Length];//签证日期
charPassport[Passport_No];//护照号
structoutcountry_User_Booked_Ticket*next;
}outcountry_User_Booked_Ticket,*outcountry_Ticket_List;
此结构体创建的链表用来存放注册用户所订的国际航班机票信息。
此链表节点的信息存放在d:
\\outcountry_book_ticket_info.txt文件中。
程序开始时,进行文件载入,调用voidoutcountry_Ticket_Load()函数,将文件中的所有信息存放在以OCT为头节点的链表中。
程序运行中,只对链表进行修改,不对文件进行直接操作。
程序结束后,调用voidoutcountry_Ticket_Save()函数,执行用户信息保存功能,将链表中的所有用户信息重新写入outcountry_book_ticket_info.txt文件中。
3.详细设计
实现概要设计中定义的所有类和接口的成员变量和方法的原型,对复杂操作按照算法书写规范用写出过程或函数形式的算法框架,给出主要函数的流程图,画出主要算法的时序图,交互图。
(1)初始化文件flight.txt和flight1.txt和settingpath.txt和userpass.txt
(2)文件载入
(3)函数调用。
在main()函数中调用函数LoadFile(pAllData),MainMenu();MainMenu()函数为显示前端界面函数。
打印输出“欢迎进入民航订票系统”。
在此函数中调用初始化函数Initsys(),将所有的文件初始化并执行
(2)文件载入中的四个load函数。
之后调用get_front_menu()函数。
此函数打印并执行主菜单。
get_front_menu()函数中,调用主菜单选项print_front_menu()。
Case1:
get_ScanUser_menu()获取浏览用户主菜单。
Case2:
get_RegistUser_menu()获取注册用户主菜单。
Case3:
get_Seller_menu()获取售票员主菜单
Case4:
get_Admin_menu()获取系统管理员主菜单。
在get_ScanUser_menu()获取浏览用户主菜中,先调用print_ScanUser_menu()函数,打印浏览用户菜单。
Case1:
get_search_menu()获取查找菜单
Case2:
get_sort_menu()获取排序菜单
Case3:
Register_new_user()注册新用户
Case4:
推出。
在get_RegistUser_menu()获取注册用户主菜单中,先调用print_RegistUser_menu()函数,打印注册用户菜单。
Case1:
get_search_menu()获取查找用户菜单
Case2:
get_sort_menu()获取排序菜单
Case3:
get_RBookTicket_menu()进入订票子菜单
Case4:
get_RShow_BookedTicket_menu()进入查看订票信息及退票菜单
Case5:
change_userinfo()调用修改个人信息函数
Case6:
change_password()调用修改密码函数
Case7:
推出。
在get_Seller_menu()获取售票员主菜单中,先调用print_Seller_menu()函数,打印售票员菜单。
Case1:
get_search_menu()进入查找子菜单。
Case2:
get_sort_menu()进入排序子菜单。
Case3:
get_buyticket_menu()进入买票子菜单。
Case4:
推出。
在get_Admin_menu()获取系统管理员主菜单中,先调用print_Admin_menu()函数,打印系统管理员菜单。
Case1:
get_search_menu()进入查找子菜单。
Case2:
get_sort_menu()进入排序子菜单。
Case3:
get_total_menu()进入统计子菜单。
Case4:
EditFlightInfo()进入编辑航班信息子菜单。
Case5:
Register_new_user()调用创建明航机票售票员函数。
Case6:
Sys_recopy()调用文件备份函数。
Case7:
change_password()调用系统管理员密码修改函数。
Case8:
退出。
在get_search_menu()进入查找子菜单中,先调用print_search_menu()函数,打印查找菜单。
Case1:
Search_by_no()按航班号查找航班信息。
Case2:
Search_by_fromplace()按起始站查找航班信息。
Case3:
Search_by_toplace()按终点站查找航班信息。
Case4:
Search_by_price()按航班的票价查找航班信息。
Case5:
Search_by_discount()按航班的打着信息查找航班信息。
Case6:
Search_by_date()按航班的起飞时间查找航班信息。
Case7:
Search_by_registname()按注册用户的用户名查找航班信息。
Case8:
Search_by_ID()按航班号查找航班信息。
Case9:
Search_by_passport()按护照好查找航班信息。
Case0:
退出。
在get_sort_menu()获取排序菜单中,先调用print_sort_menu()函数,打印排序菜单。
Case1:
Sort_by_no()按照航班号排序。
Case2:
ort_by_fromplace()按照起始站排序。
Case3:
Sort_by_toplace()按终点站排序。
Case4:
Sort_by_seatamount()按总票数排序。
Case5:
Sort_by_price()按票价排序。
Case6:
Sort_by_discount()按折扣信息排序。
Case7:
Sort_by_unsoldamount()按剩余票数排序。
Case8:
退出。
在get_RBookTicket_menu()进入订票子菜单中,先调用print_RBookTicket_menu()函数,打印订票航班选择菜单。
Case1:
incountry_book_ticket()调用或内航班订票函数。
Case2:
outcountry_book_ticket()调用国际航班订票函数。
Case3:
返回上一级菜单函数。
Case4:
退出。
在get_RShow_BookedTicket_menu()进入查看订票信息及退票菜单中,先调用print_show_BookedTicket_menu()函数,打印查看订票信息及退票函数。
Case1:
show_incountry_booked_info()调用国内航班已订票信息查看函数。
Case2:
show_outcountry_booked_info()调用国际航班已订票信息查看函数。
Case3:
返回上一级菜单。
Case4:
退出。
在get_buyticket_menu()进入买票子菜单中,先调用print_buyticket_menu()函数,打印售票员售票菜单。
Case1:
bookedU_buyT()调用已订票用户买票函数。
Case2:
unbookedU_buyT()调用普通用户(为订票用户)买票函数。
Case3:
返回上一级菜单
Case4:
退出。
在get_total_menu()进入统计子菜单中,先调用print_total_menu()函数,打印统计航班信息子菜单。
Case1:
Total_allflight()调用统计航班总数、已售出的机票数目未售出的机票数目、打折机票情况。
Case2:
Total_single()调用统计某个航班的售票情况函数。
Case3:
Total_popu_tenth()调用统计热门航班的情势名函数。
Case4:
Total_month_custom()调用同基本月消费额最大的五个用户函数。
Case5:
Total_f_half_seat()调用统计入座率不足50%的航班函数。
Case6:
Total_discount_info()调用统计打折信息函数函数。
Case7:
返回上一级菜单。
在EditFlightInfo()进入编辑航班信息子菜单中,先调用print_editFlightInfo()函数,打印编辑航班信息菜单。
Case1:
PutIn_Flight_Info()调用录入航班信息函数。
Case2:
ChangFlightInfo()调用修改航班信息函数。
Case3:
DeleteFlightInfo()调用删除航班信息函数。
Case4:
返回上一级菜单
Case5:
退出。
排序函数的流程图:
统计函数流程图:
4.测试分析
内容包括:
a.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;
b.主要算法的时间复杂度和空间复杂度分析,改进设想;
c.经验和体会等。
一、黑盒测试
目的
本方案主要实施产品程序代码的黑盒测试。
保证软件的功能能正常进行,保证用户可以安全、快捷进行操作
测试项
软件的各部分的功能
测试依据
根据概要设计和详细设计说明,针对软件说明书的步骤,对软件的功能进行测试。
测试环境配置
1.测试工具:
2.软件环境:
3.资源文件
测试步骤和用例
(1)浏览用户
序号
测试项
测试内容
质量保证标准
问题属性
出错频率
T1
航班查询功能
1.按航空代号查询输入航班号检查是否查询成功
2.按起点站查询
3.按终点站查询
4.按航班价格查询
5.按打折信息查询
6.按飞行时间查询
7.返回
完备
没有
0
T2
航班排序功能
1.按航空代号排序输入航班号检查是否排序成功
2.按起点站排序
3.按终点站排序
4.按航班座位数排序
5.按票价排序
6.按折扣信息排序
7按已售出座位数排序
8.返回
完备
T3
用户注册功能
根据软件说明书,进行用户注册
完备
1
T3
返回
根据提示返回
(2)注册用户
+
序号
测试项
测试内容
质量保证标准
问题属性
出错频率
T1
用户登录
根据浏览用户中的注册功能所注册的用户名和密码进行登录
完备
没有
0
航班查找功能
1.按航班号查询
2.按起点站查询
3.按终点站查询
4.按航班价格查询
5.按打折信息查询
6.按飞行时间查询
7.返回
完备
T3
航班排序功能
1.按航空代号排序输入航班号检查是否排序成功
2.按起点站排序
3.按终点站排序
4.按航班座位数排序
5.按票价排序
6.按折扣信息排序
7按已售出座位数排序
8.返回
T4
国内航班订票功能
根据用户输入的航班号和日期和张数进行订票
不完备
如果用户没记住航班号和日期,则无法正确订票
1
T5
国际航班订票
根据用户输入的航班号和日期和张数进行订票
不完备
用户须准确记住航班号才可订票
1
T6
修改个人信息
根据用户说明,进行操作
按回车后没有修改
1
T7
查看已订票信息和退票
察看并核对已订票信息,和退票功能的实现
完备
T8
修改个人信息
实现更改个人信息功能
T8
修改密码
为实现保密功能,对个人密码进行修改
T9
返回
返回主菜单
(3)售票员
序号
测试项
测试内容
质量保证标准
问题属性
出错频率
T1
用户登录
根据系统管理员创建的用户名和密码进行用户登陆
完备
没有
0
T2
航班查找功能
1.按航班号查询
2.按起点站查询
3.按终点站查询
4.按航班价格查询
5.按打折信息查询
6.按飞行时间查询
7.返回
完备
T3
航班排序功能
1.按航空代号排序输入航班号检查是否排序成功
2.按起点站排序
3.按终点站排序
4.按航班座位数排序
5.按票价排序
6.按折扣信息排序
7按已售出座位数排序
8.返回
T4
已订票用户买票
根据身份证等核对信息后,予以售票
T5
普通用户买票
根据用户需要的航班号和日期售票
T6
返回
返回主菜单
(4)系统管理员
序号
测试项
测试内容
质量保证标准
问题属性
出错频率
T1
用户登录
根据系统初值用户名admin和密码000进行登录
完备
没有
0
T2
航班查询功能
1.按航班号查询
2.按起点站查询
3.按终点站查询
4.按航班价格查询
5.按打折信息查询
6.按飞行时间查询
7.按注册用户的姓名查找
8按注册用户的身份证号码查找
9按注册用户的护照号查找
完备
T3
航班排序功能
1.按航空代号排序输入航班号检查是否排序成功
2.按起点站排序
3.按终点站排序
4.按航班座位数排序
5.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 民航 售票 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)