车站售票系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
滨江学院
《Web技术与应用》课程设计题目车站售票系统
院系计算机系
年级班级10软工3班
学生姓名丁林梅
学号20102344902
学期2012-2013(2)
任课教师陈瑶
车站售票系统
1 引言
随着Internet的迅速发展和用户数量的急剧增加,互联网对于企业和事业单位的运营和发展日益重要,网上交易也逐渐被人们认可,并成为未来交易的发展方向。在这种情况下,很多原有的C/S模式的系统也逐步向B/S模式靠拢,铁路客车售票系统也不例外。
铁路客车售票系统是铁路旅游服务信息系统的一个重要组成部分,为旅客提供优质便捷的服务。为了提高铁路客运的售票效率,丰富铁路客运的营销手段,火车站售票总站的下属代售点可以通过公用的互联网资源,实现网上的售票,查询及管理工作。本论文围绕如何实现基于B/S结构的客票系统展开讨论,通过对现有C/S结构的售票系统与B/S结构的优缺点进行比较,给出基于B/S结构售票系统的具体解决方案:查询,买票,订票,退票,新闻管理,用户管理等六大模块,并研究B/S结构在网络中面临的安全问题及提出相应的解决方案。
2 系统设计
1. 需求分析
客车售票系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的客车售票系统,为企业的决策层提供准确、精细、迅速的客票销售信息。
2.功能分析
(1)功能需求
客票系统通过计算机网络将客户端与服务器的数据库相连,将从客户端得到的信息进行处理,实现车次查询,售票,订票,退票,新闻管理,销售统计等功能。以计算机为中心,实现销售业务的计算机自动化,为铁路部门降低成本、提高销售额、为铁路部门的经营决策提供及时精确的依据。
(2)查询功能需求
查询功能要能满足至少两种方式的查询:按车次查询,按站点查询。如果查询出来满足条件的车次后,用户可以直接点击购买。查询出来的信息里面应该包括车次,开车时间,到达时间,起始站,终点站,车辆类型等主要车次信息。
(3)售票功能需求
售票模块主要有两个入口:一个是系统主界面的买票按钮,另一个是查询结果后面的购买按钮。买票界面里可以供用户填写或者选择的内容有:车次,开车时间,起始站,终点站,座位类型,票数等。还要有价格计算按钮,购买按钮和重置按钮。每趟车次的具体路段起始站和终点站要在用户输入车次后自动绑定,供用户选择。点击购买按钮后,系统给出具体的购买票据,并且要能打印票据。
(4)退票功能需求
退票模块要能实现两种功能:退订和退票。退订是指用户有过订票记录,但票还没拿到;退票是指用户退掉已经拿到的车票(退票时间必须给出具体限制)。
(5)订票功能需求
订票模块和买票模块主要有两点区别:用户进行订票操作时必须要输入用户信息;订票的和买票的提前时间不同,订票可以提前更多的时间。订票操作成功后,系统应给出具体的订票信息票据。(6)注册功能需求
第一次使用系统时,首先要做的是注册用户,注册用户模块里主要分两种类型的注册:代售点注册和企业用户注册。这两种注册方式的差别体现在所填注册信息上。不同的用户拥有不同的权限。
3. 功能模块设计
●系统安全可靠
未经注册的用户不能登录系统,用户个人信息和购票信息通过互联网上传输时,要确保信息的安全性。
●系统准确及时
用户对系统进行操作时,系统应在很短时间内(一般以秒为单位)给与响应。
●系统的可扩展性
对于用户新的需求,能做到只需添加新模块即可满足用户要求。,功能模块图如图1所示。
图1系统功能模块结构图
3、数据库设计
本系统采用的数据库软件为SQLserver2000,本系统用到的数据库名为selltickets(售票),它里面包括9张表,为了便于理解,本系统的所有表的字段名称都为中文汉字,下面逐一介绍。
1.用户表
2.车次详细信息表
3.普通列车价格表
表3普通列车价格表
4订票记录表
票数Decimal 9 票数
总价格Decimal 9 总价格
用户名Char 50 用户名
联系方式Decimal 20 联系方式
身份证Decimal 20 身份证
发车日期Datetime 8 发车日期
时间Datetime 8 时间
座位号Int 4 座位号
客车售票系统E-R图
图2 系统E-R图
3 系统实现
在前面分析和设计的基础上通过和sqlserver2000来实现售票系统。下面将详细介绍每个功能模块是如何实现。主要模块如图2所示。
(1)管理员登录(login.aspx)
用户输入用户名和密码后,点击登录,系统执行登录按钮的鼠标点击事件,登录按钮的鼠标点击事件里面先判断用户名和密码两个文本框是否为空,如果为空,提示“输入信息不完整!”,如果两个文本框不为空,以用户名为查询条件,查询user表(用户表),查询出来的结果填充到数据集里面,然后判断数据集里面的数据表,如果行数为空,说明用户为非法用户,提示“用户名或者密码错误”,如果行数大于等于一,通过验证,跳转到系统主界面。管理员登录界面如下图3所示。
图3 学生学籍管理系统登录界面
其关键代码如下:
以下代码实现的功能是判断管理员与密码是否正确,若正确跳转到主页面,否则显示出错信息。
private void Button_denglu_Click(object sender, System.EventArgs e)
{
if(this.sqlConnection_user.State.ToString()=="Closed")
this.sqlConnection_user.Open();
// 如果数据库连接状态为关闭,打开数据库连接
if(this.text_name.Text.Trim()!=""&&this.text_password.Text.Trim()!="")
//如果用户名和密码栏不为空
{ string sql="select * from [user] where 用户名='"+this.text_name.Text.Trim()+"'and 密码
='"+this.text_password.Text.Trim()+"'";
//构造查询语句:以用户名为条件查询数据库,
this.sqlDataAdapter_mandText=sql;
this.sqlDataAdapter_user.Fill (this.dataSet_user);
//把查询结果填充到数据集里面
if(this.dataSet_user.Tables[0].Rows.Count>0)
//如果查询结果不为空
{
Session["username"]=this.text_name.Text.Trim();
// 把当前用户名纪录在Session["username"]。
this.Response.Redirect("main.aspx");