




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要:随着时代的不断进步,人们出行次数增加,那么一个火车站怎样才能快捷高效的为乘客们服务变成了一个很重要的问题。伴随着电脑的普及,运用电脑进行数据的保存与管理已经成为一件再寻常不过的事情,因此建立一个火车票查询预订系统将会是一个很好的解决方法。一个火车票查询预订系统的设计可以使工作人员实现电脑管理,减轻工作量,并且可以节约人力和物力,从而使得火车票管理更加的便捷和高效。一个火车票查询预订系统应该有火车票的查询,添加或删除,管理员的管理等功能。关键字:火车票查询;火车票预订;管理员管理;便捷;高效1 课题综述1.1.1 课题来源11.2 程序所实现的功能1软硬件运行环境及开发工具12 系统分析1
2、.2.1 主要模块功能1功能模块图13 系统设计1.3.1 数据库设计13.2 火车票信息处理对话框的设计13.3 火车票销售对话框的设计错误!未定义书签。4 代码编写4.4.1 命令按钮的过程代码添加方法错误!未定义书签。4.2 具体代码15 程序调试3.5.1 上机过程中出现的问题和解决方案15.2 程序的扩展方案16 程序运行界面1.1课题综述1.1 课题来源本次软件实习将用C#制作一个火车票查询预订系统,具有一般系统的数据处理功能,如数据录入、增加、修改、删除等。1.2 程序所实现的功能本系统通过C#Winforms技术完成的功能如下:1可以实现火车票信息的增加、删除。2可以实现火车票
3、的基本信息的浏览。3可以实现火车票的预订及预订信息的删除、修改4管理员登录密码的修改本次软件设计的运行环境:WindowsXP操作系统,MicrosoftVisualStudio2005以上编译环境。开发工具为C#和AccessC#既述:MicrosoftVisualC#2005读作C#是一种编程语言,它是为生成在.NETFramework上运行的多种应用程序而设计的。C#简单、功能强大、类型安全,而且是面向对象的。C#凭借它的许多创新,在保持C样式语言的表示形式和优美的同时,实现了应用程序的快速开发。VisualStudio支持VisualC#,这是通过功能齐全的代码编辑器、项目模板、设计器
4、、代码向导、功能强大且易于使用的调试器以及其他工具实现的。通过.NETFramework类库,可以访问多种操作系统服务和其他有用的精心设计的类,这些类可显著加快开发周期。Access概述:Access是微软公司推出的基于Windows的桌面关系数据库管理系统RDBMS,是Office系列应用软件之一。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作标准化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。12系统分析2.1主要模块功能1增加火车
5、票记录模块:用于将新的火车票信息添加到火车票基本信息表中。2删除火车票记录模块:用于删除火车票基本信息表中的火车票信息。3刷新火车票记录模块:增加记录和删除记录完成后点次按钮更新。4增加火车票预定记录模块:用于预订火车票信息。5删除火车票预定记录模块:用于删除预订火车票信息。6修改密码模块:用于修改后台管理员登录密码信息。7查询火车票模块:用于客户查询所需的火车票信息。该系统的功能模块图如下列图所示:图2-1模块图3系统设计3.1 数据库设计“出版图书基本创建一个“图书出版管理系统”数据库,含有三个数据表:信息”、“图书分类”、“图书出售信息”。具体格式如下表:表3-1“Book”数据表结构字
6、段大小索引name文本50无否phone文本20无否shenfen文本50无无trainnum文本50后(启重里)无neednum数字长整型后(启重里)无hard是/否是/否无无soft是/否是/否无无booktime日期/时间日期/时间无无ID自动编号自动编号后(启重里)无3-2“entry”数据表的结构字段名称字段类型字段大小索引必须填写adminnum文本50有尢重复J否admincode文本50有否表3-3“Ticket字段名称字段类型索引必须填写ID自动编号长整型有侑重受)trainnum文本50后(启重里)否date文本50无否startpos文本50无否starttime日期/时
7、间无destination文本50无否reachtime文本50无否hardleft数字长整型无否hardcost货币无否Softleft数字长整型无否softcost否3.2 图书出版基本信息处理对话框的设计图书出版基本信息处理对话框的界面如下列图所示:i图3-1火车票查询信息对话框标签控件的属性如表3-4所小。表3-4标签对象的基本属性ID标题内容Textbox3TextboxlTextbox2RadiobottomlRadiobottom2Datagridviewl火车发车日期火车发车地火车目的地软铺硬座显示查询信息3图3-2火车票预订信息对话框表3-6编辑框对象的基本属性Textbox
8、l预订火车发车日期Textbox2火车出发地Textbox3火车目的地Textbox4火车车次Textbox5预订者联系Textbox6E_mailTextbox7真实Textbox8身份证Comboboxl预订火车票类型Radiobottoml软铺Radiobottom2硬座诲力件法信息忸庄送信息.:修理哲理员密旧圜-I己预订火至票客户信总车次姓名*系。色身弁定需要蟹量强|1110dfghd5dfgds心如心1FalseAHOH声皮亚1Fil«AHO<l±g退心后1¥工二口ZDO9-12-?3£1£1陵有装L5BB3n?39533WTT
9、S8S:iBPraia£00?12ZiA1W胡若12D»1:94H£R3,劲/对就AUC314S1112311均S用降沔订值言图3-3火车票后台管理信息对话框表3-7编辑框对象的基本属性Datagridviewl显不预订信息Bottoml删除预订信息Bottom2关闭Toolstripl功能对话框按钮Toolstripbottoml打开添加车次信息对话框Toolstripbottom2打开修改车次信息对话框Toolstripbottom3打开修改管理员密码对话框4图3-4火车票后台管理信息对话框表3-8编辑框对象的基本属性Textboxl预
10、订火车发车日期Textbox2火车车次Textbox3火车发车地Textbox4火车软铺票价Textbox5火车目的地Textbox6火车硬座票价Textbox7软铺数量Textbox8发车时间Textbox9硬座数量Textbox10到站时间Bottoml确定提交7日朗发车地裳军近间目的地到站时问B120ZC09-1Z-23杭邦11:00:00宁波12:00;00A12C2009-12-24甘11:00.00于波12:30:00MW2509-12-3杭州11:00:00貂兴L1;40:00诵定修改提交毗除记录美闭图3-5火车票后台管理信息对话框表3-9编辑框对象的基本属性Datagridvi
11、ewl显示火车票信息Bottoml提交修改信息Bottom2删除所选择的记录Bottom3关闭请输入登录帐号谙输入原登录变回i瞬入新密均谐再次输入新峦同确定关闭图3-6火车票后台管理信息对话框表3-9编辑框对象的基本属性textboxl输入登录帐号textboxl输入原登录密码textboxl输入新登录密码textboxl再次输入新登录密码Bottoml确定提交修改信息Bottom2关闭对话框4代码编写具体代码“查询火车票记录”命令按钮的过程代码代码:privatevoidcheck_Click(objectsender,EventArgse)if(textBox3.Text=string.E
12、mpty)MessageBox.Show(this,"请输入日期时间!","PhoenixInformation:MessageBoxButtons.OK,MessageBoxIcon.Exclamation);return;if(textBox1.Text=string.Empty)MessageBox.Show(this,"请输入发车地点!","PhoenixInformation:MessageBoxButtons.OK,MessageBoxIcon.Exclamation);return;if(textBox2.Text=st
13、ring.Empty)MessageBox.Show(this,"请输入目的点!","PhoenixInformation:MessageBoxButtons.OK,MessageBoxIcon.Exclamation);return;if(radioButton1.Checked=false&&radioButton2.Checked=false)MessageBox.Show(this,"请选择车票类型!","PhoenixInformation:MessageBoxButtons.OK,MessageBoxIco
14、n.Exclamation);returnif(i>0)this.dataGridView1.Columns7.Visible=truethis.dataGridView1.Columns8.Visible=truethis.dataGridView1.Columns9.Visible=truethis.dataGridView1.Columns10.Visible=truei+;Stringconnstring="provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb"OleDbConnectionconn=newOl
15、eDbConnection(connstring);conn.Open();Stringcommstring="select*fromTicketwheredate='"+this.textBox3.Text+"'andstartpos='"+this.textBox1.Text+"'anddestination='"+this.textBox2.Text+OleDbCommandcommd=newOleDbComman(dcommstring,conn);OleDbDataAdaptermya
16、dap=newOleDbDataAdapter();myadap.SelectCommand=commd;DataSetmyset=newDataSet();myadap.Fill(myset,"Ticket");this.dataGridView1.DataSource=myset.Tables"Ticket"conn.Close();if(this.radioButton1.Checked=false)/显示选择的车票类型及价格this.dataGridView1.Columns9.Visible=false;this.dataGridView1.C
17、olumns10.Visible=false;elsethis.dataGridView1.Columns7.Visible=false;this.dataGridView1.Columns8.Visible=false;“预定火车票”命令按钮的过程代码如下所示:privatevoidbookdata_insert()intticketnumber=Convert.ToInt32(this.label6.Text);stringdatastring="provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb"Stringdata
18、string1="insertintoBook(booktime,name,phone,shenfen,trainnum,neednum,hard,soft) values('"+ this.label1.Text +in in+ this .label9.Text +"','"+ this .label7.Text +"','"+ this.label19.Text +"''"+this .label2.Text +"','&quo
19、t;+ this .label6.Text +"','-1','0')"String datastring2 ="insert into Book(booktime,name,phone,shenfen,trainnum,neednum,hard,soft) values('"+ this.label1.Text +in in+ this .label9.Text +"','"+ this .label7.Text +"','"+ th
20、is.label19.Text +"''"+this .label2.Text +"','"+ this .label6.Text +"','0','-1')"OleDbConnection data_insert =new OleDbConnection (datastring);data_insert.Open();OleDbCommandinsertcomm=newOleDbComman(d);insertcomm.Connection=data_inser
21、t;if(type=false)insertcommmandText=datastring1;elseinsertcommmandText=datastring2;insertcomm.ExecuteNonQuery();String datastring3 =update Ticket set hardleft=hardleft-'+ chuandiboBox1.Text + "' where trainnum='"String datastring4 =boBox1.Text + "' where trainnum='&
22、quot;+ chuandi.textBox5.Text +update Ticket set softleft=softleft-'+ chuandi.textBox5.Text + chuandiOleDbCommandupdatecomm=newOleDbComman(d);updatecomm.Connection=data_insert;if(type=false)updatecommmandText=datastring3;elseupdatecommmandText=datastring4;updatecomm.ExecuteNonQuery();data_insert.
23、Close();“修改火车票记录”命令按钮的过程代码如下所示:privatevoidbutton1_Click(objectsender,EventArgse)stringstr=this.dataGridView1.CurrentRow.Cells"Column1".Value.ToString();Stringconnstring="provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb"OleDbConnectionconn=newOleDbConnection(connstring);conn.Op
24、en();Stringcommstring="updateTicketsettrainnum='"+this.dataGridView1.CurrentRow.Cells"Column2".Value+"',date='"+this.dataGridView1.CurrentRow.Cells"Column3".Value+"',startpos='"+this.dataGridView1.CurrentRow.Cells"Column4&quo
25、t;.Value+"',starttime='"+this.dataGridView1.CurrentRow.Cells"Column5".Value+"',destination='"+this.dataGridView1.CurrentRow.Cells"Column6".Value+"',reachtime='"+this.dataGridView1.CurrentRow.Cells"Column7".Value+&quo
26、t;',hardleft='"+this.dataGridView1.CurrentRow.Cells"Column8".Value+"',hardcost='"+this.dataGridView1.CurrentRow.Cells"Column9".Value+"',softleft='"+this.dataGridView1.CurrentRow.Cells"Column10".Value+"',softcost=
27、'"+this.dataGridView1.CurrentRow.Cells"Column11".Value+"'whereID="+str;OleDbCommandcommd=newOleDbComman(dcommstring,conn);commd.ExecuteNonQuery();conn.Close();dataconn();MessageBox.Show("修改成功!");“删除预订记录”按钮的过程代码如下所示:privatevoidbutton2_Click(objectsender,Even
28、tArgse)stringstr=this.dataGridView1.CurrentRow.Cells"Column1".Value.ToString();MessageBox.Show(this,"确定删除该条预订信息?","PhoenixInformation:MessageBoxButtons.OK,MessageBoxIcon.Exclamation);Stringconnstring="provider=Microsoft.Jet.OLEDB.4.0;DataSource=db1.mdb"OleDbConnect
29、ionconn=newOleDbConnection(connstring);conn.Open();Stringcommstring="deletefromBookwhereID="+str;OleDbCommandcommd=newOleDbComman(dcommstring,conn);commd.ExecuteNonQuery();conn.Close();preseant_data();45程序调试5.1 上机过程中出现的问题和解决方案 1在编写修改火车票信息的代码中,通过对datagridview1中的数据操作,从而修改数据库中的记录时,程序出现“标准表达式对
30、应数据类型有误”,通过网上搜索和自己反复修改,最后程序正确。 2对于不同窗体间的数据传输时所运用的不同方法进行尝试,出现错误后,查阅书籍解决。5.2 程序的扩展方案 1程序界面过于单调,可以通过更改背景颜色或添加背景图片进行解决。 2添加服务器与客户端相连模块。 3增加输入格式检测,放置输入不同数据类型。16程序运行界面在打开“图书出版管理系统.exe”后,将出现下列图所示界面:图6-1主窗体点击进入查询系统,即出现火车票信息查询界面:9图6-2火车票信息查询图6-3火车票预定界面当点击“确定并提交预订信息”选择框时,弹出“确认信息对”话框:预订本次日期;频讨车禀找车地:杭州汝订军禀目的地:第
31、兴预订车禀类型:硬座强江车票数量:4联系方式;其实姓名:除身份证:23123234354354354总共需支付工64元图6-4预订确认信息对话框图6-5后台管理界面附录参考文献1张庆华等编著零基础学VisualC#2005北京:机械工程出版社.200123456张等编著心得体会学号07057335吴仁克对于本次软件实习,多少有些收获。这次软件实习做的系统是用C#语言编写的。之前没有接触过C#,但有接触过C+和VB。由于需要,特地借了几本书,其中一本零基础学VisualC#2005学习了一下,了解到C#的控件功能与VB相似,书中前面的基础知识与C+的内容有些相似。同时还看了书后的几个实例编程,对
32、于编程我是比较薄弱的,很少投入这方面学习,另外很少动手。这次实习我主要是做简单类的窗体,比方多个窗体的分配及弹出界面问题,在编写过程中遇到问题查阅资料。从没有碰过C#到略懂一些已经是质的飞跃了,但还要认真研究学习。在设计系统首先要对整体框架进行构思,对每一个功能进行实现这个很重要。并且最重要的是数据库的基本操作,包括Connection、Command、Datareader、Dataset和Dataadapter对象,添加数据、修改数据、删除数据和查询数据,还有就是DATAGRIDVIEW控件的使用。这个系统是用ACCESS建立连接数据库,了解到了一些关键的操作语句,C#中有专门的语句对数据库
33、进行操作。因此对数据库有初步的认识。在这里面,让我感受最深的还是一种自学精神,多思考,多发现问题,然后经过自己努力汲取新的知识或者询问老师同学来解决问题,多和同学交流问题。对于这样一种学习途径,我觉得收益颇深。总之,通过本次软件实习,知道要多动手解决问题,不要想一步把所有的问题都解决,要需循序渐进,把理论知识运用要实践中;同时为以后的软件系统设计打下基础,让自己更好地学习编程和软件设计。心得体会在完成这次短学期的任务用c#编写一个winform模式的火车票查询预订系统之后,这个短学期也结束了。在这期间,通过实践编程,我对C#以及数据库的一些操作有了一个更加具体的了解,在大二下学期开学时,便已看
34、过C#和数据库操作方面的书籍,但一直没有付之于实践,起先觉得在个很简单,但真当实践时,却遇到了不少问题,包括不同窗体之间的数据传输,数据库与窗体间的数据传输的问题等。有些问题让我想了整个下午都想不出为什么,最后发现原来是自己的编程习惯不好或者是有一些语法规则是书上没有提到,需要自己去摸索的。当然碰壁也是一个学习的过程,每次当我遇到问题或者我不懂的地方,我都会去翻看C#和数据库方面的书籍和去GOOGLE搜索我所遇到问题的解决方法,而在在个过程中,我学到了很多其他的东西,而且对我所遇到的问题方面的知道有了更深一步的了解。每次解决一个问题或者学到一个我个人觉得有价值的东西,我都会很兴奋。在次短学期实践的过程,让我体会到了编程时所需要的耐心、决心和良好的编程习惯。以前编写的都是一些单个文件的简单代码,不需要考虑文件与文件之间的关系,因此编程习惯没有养好,变量乱定义等毛病一直都有。与此同时,在是第一个和同学一起合作编写的软件程序,虽说各人能力不同,但分工明确,齐心协力完成了在项任务,第一次体会到了团队编程的精神。尽管完成了在次短学期任务,但还是有遗憾,本打算实现客户端与服务器的链接,但由于时间及小组成员对于C#和数据库的掌握能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 如何通过农产品电商实现增值服务试题及答案
- 安全工程师考试实务技能试题及答案
- 量子计算在金融风险模拟中的风险分析与控制策略案例分析研究报告
- 电子病历系统在医院信息化过程中的患者健康教育优化研究
- 深海风电场建设报告2025:海上风能资源评估与海上风电场运维成本
- 技规考试题及答案
- 家具产品的市场需求确认与设计优化考题试题及答案
- 施工安全教育思路试题及答案
- 教师教育教学反思实施考核试题及答案
- 家具设计中的风格演变研究试题及答案
- 上海滩钢琴简谱数字双手乐谱
- 2024年放射工作人员放射防护培训考试题及答案
- 《第七天》读书分享交流会
- 比亚迪财务分析
- 2021年中国中车公司组织架构和部门职能
- 工程设计资质专业人员专业对照表
- 开放大学办学组织体系建设的困境与突破路径
- 立式机组轴线调整及瓦间隙计算
- 胸痛中心培训课件胸痛中心的时钟统一及时间管理胸痛中心时间节点管理要求
- 重症肺炎患者护理查房PPT
- 教育调查报告3000字小学
评论
0/150
提交评论