《火车订票管理系统课程设计报告书.docx》由会员分享,可在线阅读,更多相关《火车订票管理系统课程设计报告书.docx(36页珍藏版)》请在三一办公上搜索。
1、课程设计课程名称SQL数据库系统课程设计题目名称火车订票管理系统专业班级学生学号指导教师年月日火车订票管理系统摘要:本文针对火车站的订票实际情况,按照软件工程的结构化设计思想,经过项目的可行性研究和需求分析、总体设计、详细设计,以与编码实现和调试等步骤设计开发了火车订票管理系统。并运用数据流图和数据字典、E-R图和数据库逻辑结构、层次图、系统流程图、以与程序流程图,对该系统的数据需求、数据库、系统软件结构、系统流程、以与处理过程等进行了分析和设计。工具软件利用VisualStudio2010软件和SQLServer2008数据库来设计这个火车订票管理系统,并用C#语言设计后台代码。该系统要解决
2、的是火车订票工作所要解决的问题,可以满足火车订票的基本要求,包括用户查询、订票、退票和管理员增加车票等几个方面的功能。关键词:订票管理;火车订票;SQLServer2008OrderingTicketsManagementSystemAbstract:AfteraIongtimeobservationofbookingatrainticketandfeasibiIityresearchofaonIinetrainticketbookingsystem,ihavebuildaonlineticketbookingsysteminthefollowingsoftwareeyeIe:requirem
3、entanalysis,architectureanddetaiIdesign,codingandtesting.Inthedesignphase,ipresentthesystemwithdatafollowchart,datadictionary,E-Rgraphic,databaselogicalstructure,andtypicaIUMLmodeIingfaciIitysuchasCIassdiagram,Activitydiagram,UsecasediagramandSequencediagram.ThisproductisdeveIopedinjava(theIatestjdk
4、1.6),andtheDBMSissqIserver2005expressedition.itsbuildtoheIpyoutobookatrainticketonIine.Onthiswebsite,youcaninquireticketinformation,bookaticketandrefundyourticket.Forthesupervisor,itprovidesadditionalright(protectedbyadminpriviIedge)tomaintainthesystemincludingtraindatacreating,importingandcIeaningu
5、pKeywords:Ticketingmanagement;Ticketsellingsystem;SQLServer2008学院计算机科学与技术系课程设计任务书1学院计算机科学与技术系本科课程设计成绩评定表21系统总体方案31.1 开发背景31.2 意义31.3 系统相关知识介绍32设计思路与主要步豚42.1系统需求42.2功能需求41.1.1. 2.1查询41.1.2. 购票51.1.3. 退票52.3数据库逻辑结构52.4数据库中的约束61.1.1 4.1主键约束61.1.2 2外键约束61.1.3 CHlCK约束71.1.4 DEFAULT约束71.1.5 长度约束73各功能模块和流程
6、图73.1 系统软件结构设计73.2 系统流程图84系统的详细设计124.1叠录界面124.2 游客模块134.2 .1列车信息查询134.3 .2网上用户注册144.3 用户模块154.3.1购票154.3.2退票174.3.3查看用户信息194.3.4用户修改密码204.3管理员模块205设计代码21总结31辞31参考文献31课程SQL数据库系统课程设计班级指导教师题目火车订票管理系统完成时间2014年12月1日至2015年1月1日主要容功能要求:1.游客功能模块:列车信息查询、用户注册。1.用户功能模块:列车信息查询、购票、退票、查看订单、查看用户信息、修改登录密码。3.管理员功能模块:
7、列车信息查询、购票、退票、查看订单、查看用户信息、修改登录密妈、增加车票。设计报告要求1 .封面2 .课程设计任务书3 .成绩评定表4 .课程设计报告:(1)系统总体方案(2)设计思路和主要步骤(3)各功能模块和流程图(4)系统详细设计(5)设计代码(6)总结和参考资料说明:学生完成课程设计后,提交课程设计报告与软件,要求文字通畅、字迹工整(也可打印),文字不少于3000字,并装订成册。版面要求一1 .题目用黑体三号,段后距18磅(或1行),居中对齐;2 .标题用黑体四号,段前、段后距6磅(或0.3行);3 .正文用小四号宋体,行距为固定值22磅;4 .标题按“1”、“1.1”、“1.1.1”
8、、“、“”顺序编号。上机时间安排期周一二三四五六日第15周-第18周指导时间地点上机时间学院计算机科学与技术系本科课程设计成绩评定表项目权重分值具体要求得分文献阅读与调查论证0.20100能独立查阅文献和从事其它调研活动;有收集、加工各种信息的能力设计质量0.30100设计合理、功能齐备,程序运行正常,实脸数据准确可靠;有较强的实标动手能力论文撰写质量0.20100设计说明书完全符合规化要求,用A4复印纸打印成文学习态度0.20100学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务学术水平与创新0.10100设计有创意,有一定的学术水平或实用价值总分评语:存在问题:等级:指导教
9、师:年月日火车订票管理系统1系统总体方案1.1 开发背景现在人们更多的使用火车作为出行交通工具,因此车票票务市场也在快速发展。人们希望车票销售手段也能相应地有所调整,并对如何能经济、方便和与时地购买到自己所需要的车票表现出极大的关注。随着社会的不断进步,国外铁路运输事业的飞速发展,各国铁路运营部门对票务管理的要求也在不断的提高,本系统就是针对这种日益增长的需求而进行开发的。1.2 意义随着铁路客运量大幅度的提高,国列车专线的增加,这些都对铁路的订票管理系统提出了更高的要求,所以要不断的完善更新铁路订票系统,提高铁路订票系统的工作效率。铁路运输系统中,订票系统是很重要的一个环节,要想提高整个铁路
10、运营部门的工作效率,就要先提高订票系统的工作效率和安全性,故而研发此系统,此系统能够为订票工作提供方便快捷的订票服务,广大的客以得到更好的票务服务。1.3 系统相关知识介绍(1) VisualStUdiO是微软公司推出的开发环境。是目前最流行的WindoWS平台应用程序开发环境。VisualStudio2010版本其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。(2) SQLServer2008在MiCroSOft的数据平台上发布,可以组织管理任何数据。可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中。可以对数据进行查询、搜索、同步、报告和分析之类的操作。数据可以
11、存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里。(3) C#(CSharP)是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于MiCrOSOft.NET平台的应用程序。使用简单的C#语言结构,这些组件可以方便的转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用。最重要的是,C#使得C+程序员可以高效的开发程序,而绝不损失C/C+原有的强大的功能。因为这种继承关系,C#与C/C+具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#o2设计思路与主要步骤2.1 系统需求对于一个
12、火车票订票管理系统,准确快捷的车次信息查询功能和方便简单的订票操作是十分必要的,因此系统必须为用户提供准确的车次信息和当前的车票状况,这也是火车票订票管理系统的最基本要求。客户端后台管理员要能够与时添加车票。所以结合实际情况,火车订票管理系统应满足以下需求:(D客户端界面清晰友好,达到一目了然的效果。(2)客户端能够方便的查询系统与简单明了的订票、退票操作。(3)防止用户重复订票、退票操作,影响系统数据的正确性。(4)服务器端提供信息完全可靠,时效性强。能够保证数据与信息的安全性。2.2 功能需求本网上售票系统应该具备如下功能:2. 2.1查询分为用户对个人叠录信息的查询,列车信息的查询和用户
13、对已订车票信息的查询。要求:(1)用户登录该系统后,可以查询到自己的个人信息和已经预定的车票信息。(2)对车次的查询,可以按照出发地和目的地对列车信息进行查询;(3)车次信息只允许用户查询,不能修改。通过查询系统,客户根据自己的需求找到满意的车次,登录系统后,便可以通过该系统购票。2.2.3.退票用户通过登录该系统,查询到自己已经预定的火车票,通过退票模块退去已购车票。2. 3数据库逻辑结构火车订票管理系统数据库中各个表格的设计结果如表27到2-4所示。表27车票信息表字段名数据类型是否为空车次char(10)否出发地nchar(10)否出发时间time(7)否目的地nchar(10)否到达时
14、间time(7)否车票数量int否车票价格float否出发日date否表2-2车票预订表字段名数据类型是否为空用户号nchar(10)否nchar(10)否char(18)否出发日date否车次char(10)否出发地char(10)否出发时间time(7)否目的地char(10)否到达时间time(7)否车票价格fIoat否表2-3管理员表字段名数据类型是否为空管理号nchar(10)否密码nchar(10)否表2-4用户表字段名数据类型是否为空用户号nchar(10)否char(4)否性别char(2)是号char(18)否密码nchar(10)否2.4数据库中的约束2.4.1 主键约束(
15、1)在车票信息表中,定义车次,出发地,出发时间,目的地,到达时间,出发日这个整体作为车票信息表的主键。相关代码如下:altertabIe车票信息表addconstraintpkprimarykey(车次,出发地,出发时间,目的地,到达时间,出发日)(2)在车票预订表中,定义用户号,号这个整体作为车票预订表的主键。(3)在管理员表和用户表中,分别将管理号和用户号作为各表的主键。2.4.2 2外键约束在车票预订表中,定义车次,出发地,出发时间,目的地,到达时间,出发日这个整体作为车票预订表的外键,参考车票信息表中的主键。相关代码如下:altertable车票预订表addconstraintfk1f
16、oreignkey(车次,出发地,出发时间,目的地,到达时间,出发日)references车票信息表(车次,出发地,出发时间,目的地,到达时间,出发日)2.4.3 CHlCK约束在用户表的性别字段,定义CHICK约束。规定性别在男、女中选值。相关代码如下:altertable用户表addconstraintCK_sexCheCk(性别in(女,男)2.4.4 DEFAULT约束在用户表的性别字段,定义DEFAULT约束。规定性别默认值为男。相关代码如下:altertabIe用户表addconstraintdf_sexdefault男for性别2.4.5 长度约束在车票预订表和用户表中,定义长度
17、为18位,相关代码如下:altertable用户表addconstraintCK_PIDCheCk(Ien(号)=18)3各功能模块和流程图3.1系统软件结构设计综合以上需求,本系统需要以下几个模块来支持:(D用户模块:用于用户注册,用户登陆,订票,退票,修改登录密码。(2)管理员模块:供后台管理员登录。用于添加车票信息。(3)游客模块:列车信息查询,用户注册。三个模块的关系如下:图3.1火车订票管理系统的层次图3.2系统流程图系统总体流程图如下图3.2所示。登录,确定访问权限图3.2系统用户权限的系统主程序流程图车次信息查询流程图如下图3.3所示。图3.3车次信息查询程序流程图订单信息查询流
18、程图如下图3.4所示。图3-4订单信息查询流程图退票模块处理流程如下图3.5所示。4.1登录界面开始图3.5退票模块程序流程图4系统的详细设计本系统设计要求用户通过输入叠录账号和密码,选择登录按钮,登录到用户对应的窗口,而管理员通过输入登录账号和密码,选择管理员登录按钮,登录到管理员对应的窗口。登陆界面如下图47所示。图4-1登陆界面4.2游客模块对于没有注册的游客,在本系统中拥有列车信息查询和网上用户注册的功能。4.2.1列车信息查询游客和用户都有这部分的操作权限。列车信息查询窗体如图4-2所示。用列车(8愚Q.回a谓输入宣航息图4-2列车信息查询通过榆入出发地和目的地,点击查询,可以查询出
19、用户需要的车票。运行界面如图4-3所示。列车信患谓儡入萱尚信患出发地好煽目瞅!:南京图4-3列车信息查询结果4. 2.2网上用户注册一般的游客可以通过用户注册,购买火车票。用户注册界面如图4-4所示。图4-4用户注册游客榆入相关信息后,单击注册,注册成功,弹出如图4-5所示。4用户硼D:回.汉用户号:而姓名:李四性别:S-图4-5用户注册成功4.3用户模块用户具有列车信息查询,购票,退票,查看用户信息,查看订单,修改登录密码的模块。用户界面如下图4-6所示。图4-6用户界面4.3.1购票用户在用户界面,单击购票,便可以进行预订火车票。运行界面如图4-7所示。图4-7用户预订火车票界面用户通过输
20、入出发地,目的地,出发日,可以查询到所需的火车票。结果如图4-8所示。图4-8用户查询火车票然后输入乘客和乘客号,找到用户需要预定的火车票,在火车票后面单击预订,可以购买到所需的火车票。购票成功如图4-9所示。图4-9用户预订火车票成功点击查看订单,用户可以看到自己订的所有火车票,界面如图470所示。图4-10用户查看订单4.3.2退票用户可以在用户界面,也可以在用户订单里单击退票,进入退票模块。如图4-11所示。图4-11用户退票用户找到要退的火车票,单击后面的退票,就可以退票了。退票成功的界面如图4-12所示。对用地9.回.1崩火辐图4-12用户退票成功点击确定,呈现如图473所示。图47
21、3退票完成可以看到我的火车票里,没有了刚才退的票。这部分模块,本课程设计采用一个重读原来的显示函数实现的。函数代码如下:pubIicvoidreread()(this.车票预订表TabIeAdaPter.Fi11(this.火车票管理系统DataSet2用户退票.车票预订表);)如果退票成功,在退票按钮下,调用这个函数,代码如下:if(ExecuteNonQuery(strSqI,conn)0)(MeSSageBOX.ShowC退票成功,提示!);reread();)eIse(MessageBox.ShOW(退票失败!);)4.3.3查看用户信息用户进入用户界面后,单击查看用户信息,可以看到自
22、己的注册账号和登录密码。界面如图4-14所示。个人信息图4-14查看用户信息4. 3.4用户修改密码用户进入用户界面后,单击修改密码,进入修改密码界面如图475所示。4. 3管理员模块管理员可以注册用户账号,拥有用户所拥有的所有模块,包括列车信息查询,购票,退票,查看用户信息,查看订单,修改登录密码。并且管理员还有自己特定的账号,具体增加车票的权限。管理员运行界面如图476所示。图4-16管理员运行界面管理员输入车票车次,出发地和出发时间等相关信息,单击增加车票,弹出如图4-17界面。图477管理员增加车票单击确定,车票添加成功。用户就可以买这班火车票。5设计代码登录privatevoidbt
23、nLogin_CIick(objectsender,EventArgse)cApp.m_User.m_User=txtName.Text;cApp.m_User.m_Type=txtidentity.Text;stringuserName=txtName.Text;stringpassword=txtPassword.Text;stringtype=txtidentity.Text;if(txtName.Text=txtPassword.Text=txtidentity.Text=)(MessageBox.Show(登录账号或密码,身份不能为空!,警告,MessageBoxButtons.OK
24、,MessageBoxIcon.Warning);)elseif(txtidentity.Text=用户,)(SqIConnectionconn=newSqIConnection();conn.ConnectionString=DataSource=21IVJnitiaICataIOg=火车票管理系统;IJSerID=sa;Password=123456;conn.Open();stringcmdStr=select*from用户表where用户号=+userName+and密码=+password+定义查询语句SqICommandsqICom=newSqICommand(cmdStr,COn
25、n);/定义查询命令SqIDataReadersdr=sqlCoO)Isuccesss=newsuccess();5. Show();this.HideO;)elseIMessageBox.Show(预订失败!;)catch(Exceptionex)MessageBox.Show(ex.Message);)用户退票privatevoiddataGridView1_CeIIContentCIick(objectsender,DataGridViewCeIIEventArgse)(inta=dataGridView1,CurrentRow.Index;try(stringstrSql=delete
26、from车票预订表where=+dataGridView1.Rowsa.Ce11s0.VaIue+and号=,+dataGridView1.Rowsa.CeIIs1.VaIue+and车次=+dataGridView1.Rowsa.Ce11s3.Value+;连接字符串stringconn=DataSource=21IV;InitialCatalOg=火车票管理系统;USerID=sa;Password=I23456;执行语句if(ExecuteNonQuery(strSqI,conn)O)(MeSSageBOX.Show(退票成功,提示!);rereadO;elseIMessageBox.S
27、hQW(退票失败!);)catch(Exceptionex)MessageBox.Show(ex.Message);管理员增加车票privatevoidbtnluru-CIick(objectsender,EventArgs(if(txtcheci.Text=string.Empty)MessageBox.Show(this,请揄入车次!,PhoenixInformation:,MessageBoxButtons.OK,MessageBoxIcon.ExcIamation);return;)if(txtstartzhan.Text=string.Empty)MessageBox.Show(th
28、is,请揄入出发地!,PhoenixInformation:,MessageBoxButtons.OK,MessageBoxIcon.ExcIamation);return;)if(txtsfshijian.Text=string.Empty)MessageBox.Show(this,请输入出发时间!,PhoenixInformation:,MessageBoxButtons.OK,MessageBoxIcon.ExcIamation);return;)if(txtendzhan.Text=string.Empty)MessageBox.Show(this,请揄入目的地!,PhoenixInf
29、ormation:,MessageBoxButtons.OK,MessageBoxIcon.ExcIamation);return;)if(txtdaodashijian.Text=string.Empty)MessageBox.Show(this,请输入到达时间!,PhoenixInformation:,MessageBoxButtons.OK,MessageBoxIcon.ExcIamation);return;)if(txtyingzuoshu.Text=string.Empty)MessageBox.Show(this,l,请输入车票数量!,PhoenixInformation:,Me
30、ssageBoxButtons.OK,MessageBoxIcon.ExcIamation);if(txtyingzuopiaojia.Text=string.Empty)MessageBox.Show(this,请输入车票价格!,PhoenixInformation:,MessageBoxButtons.OK,MessageBoxIcon.ExcIamation);return;)try(stringStrSqI=insertinto车票信息表vaIues(+txtcheci.Text+,+txtstartzhan.Text+,+txtsfshijian.Text+,+txtendzhan.
31、Text+,+txtdaodashijian.Text+,+txtyingzuoshu.Text+txtyingzuopiaojia.Text+,+dtp.VaIue+,);连接字符串stringconn=DataSource=21IV;InitialCatalOg=火车票管理系统;USerID=sa;Password=I23456;执行语句if(ExecuteNonQuery(strSqI,conn)O)(MessageBox.ShOW(添加成功!);return;Ielse(MessageBox.ShOW(添加失败!);)catch(Exceptionex)(MessageBox.Show
32、(ex.Message);)公用执行函数ExecuteNonOuerypubIicintExecuteNonQuery(stringsql,stringconStr)(using(SqIConnectioncon=newSqIConnection(conStr)(con.Open();SqICommandcmd=newSqICommand(sqI,con);returncmd.ExecuteNonOueryO;查看订单privatevoidmytrian-Load(objectsender,EventArgse)(this.车票预订表TabIeAdapter.Fill(this.火车票管理系统
33、DataSet2我的火车票.车票预订表);SqIConnectionconn=newSqIConnection0;conn.ConnectionString=DataSource=21IVJnitiaICataIOg=火车票管理系统;USerlD=sa;PaSSWOrd=I23456;conn.OpenO;StringcmdStr=select*from车票预订表where用户号=+cApp.m_User.m_User+;SqICommandsqlCom=newSqICommand(cmdStr,conn);SqIDataAdaptermyadap=newSqIDataAdapter();my
34、adap.SeIectCommand=sqlCom;DataSetmyset=newDataSet();myadap.Fill(myset,车票预订表”);this.dataGridView1.DataSource=myset.TabIes”车票预订表;)用户修改密码pubIicpartialclassupdatemima:Form(pubIicupdatemimaO(InitialiZeComponentO;)privateboolcheck()(stringstr=this,ttzhanghao.Text;SqIConnectionconn=newSqIConnection();conn.
35、ConnectionString=DataSource=21IVJnitiaICataIOg=火车票管理系统;USerlD=sa;PaSSWOrd=I23456;conn.OpenO;Stringcommstring=select密码from用户表Where用户号=+str+,;SqICommandchange_comm=newSqICommand(commstring,conn);SqIDataReaderreader=change-comm.ExecuteReader();if(reader.ReadO=true)(if(reader1密码.ToStringO.Trim()!=this.t
36、xtyuanmima.Text)(MessageBox.Show(this,您输入的原密码不正确!,PhoenixInformation:,MessageBoxButtons.OK,MessageBoxIcon.ExcIamation);reader.Close();conn.CloseO;returnfalse;elsereader.Close();conn.Close();returntrue;I)else(MessageBox.Show(this,不存在您榆入的登录!,PhoenixInformation:,MessageBoxButtons.OK,MessageBoxIcon.ExcI
37、amation);reader.CloseO;conn.Close();returnfalse;)privatevoidchange_code()(stringstr1=this,txtxinmima.Text;stringconnstring1=DataSource=21IVJnitiaICatalog=火车票管理系统;USerID=sa;Password=I23456;SqIConnectionconn1=newSqIConnection(connstring1);conn1.Open();stringcommstring1=update用户表set密码=,+str1+,;SqIComma
38、ndcomm1=newSqICommand(commstring1,conn1);comm1.ExecuteNonQuery();conn1.CIoseO;MeSSageBox.Show(登录密码修改成功!,提示);)privatevoidbtnconfim_CIick(objectsender,EventArgse)(boolstr;if(txtzhanghao.Text=string.Empty)(MessageBox.Show(this,请榆登录!,PhoenixInformation:,MessageBoxButtons.OK,MessageBoxIcon.ExcIamation);return;)if(txtyuanmima.Text=string.Empty)(MessageBox.Show(this,请输原整录密码!,PhoenixInformation:,MessageBoxButtons.OK,MessageBoxIcon.ExcIamation);if(txtxinmima.Text=string.Empty)MessageBox.Show(this,请输入新螯录密码!,