




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
飞机订票系统课程设计说明书(MFC编写)目 录 1 前言 . 1 1.1 问题的提出 . 1 1.2 任务与分析 . 1 2 系统总体设计 . 2 2.1 开发工具 . 2 2.2 系统框图 . 2 2.3 模块功能 . 3 2.3.1 航班录入 . 3 2.3.2 查询 . 3 2.3.3订票. 3 2.3.4退票. 3 2.3.5修改航班信息 . 3 2.3.6显示航班信息 . 3 2.3.7帮助. 3 3 人机界面设计 . 4 3.1 控件介绍 . 4 3.2 窗体 . 4 3.3 文本编辑框 . 5 3.4 下拉列表框 . 5 3.5 静态文本 . 5 3.6 按钮 . 5 3.7 菜单组件 . 5 4 功能详细设计 . 6 4.1 航班信息的录入 . 6 4.2 航班查询 .11 4.3 订票 . 13 4.4 退票 . 18 4.5 修改航班信息 . 22 4.6 显示航班信息 . 28 4.7 软件使用说明 . 30 5 系统功能测试 . 33 5.1 航班信息的录入 . 33 5.2 查询 . 35 5.3 订票 . 36 5.4 退票 . 37 5.5 修改航班信息 . 38 I 飞机订票系统 5.6 显示航班信息 . 38 结 论 . 39 致谢 . 40 参考文献 . 40 II 西华大学数计学院课程设计说明书 摘 要 现在是计算机的时代计算机的普及也有着它的原因很多重复且繁杂 的事物我们可以使用计算机来轻松的完成。例如飞机、火车等等订票系统我们可以通过这些系统方便地订票并且对于大量的用户信息可以进行有条不絮的管理。随着计算机的普及相信计算机会让我们的日常生活越来越便利。 关键词:计算机 订票系统 便利 III 西华大学数学与计算机学院课程设计说明书 1 前言 1.1 问题的提出 如今交通发达,航空业也越来越普及,很多人出行会选择飞机,所以航空公司每天都会有大量客户订票,而人工的记录又非常繁杂,因此我们可以通过计算机来让订票以及管理这些大量的客户信息变得轻松,并且拥有的更高效率。 1.2 任务与分析 本课题主要是开发一个飞机订票系统,能方便地进行订票,系统能自动地对客户数据进行处理保存。这个系统拥有一个人性化的人机交互界面,能方便地使用。 设计任务: 1.基于图形用户界面的标准“Windows”应用程序。 2.管理系统实现: 录入:航班信息的录入; 查询:可以查询某个航班的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满舱); 订票:如果该航班已经无票,可以提供相关可选择航班; 退票:客户资料有姓名,证件号,订票数量及航班情况,订单要有编号; 修改:航班信息的修改 3.为方便查找,要求针对航班查询(按航班号)进行散列法查找。 4.动画表现查找数据结构的变化过程。 5.界面设计总体要求 1)操作流程简便合理,操作界面美观自然,符合用户一般操作习惯。 2)界面简洁美观,配色和谐,比例合适,符合大多数人的审美取向。 6.菜单设置“使用说明”,介绍本软件开发者、特色、各项功能以及如何使用。 1 飞机订票系统 2 系统总体设计 2.1 开发工具 开发工具:VC+2010(旗舰版) 选用理由:能用MFC开发应用程序,它事先已经给我们做好了一个界面框架, 对于开发有界面的应用程序提供了非常多的便利。 开发环境:Windows7操作系统。 运行环境:Windows操作系统。 2.2 系统框图 (1)系统组成框图:图2-1 图2-1 (2)系统流程图:图2-2 2 西华大学数学与计算机学院课程设计说明书 2.3 模块功能 2.3.1 航班录入 能进行航班信息的录入。 2.3.2 查询 可以按航班号或按城市名进行查询。 2.3.3订票 可以方便地进行订票,系统自动添加客户信息。 2.3.4退票 可以方便地进行退票,系统会自动处理数据。 2.3.5修改航班信息 可以方便地修改某个航班的信息。 2.3.6显示航班信息 显示航班的详细信息。 2.3.7帮助 关于本系统的一些相关信息和使用说明。 3 飞机订票系统 3 人机界面设计 3.1 控件介绍 本系统主要采用Windows公共控件,包括菜单、按钮、静态文本、文本编辑框和下拉列表框。 3.2 窗体 基于单文档的框架程序,界面简洁美观,适合管理系统。 4 西华大学数学与计算机学院课程设计说明书 3.3 文本编辑框 可方便地输入用户和航班的信息,并且可以修改,适合数据的获取。 3.4 下拉列表框 当有多个相关航班时,用户可以通过下列列表方便地进行选择。 3.5 静态文本 显示一些必要的标签,对用户的使用起到提示的作用,更具人性化。 3.6 按钮 可以直观地让用户使用相应的功能。 3.7 菜单组件 用户可以通过菜单来选择想使用的功能。 有菜单项:录入、查询(包含按航班号查询和按城市名查询)、订票、退票、修改航班信息、帮助(包含使用说明和关于飞机订票系统) 5 飞机订票系统 4 功能详细设计 4.1 航班信息的录入 1.判断输入数据的合理性 void CEnterDlg:OnBnClickedOk() UpdateData(); if (m_strFlightNum = ) MessageBox(请输入航班号, 提示); (CEdit*)GetDlgItem(IDC_FLIGHTNUM)-SetFocus(); return; if (m_nPrice = 0) MessageBox(请输入价格, 提示); (CEdit*)GetDlgItem(IDC_PRICE)-SetFocus(); return; if (m_nDiscount1 10) MessageBox(折扣信息有误(0-10之间), 提示); (CEdit*)GetDlgItem(IDC_DISCOUNT1)-SetFocus(); (CEdit*)GetDlgItem(IDC_DISCOUNT1)-SetSel(0, -1); return; if (m_nDiscount2 9) MessageBox(折扣信息有误(0-9之间), 提示); (CEdit*)GetDlgItem(IDC_DISCOUNT2)-SetFocus(); (CEdit*)GetDlgItem(IDC_DISCOUNT2)-SetSel(0, -1); return; if (m_nDay1 31) 6 西华大学数学与计算机学院课程设计说明书 MessageBox(天数应在1-31之间, 提示); (CEdit*)GetDlgItem(IDC_DAY1)-SetFocus(); (CEdit*)GetDlgItem(IDC_DAY1)-SetSel(0, -1); return; if (m_nDay2 31) MessageBox(天数应在1-31之间, 提示); (CEdit*)GetDlgItem(IDC_DAY2)-SetFocus(); (CEdit*)GetDlgItem(IDC_DAY2)-SetSel(0, -1); return; if (m_nHour1 23) MessageBox(小时数应在0-23之间, 提示); (CEdit*)GetDlgItem(IDC_HOUR1)-SetFocus(); (CEdit*)GetDlgItem(IDC_HOUR1)-SetSel(0, -1); return; if (m_nHour2 23) MessageBox(小时数应在0-23之间, 提示); (CEdit*)GetDlgItem(IDC_HOUR2)-SetFocus(); (CEdit*)GetDlgItem(IDC_HOUR2)-SetSel(0, -1); return; if (m_nMinute1 59) MessageBox(分钟数应在0-59之间, 提示); (CEdit*)GetDlgItem(IDC_MINUTE1)-SetFocus(); (CEdit*)GetDlgItem(IDC_MINUTE1)-SetSel(0, -1); return; 7 飞机订票系统 if (m_nMinute2 59) MessageBox(分钟数应在0-59之间, 提示); (CEdit*)GetDlgItem(IDC_MINUTE2)-SetFocus(); (CEdit*)GetDlgItem(IDC_MINUTE2)-SetSel(0, -1); return; if (m_nMonth1 12) MessageBox(月份数应在1-12之间, 提示); (CEdit*)GetDlgItem(IDC_MONTH1)-SetFocus(); (CEdit*)GetDlgItem(IDC_MONTH1)-SetSel(0, -1); return; if (m_nMonth2 12) MessageBox(月份数应在1-12之间, 提示); (CEdit*)GetDlgItem(IDC_MONTH2)-SetFocus(); (CEdit*)GetDlgItem(IDC_MONTH2)-SetSel(0, -1); return; if (m_nYear1 SetFocus(); (CEdit*)GetDlgItem(IDC_YEAR1)-SetSel(0, -1); return; if (m_nYear2 SetFocus(); (CEdit*)GetDlgItem(IDC_YEAR2)-SetSel(0, -1); return; 8 西华大学数学与计算机学院课程设计说明书 if (m_strCity1 = ) MessageBox(请输入起飞城市, 提示); (CEdit*)GetDlgItem(IDC_CITY1)-SetFocus(); return; if (m_strCity2 = ) MessageBox(请输入抵达城市, 提示); (CEdit*)GetDlgItem(IDC_CITY2)-SetFocus(); return; if (m_nRoom = 0) MessageBox(请输入舱位数, 提示); (CEdit*)GetDlgItem(IDC_ROOM)-SetFocus(); (CEdit*)GetDlgItem(IDC_ROOM)-SetSel(0, -1); return; 2.将航班信息以散列表存储,用散列表来存放航班信息,我们可以通过航班号直接查找到改架航班,效率很高,冲突解决办法是开放定址法中的线性探测法。 char *ch; int pos; int key; CString str; str = m_strFlightNum.Right(2); ch = str.GetBuffer(0); key = atoi(ch); pos = key % 3000; if (theApp.m_Flypos.mark = 1) if (theApp.m_Flypos.FlightNum = m_strFlightNum & (theApp.m_Flypos.Year1 = m_nYear1 & theApp.m_Flypos.Day1 = m_nDay1 & theApp.m_Flypos.Month1 = m_nMonth1 & 9 飞机订票系统 theApp.m_Flypos.Hour1 = m_nHour1 & theApp.m_Flypos.Minute1 = m_nMinute1) | (theApp.m_Flypos.Year2 = m_nYear2 & theApp.m_Flypos.Day2 = m_nDay2 & theApp.m_Flypos.Month2 = m_nMonth2 & theApp.m_Flypos.Hour2 = m_nHour2 & theApp.m_Flypos.Minute2 = m_nMinute2) MessageBox(航班信息有重复, 提示); return; for (int i = 1; i SetFocus(); return; char *ch; int pos; int key; 11 飞机订票系统 int i = 0; CString str; str = m_strFlightFind.Right(2); ch = str.GetBuffer(0); key = atoi(ch); pos = key % 3000; if (theApp.m_Flypos.mark = 1) /使用线性探测法查找 while (theApp.m_Flypos + i.mark != 0) if (theApp.m_Flypos + i.FlightNum = m_strFlightFind) /存储航班号相同的航班的存放地址 findcountcount+ = pos + i; i+; if (count != 0) CDialogEx:OnOK(); return; MessageBox(这个航班不存在, 提示); 2.按起降城市查询航班 void CCityFindDlg:OnBnClickedOk() UpdateData(); /输入的合理性判断 if (m_strCity1Find = ) MessageBox(请输入起飞城市, 提示); 12 西华大学数学与计算机学院课程设计说明书 (CEdit*)GetDlgItem(IDC_CITY1FIND)-SetFocus(); return; if (m_strCity2Find = ) MessageBox(请输入抵达城市, 提示); (CEdit*)GetDlgItem(IDC_CITY2FIND)-SetFocus(); return; for(int i = 0; i SetSel(0, -1); (CEdit*)GetDlgItem(IDC_BNAME)-Clear(); 13 飞机订票系统 (CEdit*)GetDlgItem(IDC_BID)-SetSel(0, -1); (CEdit*)GetDlgItem(IDC_BID)-Clear(); char *ch; int pos; int key; CString str; str = m_strBFlightNum.Right(2); ch = str.GetBuffer(0); key = atoi(ch); pos = key % 3000; if (theApp.m_Flypos.mark = 1) /使用线性探测法查找 for (int i = 0;i AddString(str); else m_strBCity1 = ; m_strBCity2 = ; 14 西华大学数学与计算机学院课程设计说明书 m_nBYear1 = 0; m_nBYear2 = 0; m_nBMonth1 = 0; m_nBMonth2 = 0; m_nBDay1 = 0; m_nBDay2 = 0; m_nBHour1 = 0; m_nBHour2 = 0; m_nBMinute1 = 0; m_nBMinute2 = 0; m_nBPrice = 0; m_nBSit = 0; m_strBCode = ; (CComboBox*)GetDlgItem(IDC_BCOMBOX)-ResetContent(); m_nFindFlightCount = 0; (CComboBox*)GetDlgItem(IDC_BCOMBOX)-SetCurSel(0); UpdateData(FALSE); 2.进行订票操作 void CBookDlg:OnBnClickedOk() UpdateData(); char strID50; char strName20; /输入的合理性判断 if (m_strBFlightNum = ) MessageBox(航班号为空, 提示); (CEdit*)GetDlgItem(IDC_BFLIGHTNUM)-SetFocus(); return; if (CEdit*)GetDlgItem(IDC_BNAME)-GetWindowText(strName, 20) = 0) 15 飞机订票系统 MessageBox(姓名为空,提示); (CEdit*)GetDlgItem(IDC_BNAME)-SetFocus(); return; if (CEdit*)GetDlgItem(IDC_BID)-GetWindowText(strID, 50) = 0) MessageBox(身份证号为空, 提示); (CEdit*)GetDlgItem(IDC_BID)-SetFocus(); return; if (m_nFindFlightCount = 0) /当航班不存在的情况 提示); MessageBox(该航班不存在, (CEdit*)GetDlgItem(IDC_BFLIGHTNUM)-SetFocus(); (CEdit*)GetDlgItem(IDC_BFLIGHTNUM)-SetSel(0, -1); return; if (theApp.m_Flym_nFindFlightPos(CComboBox*)GetDlgItem(IDC_BCOMBOX)-GetCurSel().sit GetCurSel().Room) for(int j = 0; j GetCurSel().sit; j+) if (strID = theApp.m_Flym_nFindFlightPos(CComboBox*)GetDlgItem(IDC_BCOMBOX)-GetCurSel().Questj.ID) /当航班存在,但是客户已经购票的情况 MessageBox(该客户已购买了该航班机票, 提示); (CEdit*)GetDlgItem(IDC_BID)-SetFocus(); 16 西华大学数学与计算机学院课程设计说明书 (CEdit*)GetDlgItem(IDC_BID)-SetSel(0, -1); return; else /当航班存在,但是满客的情况 MessageBox(该航班已满, 提示); (CEdit*)GetDlgItem(IDC_BFLIGHTNUM)-SetFocus(); (CEdit*)GetDlgItem(IDC_BFLIGHTNUM)-SetSel(0, -1); return; for (int k = 0; k GetCurSel().Room; k+) /订票的数据处理 if(theApp.m_Flym_nFindFlightPos(CComboBox*)GetDlgItem(IDC_BCOMBOX)-GetCurSel().Questk.mark = 0) theApp.m_Flym_nFindFlightPos(CComboBox*)GetDlgItem(IDC_BCOMBOX)-GetCurSel().Questk.Name = strName; theApp.m_Flym_nFindFlightPos(CComboBox*)GetDlgItem(IDC_BCOMBOX)-GetCurSel().Questk.ID = strID; theApp.m_nBookNumber+; CTime time = CTime:GetCurrentTime(); CString str1; str1.Format(%d%d%d%d%d%d, time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute() , theApp.m_nBookNumber); theApp.m_Flym_nFindFlightPos(CComboBox*)GetDlgItem(IDC_BCOMBOX)-GetCurSel().Questk.Number = str1; 17 飞机订票系统 theApp.m_Flym_nFindFlightPos(CComboBox*)GetDlgItem(IDC_BCOMBOX)-GetCurSel().Questk.mark = 1; theApp.m_Flym_nFindFlightPos(CComboBox*)GetDlgItem(IDC_BCOMBOX)-GetCurSel().sit+; m_nBSit = theApp.m_Flym_nFindFlightPos(CComboBox*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字智慧方案某大型集团管控信息化战略规划项目系列之蓝图设计方案–基础设施架构BPIT运营模式
- 数字智慧方案建筑工地智慧消防解决方案上海曼斯克物联网
- 2024年工程瑞雷波仪项目投资申请报告代可行性研究报告
- 仪表工试题(中级)练习试卷附答案
- MySQL数据库应用技术课件:数据库设计案例
- 3DS MAX室内效果图制作课件:基础建模
- 创新创业教育融入管理类专业教育的方法研究
- 职业资格-计算机基础及MS Office应用真题库-5
- 目标导向的财务管理试题及答案
- 专技中级考试试题及答案
- 超声引导下的星状神经节阻滞
- 天津师范大学与韩国世翰大学入学综合素质题目
- MOOC 学术英语写作-东南大学 中国大学慕课答案
- 中小学学习《民法典》主题班会精品模板ppt
- 【地理】2011年高考真题-文综地理福建卷解析版
- 企业环境保护管理制度汇编
- 暖通空调设备安装施工重难点分析及解决方案
- 地铁盾构管片常见质量问题分析
- 消防维护与保养(通用)ppt课件
- 浙江理工大学研究生培养方案专家论证意见表
- T∕CADERM 3033-2020 创伤中心创伤复苏单元内医师 站位及分工规范
评论
0/150
提交评论