1吉林工程技术师范学院课程设计报告设计名称:车站售票信息管理系统姓名:孟祥丽学号:23号专业:计算机科学与技术班级:C1042院系:信息工程学院指导教师:刘国成、杨宇晶、郭天娇2010年12月16日2一、概述1、项目背景:随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,车站售票管理系统在人们的日常生活中发挥着越来越重要的作用。本系统实现了线路信息,汽车信息,票务信息的查询和管理,满足人们的需求。2、编写目的:掌握数据库设计原理及相关软件的使用。实现方便、快速售票;是用户准确了解售票情况,提供多种查询和统计功能;实现系统的安全性设置,使系统本身具有一定的维护功能。3、软件定义:车站售票管理系统,主要用于车站日常的票务处理。4、开发环境:VisualStudio2008,SQLSERVER2000二、需求分析车站售票管理系统员工管理模块汽车管理模块线路管理模块车票管理模块票务信息管理模块员工信息添加员工信息删除员工信息修改汽车信息添加汽车信息修改汽车信息删除线路信息添加线路信息修改线路信息删除添加车票删除车票查询车票信息购买/预订车票员工信息查询汽车信息查询线路信息查询车票信息查询功能模块图1,员工管理模块:员工有两种身份,售票员和系统管理员。系统管理员可以进行系统用户的添加,密码的修改操作,汽车,线路,车票信息的更新等,售票员可以查询以上信息和购买车票等。2,线路信息管理模块:系统管理员可以在线路信息管理模块对车站线路信息进行管理。管理员首先建立线路信息数据库,输入原始的线路信息,当有新的线路需要添加或者需要对已有的线路信息进行修改,删除的时候,管理员就可以进行相应的操作。管理员也可以通过本模块查询到所有需要查询的线路的详细信息。3,汽车信息管理模块:系统管理员可以在汽车信息管理模块实现对汽车信息的管理。管理员首先应该建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相关信息以及想要删除某个汽车信息的时候,就可以完成相应的操作。管理员也可以在整个数据库中查询相关汽车信息。4,车票信息管理模块:系统管理员可以在车票管理模块实现对车票信息的管理。管理员根据相应的汽车信息和线路信息来设3置相应的车票详细信息。管理员还可以对某条线路的车票信息进行修改,删除和查询操作。5,车票订购信息模块用户可以通过查询时间,线路和汽车信息,来确定自己要买什么时间,什么路线,什么型号的汽车的车票,并形成表单。程序分为登陆界面,主界面,线路信息管理界面,汽车信息管理界面,车票信息管理界面,票务信息管理界面,员工管理界面这几个主体界面。使用时应先知道管理员或员工帐号和密码,登陆进入系统主菜单界面,里面包括线路信息,汽车信息,车票信息,票务信息,帮助,退出程序菜单选项。三、系统设计(一)数据流图:车站售票管理系统售票员购票信息售票信息系统管理员汽车,线路等信息汽车,路线等信息顶层数据流图查询处理买票购票信息可供票车票车票记录售票记录信息处理车票信息汽车记录线路记录读入信息处理汽车信息站点记录站点信息1层车票数据流图4系统管理员售票员售票出售票查询查询打印售票报表报表打印已售车票查看已售车票情况查看发车时刻表显示发车时刻发车修改修改线路表汽车表员工表线路变更汽车变更人员变更增,删,改增,删,改增,删,改决定决定决定信息处理站点修改增,删,改站点表提取站点5(二)数据字典: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站点站点编号,站点名称63,数据流编号数据流名输入输出1变更汽车信息变更信息汽车记录2查询汽车信息汽车编号/汽车型号/车牌号/有无电视/有无空调/负责人汽车记录3变更站点信息变更信息站点记录4变更线路信息变更信息线路记录5查询线路信息线路编号/起始城市,到达城市线路记录6变更车票信息变更信息车票记录7查询车票信息车票编号/起始城市,到达城市/汽车型号/出发日期,出发时间车票记录8预定车票车票编号,购买日期,预定或购买预订记录9购买车票车票编号,购买日期,预定或购买购买记录10查询购买情况车票编号/起始城市,到达城市/汽车型号购买记录11更改用户变更信息用户记录12员工信息用户输入电脑的用户名、密码系统主菜单4,数据存储数据存储名输入数据流输出数据流说明部分用户信息变更用户信息查询用户信息汽车信息变更汽车信息查询汽车信息线路信息变更线路信息查询线路信息车票信息变更车票信息查询车票信息预定车票信息车票信息预订记录购买车票信息车票信息购买记录5、处理过程处理过程名输入数据流输出数据流处理操作查询已知汽车/线路/车票信息所需信息购买/预定车票信息+购票时间+座位号无更新变更信息再次查询信息用户权限认证用户名,密码,身份系统主菜单用户登录7(三)E-R图售票员汽车线路购买员工编号姓名密码身份汽车编号汽车型号购买时间座位数量有无电视有无空调线路编号起始城市到达城市路程时间车票编号车票价格剩余票数购买日期车牌号负责人已卖票数出发时间预定或购买座位号站点站点编号站点名称系统管理员管理管理车票管理包含包含员工编号姓名密码身份出发日期mnnm1p1mmnpm8(四)关系模型: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车票信息表:94,Coach汽车信息表:5,Purchase车票购买表:6,Line线路表:(二)主要界面及代码1,登录界面:10登录操作代码:(1)SqlHelperhelper=newSqlHelper();SqlDataReaderrdr;(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();stringiden=rdr[UserIdentity].ToString();MainFormmain=newMainForm(iden);main.ShowDialog();rdr.Close();return;}}MessageBox.Show(错误的姓名或密码或与身份不匹配,请重新输入!);rdr.Close();(3)存储过程:ALTERPROCEDUREdbo.SelectUserinfo/*(@parameter1int=5,@parameter2datatypeOUTPUT)*/AS/*SETNOCOUNTON*/BEGINselect*fromUserinfoEND112,系统主界面3,员工管理界面:修改/删除操作代码:(1)try{SqlCommandBuilderscb=newSqlCommandBuilder(sd);sd.Update(ds,a);ds.AcceptChanges();MessageBox.Show(修改成功!);}catch(Exceptionex){12MessageBox.Show(ex.Message.ToString());}(2)try{SqlCommandBuilderscb=newSqlCommandBuilder(sd);inta=dataGridView1.CurrentRow.Index;ds.Tables[0].Rows[a].Delete();sd.Update(ds,a);ds.AcceptChanges();MessageBox.Show(删除成功!);}catch(Exceptionex){MessageBox.Show(ex.Message.ToString());}4,汽车信息管理界面:添加操作代码:(1)DAL.CoachDAOcoach=newCoach.DAL.CoachDAO();SqlHelperhelper=newSqlHelper();(2)if(string.IsNullOrEmpty(coachnumber)||string.IsNullOrEmpty(seatnumber1)||string.IsNullOrEmpty(coachholder)){MessageBox.Show(车牌号,座位数量,负责人均不能为空!);}else{if(coach.Add(coachtype,coachnumber,date2,seatnumber,ishavetv,ishavecon,coachholder))13MessageBox.Show(添加成功!);elseMessageBox.Show(添加失败!);}(3)实体类CoachDAO.cs中:publicboolAdd(stringcoachtype,stringcoac