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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

VC++火车票课设MFC.docx

1、VC+火车票课设MFC火车票订票系统1.课程设计目的在如今这个信息时代,人们的出行以及旅游等都选择铁路旅行方式,铁路火车订票 系统必须能处理现在大量的售票数据信息,列车的到达时间以及离站时间,因此采用计 算机软件来处理火车票售票,订票信息也是必不可少的,火车票订票系统处理信息的准 确性和及时性是系统的必要性能,当今火车票可谓一票难求,所以系统的实时性要求也 至关重要。该火车票订票管系统的功能主要是根据不同旅客的要求提供不同的查询订票 方式,实现火车票订票的信息化和智能化管理,从而减少了车站售票人员的工作量。通 过该火车票订票管理系统,火车站管理人员可以实现对火车票信息的输入、 订票、查询、修改

2、等操作,在后台采用了 Microsoft Office Access 2003数据库对售票的信息进行存储 和管理,从而也满足了对数据安全性的考虑,该系统也拥有基本了火车票订票系统所需的 基本功能。2.功能描述该火车票订票系统实现了预定火车票的功能和火车票维护两个功能:(1) 预订火车票在预订火车票功能模块中包括了根据车次查询订票和根据车站查询订票的功能, 在这个功能模块中用户能根据自己的需要进行根据车次查询订票和根据车站查询订票等 功能。(2) 火车票维护在火车票维护功能模块中可以实现对火车票的票数,列车的车次,列车的始发车站 和到达车站,始发车站的发车时间到达终点站的时间,途中经历几天到达终

3、点站,起点 站和终点站之间的里程和硬座的票价,软座的票价,硬卧和软卧的票价的浏览。在火车 票维护中还可以进行火车票信息的添加,修改,删除等功能。在添加火车票功能中,用 户可以添加列车的基本信息,其中包括列车车次,列车始发车站和到达车站,始发车站 的发车时间到达终点站的时间,途中经历几天到达终点站,起点站和终点站之间的里程 和硬座的票价,软座的票价,硬卧以及软卧的票价,然后单击确定按钮即可向数据库中 添加火车票信息;对火车票的添加和删除对话框中选中要删除的火车票信息既可删除该火车票的信息,方便快捷;在修改功能对话框中也可以实现对列车的车次,列车的始发 车站和到达车站,始发车站的发车时间到达终点站

4、的时间,途中经历几天到达终点站, 起点站和终点站之间的里程和硬座的票价,软座的票价,硬卧和软卧的票价的修改,实 现了火车票信息的智能化管理。3方案论证3.1总体设计3.1.1功能框图火车票订票系统功能框图:图1.火车票订票系统功能框图3.2详细设计3.2.1数据库设计在该火车票订票系统中采用了 Microsoft Office Access 2003 数据库,进行对火车票售票的信息进行存储和管理,方便简单但是却满足了对数据的保存和安全的需求。(1)Access数据库的创建首先打开Microsoft Office Access 2003数据库,单击文件菜单中的新建选项,创建 一个空数据库文件并且

5、选择将该数据库将要保存的位置, 单击创建后该数据库就创建好了,然后在弹出的对话框中选择使用设计器创建表,为该表的每一个字段输入一个名称 并且选择每个字段的属性,在将所需的字段输入完成后,单击右上角的关闭按钮,此时 系统会弹出一个对话框,提示用户对刚刚编辑的数据库文件进行保存,并且选择数据库 文件保存的位置,此时系统又会弹出一个对话框,提示用户输入刚才所建立的数据库的 名称,然后在单击确定按钮,一个空白的数据库就建立好了。(2)添加数据库信息创建两个表分别为Station表和TrianNo,向数据库中的两个表添加火车票的信息可以 通过火车票订票系统中的火车票维护进行添加,也可以在数据库中直接添加

