已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计 车站售票信息管理系统 学院: _信息工程学院_ 班级: _软件 1303 班_ 姓名: _ _ 邵周灿 _ 学号: 扬州大学 YANGZHOU UNIVERSITY 软件工程 - 1 - 一、概述一、概述 1、项目背景:随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多, 人口流动频繁,数量不断加大,车站信息量迅猛增长,车站售票管理系统在人们的日常生活中发挥着越来 越重要的作用。本系统实现了线路信息,汽车信息,票务信息的查询和管理,满足人们的需求。 2、编写目的:掌握数据库设计原理及相关软件的使用。实现方便、快速售票;是用户准确了解售票 情况,提供多种查询和统计功能;实现系统的安全性设置,使系统本身具有一定的维护功能。 3、软件定义:车站售票管理系统,主要用于车站日常的票务处理。 4、开发环境:Visual Studio2008,SQL SERVER2000 二、需求分析二、需求分析 车站售票管理系统 员工 管理 模块 汽车 管理 模块 线路 管理 模块 车票 管理 模块 票务 信息 管理 模块 员工信息添加 员工信息删除 员工信息修改 汽车信息添加 汽车信息修改 汽车信息删除 线路信息添加 线路信息修改 线路信息删除 添加车票 删除车票 查询车票信息 购买/预订车票 员工信息查询 汽车信息查询 线路信息查询 车票信息查询 功能模块图 1,员工管理模块: 员工有两种身份,售票员和系统管理员。系统管理员可以进行系统用户的添加,密码的修改操作,汽 车,线路,车票信息的更新等,售票员可以查询以上信息和购买车票等。 2,线路信息管理模块: 系统管理员可以在线路信息管理模块对车站线路信息进行管理。管理员首先建立线路信息数据库,输 入原始的线路信息,当有新的线路需要添加或者需要对已有的线路信息进行修改,删除的时候,管理员就 可以进行相应的操作。管理员也可以通过本模块查询到所有需要查询的线路的详细信息。 3,汽车信息管理模块: 系统管理员可以在汽车信息管理模块实现对汽车信息的管理。管理员首先应该建立汽车信息数据库, 输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相关信息以及想要删除某 个汽车信息的时候,就可以完成相应的操作。管理员也可以在整个数据库中查询相关汽车信息。 4,车票信息管理模块: 系统管理员可以在车票管理模块实现对车票信息的管理。管理员根据相应的汽车信息和线路信息来 软件工程 - 2 - 设置相应的车票详细信息。管理员还可以对某条线路的车票信息进行修改,删除和查询操作。 5,车票订购信息模块 用户可以通过查询时间,线路和汽车信息,来确定自己要买什么时间,什么路线,什么型号的汽车 的车票,并形成表单。 程序分为登陆界面,主界面,线路信息管理界面,汽车信息管理界面,车票信息管理界面,票务信 息管理界面,员工管理界面这几个主体界面。使用时应先知道管理员或员工帐号和密码,登陆进入系统主 菜单界面,里面包括线路信息,汽车信息,车票信息,票务信息,帮助,退出程序菜单选项。 三、系统设计三、系统设计 (一)数据流图:(一)数据流图: 车站售票管理系统 售票员 购票信息 售票信息 系统管理 员 汽车,线路等信息 汽车,路线等信息 顶层数据流图 查询处理买票购票信息可供票车票 车票记录售票记录 信息处理 车票信息 汽车记录 线路记录 读入信息处理 汽车信息 站点记录 站点信息 1 层车票数据流图 软件工程 - 3 - 系统管理员 售票员 售票 出售票 查询 查询 打印售票报表 报表打印 已售车票 查看已售车票情况 查看 发车时刻表 显示发车时刻 发车修改 修改 线路表 汽车表 员工表 线路变更 汽车变更 人员变更 增,删,改 增,删,改 增,删,改 决定 决定 决定 信息处理 站点修改 增,删,改 站点表 提取站点 软件工程 - 4 - (二)数据字典:(二)数据字典: 1,数据项数据项 编号数据项名数据项含义说明数据类型长度与其他数据项的关系是否可以为空 1 Uno 用户编号整型4User 表主键不 2 UserName 姓名nvarchar20不 3 Password 密码nvarchar20不 4 UserIdentiey 身份nvarchar20不 5 Cno 汽车编号整型4Coach 表主键不 6 Coachnumber 车牌号nvarchar20不 7 Ctype 汽车型号nvarchar20 8 Ctime 购买时间datetime8 9 Cnum 座位数量整型4不 10 Ctv 有无电视char10 11 Ccondition 有无空调char10 12 Coachholder 负责人nvarchar20不 13 Lno 线路编号整型4Line 表主键不 14 Ldepart 起始城市nvarchar20不 15 Larrival 到达城市nvarchar20不 16 Ltime 路程时间datetime8 17 Tno 车票编号整型4Ticket 表主键不 18 Price 车票价格整型4不 19 SoldTicket 已卖票数整型4不 20 LastTicket 剩余票数整型4不 21 Tdate 出发日期datetime8不 22 Ttime 出发时间datetime8不 23 Ptime 购买时间datetime8 24 Seat 座位号整型4不 25 ReserveORBuy 预定或购买char10不 26 Cityno 站点编号整型4City 表主键不 27 CityName 站点名称nvarchar20不 2,数据结构数据结构 编号数据结构名属 性 1员工员工编号,姓名,密码,身份 2汽车汽车编号,汽车型号,车牌号,购买时间,座位数量,有无电视,有无空调, 负责人 3线路线路编号,起始城市,到达城市,路程时间 4车票车票编号,线路编号,汽车编号,车票价格,已卖票数,剩余票数,出发日 期,出发时间 5购票车票编号,购买日期,预定或购买,座位号 6站点站点编号,站点名称 软件工程 - 5 - 3 3, 数据流数据流 编号数据流名输 入输 出 1变更汽车信息变更信息汽车记录 2查询汽车信息汽车编号/汽车型号/车牌号/有无电视/有 无空调/负责人 汽车记录 3变更站点信息变更信息站点记录 4变更线路信息变更信息线路记录 5查询线路信息线路编号/起始城市,到达城市线路记录 6变更车票信息变更信息车票记录 7查询车票信息车票编号/起始城市,到达城市/汽车型号 /出发日期,出发时间 车票记录 8预定车票车票编号,购买日期,预定或购买预订记录 9购买车票车票编号,购买日期,预定或购买购买记录 10查询购买情况车票编号/起始城市,到达城市/汽车型号购买记录 11更改用户变更信息用户记录 12员工信息用户输入电脑的用户名、密码系统主菜单 4,数据存储数据存储 数据存储名输入数据流输出数据流说 明 部 分 用户信息变更用户信息查询用户信息 汽车信息变更汽车信息查询汽车信息 线路信息变更线路信息查询线路信息 车票信息变更车票信息查询车票信息 预定车票信息车票信息预订记录 购买车票信息车票信息购买记录 5、处理过程处理过程 处理过程名输入数据流输出数据流处理操作 查询已知汽车/线路/车票信息所需信息 购买/预定车票信息+购票时间+座位号无 更新变更信息再次查询信息 用户权限认证用户名,密码,身份系统主菜单用户登录 软件工程 - 6 - (三)(三)E-RE-R 图图 售票员 汽车线路 购买 员工编号 姓名 密码 身份 汽车编号 汽车型号 购买时间 座位数量 有无电视 有无空调 线路编号 起始城市 到达城市 路程时间 车票编号车票价格 剩余票数 购买日期 车牌号 负责人 已卖票数 出发时间 预定或购买 座位号 站点 站点编号 站点名称 系统管理员 管理 管理 车票 管理 包含包含 员工编号 姓名 密码 身份 出发日期 m n n m 1 p 1 m m n p m 软件工程 - 7 - (四)关系模型:(四)关系模型: 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 1,CityCity 站点表:站点表: 2 2,UserinfoUserinfo 员工表:员工表: 3 3,TicketTicket 车票信息表:车票信息表: 软件工程 - 8 - 4 4,CoachCoach 汽车信息表:汽车信息表: 5 5,PurchasePurchase 车票购买表:车票购买表: 6 6,LineLine 线路表线路表 : (二)主要界面及代码(二)主要界面及代码 1 1,登录界面:,登录界面: 软件工程 - 9 - 登录操作代码:登录操作代码: (1 1)SqlHelper helper = new SqlHelper(); SqlDataReader rdr; (2 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 string iden = rdrUserIdentity.ToString(); MainForm main = new MainForm(iden); main.ShowDialog(); rdr.Close(); return; MessageBox.Show(错误的姓名或密码或与身份不匹配,请重新输入!); rdr.Close(); (3 3)存储过程:)存储过程: ALTER PROCEDURE dbo.SelectUserinfo /* ( parameter1 int = 5, parameter2 datatype OUTPUT ) */ AS /* SET NOCOUNT ON */ BEGIN select * from Userinfo END 软件工程 - 10 - 2 2,系统主界面,系统主界面 3 3,员工管理界面:,员工管理界面: 修改修改/删除操作代码:删除操作代码: (1) try SqlCommandBuilder scb = new SqlCommandBuilder(sd); sd.Update(ds, a); ds.AcceptChanges(); MessageBox.Show(修改成功!); catch (Exception ex) 软件工程 - 11 - 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 4,汽车信息管理界面:,汽车信息管理界面: 添加操作代码:添加操作代码: (1 1)DAL.CoachDAO coach = new Coach.DAL.CoachDAO(); SqlHelper helper = new SqlHelper(); (2)(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(添加成功!); 软件工程 - 12 - else MessageBox.Show(添加失败!); (3 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)(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) 软件工程 - 13 - END 5 5,线路信息管理界面:,线路信息管理界面: 搜索操作代码:搜索操作代码: (1 1) SqlHelper helper = new SqlHelper(); SqlConnection conn = new SqlConnection(Data Source=(local);Initial Catalog=Coach;Integrated Security=True); SqlDataAdapter sd; /定义一个数据适配器 DataSet ds; /定义一个数据集 (2 2) string str1 = select Lno as 编号,Ldepart as 起始城市,Larrival as 到达城市,convert(varchar(10), Ltime,108) as 路程时间 from Line where Lno = + lineid + ; dataBind(str1); (3 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); 软件工程 - 14 - 6 6,车票信息管理界面:,车票信息管理界面: 7 7,车票信息管理中,选择汽车和路线界面:,车票信息管理中,选择汽车和路线界面: 软件工程 - 15 - 8,8,票务管理界面票务管理界面 : 查询操作代码:查询操作代码: (1 1) DAL.PurchaseDAO purchase = new Coach.DAL.PurchaseDAO(); SqlHelper helper = new SqlHelper(); (2 2) dataGridView1.DataSource = purchase.Select1(departcity,arrivalcity,date2); (3 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 软件工程 16 ) */ 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 1)tno = purchase.Yuding(depart, arrival, coachnum); (2 2)实体类)实体类 PurchaseDAO.csPurchaseDAO.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) else MessageBox.Show(购买失败!); (4 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; 软件工程 17 return flag; (5 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 */ 软件工程 18 BEGIN insert into Purchase(Tno,Ptime,ReserveORBuy,Seat) values (tno,datetime1,预订,seat) END 9 9,站点管理界面,站点管理界面 1010,购买成功界面,购买成功界面 数据库连接类代码:数据库连接类代码: / / 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语句或存储过程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 猜想06平行线的证明和三角形内角和定理(易错必刷36题9种题型)原卷版
- 陕西省安康市石泉县江南高级中学人教版高中政治必修一教案512企业的经营与发展
- 福建省三明市第一中学2017-2018学年高二下学期每日一练3数学(理)试题
- 风力发电简介课件
- 山西省太原市2023-2024学年高一下学期7月期末信息技术试题
- 山西太原高三二模文科数学试题
- 福建省宁化市第一中学高三下学期第一次质检模拟试题地理
- 人教部编版八年级语文上册《“飞天”凌空-跳水姑娘吕伟夺魁记》公开课教学课件
- 开学安全教育教案
- MES系统的开发应用
- 呼吸道感染病毒培训课件
- 重症超声课件
- 物联网信息安全知识考核试题与答案
- 军乐队乐器种类以及人员编制
- 车辆驾驶业务外包服务方案
- 高中化学选修4《化学反应原理》全册教案
- 现场粉尘清扫记录表参考模板范本
- 大学《通用英语1》 期中测试卷试题
- GB∕T 21246-2020 埋地钢质管道阴极保护参数测量方法
- 五年级上册数学课件 - 植树问题 人教版(共21张PPT)
- 北京高考英语阅读题七选五(附解析)
评论
0/150
提交评论