用C#做火车订票管理系统课程设计文档格式.docx
《用C#做火车订票管理系统课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《用C#做火车订票管理系统课程设计文档格式.docx(38页珍藏版)》请在冰豆网上搜索。
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
设计合理、功能齐备,程序运行正常,实验数据准确可靠;
有较强的实际动手能力
论文撰写质量
设计说明书完全符合规范化要求,用A4复印纸打印成文
学习态度
学习态度认真,科学作风严谨,严格按要求开展各项工作,按期完成任务
学术水平与创新
0.10
设计有创意,有一定的学术水平或实用价值
总分
评语:
存在问题:
等级:
指导教师:
年月日
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)
time(7)
int
float
date
表2-2车票预订表
用户号
姓名
身份证号
char(18)
否
表2-3管理员表
管理号
密码
表2-4用户表
性别
char(4)
char
(2)
是
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约束。
规定性别默认值为男。
addconstraintdf_sexdefault'
for性别
2.4.5长度约束
在车票预订表和用户表中,定义身份证长度为18位,相关代码如下:
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
退票失败!
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);
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();
登录账号或密码错误!
错误"
MessageBoxButtons.OK,MessageBoxIcon.Error);
conn.Close();
Initial
Catalog=火车票管理系统;
stringcmdStr="
select*from管理员表where管理号='
+
userName+"
managerM_manager=newmanager();
M_manager.Show();
MessageBoxButtons.OK,MessageBoxIcon.Error);
//用户购票
privatevoiddataGridView1_CellContentClick_1(objectsender,DataGridViewCellEventArgse)
if(txtusername.Text==string.Empty)
MessageBox.Show(this,"
请输入乘客姓名!
"
PhoenixInformation:
MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
return;
if(txtshenfen.Text==string.Empty)
请输入乘客身份证号!
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=