6、所需的信 息。数据库如图2和图3所示:图2.数据库Station 表图3.数据库TrainNo表(3)创建ODBC数据源1Windows中的ODBC组件是出现在系统的 控制面板”管理工具中,如图所示。 双击ODBC图标,进入ODBC数据源管理器。运行ODBC组件,进入ODBC数据源管 理器。2单击添加”按钮,弹出有一驱动程序列表的 创建新数据源”对话框,在该对话框 中选择 Microsoft Access Driver。3单击完成”按钮,进入指定驱动程序的安装对话框,数据源名称设为 学生信息管理系统”单击选择”按钮将本实验中的数据库。4单击确定”按钮,刚才创建的用户数据源被添加在 “ODBC数

7、据源管理器”的用户 数据源”列表中。3.2.2程序主界面设计(1)程序框架设计:启动Visualc+6.0,新建一个MFC.exe程序。打开Visualc+6.0后在菜单栏中单击文件菜单,在文件菜单中选择 新建 选项,弹出一个新建对话框,在新建对话框中 选择工程选项卡,在工程选项卡中选择 MFC AppWizard,在工程名称中填入TrainTicket, 在存储栏中选择刚刚所创建的 MFC文件所需要存放的位置即 课程设计。单击确定按钮后又弹出一个 MFC应用程序向导的创建向导,选择创建一个单文档,然后单 击下一步,在向导的第2步对话框中加入数据库的支持,选中 数据库查看使用文件支持”项,单击

8、数据项按钮,弹出数据项对话框,从中选择 ODBC的数据源“DatabaseExample For VC+ ” .保留其他默认选项,单击0K按钮,弹出 “Select Database Tables 对话框,从中选择要使用的表 Train Tickets。单击OK按钮,又回到了向导的第2步对 话框。单击完成按钮。最后,单击 完成”按钮,完成程序框架设计。(2)菜单设计在刚刚生成的单文档中 ResourceView菜单中选择 Menu选项,单击 Menu的IDR_MAINFRAME,在弹出的单文档中删除初始的单文档带有的菜单选项,然后像菜 单中添加预定火车票和火车票维护两个菜单,然后在预定火车票的

9、子菜单中添加根据车 次和根据车站订票两个子菜单,在火车票维护的菜单下添加添加 删除子菜单和关于子菜 单,然后在主界面中添加一个静态文本框,右键单击静态文本框的属性,在标题栏中输 入火车票订票系统”,接着火车票订票系统的主界面的菜单设计就完成了。该系统的主 界面图4所示:图4.火车票订票系统主界面主界面的初始化代码如下:void CTrai nTicketDlg:O nPai nt() if (IsIco ni c()CPai ntDC dc(this); / device con text for paintingSen dMessage(WMCONERASEBKGND, (WPARAM) d

10、c.GetSafeHdc(), 0); in t cxIco n = GetSystemMetrics(SM_CXICON);in t cyIco n = GetSystemMetrics(SM_CYICON);CRect rect;GetClie ntRect(& rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cylcon + 1) / 2 dc.DrawIc on(x, y, m_hlc on);elseCDialog:O nPai nt(); 3.2.3车次查询订票设计在根据车次查询订票界面中

11、可以根据查询列车的车次进行订票, 在该界面中添加了一个静态文本框和两个GroupBox以及一个列表控件,在两个 GroupBox控件中添加了 十个静态文本框和十个编辑框,静态文本框用以显示火车票的各种信息,编辑框用以显 示和接收用户的输入信息,三个按钮控件分别为查询,返回和确认订票。各个控件的属 性如表1所示:表1.车次查询订票界面控件属性表控件ID号变量名类型IDC_EDIT_TRAIN_NOm_Tria n_NoCSt ingIDC_EDIT_TRAINNOm_Tria nNoCSt ingIDC_EDIT_TIMEm_TimeCSt ingIDC_LIST1m_List1CListCtr

12、lIDC_EDIT_TERMINUSm_Termi nusCSt ingIDC_EDIT_TRAIN_NOm_Tria n_NoCSt ingIDC_EDIT_STARTSTATIONm_StartStati onCSt ingIDC_EDIT_TYPEm_TypeCSt ingIDC_EDIT_HARDSEATm_HardSeatfloatIDC_EDIT_SOFTSEATm_SoftSeatfloatIDC_EDIT_SOFTSLEEPERm_SoftSleeperfloatIDC_EDIT_HARDSLEEPERm_HardSleeperfloat在根据车次订票中,调用 CTrainNo

13、QueryDlg:OnlnitDialog()函数,对对话框进行初始化,然后然后在列表框中添加车次,站次,站名,至V达时间,开车时间,运行时间, 天数,里程,硬座,软座,硬卧和软卧等信息,然后在数据库中读出这些信息在相应的 控件之中显示。当订票者查询到所需的车次时,单击对话框中的确认订票按钮,即可成 功订此次列车车票,当订票成功后系统会弹出一个消息框提示用户 恭喜您,您已经订票成功”根据车次预定火车票的功能代码如下:BOOL CTrai nN oQueryDlg:O nlni tDialog() CDialog:O nlni tDialog();LVCFMT_LEFT, 50, 0);LVCF

