火车订票管理系统课程设计.docx
《火车订票管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《火车订票管理系统课程设计.docx(42页珍藏版)》请在冰点文库上搜索。
火车订票管理系统课程设计
课程设计
课程名称
SQL数据库系统课程设计
题目名称
火车订票管理系统
专业班级
学生姓名
学号
指导教师
年月日
火车订票管理系统
摘要:
本文针对火车站地订票实际情况,按照软件工程地结构化设计思想,经过工程地可行性研究和需求分析、总体设计、详细设计,以及编码实现和调试等步骤设计开发了火车订票管理系统.并运用数据流图和数据字典、E-R图和数据库逻辑结构、层次图、系统流程图、以及程序流程图,对该系统地数据需求、数据库、系统软件结构、系统流程、以及处理过程等进行了分析和设计.工具软件利用VisualStudio2010软件和SQLServer2008数据库来设计这个火车订票管理系统,并用C#语言设计后台代码.该系统要解决地是火车订票工作所要解决地问题,可以满足火车订票地基本要求,包括用户查询、订票、退票和管理员增加车票等几个方面地功能.
关键词:
订票管理;火车订票;SQLServer2008
OrderingTicketsManagementSystem
Abstract:
Afteralongtimeobservationofbookingatrainticketandfeasibilityresearchofaonlinetrainticketbookingsystem,ihavebuildaonlineticketbookingsysteminthefollowingsoftwarecycle:
requirementanalysis,architectureanddetaildesign,codingandtesting.Inthedesignphase,ipresentthesystemwithdatafollowchart,datadictionary,E-Rgraphic,databaselogicalstructure,andtypicalUMLmodelingfacilitysuchasClassdiagram,Activitydiagram,UsecasediagramandSequencediagram.Thisproductisdevelopedinjava(thelatestjdk1.6),andtheDBMSissqlserver2005expressedition.it'sbuildtohelpyoutobookatrainticketonline.Onthiswebsite,youcaninquireticketinformation,bookaticketandrefundyourticket.Forthesupervisor,itprovidesadditionalright(protectedbyadminpriviledge)tomaintainthesystemincludingtraindatacreating,importingandcleaningup
Keywords:
Ticketingmanagement。
Ticketsellingsystem。
SQLServer2008
蚌埠学院计算机科学与技术系课程设计任务书
课程
SQL数据库系统课程设计
班级
指导教师
题目
火车订票管理系统
完成时间
2014年12月1日至2015年1月1日
主要内容
功能要求:
1.游客功能模块:
列车信息查询、用户注册.
1.用户功能模块:
列车信息查询、购票、退票、查看订单、查看用户信息、修改登录密码.
3.管理员功能模块:
列车信息查询、购票、退票、查看订单、查看用户信息、修改登录密码、增加车票.
设计报告要求
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”、“⑴”、“
”顺序编号.
上机时间安排
星期
周次
一
二
三
四
五
六
日
第15周-第18周
指导时间地点
上机时间
蚌埠学院计算机科学与技术系本科课程设计成绩评定表
工程
权重
分值
具体要求
得分
文献阅读与调查论证
0.20
100
能独立查阅文献和从事其它调研活动;有收集、加工各种信息地能力
设计质量
0.30
100
设计合理、功能齐备,程序运行正常,实验数据准确可靠;有较强地实际动手能力
论文撰写质量
0.20
100
设计说明书完全符合规范化要求,用A4复印纸打印成文
学习态度
0.20
100
学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务
学术水平与创新
0.10
100
设计有创意,有一定地学术水平或实用价值
总分
评语:
存在问题:
等级:
指导教师:
年月日
火车订票管理系统
1系统总体方案
1.1开发背景
现在人们更多地使用火车作为出行交通工具,因此车票票务市场也在快速发展.人们希望车票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要地车票表现出极大地关注.随着社会地不断进步,国内外铁路运输事业地飞速发展,各国铁路运营部门对票务管理地要求也在不断地提高,本系统就是针对这种日益增长地需求而进行开发地.
1.2意义
随着铁路客运量大幅度地提高,国内列车专线地增加,这些都对铁路地订票管理系统提出了更高地要求,所以要不断地完善更新铁路订票系统,提高铁路订票系统地工作效率.铁路运输系统中,订票系统是很重要地一个环节,要想提高整个铁路运营部门地工作效率,就要先提高订票系统地工作效率和安全性,故而研发此系统,此系统能够为订票工作提供方便快捷地订票服务,广大地客以得到更好地票务服务.
1.3系统相关知识介绍
(1)VisualStudio是微软公司推出地开发环境.是目前最流行地Windows平台应用程序开发环境.VisualStudio2010版本其集成开发环境(IDE)地界面被重新设计和组织,变得更加简单明了.
(2)SQLServer2008在Microsoft地数据平台上发布,可以组织管理任何数据.可以将结构化、半结构化和非结构化文档地数据直接存储到数据库中.可以对数据进行查询、搜索、同步、报告和分析之类地操作.数据可以存储在各种设备上,从数据中心最大地服务器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里.
(3)C#(Csharp)是一种最新地、面向对象地编程语言.它使得程序员可以快速地编写各种基于Microsoft.NET平台地应用程序.使用简单地C#语言结构,这些组件可以方便地转化为XML网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用.最重要地是,C#使得C++程序员可以高效地开发程序,而绝不损失C/C++原有地强大地功能.因为这种继承关系,C#与C/C++具有极大地相似性,熟悉类似语言地开发者可以很快地转向C#.
2设计思路与主要步骤
2.1系统需求
对于一个火车票订票管理系统,准确快捷地车次信息查询功能和方便简单地订票操作是十分必要地,因此系统必须为用户提供准确地车次信息和当前地车票状况,这也是火车票订票管理系统地最基本要求.客户端后台管理员要能够及时添加车票.
所以结合实际情况,火车订票管理系统应满足以下需求:
(1)客户端界面清晰友好,达到一目了然地效果.
(2)客户端能够方便地查询系统及简单明了地订票、退票操作.
(3)防止用户重复订票、退票操作,影响系统数据地正确性.
(4)服务器端提供信息完全可靠,时效性强.能够保证数据与信息地安全性.
2.2功能需求
本网上售票系统应该具备如下功能:
2.2.1查询
分为用户对个人登录信息地查询,列车信息地查询和用户对已订车票信息地查询.要求:
(1)用户登录该系统后,可以查询到自己地个人信息和已经预定地车票信息.
(2)对车次地查询,可以按照出发地和目地地对列车信息进行查询;
(3)车次信息只允许用户查询,不能修改.
2.2.2.购票
通过查询系统,客户根据自己地需求找到满意地车次,登录系统后,便可以通过该系统购票.
2.2.3.退票
用户通过登录该系统,查询到自己已经预定地火车票,通过退票模块退去已购车票.
2.3数据库逻辑结构
火车订票管理系统数据库中各个表格地设计结果如表2-1到2-4所示.
表2-1车票信息表
字段名
数据类型
是否为空
车次
char(10)
否
出发地
nchar(10)
否
出发时间
目地地
到达时间
车票数量
车票价格
出发日
time(7)
nchar(10)
time(7)
int
float
date
否
否
否
否
否
否
表2-2车票预订表
字段名
数据类型
是否为空
用户号
nchar(10)
否
姓名
nchar(10)
否
身份证号
出发日
车次
出发地
出发时间
目地地
到达时间
车票价格
char(18)
date
char(10)
char(10)
time(7)
char(10)
time(7)
float
否
否
否
否
否
否
否
否
表2-3管理员表
字段名
数据类型
是否为空
管理号
nchar(10)
否
密码
nchar(10)
否
表2-4用户表
字段名
数据类型
是否为空
用户号
姓名
性别
身份证号
nchar(10)
char(4)
char
(2)
char(18)
否
否
是
否
密码
nchar(10)
否
2.4数据库中地约束
2.4.1主键约束
(1)在车票信息表中,定义车次,出发地,出发时间,目地地,到达时间,出发日这个整体作为车票信息表地主键.相关代码如下:
altertable车票信息表
addconstraintpkprimarykey(车次,出发地,出发时间,目地地,到达时间,出发日)
(2)在车票预订表中,定义用户号,姓名,身份证号这个整体作为车票预订表地主键.
(3)在管理员表和用户表中,分别将管理号和用户号作为各表地主键.
2.4.2外键约束
在车票预订表中,定义车次,出发地,出发时间,目地地,到达时间,出发日这个整体作为车票预订表地外键,参考车票信息表中地主键.相关代码如下:
altertable车票预订表
addconstraintfk1foreignkey(车次,出发地,出发时间,目地地,到达时间,出发日)
references车票信息表(车次,出发地,出发时间,目地地,到达时间,出发日)
2.4.3CHICK约束
在用户表地性别字段,定义CHICK约束.规定性别在男、女中选值.相关代码如下:
altertable用户表
addconstraintCK_sexcheck(性别in('女','男'))
2.4.4DEFAULT约束
在用户表地性别字段,定义DEFAULT约束.规定性别默认值为男.相关代码如下:
altertable用户表
addconstraintdf_sexdefault'男'for性别
2.4.5长度约束
在车票预订表和用户表中,定义身份证长度为18位,相关代码如下:
altertable用户表
addconstraintCK_PIDcheck(len(身份证号)=18)
3各功能模块和流程图
3.1系统软件结构设计
综合以上需求,本系统需要以下几个模块来支持:
(1)用户模块:
用于用户注册,用户登陆,订票,退票,修改登录密码.
(2)管理员模块:
供后台管理员登录.用于添加车票信息.
(3)游客模块:
列车信息查询,用户注册.
三个模块地关系如下:
修改登录密码
图3.1火车订票管理系统地层次图
3.2系统流程图
系统总体流程图如下图3.2所示.
图3.2系统用户权限地系统主程序流程图
车次信息查询流程图如下图3.3所示.
图3.3车次信息查询程序流程图
订单信息查询流程图如下图3.4所示.
图3-4订单信息查询流程图
退票模块处理流程如下图3.5所示.
图3.5退票模块程序流程图
4系统地详细设计
4.1登录界面
本系统设计要求用户通过输入登录账号和密码,选择登录按钮,登录到用户对应地窗口,而管理员通过输入登录账号和密码,选择管理员登录按钮,登录到管理员对应地窗口.登陆界面如下图4-1所示.
图4-1登陆界面
4.2游客模块
对于没有注册地游客,在本系统中拥有列车信息查询和网上用户注册地功能.
4.2.1列车信息查询
游客和用户都有这部分地操作权限.列车信息查询窗体如图4-2所示.
图4-2列车信息查询
通过输入出发地和目地地,点击查询,可以查询出用户需要地车票.运行界面如图4-3所示.
图4-3列车信息查询结果
4.2.2网上用户注册
一般地游客可以通过用户注册,购买火车票.用户注册界面如图4-4所示.
图4-4用户注册
游客输入相关信息后,单击注册,注册成功,弹出如图4-5所示.
图4-5用户注册成功
4.3用户模块
用户具有列车信息查询,购票,退票,查看用户信息,查看订单,修改登录密码地模块.用户界面如下图4-6所示.
图4-6用户界面
4.3.1购票
用户在用户界面,单击购票,便可以进行预订火车票.运行界面如图4-7所示.
图4-7用户预订火车票界面
用户通过输入出发地,目地地,出发日,可以查询到所需地火车票.结果如图4-8所示.
图4-8用户查询火车票
然后输入乘客姓名和乘客身份证号,找到用户需要预定地火车票,在火车票后面单击预订,可以购买到所需地火车票.购票成功如图4-9所示.
图4-9用户预订火车票成功
点击查看订单,用户可以看到自己订地所有火车票,界面如图4-10所示.
图4-10用户查看订单
4.3.2退票
用户可以在用户界面,也可以在用户订单里单击退票,进入退票模块.如图4-11所示.
图4-11用户退票
用户找到要退地火车票,单击后面地退票,就可以退票了.退票成功地界面如图4-12所示.
图4-12用户退票成功
点击确定,呈现如图4-13所示.
图4-13退票完成
可以看到我地火车票里,没有了刚才退地票.这部分模块,本课程设计采用一个重读原来地显示函数实现地.函数代码如下:
publicvoidreread()
{
this.车票预订表TableAdapter.Fill(this.火车票管理系统DataSet2用户退票.车票预订表)。
}
如果退票成功,在退票按钮下,调用这个函数,代码如下:
if(ExecuteNonQuery(strSql,conn)>0)
{
MessageBox.Show("退票成功","提示!
")。
reread()。
}
else
{
MessageBox.Show("退票失败!
")。
}
4.3.3查看用户信息
用户进入用户界面后,单击查看用户信息,可以看到自己地注册账号和登录密码.界面如图4-14所示.
图4-14查看用户信息
4.3.4用户修改密码
用户进入用户界面后,单击修改密码,进入修改密码界面如图4-15所示.
图4-15用户修改密码
4.3管理员模块
管理员可以注册用户账号,拥有用户所拥有地所有模块,包括列车信息查询,购票,退票,查看用户信息,查看订单,修改登录密码.并且管理员还有自己特定地账号,具体增加车票地权限.管理员运行界面如图4-16所示.
图4-16管理员运行界面
管理员输入车票车次,出发地和出发时间等相关信息,单击增加车票,弹出如图4-17界面.
图4-17管理员增加车票
单击确定,车票添加成功.用户就可以买这班火车票.
5设计代码
//登录
privatevoidbtnLogin_Click(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,MessageBoxIcon.Warning)。
}
else
if(txtidentity.Text=="用户")
{
{
SqlConnectionconn=newSqlConnection()。
conn.ConnectionString="DataSource=2013-20141011IV。
InitialCatalog=火车票管理系统。
UserID=sa。
Password=123456"。
conn.Open()。
stringcmdStr="select*from用户表where用户号='"+userName+"'and密码='"+password+"'"。
//定义查询语句
SqlCommandsqlCom=newSqlCommand(cmdStr,conn)。
//定义查询命令
SqlDataReadersdr=sqlCom.ExecuteReader()。
if(sdr.HasRows)
{
this.Hide()。
userU_user=newuser()。
U_user.Show()。
}
else
{
MessageBox.Show("登录账号或密码错误!
","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)。
}
conn.Close()。
}
}
else
{
SqlConnectionconn=newSqlConnection()。
conn.ConnectionString="DataSource=2013-20141011IV。
Initial
Catalog=火车票管理系统。
UserID=sa。
Password=123456"。
conn.Open()。
stringcmdStr="select*from管理员表where管理号='"+
userName+"'and密码='"+password+"'"。
//定义查询语句
SqlCommandsqlCom=newSqlCommand(cmdStr,conn)。
//定义查询命令
SqlDataReadersdr=sqlCom.ExecuteReader()。
if(sdr.HasRows)
{
this.Hide()。
managerM_manager=newmanager()。
M_manager.Show()。
}
else
{
MessageBox.Show("登录账号或密码错误!
","错误",
MessageBoxButtons.OK,MessageBoxIcon.Error)。
}
conn.Close()。
}
}
//用户购票
privatevoiddataGridView1_CellContentClick_1(objectsender,DataGridViewCellEventArgse)
{
if(txtusername.Text==string.Empty)
{
MessageBox.Show(this,"请输入乘客姓名!
","PhoenixInformation:
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation)。
return。
}
if(txtshenfen.Text==string.Empty)
{
MessageBox.Show(this,"请输入乘客身份证号!
","PhoenixInformation:
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation)。
return。
}
inta=dataGridView1.CurrentRow.Index。
try
{
stringstrSql="insertinto车票预订表(出发日,用户号,姓名,身份证号,车次,出发地,出发时间,目地地,到达时间,车票价格)values('"+dtp.Value+"','"+cApp.m_User.m_User+"','"+txtusername.Text+"','"+txtshenfen.Text+"','"+dataGridView1.Rows[a].Cells[0].Value+"','"+dataGridView1.Rows[a].Cells[1].Value+"','"+dataGridView1.Rows[a].Cells[2].Value+"','"+dataGridView1.Rows[a].Cells[3].Value+"','"+dataGridView1.Rows[a].Cells[4].Value+"','"+dataGridView1.Rows[a].Cells[6].Value+"')"。
//连接字符串
stringconn="DataSource=2013-20141011IV。
InitialCatalog=火车票管理系统。
Use