数据库课程设计报告车站售票管理系统.doc
《数据库课程设计报告车站售票管理系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计报告车站售票管理系统.doc(22页珍藏版)》请在咨信网上搜索。
个人收集整理 勿做商业用途 吉林工程技术师范学院 课程设计报告 设计名称: 车站售票信息管理系统 姓 名: 孟祥丽 学 号: 23号 专 业: 计算机科学与技术 班 级: C1042 院 系: 信息工程学院 指导教师: 刘国成、杨宇晶、郭天娇 2010年12月16日 一、概述 1、项目背景:随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,车站售票管理系统在人们的日常生活中发挥着越来越重要的作用。本系统实现了线路信息,汽车信息,票务信息的查询和管理,满足人们的需求. 2、编写目的:掌握数据库设计原理及相关软件的使用.实现方便、快速售票;是用户准确了解售票情况,提供多种查询和统计功能;实现系统的安全性设置,使系统本身具有一定的维护功能。 3、软件定义:车站售票管理系统,主要用于车站日常的票务处理。 4、开发环境:Visual Studio2008,SQL SERVER2000 二、需求分析 功能模块图 1,员工管理模块: 员工有两种身份,售票员和系统管理员.系统管理员可以进行系统用户的添加,密码的修改操作,汽车,线路,车票信息的更新等,售票员可以查询以上信息和购买车票等. 2,线路信息管理模块: 系统管理员可以在线路信息管理模块对车站线路信息进行管理。管理员首先建立线路信息数据库,输入原始的线路信息,当有新的线路需要添加或者需要对已有的线路信息进行修改,删除的时候,管理员就可以进行相应的操作.管理员也可以通过本模块查询到所有需要查询的线路的详细信息。 3,汽车信息管理模块: 系统管理员可以在汽车信息管理模块实现对汽车信息的管理。管理员首先应该建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相关信息以及想要删除某个汽车信息的时候,就可以完成相应的操作.管理员也可以在整个数据库中查询相关汽车信息. 4,车票信息管理模块: 系统管理员可以在车票管理模块实现对车票信息的管理。管理员根据相应的汽车信息和线路信息来设置相应的车票详细信息.管理员还可以对某条线路的车票信息进行修改,删除和查询操作。 5,车票订购信息模块 用户可以通过查询时间,线路和汽车信息,来确定自己要买什么时间,什么路线,什么型号的汽车的车票,并形成表单。 程序分为登陆界面,主界面,线路信息管理界面,汽车信息管理界面,车票信息管理界面,票务信息管理界面,员工管理界面这几个主体界面。使用时应先知道管理员或员工帐号和密码,登陆进入系统主菜单界面,里面包括线路信息,汽车信息,车票信息,票务信息,帮助,退出程序菜单选项。 三、系统设计 (一)数据流图: 顶层数据流图 1层车票数据流图 (二)数据字典: 1, 数据项 编号 数据项名 数据项含义说明 数据类型 长度 与其他数据项的关系 是否可以为空 1 Uno 用户编号 整型 4 User表主键 不 2 UserName 姓名 nvarchar 20 不 3 Password 密码 nvarchar 20 不 4 UserIdentiey 身份 nvarchar 20 不 5 Cno 汽车编号 整型 4 Coach表主键 不 6 Coachnumber 车牌号 nvarchar 20 不 7 Ctype 汽车型号 nvarchar 20 8 Ctime 购买时间 datetime 8 9 Cnum 座位数量 整型 4 不 10 Ctv 有无电视 char 10 11 Ccondition 有无空调 char 10 12 Coachholder 负责人 nvarchar 20 不 13 Lno 线路编号 整型 4 Line表主键 不 14 Ldepart 起始城市 nvarchar 20 不 15 Larrival 到达城市 nvarchar 20 不 16 Ltime 路程时间 datetime 8 17 Tno 车票编号 整型 4 Ticket表主键 不 18 Price 车票价格 整型 4 不 19 SoldTicket 已卖票数 整型 4 不 20 LastTicket 剩余票数 整型 4 不 21 Tdate 出发日期 datetime 8 不 22 Ttime 出发时间 datetime 8 不 23 Ptime 购买时间 datetime 8 24 Seat 座位号 整型 4 不 25 ReserveORBuy 预定或购买 char 10 不 26 Cityno 站点编号 整型 4 City表主键 不 27 CityName 站点名称 nvarchar 20 不 2, 数据结构 编号 数据结构名 属 性 1 员工 员工编号,姓名,密码,身份 2 汽车 汽车编号,汽车型号,车牌号,购买时间,座位数量,有无电视,有无空调,负责人 3 线路 线路编号,起始城市,到达城市,路程时间 4 车票 车票编号,线路编号,汽车编号,车票价格,已卖票数,剩余票数,出发日期,出发时间 5 购票 车票编号,购买日期,预定或购买,座位号 6 站点 站点编号,站点名称 3, 数据流 编号 数据流名 输 入 输 出 1 变更汽车信息 变更信息 汽车记录 2 查询汽车信息 汽车编号/汽车型号/车牌号/有无电视/有无空调/负责人 汽车记录 3 变更站点信息 变更信息 站点记录 4 变更线路信息 变更信息 线路记录 5 查询线路信息 线路编号/起始城市,到达城市 线路记录 6 变更车票信息 变更信息 车票记录 7 查询车票信息 车票编号/起始城市,到达城市/汽车型号/出发日期,出发时间 车票记录 8 预定车票 车票编号,购买日期,预定或购买 预订记录 9 购买车票 车票编号,购买日期,预定或购买 购买记录 10 查询购买情况 车票编号/起始城市,到达城市/汽车型号 购买记录 11 更改用户 变更信息 用户记录 12 员工信息 用户输入电脑的用户名、密码 系统主菜单 4, 数据存储 数据存储名 输入数据流 输出数据流 说 明 部 分 用户信息 变更用户信息 查询用户信息 汽车信息 变更汽车信息 查询汽车信息 线路信息 变更线路信息 查询线路信息 车票信息 变更车票信息 查询车票信息 预定车票信息 车票信息 预订记录 购买车票信息 车票信息 购买记录 5、 处理过程 处理过程名 输入数据流 输出数据流 处理操作 查询 已知汽车/线路/车票信息 所需信息 购买/预定 车票信息+购票时间+座位号 无 更新 变更信息 再次查询信息 用户权限认证 用户名,密码,身份 系统主菜单 用户登录 (三)E-R图 (四)关系模型: 1,User员工表(员工编号Uno,姓名UserName,密码Password,身份UserIdentiey) 2,Coach汽车信息表(汽车编号Cno,汽车型号Ctype,车牌号Coachnumber,购买时间Ctime,座位数量Cnum,有无电视Ctv,有无空调Ccondition,负责人Coachholder) 3,Line线路信息表(线路编号Lno,起始城市Ldepart,到达城市Larrival,路程时间Ltime) 4,Ticket车票信息表(车票编号Tno,线路编号Lno,汽车编号Cno,车票价格Price,已卖票数SoldTicket,剩余票数LastTicket,出发日期Tdate,出发时间Ttime) 5,Purchase车票购买表(车票编号Tno,购买日期Ptime,预定或购买ReserveORBuy,座位号Seat) 6,City站点表(站点编号Cityno,站点名称CityName) 四、系统实现 (一)数据库设计: 1,City站点表: 2,Userinfo员工表: 3,Ticket车票信息表: 4,Coach汽车信息表: 5,Purchase车票购买表: 6,Line线路表 : (二)主要界面及代码 1,登录界面: 登录操作代码: (1)SqlHelper helper = new SqlHelper(); SqlDataReader rdr; (2)if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(password) || string.IsNullOrEmpty(identity)) { MessageBox。Show(”姓名,密码,身份框均不能为空!”); } rdr = helper。ExecuteReader(”dbo.SelectUserinfo", CommandType.StoredProcedure); while (rdr。Read()) { if (rdr[”UserName”].ToString() == name && rdr["Password"]。ToString() == password && rdr[”UserIdentity”]。ToString() == identity) { this。Hide(); string iden = rdr["UserIdentity"].ToString(); MainForm main = new MainForm(iden); main。ShowDialog(); rdr。Close(); return; } } MessageBox.Show(”错误的姓名或密码或与身份不匹配,请重新输入!”); rdr。Close(); (3)存储过程: ALTER PROCEDURE dbo。SelectUserinfo /* ( @parameter1 int = 5, @parameter2 datatype OUTPUT ) */ AS /* SET NOCOUNT ON */ BEGIN select * from Userinfo END 2,系统主界面 3,员工管理界面: 修改/删除操作代码: (1) try { SqlCommandBuilder scb = new SqlCommandBuilder(sd); sd.Update(ds, ”a"); ds。AcceptChanges(); MessageBox.Show("修改成功!"); } catch (Exception ex) { MessageBox.Show(ex。Message。ToString()); } (2) try { SqlCommandBuilder scb = new SqlCommandBuilder(sd); int a = dataGridView1.CurrentRow.Index; ds。Tables[0]。Rows[a]。Delete(); sd。Update(ds, ”a"); ds。AcceptChanges(); MessageBox.Show("删除成功!”); } catch (Exception ex) { MessageBox。Show(ex。Message。ToString()); } 4,汽车信息管理界面: 添加操作代码: (1)DAL。CoachDAO coach = new Coach.DAL.CoachDAO(); SqlHelper helper = new SqlHelper(); (2) if (string。IsNullOrEmpty(coachnumber) || string.IsNullOrEmpty(seatnumber1) || string。IsNullOrEmpty(coachholder)) { MessageBox。Show(”车牌号,座位数量,负责人均不能为空!"); } else { if (coach。Add(coachtype,coachnumber,date2,seatnumber,ishavetv,ishavecon,coachholder)) MessageBox.Show("添加成功!"); else MessageBox。Show(”添加失败!”); } (3)实体类CoachDAO。cs中: public bool Add(string coachtype,string coachnumber,DateTime date2, int seatnumber,string ishavetv,string ishavecon,string coachholder) { bool flag = false; DataTable dt = new DataTable(); string cmdText = ”dbo。AddCoach"; SqlParameter[] paras = new SqlParameter[]{ new SqlParameter(”@coachtype”,coachtype), new SqlParameter(”@coachnumber",coachnumber), new SqlParameter(”@date2",date2), new SqlParameter(”@seatnumber”,seatnumber), new SqlParameter(”@ishavetv”,ishavetv), new SqlParameter(”@ishavecon",ishavecon), new SqlParameter(”@coachholder",coachholder) }; int res = helper。ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure); if (res 〉 0) { flag = true; } return flag; } (4)存储过程: ALTER PROCEDURE dbo.AddCoach @coachtype nvarchar(20), @coachnumber nvarchar(20), @date2 datetime, @seatnumber int, @ishavetv char(10), @ishavecon char(10), @coachholder nvarchar(20) /* ( @parameter1 int = 5, @parameter2 datatype OUTPUT ) */ AS /* SET NOCOUNT ON */ BEGIN insert into Coach (Ctype,Coachnumber,Ctime,Cnum,Ctv,Ccondition,Coachholder) values (@coachtype,@coachnumber,@date2,@seatnumber,@ishavetv,@ishavecon,@coachholder) END 5,线路信息管理界面: 搜索操作代码: (1) SqlHelper helper = new SqlHelper(); SqlConnection conn = new SqlConnection(”Data Source=(local);Initial Catalog=Coach;Integrated Security=True”); SqlDataAdapter sd; //定义一个数据适配器 DataSet ds; //定义一个数据集 (2) string str1 = ”select Lno as 编号,Ldepart as 起始城市,Larrival as 到达城市,convert(varchar(10),Ltime,108) as 路程时间 from Line where Lno =” + lineid + ""; dataBind(str1); (3) private void dataBind(string str) { try { sd = new SqlDataAdapter(str, conn); ds = new DataSet(); sd.Fill(ds, "a"); dataGridView1。DataSource = ds; dataGridView1.DataMember = "a"; } catch (Exception ex) { MessageBox。Show(ex.Message); } } 6,车票信息管理界面: 7,车票信息管理中,选择汽车和路线界面: 8,票务管理界面 : 查询操作代码: (1) DAL。PurchaseDAO purchase = new Coach。DAL。PurchaseDAO(); SqlHelper helper = new SqlHelper(); (2) dataGridView1。DataSource = purchase。Select1(departcity,arrivalcity,date2); (3) 实体类PurchaseDAO.cs中: public DataTable Select1(string departcity, string arrivalcity, DateTime date2) { DataTable dt = new DataTable(); string cmdText = ”dbo.SelectPurchase”; SqlParameter[] paras = new SqlParameter[]{ new SqlParameter("@departcity",departcity), new SqlParameter("@arrivalcity",arrivalcity), new SqlParameter(”@date2”,date2) }; dt = helper。ExecuteQuery(cmdText, paras, CommandType。StoredProcedure); return dt; } (4) 存储过程 ALTER PROCEDURE dbo。SelectPurchase @departcity nvarchar(20), @arrivalcity nvarchar(20), @date2 datetime /* ( @parameter1 int = 5, @parameter2 datatype OUTPUT ) */ AS /* SET NOCOUNT ON */ BEGIN select Ldepart as 起始城市,Larrival as 到达城市,convert(varchar(10),Tdate,120) as 出发日期,convert(varchar(10),Ttime,108) as 出发时间,Ctype as 车型,Coachnumber as 车牌号,Ctv as 有无电视,Ccondition as 有无空调,Price as 票价,Cnum as 总票数,LastTicket as 剩余票数from Coach,Line,Ticket where Coach.Cno = Ticket。Cno and Line。Lno = Ticket。Lno and Ldepart = @departcity and Larrival = @arrivalcity and Tdate = @date2 END 预订/购买操作代码: (1)tno = purchase.Yuding(depart, arrival, coachnum); (2)实体类PurchaseDAO.cs中 public int Yuding(string depart, string arrival, string coachnum) { int tno; DataTable dt = new DataTable(); string cmdText = "dbo.SelectTno"; SqlParameter[] paras = new SqlParameter[]{ new SqlParameter(”@depart”,depart), new SqlParameter("@arrival”,arrival), new SqlParameter("@coachnum”,coachnum) }; dt = helper.ExecuteQuery(cmdText, paras, CommandType。StoredProcedure); tno = Convert.ToInt32(dt。Rows[0]["Tno"]); return tno; } (3) if (purchase.UpdateTicket(tno) && purchase.AddG(tno, datetime2, seat)) MessageBox.Show("购买成功!您购买的票为:\n” + depart + "—-—" + arrival + "\n" + ”出发时间:” + date + ”_" + time + "\n” + ”车牌号:" + coachnum + "\n" + "座位号:" + seat); else MessageBox.Show("购买失败!"); (4)public bool UpdateTicket(int tno) { bool flag = false; string cmdText = ”dbo.UpdateTicket"; SqlParameter[] paras = new SqlParameter[]{ new SqlParameter("@tno",tno) }; int res = helper。ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure); if (res > 0) { flag = true; } return flag; } (5)public bool AddG(int tno, DateTime datetime2, string seat) { bool flag = false; string cmdText = ”dbo。AddPurchaseYG"; SqlParameter[] paras = new SqlParameter[]{ new SqlParameter(”@tno”,tno), new SqlParameter("@datetime2",datetime2), new SqlParameter("@seat",seat) }; int res = helper.ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure); if (res 〉 0) { flag = true; } return flag; } (6)存储过程 ALTER PROCEDURE dbo.UpdateTicket @tno int /* ( @parameter1 int = 5, @parameter2 datatype OUTPUT ) */ AS /* SET NOCOUNT ON */ BEGIN update Ticket set SoldTicket = SoldTicket+1,LastTicket = LastTicket—1 where Tno = @tno END (7)ALTER PROCEDURE dbo.AddPurchase @tno int, @datetime1 datetime, @seat nvarchar(20) /* ( @parameter1 int = 5, @parameter2 datatype OUTPUT ) */ AS /* SET NOCOUNT ON */ BEGIN insert into Purchase(Tno,Ptime,ReserveORBuy,Seat) values (@tno,@datetime1,'预订’,@seat) END 9,站点管理界面 10,购买成功界面 数据库连接类代码: /// 〈summary> /// SqlCE数据库保持连接类 /// </summary> public class SqlHelper { public SqlConnection sqlconn = null; private SqlCommand cmd = null; private SqlDataReader sdr = null; /// <summary〉 /// 构造函数 /// </summary> public SqlHelper() { string connStr = "Data Source=(local);Initial Catalog=Coach;Integrated Security=True"; sqlconn = new SqlConnection(connStr); } private SqlConnection GetConn() { if (sqlconn.State == ConnectionState。Closed) { sqlconn。Open(); } return sqlconn; } /// <summary> /// 构造函数 /// </summary> /// <param name=”fSqlceConnString”>数据库连接字符串〈/param〉 public SqlHelper(String fSqlceConnString) { string connStr = "Data Source=(local);Initial Catalog=Coach;Integrated Security=True"; sqlconn = new SqlConnection(connStr); this。sqlconn = new SqlConnection(fSqlceConnString); if (sqlconn.State == ConnectionState。Closed) { sqlconn.Open(); } } /// <summary〉 /// 执行不返回结果的SQL语句.比如:Insert,Delete,Update /// </summary〉 /// 〈param name=”cmdText”>要执行的SQL语句〈/param> /// 〈returns〉返回影响记录的条数〈/returns〉 public int ExecuteNonQuery(String cmdText) { SqlCommand cmd = this.sqlconn。CreateCommand(); cmd.CommandText = cmdText; cmd。CommandType = CommandType。Text; return (cmd.ExecuteNonQuery()); } /// 〈summary〉 /// 执行带参数的增删改SQL语句或存储过程 /// </su- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 报告 车站 售票 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文