《数据库课程设计报告-车站售票管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计报告-车站售票管理系统.docx(22页珍藏版)》请在三一办公上搜索。
1、淮海工学院计算机工程学院课程设计报告设计名称:数据库原理及应用设计课程设计姓名:学号:专业班级:系(院):设计时间:设计地点:指导教师评语:成绩:签名:年月B一、概述1、工程背景:随着市场经济的不断飞速开展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,车站售票管理系统在人们的日常生活中发挥着越来越重要的作用。本系统实现了线路信息,汽车信息,票务信息的查询和管理,满足人们的需求。2、编写目的:掌握数据库设计原理及相关软件的使用。实现方便、快速售票;是用户准确了解售票情况,提供多种查询和统计功能;实现系统的平安性设置,使系统本身具有一定的维护功能
2、。3、软件定义:车站售票管理系统,主要用于车站日常的票务处理。4、开发环境:VisualStudio2008,SQLSERVER2000二、需求分析车站售票管理系统员管模工理块汽管模车理块线管模路理块员工信息添加员工信息修改员工信息删除员工信息杳询汽车信息添加汽车信息修改汽车信息删除汽车信息杳询线路信息添加线路信息修改线路信息删除线路信息杳.询车票信息杳ifu删除车票添加车票查询车票信息购买/预订车票功能模块图1.员工管理模块:员工有两种身份,售票员和系统管理员。系统管理员可以进行系统用户的添加,密码的修改操作,汽车,线路,车票信息的更新等,售票员可以查询以上信息和购置车票等。2,线路信息管理
3、模块:系统管理员可以在线路信息管理模块对车站线路信息进行管理。管理员首先建立线路信息数据库,输入原始的线路信息,当有新的线路需要添加或者需要对己有的线路信息进行修改,删除的时候,管理员就可以进行相应的操作。管理员也可以通过本模块查询到所有需要查询的线路的详细信息。3,汽车信息管理模块:系统管理员可以在汽车信息管理模块实现对汽车信息的管理。管理员首先应该建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相关信息以及想要删除某个汽车信息的时候,就可以完成相应的操作。管理员也可以在整个数据库中查询相关汽车信息。4,车票信息管理模块:系统管理员可以在车票管理模块
4、实现对车票信息的管理。管理员根据相应的汽车信息和线路信息来设置相应的车票详细信息。管理员还可以对某条线路的车票信息进行修改,删除和查询操作。5,车票订购信息模块用户可以通过查询时间,线路和汽车信息,来确定自己要买什么时间,什么路线,什么型号的汽车的车票,并形成表单。程序分为登陆界面,主界面,线路信息管理界面,汽车信息管理界面,车票信息管理界面,票务信息管理界面,员工管理界面这几个主体界面。使用时应先知道管理员或员工帐号和密码,登陆进入系统主菜单界面,里面包括线路信息,汽车信息,车票信息,票务信息,帮助,退出程序菜单项选择项。三、系统设计(一)数据流图:顶层数据流图车票记录售票记录车票信息点信息
5、一站点记录汽车信息1层车票数据流图(二)数据字典:1,数据项编号数据项名数据项含义说明数据类型长度与其他数据项的关系是否可以为空1Uno用户编号整型4User表主键不2UserName姓名nvarchar20不3Password密码nvarchar20不4Userldentiey身份nvarchar20不5Cno汽车编号整型4Coach表主键不6Coachnumber车牌号nvarchar20不7Ctype汽车型号nvarchar208Ctime购置时间datetime89Cnum座位数量整型4不10Ctv有无电视char1011Ccondition有无空调char1012Coachholde
6、r负责人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站点编号整型4Cit
7、y表主键不27CityName站点名称nvarchar20不2,数据结构编号数据结构名属性1员工员工编号,姓名,密码,身份2汽车汽车编号,汽车型号,车牌号,购置时间,座位数量,有无电视,有无空调,负责人3线路线路编号,起始城市,到达城市,路程时间4车票车票编号,线路编号,汽车编号,车票价格,已卖票数,剩余票数,出发日期,出发时间5购票车票编号,购置H期,预定或购置,座位号6站点站点编号,站点名称3,数据流编号数据流名输入输出1变更汽车信息变更信息汽车记录2查询汽车信息汽车编号/汽车型号/车牌号/有无电视/有无空调/负责人汽车记录3变更站点信息变更信息站点记录4变更线路信息变更信息线路记录5查询
8、线路信息线路编号/起始城市,到达城市线路记录6变更车票信息变更信息车票记录7查询车票信息车票编号/起始城市,到达城市/汽车型号/出发日期,出发时间车票记录8预定车票车票编号,购置日期,预定或购置预订记录9购置车票车票编号,购置日期,预定或购置购置记录10查询购置情况车票编号/起始城市,到达城市/汽车型号购置记录11更改用户变更信息用户记录12员工信息用户输入电脑的用户名、密码系统主菜单4,数据存储数据存储名输入数据流输出数据流说明部分用户信息变更用户信息查询用户信息汽车信息变更汽车信息查询汽车信息线路信息变更线路信息查询线路信息车票信息变更车票信息查询车票信息预定车票信息车票信息预订记录购置车
9、票信息车票信息购置记录5、处理过程处理过程名输入数据流输出数据流处理操作查询汽车/线路/车票信息所需信息购置/预定车票信息+购票时间+座位号无更新变更信息再次查询信息用户权限认证用户名,密码,身份系统主菜单用户登录(三)E-R图(四)关系模型:1, USer员工表(员工编号UnO,姓名USerName,密码PaSSWord,身份USerIdentiey)2, CoaCh汽车信息表(汽车编号Cno,汽车型号CIyPe,车牌号COaChnUnIber,购置时间CIinle,座位数量3, Cnum,有无电视CtV,有无空调CCondiIiOn,负责人CoaChhOlder)4, 1.ine线路信息表
10、(线路编号Lno,起始城市LdeParI,到达城市LaITiVa1,路程时间Ltime)5, Ticket车票信息表(车票编号Tno,线路编号Lno,汽车编号Cno,车票价格Price,已卖票数SoldTicket,剩余票数LaStTiCket,出发日期Tdate,出发时间Ttime)6, PUrChaSe车票购置表(车票编号Tno,购置日期PIime,预定或购置ReServeoRBuy,座位号Seat)7, CiIy站点表(站点编号Cilyno,站点名称CilyName)四、系统实现(一)数据库设计:后一般回列M键检查I嘴索引I近权限类型所有者名称一名称I类型I可为空I默认I存储注释MMWW
11、NUMBER厂1.ClTY_NAMEVARCHAR2(20),米旷1.City站点表:圜一般回列M键还查同频U术限类型所有者名称翘可为空默认存储注释NUMBERwIDUSERNAJIEVARCHAR2(10),姓名USERPWDVARCHAR2(20),密码USERJDEKTinNUHBER身份(0管理员,1售票员)*PII|2Userinfo员工表:名称类型可为空默认!存储注释丽NUMBERTLIDNUMBERTCIDNUMBERT_SOLDTICKETSNUMBERTLASTTICKETSNUMBERTPRICENUMBERT_DATETIMEDATE3,TiCket车票信息表:类型所有者
12、名称国一般因列S键M检查周索引jii权限类型所有者名称名称类型可为空默认I存储注释NUMBERIDC11PEVARCHAR2(20),车的翘CNUMBERNUMBER车牌号购买时间CTIMEDATElCSEATSNUMNUMBERl车的座位数量4,COaCh汽车信息表:CTVNUMBERP是否有TVC_AIR_CONDITIONNUMBERCH3LDERVARCHR2(IO)I是否有空调负5, PUrChaSe车票购置表:类型所有者名称退号间间O)编时时I牌买票买 ID车购退购票圜一般四列M键IM检查嘴索引IH权限三一般回列S键M检查嘴索引H权限6, Line线路表:各称I类型可为空默认I存储
13、注释NUMBERIDL DEPART VARCHAR2(20) 起始地点L ARRIVAL NVARCHAR2(20) 到达地点L SPANTIME DATE行程时间L_DISTANCE NUMBER I I里程类型所有者名称(二)主要界面及代码1,登录界面:登录操作代码:protectedvoidbtndl_Click(objectsender,EvenlArgse)if(string.IsNullOrEmpty(tbx_yhm.Text.TrimO)thrownewEXCePlion(“用户名不能为空”);)if(string.IsNullOrEmpty(tbx_pwd.Text.Trim
14、O)thrownewEXCePIior(“密码不能为空”);)checkYZM();ctLogiriContexiIoginContext=newStructLoginConlext(Session.SessionlD,Request.UserHostAddress);switch(ddlt_lx.SelectedValue)case1:SeSSionUserState=newUserState(tbxyhm.Text,tbx_pwd.Text,refIoginContext);Response.Redirect(z,ManagerDefault.aspx#POSIS);break;case2
15、:SeSSiOnUserSlate=newUserStale(tbx_yhm.Text,tbx_pwd.Text,refIoginContext);Response.Redirect(z,dinDelault.aspx#PoStS);break;default:break;)(3)存储过程:procedureUserLogin(IoginNameUserdl.UserName%type,IoginPwdUserdl.User,Pwd%type,userIDoutUserdl.Userid%type,p_errorCodeoutnumber)asbeginp.errorCode:=O;selec
16、tcount(*)intop.errorCodefromUserdlwhereUSerdLUSeJNanIe=IOginNameandUSejPWd=IoginPWd;ifp_errorCode=Othenp_errorCode:=1;return;endif;p_errorCode:=0;selectUserdl.UseridintouserIDfromUserdlwhereUserdl.UserName=IoginNameandUser-pwd=IoginPwd;endUserLogin;2,系统主界面用户类型,管理员用户名:123注销 修改密码 登陆IP :127.0.0.1汽车信息管理
17、站点信息管理欢迎登陆售票系统车票信息管理路线信息管理3,汽车信息管理界面:添加操作代码:protectedvoiddltqcxxDeleteCommand(objectsource,DataListCommandEvcntArgse)intid=Convert.Tolnt32(dltqcxx.DataKeysfe.Item.ItcmIndex.ToStringO);gpgn.SCQCXX(id);Response.Write(*alert(,删除成功!*):document.Iocation=document.Iocation;*);bindO;).存储过程:procedureQCXX(p_c
18、uroutcur)asbeginopenp_curforselectcoach.c_idid,coach.c_numbercph,coach,ctimegmsj,coach.c_seatsnumzws,coach.c_holderfzrfromcoach;endQCXX;-功能:更新汽车信息procedureGXQCXX(Pidcoach.JidMyPe,Pcphcoach,cnumber%type,p_gmsjcoach.c_time%type,p_zwscoach.c_seatsnum%type,p_fzrcoach.c_holder%type)asbeginupdatecoachsetc
19、_number=pcph,c_time-p.gmsj,c_seatsnum-pzws,c_holder=p_fzrwherec_id=p_id;comit;endGXQCXX;一删除汽车信息procedureSCQCXX(p_idcoach.c_id%type)asbegindeletefromcoachwherecoach.c_id-pid;commit;endSCQCXX;-添加汽车信息procedureTJQCXX(p_cphcoach,c-nmber%type,Pgmsjcoach.c_time%type,p_zwscoach.c_seatsnum%type,p_fzrcoach.c_
20、holder%type)begininsertintocoach(c_id,c_type,cnumber,c_time,c_seatsnum,c_tv,c_air_condition,c_holder)values(SEQCOACH.NEXTVL,1,pcph,pgmsj,p.zws,1,1,pfzr);commit;搜索操作代码:protected voidendTJQCXX;5,线路信息管理界面:用户类型:管骸用户名123注销修改密码登陆IP:127.0.0.1当前线珞信息菅理回添加(制初站点信息管理弱的起献点目的地里程勇作Ml/I1精靳占吉旅200策唐瞬车票信息翻20云南哈尔浜300羯相
21、晓路舔息管理dltxlxxDeleteCommand(objectsource,DataListConimandEvcntArgse)intid=Convert.Tolnt32(dltxlxx.DataKeyse.Item.ItemIndex.ToStringO);gpgn.SCLXXX(id);Response.Write(*alert(,删除成功!);document.Iocation=document.location;z,);bind();)6,车票信息管理界面:I用户类型I管理员用户名:123注销修改密码IP:127.0.0.1汽车信息管理耨位15:第信息讨里,三I站点信息管理辖编号
22、车幽蝴购点目的地已买辕为余辐辐价格辐时日翟作田里爵321231231长春南站吉林034342014/7/20:00:00羯辑fHJI.188888长春南站吉林437302需雷霜映33123232云南哈尔港133452014/7/20:00:00缜柏映7,车票信息管理中,选择汽车和路线界面:8,票务管理界面:用户名:123辅调:葬骸注销修改踊SKiP:127.0.0.1 田践城市:长部拈_3目的匏:吉林二蹈车牌号出发短目的地出发日期操作188888幡雨站吉林2014/6/30730国21231231精电站吉加2014/7/23434首页上一页下一页陶第1页保1页共2条记录修页10条记录)查询操作
23、代码:查询车票信息protectedDataSetCXCPXX()(DBClassdb=newDBClassO;tryOrac1eParaeterparas=newOracleParcinieter(z,p_cur*,OracleType.Cursor);paras0.Direction=ParameterDirection.Output;DataSetds=db.RunProcedure(PACKPWGL.CXCPXX”,paras,lb);returnds;)finallydb.CloseO;)存储过程procedurePW.Select(p_scitycity.city_id%type,
24、pendcitycity,city.id%type,P_PageSiZenumber,p_pageIndexnumber,p_curoutcur)asPjninRoWNUnlnumber;pJnaxRowNumnumber;beginpminRowNm:=p_pagelndex*p_pageSize;PJnaXRoWNUnl:=(P_PageIndeX+1)*p_pageSize;openp_curforselect*from(selecttl.tdatetimeccsj,tl.t_priceprice,tl.t_lastticketssyps,cl.city_namecityl,c2.cit
25、ynamecity2,tl.t_id,coach,cnumber,rownumrnfrom(select*fromticketswheretickets.t_l_idin(select1.1idfromlinetwheret.l.depart=p_scityandt.l_arrival=p_endcity)-andSysdatepminRowNumandrnO)foreach(XnilElement_elin_node)if(_el.Attributesz,keyz,.InnerXml.ToLowerO=sKey.ToLowerO)StrReturn=_el.Attributesyzvalue
26、z,.Value;break;)catch(Exceptionexp)throw(exp);)returnDecodeBase64(StrReturn);)publicstaticvoidSynDataOlock(typeof(DBClass)ConnectionString=GetConStr(connectionstringz,);)publicDBClassOtx=null:isCommit=false;Connection=newOracleConnection(connectionstring);Connection.OpenO;)publicDBClass(boolisUseTra
27、nsaction)isCommit=false;Connection=newOracleConnection(connectionstring);Connection.OpenO;if(isUseTransaction)tx=Connection.BeginTransactionO;)elsetx=null;)privateOracIeCommandBuildQueryCommand(stringStoredProcName,IDataParanieterparameters)OracleCommcindcommand;if(tx=null)command=newOracIeConiiTian
28、d(storedProcName,Connection);/*8NO.4)elsecommand=newOracleComand(storedProcName,Connection,tx);)ConMnand.CommandTiineoul=60;-1NO.8command.CommandType=CommandType.StoredProceclure;foreach(OracleParameterparameterinparameters)/*2NO.7command.Parameters.Add(parameter);)returncommand;)privateOracleComman
29、dBuiIdlntCommand(stringStoredProcName,1DataParcuneterparameters)(OracleCommandcommand=BuiIdQueryCommand(storedProcName,parameters);returncommand;)publicvoidRunProcedure(stringStoredProcName,IDcitacirameterparameters,outintrowsffected)tryif(tx!=null)isCommit=tre;)/intresult;OracleCommariclcommand=Bui
30、IdIntCommand(storedProcName,parameters);rowsffected=command.ExecuteNonQueryO;/result=(int)command.ParameterszrReturnValue*.Value;/returnresult;)catch(Exceptionex)isCommit=false;throw(ex);)publicOracleDcitaReaderRunProcedure(stringStoredProcName,lDataPcirameterparameters)tryif(tx!=null)isCommit=true;
31、OracleDataReaderreturnReader;/*2NO.5OracleCommariclcommand=BuiIdQueryConiniand(StoredProcName,parameters);returnReader=command.ExecuteReaderO;returnreturnReader;)catch(Exceplionex)isCommit=false;throw(ex);)publicDataSetRunProcedure(stringStoreclProcName,IDcitaPcirameterparameters,stringtabIeName)try
32、if(tx!=null)isCommit=true;)DataSetdataSet=newDataSetO;:l.IeDataAdaptersqlDA二newOJO;/*4NO.6sqlD.SelectCoinmand=BuildQueryCommand(StoredProcName,parameters);sqlD.Fill(dataSet,tabIeName);returndataSet;)catch(Exceptionex)isCommit=false;throw(ex);)publicvoidRunProceciure(stringStoredProcName,IDcitaPciran
33、ieterparameters,DataSetdataSet,stringIableName)tryif(tx!=null)isCommit=tre;)OracleDataAdaptersqlDA=new0raptO;sqlD.SelectCommand=BuildlntCommancKStoredProcName,parameters);sqlDA.Fill(dataSet,tabIeName);catch(Exceptionex)isCommit=false;throw(ex);)publicvoidEnableCommitOif(tx=nll)stringexMessage=只用启用PU
34、bliCDBClass(stringIiewConnectionString,booliSUseTransaction)构造函数时该方法才有效!”;ApplicationExceptionex=newppliccitIonException(exMessage);throwex;)isCommit=true;)publicvoidDisableConiniit()if(tx=null)stringexMessage=只用启用PUbIiCDBClass(stringnewConnectionString,booliSUseTransaction)构造函数时该方法才有效!”;Application
35、Exceptionex=newApplicationException(exMessage);throwex;)isCommit=false;)publicvoidCloseO(if(isCommit)tx.CommitO;)Connection.CloseO;),五、课程设计心得体会这次课程设计使我稳固了数据库和C#的知识,通过实践,我学到了很多课本上学不到的知识。在这次车站售票管理系统的开发过程中,我也遇到了许多的问题,例如:数据库连接错误,学习写存储过程,数据如何绑定等等,经过认真思考并在老师和同学的帮助下我顺利完成了本次设计。首先我需要对车站售票管理系统进行系统分析:如需求分析和开发工具选择,功能分配等等。考虑要实现整个程序大致需要的几个模块画数据流图和数据字典。然后在概念模型设计中,将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用中的实体、实体的属性,标识实