数据库课程设计报告车站售票管理系统

上传人:无*** 文档编号:115995063 上传时间:2022-07-04 格式:DOC 页数:22 大小:800.50KB
返回 下载 相关 举报
数据库课程设计报告车站售票管理系统_第1页
第1页 / 共22页
数据库课程设计报告车站售票管理系统_第2页
第2页 / 共22页
数据库课程设计报告车站售票管理系统_第3页
第3页 / 共22页
点击查看更多>>
资源描述
吉林工程技术师范学院课程设计报告 设计名称: 车站售票信息管理系统 姓 名: 孟祥丽 学 号: 23号 专 业: 计算机科学与技术 班 级: C1042 院 系: 信息工程学院 指导教师: 刘国成、杨宇晶、郭天娇 2010年12月16日一、概述1、项目背景:随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,车站售票管理系统在人们的日常生活中发挥着越来越重要的作用。本系统实现了线路信息,汽车信息,票务信息的查询和管理,满足人们的需求。2、编写目的:掌握数据库设计原理及相关软件的使用。实现方便、快速售票;是用户准确了解售票情况,提供多种查询和统计功能;实现系统的安全性设置,使系统本身具有一定的维护功能。3、软件定义:车站售票管理系统,主要用于车站日常的票务处理。4、开发环境:Visual Studio2008,SQL SERVER2000二、需求分析 功能模块图1,员工管理模块:员工有两种身份,售票员和系统管理员。系统管理员可以进行系统用户的添加,密码的修改操作,汽车,线路,车票信息的更新等,售票员可以查询以上信息和购买车票等。2,线路信息管理模块:系统管理员可以在线路信息管理模块对车站线路信息进行管理。管理员首先建立线路信息数据库,输入原始的线路信息,当有新的线路需要添加或者需要对已有的线路信息进行修改,删除的时候,管理员就可以进行相应的操作。管理员也可以通过本模块查询到所有需要查询的线路的详细信息。3,汽车信息管理模块:系统管理员可以在汽车信息管理模块实现对汽车信息的管理。管理员首先应该建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相关信息以及想要删除某个汽车信息的时候,就可以完成相应的操作。管理员也可以在整个数据库中查询相关汽车信息。4,车票信息管理模块:系统管理员可以在车票管理模块实现对车票信息的管理。管理员根据相应的汽车信息和线路信息来设置相应的车票详细信息。管理员还可以对某条线路的车票信息进行修改,删除和查询操作。5,车票订购信息模块 用户可以通过查询时间,线路和汽车信息,来确定自己要买什么时间,什么路线,什么型号的汽车的车票,并形成表单。 程序分为登陆界面,主界面,线路信息管理界面,汽车信息管理界面,车票信息管理界面,票务信息管理界面,员工管理界面这几个主体界面。使用时应先知道管理员或员工帐号和密码,登陆进入系统主菜单界面,里面包括线路信息,汽车信息,车票信息,票务信息,帮助,退出程序菜单选项。三、系统设计 (一)数据流图: 顶层数据流图 1层车票数据流图(二)数据字典:1, 数据项编号数据项名数据项含义说明数据类型长度与其他数据项的关系是否可以为空1Uno用户编号整型4User表主键不2UserName姓名nvarchar20不3Password密码nvarchar20不4UserIdentiey身份nvarchar20不5Cno汽车编号整型4Coach表主键不6Coachnumber车牌号nvarchar20不7Ctype汽车型号nvarchar208Ctime购买时间datetime89Cnum座位数量整型4不10Ctv有无电视char1011Ccondition有无空调char1012Coachholder负责人nvarchar20不13Lno线路编号整型4Line表主键不14Ldepart起始城市nvarchar20不15Larrival到达城市nvarchar20不16Ltime路程时间datetime817Tno车票编号整型4Ticket表主键不18Price车票价格整型4不19SoldTicket已卖票数整型4不20LastTicket剩余票数整型4不21Tdate出发日期datetime8不22Ttime出发时间datetime8不23Ptime购买时间datetime824Seat座位号整型4不25ReserveORBuy预定或购买char10不26Cityno站点编号整型4City表主键不27CityName站点名称nvarchar20不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 (rdrUserName.ToString() = name & rdrPassword.ToString() = password & rdrUserIdentity.ToString() = identity) this.Hide(); string iden = rdrUserIdentity.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 END2,系统主界面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.Tables0.Rowsa.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.AddCoachcoachtype 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 */BEGINinsert into Coach (Ctype,Coachnumber,Ctime,Cnum,Ctv,Ccondition,Coachholder) values (coachtype,coachnumber,date2,seatnumber,ishavetv,ishavecon,coachholder)END5,线路信息管理界面:搜索操作代码:(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.SelectPurchasedepartcity nvarchar(20),arrivalcity nvarchar(20),date2 datetime/*(parameter1 int = 5,parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINselect 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 = date2END预订/购买操作代码:(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.Rows0Tno); 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.UpdateTickettno int/*(parameter1 int = 5,parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINupdate Ticket set SoldTicket = SoldTicket+1,LastTicket = LastTicket-1 where Tno = tno END(7)ALTER PROCEDURE dbo.AddPurchasetno int,datetime1 datetime,seat nvarchar(20)/*(parameter1 int = 5,parameter2 datatype OUTPUT)*/AS/* SET NOCOUNT ON */BEGINinsert into Purchase(Tno,Ptime,ReserveORBuy,Seat) values (tno,datetime1,预订,seat)END9,站点管理界面 10,购买成功界面 数据库连接类代码: / / SqlCE数据库保持连接类 / public class SqlHelper public SqlConnection sqlconn = null; private SqlCommand cmd = null; private SqlDataReader sdr = null; / / 构造函数 / 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; / / 构造函数 / / 数据库连接字符串 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(); / / 执行不返回结果的SQL语句。比如:Insert,Delete,Update / / 要执行的SQL语句 / 返回影响记录的条数 public int ExecuteNonQuery(String cmdText) SqlCommand cmd = this.sqlconn.CreateCommand(); cmd.CommandText = cmdText; cmd.CommandType = CommandType.Text; return (cmd.ExecuteNonQuery(); / / 执行带参数的增删改SQL语句或存储过程 / / 增删改SQL语句或存储过程 / 命令类型 / public int ExecuteNonQuery(string cmdText, SqlParameter paras, CommandType ct) int res; using (cmd = new SqlCommand(cmdText, GetConn() cmd.CommandType = ct; cmd.Parameters.AddRange(paras); res = cmd.ExecuteNonQuery(); return res; / / 执行返回SqlCeDataReader结果集的SQL语句。比如:Select / / 要执行的SQL语句 / 返回的SqlCeDataReader public SqlDataReader ExecuteReader(string cmdText, CommandType ct) SqlDataReader reader; try cmd = new SqlCommand(cmdText, GetConn(); cmd.CommandType = ct; reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); catch (Exception e2) throw new Exception(e2.Message.ToString(); return reader; / / 执行带参数的查询SQL语句或存储过程 / / 查询SQL语句或存储过程 / 参数集合 / 命令类型 / public DataTable ExecuteQuery(string cmdText, SqlParameter paras, CommandType ct) DataTable dt = new DataTable(); cmd = new SqlCommand(cmdText, GetConn(); cmd.CommandType = ct; cmd.Parameters.AddRange(paras); using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection) dt.Load(sdr); return dt; 五、课程设计心得体会 这次课程设计使我巩固了数据库和C#的知识,通过实践,我学到了很多课本上学不到的知识。在这次车站售票管理系统的开发过程中,我也遇到了许多的问题,例如:数据库连接错误,学习写存储过程,数据如何绑定等等,经过认真思考并在老师和同学的帮助下我顺利完成了本次设计。首先我需要对车站售票管理系统进行系统分析:如需求分析和开发工具选择,功能分配等等。考虑要实现整个程序大致需要的几个模块画数据流图和数据字典。然后在概念模型设计中,将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用中的实体、实体的属性,标识实体的码,确定实体之间的联系及其类型,设计E-R图。在逻辑结构设计阶段,把概念结构设计阶段设计好的基本E-R图转换为关系模型。接着进行数据库的建立还有代码的书写:这是一个至关重要而且需要反复修改的环节,在此环节中又发现总体设计和模块思想会存在很多问题,需要不断改进。如何实现各模块功能,达到预期效果也将是一项繁复的工作。最后还要进行测试系统,发现所有可能出现的问题。虽然以前用C#做过网站,但通过这次课程设计,使我更加熟悉地掌握了C#及VS的运用,帮助我熟悉了更多连接数据库及与数据库有关方面的操作,从中学到了许多解决实际问题的经验。参考文献1 数据库系统原理与应用教程 李春葆 清华大学出版社2 数据库系统原理与应用SQL Server 2000 夏冰冰 国防工业出版社3 数据库技术及应用 范剑波 浙江大学出版社4 数据库技术与应用实践教程-SQL SERVER 严辉,刘卫国 清华大学出版社5 数据库原理及应用 钱雪忠 北京邮电大学出版社 6 数据库技术与联机分析处理 王珊 北京科学出版社 7 数据库系统概论 王珊,萨师煊 高等教育出版社8 数据库系统概论学习指导与习题解答 王珊,朱青 高等教育出版社 9 数据库技术及应用 苗雪兰 机械工业出版社10 数据库系统概论 聂瑞华 高等教育出版社11 数据库技术及应用实验指导与习题解答 苗雪兰 机械工业出版社12 数据库系统教程(第二版) 施伯乐,丁宝康,汪卫 高等教育出版社13 数据库基础与应用 王珊,李盛恩 人民邮电出版社14 数据库系统原理(第2版) 李建中,王珊 电子工业出版社15 数据库系统导论(第7版) C.J.Date,孟小峰,王珊翻译 机械工业出版社
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!