14、MT_LEFT, 40, 1);LVCFMT_LEFT, 80, 2);/ TODO: Add extra initialization here m_List1.l nsertColum n(0, 车次,m_List1.l nsertColum n(1, 站次,m_List1.I nsertColum n(2, 站名,m_List1.l nsertColum n(3.到达时间,LVCFMT_LEFT, 70, 3);m_List1.l nsertColu mn (4,开车时间,LVCFMT_LEFT, 70, 4);m_List1.I nsertColum n(5,运行时间,LVCFMT_L

15、EFT, 70, 5);m_List1.I nsertColum n(6,天数,LVCFMT_LEFT, 40, 6);m_List1.I nsertColum n(7,里程,LVCFMT_LEFT, 40, 7);m_List1.I nsertColum n(8,硬座,LVCFMT_LEFT, 65, 8);m_List1.I nsertColum n(9,软座,LVCFMT_LEFT, 65, 9);m_List1.I nsertColum n( 10,硬卧,LVCFMT_LEFT, 65, 10);m_List1.I nsertColum n(11,软卧,LVCFMT_LEFT, 65,

16、 11);return TRUE;/ return TRUE uni ess you set the focus to a con trolvoid CTrai nN oQueryDlg:O nButto n1()/ TODO: Add your con trol no tificatio n han dler code hereMessageBox(恭喜您,您已经订票成功!!,NULL, MB_OKCANCEL);324车站查询订票在根据车站查询订票界面中可以根据查询列车所途径的车站进行订票,在该界面中 添加了一个静态文本框以及一个列表控件,静态文本框用以显示火车所途径的车站信 息,编辑框用

17、以显示和接收用户的输入信息,列表框用以显示列车的各个信息,提供给 用户参考,在根据车站订票功能中,调用 BOOL CStationQueryDlg:OnlnitDialog()函数,对对话框进行初始化,然后然后在列表框中添加车次,类型,始发站,始发时间,查询 站,开车时间,终点站,全程运行,里程等信息,然后在数据库中读出这些信息在相应 的控件之中显示。当订票者查询到所需的车站时,单击对话框中的确认订票按钮,即可 成功订此次列车车票,当订票成功后系统会弹出一个消息框提示用户 恭喜您,您已经订票成功! ! ”根据车站订票的控件属性如表2所示:表2.车站查询订票界面控件属性表控件ID号变量名类型ID

18、C_EDIT_STATION_NAMEm_Statio nN ameCStri ngIDC_LIST1m_List1CListCtrl根据车站预定火车票的功能代码如下:BOOL CStatio nQueryDlg:O nln itDialog()CDialog:O nlni tDialog();/ TODO: Add extra initialization herem_List1.I nsertColum n(0.车次,LVCFMT_LEFT, 50, 0);m_List1.I nsertColum n(1,类型,LVCFMT_LEFT, 70, 1);m_List1.I nsertColu

19、m n(2,始发站,LVCFMT_LEFT, 80, 2);m_List1.I nsertColum n(3.始发时间,LVCFMT_LEFT, 70, 3);m_List1.I nsertColu mn (4,到站时间,LVCFMT_LEFT, 70, 4);m_List1.I nsertColum n(5,查询站,LVCFMT_LEFT, 80, 5);m_List1.I nsertColum n(6,开车时间,LVCFMT_LEFT, 70, 6);m_List1.I nsertColum n(7,终点站,LVCFMT_LEFT, 80, 7);m_List1.I nsertColum

20、n(8,全程运行,LVCFMT_LEFT, 70, 8);m_List1.I nsertColum n(9,里程,LVCFMT_LEFT, 50, 9);return TRUE; / return TRUE uni ess you set the focus to a con trol/ EXCEPTION: OCX Property Pages should return FALSEvoid CStatio nQueryDlg:O nButto n1()/ TODO: Add your con trol no tificati on han dler code hereMessageBox(

21、恭喜您,您已经订票成功!);325添加/删除火车票在添加/删除火车票信息功能框中提供了添加,修改和删除火车票信息,其中包括 车次,始发站,发车时间,终点站,到站时间,第几天到达,里程,类型,硬座每千米 的价格,软座每千米的价格,硬卧每千米的价格,软卧每千米的价格。在该功能中调用 void CAddStationDlg:OnButtonMake()函数,在函数体中进行 if()条件判断,如果m_StationName为空,即弹出提示消息框,站名不能为空; 反之if ()条件站名不为空则执行添加操作;火车票的修改操作与添加操作类是,选择要修改的火车票信息,然后 单击对话框中的修改按钮,弹出修改火车

22、票的对话框即可对火车票信息进行修改,修改 完成后单击确定按钮就完成了火车票信息的修改。删除火车票信息只需选择将要进行删 除的火车票,单击删除按钮即可完成对火车票的删除操作。在添加,修改和删除对话框 中的各个控件的属性如表3所示:表3.添加/删除火车票界面控件属性表控件ID号变量名类型IDC_COMBO_END_Hm_E ndTime_hCComboBoxIDC_EDIT_HARDSEATm_HardSeatfloatIDC_EDIT_HARDSLEEPERm_HardSleeperfloatIDC_EDIT_SOFTSLEEPERm_SoftSleeperfloatIDC_EDIT_SOFTS

23、EATm_SoftSeatfloatIDC_EDIT_TRAIN_NOm_Tria n_NoCSt ingIDC_EDIT_TYPEm_TypeCSt ingIDC_EDIT_TOTAL_MILEAGEm_Total_mileageintIDC_EDIT_TERMINUSm_Termi nusCSt ing其中实现添加/删除火车票信息的主要代码如下:void CAddStatio nDlg:O nButto nMake()/ TODO: Add your control notification handler code hereUpdateData(TRUE);if (m_Stati onN

24、 ame .I sEmpty()MessageBox(站名必须填写!,警告! , MB_0K);(CEdit *)GetDlgltem(IDC_EDIT_STATION_NAME)-SetFocus(); return;if (m_AdoCo nn .ExecuteSQL(_bstr_t)sqlStr)MessageBox(添加成功! , NULL, MB_OKCANCEL);elseMessageBox(添加失败!,警告! , MB_OKCANCEL);CDialog:O nOK();4.运行结果与分析(1)车次查询订票在根据车次查询订票界面中,用户只需要在查询的编辑框中输入需要查询的车次,

25、 然后单击查询按钮即可完成通过车次对火车票信息进行查询, 车票预定。车次查询订票如图5所示:L B(2)车站查询订票在根据车站查询订票界面中,用户只需要在查询的编辑框中输入需要查询的车站,然后单击查询按钮即可完成对途径该站的火车的火车票信息进行详细查询, 在查询的火车票信息中选择适当的火车,然后单击确认订票完成火车票预定。车站查询订票如图 6所示:车嘶鬧可ISE - 网返回11认订票车次1克型 雄发诂曲发时间到诂时间1幵车时间胃点诂 全起运行rrr图6.车站查询订票(3)添加火车票在主菜单中单击火车票维护,在弹出的子菜单中选择添加 /删除即可进行火车票的添加和删除操作,在其中还可以对火车票信息

26、进行修改,修改火车票信息只需单击修改 按钮,在弹出的对话框中对选择的火车票信息进行修改,修改完成后单击确定按钮,火 车票信息即修改成功。添加火车票信息如 7所示:图7.添加火车票信息(4)修改火车票信息如图8所示:图8.修改火车票信息(5)删除火车票信息如图9所示:履加刊除图9.删除火车票信息5.设计体会在为期两周的VC+程序课程设计的时间里,学到了很多东西。虽然在课程设计的 过程中,遇到了许多的困难,特别是在解决程序功能时候总是感到很迷茫,课设中问题 总是不断的出现,通过不断与同学之间的交流,慢慢的将问题解决,但是通过自己不断 的查阅这学期学习的Visual C+实用教程以及经过向同学和老师

27、请教过程中,找到了解 决功能实现的方法,虽然在其中遇到了失败,但是只要坚持不懈,总会解决面临的问题 通过这次设计火车票订票系统,对 Visual C+编程有了稍微进一步的了解;通过这次的 课程设计,明白了任何事要学会不仅要知其然,而且要知其所以然,做到严谨认真的态 度,这样才能更好完成课程设计。做事情首先要懂得实践,学会把书本上的理论用于实 践,只有在实践中才能找到更多隐藏的没有被发现的问题。这次通过课程设计锻炼了实 践能力,在以后遇到更大的难题时,会显得更加的从容,更加的有自信,这样才能有更 好的发展。在以后的工作学习中,一定要相互学习,不耻下问,方能达到事半功倍的效 果。俗话说:纸上得来终

28、觉浅,绝知此事要躬行。6.参考文献1 孙鑫,VC+深入详解M,电子工业出版社出版 2006.052 揣锦华,面向对象程序设计与 VC+,西安电子科技大学出版社 2005.023 贾振华,VC+程序设计项目实践,清华大学出版社 2010.034 林锦贤,林少丹,VC+程序设计基础,人民交通出版社,2009.09 管西京,深入体验VC+项目开发,清华大学出版社,2011.07附录:void CAddStatio nDlg:O nButto nM ake()/ TODO: Add your con trol no tificati on han dler code hereUpdateData(TR

29、UE);if (m_Stati onN ame .I sEmpty()MessageBox(站名必须填写!,警告! , MB_OK);(CEdit *)GetDlgltem(IDC_EDIT_STATION_NAME)-SetFocus();return;CStri ng sqlStr;sqlStr.Format(i nsert into Statio n( Trai nID, Stati onN ame, ArriveTime, LeaveTime, Stati onNum, Mileage,DayNum)values(%d,%s,%0.2d:%0.2d:00,%0.2d:%0.2d:00,

30、%d,%d,%d), m_ldAccTrai nID, m_Statio nN ame.GetBuffer(O), m_Arrive_h.GetCurSel(), m_Arrive_s.GetCurSel(),m_Leave_h.GetCurSel(),m_Leave_s.GetCurSel(),m_Stati onNum, m_Mileage, m_DayNum);if (m_AdoCo nn .ExecuteSQL(_bstr_t)sqlStr)MessageBox(添加成功! , NULL, MB_OKCANCEL);elseMessageBox(添加失败!,警告! , MB_OKCANCEL);CDialog:O nOK();BOOL CAddStatio nDlg:O nlni tDialog()CDialog:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2