还剩20页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
吉林工程技术师范学院课程设计报告设计名称车站售票信息管理系统姓名孟祥丽学号23号专业计算机科学与技术班级C1042院系信息工程学院指导教师刘国成、杨宇晶、郭天娇2010年12月16日
一、概述
1、项目背景随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,车站售票管理系统在人们的日常生活中发挥着越来越重要的作用本系统实现了线路信息,汽车信息,票务信息的查询和管理,满足人们的需求
2、编写目的掌握数据库设计原理及相关软件的使用实现方便、快速售票;是用户准确了解售票情况,提供多种查询和统计功能;实现系统的安全性设置,使系统本身具有一定的维护功能
3、软件定义车站售票管理系统,主要用于车站日常的票务处理
4、__环境VisualStudio2008,SQLSERVER2000
二、需求分析功能模块图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表主键不18Pri__车票__整型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,车票__Pri__,已卖票数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)SqlHelperhelper=newSqlHelper;SqlDataReaderrdr;
(2)ifstring.IsNullOrEmptyname||string.IsNullOrEmptypassword||string.IsNullOrEmptyidentity{MessageBox.Show姓名__身份框均不能为空!;}rdr=helper.ExecuteReaderdbo.SelectUserinfoCom__ndType.StoredPro__dure;whilerdr.Read{ifrdr[UserName].ToString==namerdr[Password].ToString==passwordrdr[UserIdentity].ToString==identity{this.Hide;stringiden=rdr[UserIdentity].ToString;__inForm__in=new__inFormiden;__in.ShowDialog;rdr.Close;return;}}MessageBox.Show错误的姓名或__或与身份不匹配,请重新输入!;rdr.Close;
(3)存储过程ALTERPRO__DUREdbo.SelectUserinfo/*@parameter1int=5@parameter2datatypeOUTPUT*/AS/*SETNOCOUNTON*/BEGINselect*fromUserinfoEND2,系统主界面3,员工管理界面修改/删除操作代码
(1)try{SqlCom__ndBuilderscb=newSqlCom__ndBuildersd;sd.Updatedsa;ds.Ac__ptChanges;MessageBox.Show修改成功!;}catchEx__ptionex{MessageBox.Showex.Message.ToString;}
(2)try{SqlCom__ndBuilderscb=newSqlCom__ndBuildersd;inta=dataGridView
1.CurrentRow.Index;ds.Tables
[0].Rows[a].Delete;sd.Updatedsa;ds.Ac__ptChanges;MessageBox.Show删除成功!;}catchEx__ptionex{MessageBox.Showex.Message.ToString;}4,汽车信息管理界面添加操作代码
(1)DAL.CoachDAOcoach=newCoach.DAL.CoachDAO;SqlHelperhelper=newSqlHelper;2ifstring.IsNullOrEmptycoachnumber||string.IsNullOrEmptyseatnumber1||string.IsNullOrEmptycoachholder{MessageBox.Show车牌号,座位数量,负责人均不能为空!;}else{ifcoach.Addcoachtypecoachnumberdate2seatnumberish__etvish__econcoachholderMessageBox.Show添加成功!;elseMessageBox.Show添加失败!;}
(3)实体类CoachDAO.cs中publicboolAddstringcoachtypestringcoachnumberDateTimedate2intseatnumberstringish__etvstringish__econstringcoachholder{boolflag=false;DataTabledt=newDataTable;stringcmdText=dbo.AddCoach;SqlParameter[]paras=newSqlParameter[]{newSqlParameter@coachtypecoachtypenewSqlParameter@coachnumbercoachnumbernewSqlParameter@date2date2newSqlParameter@seatnumberseatnumbernewSqlParameter@ish__etvish__etvnewSqlParameter@ish__econish__econnewSqlParameter@coachholdercoachholder};intres=helper.ExecuteNonQuerycmdTextparasCom__ndType.StoredPro__dure;ifres0{flag=true;}returnflag;}4存储过程ALTERPRO__DUREdbo.AddCoach@coachtypenvarchar20@coachnumbernvarchar20@date2datetime@seatnumberint@ish__etvchar10@ish__econchar10@coachholdernvarchar20/*@parameter1int=5@parameter2datatypeOUTPUT*/AS/*SETNOCOUNTON*/BEGINinsertintoCoachCtypeCoachnumberCtimeCnumCtvCconditionCoachholdervalues@coachtype@coachnumber@date2@seatnumber@ish__etv@ish__econ@coachholderEND5,线路信息管理界面搜索操作代码
(1)SqlHelperhelper=newSqlHelper;SqlConnectionconn=newSqlConnectionDataSour__=local;InitialCatalog=Coach;IntegratedSecurity=True;SqlDataAdaptersd;//定义一个数据适配器DataSetds;//定义一个数据集
(2)stringstr1=selectLnoas编号Ldepartas起始城市Larrivalas到达城市convertvarchar10Ltime108as路程时间fromLinewhereLno=+lineid+;dataBindstr1;
(3)privatevoiddataBindstringstr{try{sd=newSqlDataAdapterstrconn;ds=newDataSet;sd.Filldsa;dataGridView
1.DataSour__=ds;dataGridView
1.DataMember=a;}catchEx__ptionex{MessageBox.Showex.Message;}}6,车票信息管理界面7,车票信息管理中,选择汽车和路线界面8票务管理界面查询操作代码
(1)DAL.PurchaseDAOpurchase=newCoach.DAL.PurchaseDAO;SqlHelperhelper=newSqlHelper;
(2)dataGridView
1.DataSour__=purchase.Select1departcityarrivalcitydate2;
(3)实体类PurchaseDAO.cs中publicDataTableSelect1stringdepartcitystringarrivalcityDateTimedate2{DataTabledt=newDataTable;stringcmdText=dbo.SelectPurchase;SqlParameter[]paras=newSqlParameter[]{newSqlParameter@departcitydepartcitynewSqlParameter@arrivalcityarrivalcitynewSqlParameter@date2date2};dt=helper.ExecuteQuerycmdTextparasCom__ndType.StoredPro__dure;returndt;}
(4)存储过程ALTERPRO__DUREdbo.SelectPurchase@departcitynvarchar20@arrivalcitynvarchar20@date2datetime/*@parameter1int=5@parameter2datatypeOUTPUT*/AS/*SETNOCOUNTON*/BEGINselectLdepartas起始城市Larrivalas到达城市convertvarchar10Tdate120as出发日期convertvarchar10Ttime108as出发时间Ctypeas车型Coachnumberas车牌号Ctvas有无电视Cconditionas有无空调Pri__as票价Cnumas总票数LastTicketas剩余票数fromCoachLineTicketwhereCoach.Cno=Ticket.CnoandLine.Lno=Ticket.LnoandLdepart=@departcityandLarrival=@arrivalcityandTdate=@date2END预订/__操作代码
(1)tno=purchase.Yudingdepartarrivalcoachnum;
(2)实体类PurchaseDAO.cs中publicintYudingstringdepartstringarrivalstringcoachnum{inttno;DataTabledt=newDataTable;stringcmdText=dbo.SelectTno;SqlParameter[]paras=newSqlParameter[]{newSqlParameter@departdepartnewSqlParameter@arrivalarrivalnewSqlParameter@coachnumcoachnum};dt=helper.ExecuteQuerycmdTextparasCom__ndType.StoredPro__dure;tno=Convert.ToInt32dt.Rows
[0][Tno];returntno;}
(3)ifpurchase.UpdateTickettnopurchase.AddGtnodatetime2seatMessageBox.Show__成功!您__的票为\n+depart+---+arrival+\n+出发时间+date+_+time+\n+车牌号+coachnum+\n+座位号:+seat;elseMessageBox.Show__失败!;
(4)publicboolUpdateTicketinttno{boolflag=false;stringcmdText=dbo.UpdateTicket;SqlParameter[]paras=newSqlParameter[]{newSqlParameter@tnotno};intres=helper.ExecuteNonQuerycmdTextparasCom__ndType.StoredPro__dure;ifres0{flag=true;}returnflag;}
(5)publicboolAddGinttnoDateTimedatetime2stringseat{boolflag=false;stringcmdText=dbo.AddPurchaseYG;SqlParameter[]paras=newSqlParameter[]{newSqlParameter@tnotnonewSqlParameter@datetime2datetime2newSqlParameter@seatseat};intres=helper.ExecuteNonQuerycmdTextparasCom__ndType.StoredPro__dure;ifres0{flag=true;}returnflag;}
(6)存储过程ALTERPRO__DUREdbo.UpdateTicket@tnoint/*@parameter1int=5@parameter2datatypeOUTPUT*/AS/*SETNOCOUNTON*/BEGINupdateTicketsetSoldTicket=SoldTicket+1LastTicket=LastTicket-1whereTno=@tnoEND
(7)ALTERPRO__DUREdbo.AddPurchase@tnoint@datetime1datetime@seatnvarchar20/*@parameter1int=5@parameter2datatypeOUTPUT*/AS/*SETNOCOUNTON*/BEGINinsertintoPurchaseTnoPtimeReserveORBuySeatvalues@tno@datetime1预订@seatEND9,站点管理界面10,__成功界面数据库连接类代码///sum__ry///Sql__数据库保持连接类////sum__rypublicclassSqlHelper{publicSqlConnectionsqlconn=null;privateSqlCom__ndcmd=null;privateSqlDataReadersdr=null;///sum__ry///构造函数////sum__rypublicSqlHelper{stringconnStr=DataSour__=local;InitialCatalog=Coach;IntegratedSecurity=True;sqlconn=newSqlConnectionconnStr;}privateSqlConnectionGetConn{ifsqlconn.State==ConnectionState.Closed{sqlconn.Open;}returnsqlconn;}///sum__ry///构造函数////sum__ry///paramname=fSql__ConnString数据库连接字符串/parampublicSqlHelperStringfSql__ConnString{stringconnStr=DataSour__=local;InitialCatalog=Coach;IntegratedSecurity=True;sqlconn=newSqlConnectionconnStr;this.sqlconn=newSqlConnectionfSql__ConnString;ifsqlconn.State==ConnectionState.Closed{sqlconn.Open;}}///sum__ry///执行不返回结果的SQL语句比如InsertDeleteUpdate////sum__ry///paramname=cmdText要执行的SQL语句/param///returns返回影响记录的条数/returnspublicintExecuteNonQueryStringcmdText{SqlCom__ndcmd=this.sqlconn.CreateCom__nd;cmd.Com__ndText=cmdText;cmd.Com__ndType=Com__ndType.Text;returncmd.ExecuteNonQuery;}///sum__ry///执行带参数的增删改SQL语句或存储过程////sum__ry///paramname=cmdText增删改SQL语句或存储过程/param///paramname=ct命令类型/param///returns/returnspublicintExecuteNonQuerystringcmdTextSqlParameter[]parasCom__ndTypect{intres;usingcmd=newSqlCom__ndcmdTextGetConn{cmd.Com__ndType=ct;cmd.Parameters.AddRangeparas;res=cmd.ExecuteNonQuery;}returnres;}///sum__ry///执行返回Sql__DataReader结果集的SQL语句比如Select////sum__ry///paramname=cmdText要执行的SQL语句/param///returns返回的Sql__DataReader/returnspublicSqlDataReaderExecuteReaderstringcmdTextCom__ndTypect{SqlDataReaderreader;try{cmd=newSqlCom__ndcmdTextGetConn;cmd.Com__ndType=ct;reader=cmd.ExecuteReaderCom__ndBeh__ior.CloseConnection;}catchEx__ptione2{thrownewEx__ptione
2.Message.ToString;}returnreader;}///sum__ry///执行带参数的查询SQL语句或存储过程////sum__ry///paramname=cmdText查询SQL语句或存储过程/param///paramname=paras参数__/param///paramname=ct命令类型/param///returns/returnspublicDataTableExecuteQuerystringcmdTextSqlParameter[]parasCom__ndTypect{DataTabledt=newDataTable;cmd=newSqlCom__ndcmdTextGetConn;cmd.Com__ndType=ct;cmd.Parameters.AddRangeparas;usingsdr=cmd.ExecuteReaderCom__ndBeh__ior.CloseConnection{dt.Loadsdr;}returndt;}}
五、课程设计心得体会这次课程设计使我巩固了数据库和C#的知识,通过实践,我学到了很多课本上学不到的知识在这次车站售票管理系统的__过程中,我也遇到了许多的问题,例如数据库连接错误,学习写存储过程,数据如何绑定等等,经过认真思考并在老师和同学的帮助下我顺利完成了本次设计首先我需要对车站售票管理系统进行系统分析如需求分析和__工具选择,功能分配等等考虑要实现整个程序大致需要的几个模块画数据流图和数据字典然后在概念模型设计中,将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用中的实体、实体的属性,标识实体的码,确定实体之间的__及其类型,设计E-R图在逻辑结构设计阶段,把概念结构设计阶段设计好的基本E-R图转换为关系模型接着进行数据库的建立还有代码的书写这是一个至关重要而且需要反复修改的环节,在此环节中又发现总体设计和模块思想会存在很多问题,需要不断改进如何实现各模块功能,达到预期效果也将是一项繁复的工作最后还要进行测试系统,发现所有可能出现的问题虽然以前用C#做过__,但通过这次课程设计,使我更加熟悉地掌握了C#及VS的运用,帮助我熟悉了更多连接数据库及与数据库有关方面的操作,从中学到了许多解决实际问题的经验____
[1]数据库系统原理与应用教程李春葆清华大学出版社
[2]数据库系统原理与应用—SQLServer2000夏冰冰国防工业出版社
[3]数据库技术及应用范剑波浙江大学出版社
[4]数据库技术与应用实践教程--SQLSERVER严辉刘卫国清华大学出版社
[5]数据库原理及应用钱雪忠北京邮电大学出版社
[6]数据库技术与联机分析处理王珊北京科学出版社
[7]数据库系统概论王珊,萨师煊高等教育出版社
[8]数据库系统概论学习指导与习题解答王珊,朱青高等教育出版社
[9]数据库技术及应用苗雪兰机械工业出版社
[10]数据库系统概论聂瑞华高等教育出版社
[11]数据库技术及应用实验指导与习题解答苗雪兰机械工业出版社
[12]数据库系统教程(第二版)施伯乐丁宝康汪卫高等教育出版社
[13]数据库基础与应用王珊李盛恩人民邮电出版社
[14]数据库系统原理第2版李建中王珊电子工业出版社
[15]数据库系统导论第7版C.J.Date孟小峰王珊翻译机械工业出版社。