您好,欢迎访问三七文档
学院数据库课程设计报告电子技术系专业班级学生姓名指导教师实习地点数据库设计文档一、系统需求分析报告(数据流图、数据词典和功能分析)系统应具有售票、查询、管理和维护等功能,系统管理员可以进行对车次的更改、票价的变动及调度功能,票价的修改可以通过修改运价来进行,车次调度可通过对发车时刻表的修改来进行,维护功能即可对表进行修改。1、功能需求经过分析后确定系统应具备以下功能:(1)、售票功能①销售车票②预订车票③退票(2)、查询功能①车次查询②时刻表查询③售票情况查询(3)、调度功能①运价修改②车辆修改③终点站修改④车次修改(4)、维护功能①车票表修改②预订车票表修改③退票表修改④密码修改(5)、统计功能①售票统计②报表打印2、数据流图使用结构化分析方法,确定系统的数据主要是运价、车次、终点站名、发车时间和车票,对数据的操作主要有运价修改、车次修改、终点站修改、发车时间修改、售票及打印,可以确定系统的处理逻辑和流程,得到如下所示的系统数据流图。3、数据字典:经过分析可以得到以下数据流条目:车次表=车辆编号+车型+座位数终点站名表=站名+里程运价表=车型+运价发车时刻表=车次+车辆编号+站名+发车时间+检票口已售车票表=票号+乘车日期+车次+站名+发车时间+票价+全半价+工号+退票否预订车票表=预订号+乘车日期+车次+站名+发车时间+车型+票价+客户名称+订票数量退票表=票号+退票时间+票价+应退款售票员编号=工号+姓名车辆编号=6{数字}6车次=4{字符}5车型=1{字符}8座位数=2{数字}2检票口=1{数字}2站名=1{字符}10里程=1{数字}5运价=1{数字}6发车时间={时间}乘车日期={日期}系统管理员车次修改运价修改终点站修改发车修改售票车次表运价表终点站名表发车时刻表查询售票员预订车票表退票表已售车票表报表打印车票已售车票表票号=7{数字}7票价=1{数字}5全半价=2{字符}2退票否={T|F}预订号=4{数字}4客户名称=6{字符}20订票数量=1{数字}2退票时间={日期时间}应退款=1{数字}5工号=3{字符}3姓名=4{字符}8二、数据逻辑结构设计(E-R图、关系模式和数据库结构)1、E—R图车辆目标站名开往车辆编号车型座位数车次发车时间检票口站名里程nm姓名车票售票员售票票号预订顾客车次站名票价座位号全半价乘车日期工号站名车次预订号顾客名称退票退票时间计费运价车型价格nnnn1111票价应退款退票否乘车日期2、关系模式车辆(车辆编号,车型,座位数)目标站名(站名,里程)发车时刻表(车次,站名,车辆编号,发车时间,检票口)途径(车次,站名)车票(票号,乘车日期,车次,站名,票价,全半价,座位号,工号,退票否)预订(预订号,车次,站名,乘车日期,顾客名称,票数)退票(票号,退票时间,票价,应退款)售票员(工号,姓名)运价(车型,价格)3、数据库结构车辆表:字段名类型长度小数点允许空主/外键车辆编号Int4主车型Varchar8座位数smallInt2目标站名:字段名类型长度小数点允许空主/外键站名Varchar10主里程Int4发车时刻表:字段名类型长度小数点允许空主/外键车次Varchar5主站名Varchar10外车辆编号Int4外发车时间Datetime8检票口smallInt2途径表:字段名类型长度小数点允许空主/外键车次Varchar5主站名Varchar10外车票表:字段名类型长度小数点允许空主/外键票号Int4主乘车日期Datetime8车次Varchar5外站名Varchar10外票价Float8全半价Char2座位号smallInt2工号Char3退票否Char1主键:外键:预订表:字段名类型长度小数点允许空主/外键预订号Int4主车次Varchar5外站名Varchar10外乘车日期Datetime8顾客名称Varchar20票数smallInt2退票表:字段名类型长度小数点允许空主/外键票号Int4主退票时间Datetime8票价Float8应退款Float8售票员表:字段名类型长度小数点允许空主/外键工号Char3主姓名Char8运价表:字段名类型长度小数点允许空主/外键车型Varchar8主价格Float8三、软件结构设计(画出系统软件结构图)四、程序模块设计与调试(设计和调试各程序模块,提交主要的程序段)用户登入用户名和密码校对:PrivateSubCmdok_Click()Dimusername1AsString,username2AsStringusername1=Text1.TextIfOption1.ValueThenSetText3.DataSource=Adodc1Text3.DataField=口令Adodc1.Recordset.MoveFirst车站售票管理系统售票功能查询功能调度功能维护功能统计功能销售车票预订车票退票车次查询时刻表查询售票情况查询运价修改车辆修改终点站修改车次修改已售车票表预订车票表退票表售票统计报表打印Ifusername1Thenusername2=用户名='&username1&'Adodc1.Recordset.Findusername2IfAdodc1.Recordset.EOFThenMsgBox用户名错误请重输,16,错误ElseIfText2.TextText3.TextThenMsgBox密码错误请重输,16,错误Text2.Text=ElseMDIForm1.ShowForm1.HideEndIfEndIfEndIfElseIfOption2.ValueThenSetText3.DataSource=Adodc2Text3.DataField=口令Adodc2.Recordset.MoveFirstIfusername1Thenusername2=工号='&username1&'Adodc2.Recordset.Findusername2IfAdodc2.Recordset.EOFThenMsgBox用户名错误请重输,16,错误ElseIfText2.TextText3.TextThenMsgBox密码错误请重输,16,错误Text2.Text=ElseMDIForm1.ShowForm1.HideEndIfEndIfEndIfEndIfEndIfEndSub当选中车次显示当前座位号和剩余票数,及拒售离开车只有五钟的车票PrivateSubDataGrid1_Click()DimccAsString,sumAsIntegersum=0Adodc3.Recordset.MoveFirstAdodc4.Recordset.MoveFirstAdodc6.Recordset.MoveFirstAdodc7.Recordset.MoveFirstAdodc8.Recordset.MoveFirstIfMonth(Date)=Combo2.TextAndDay(Date)=Combo3.TextThenIf(Hour(Text19.Text)-Hour(Now))*60+Minute(Text19.Text)-Minute(Now)5ThenMsgBox已接近开车,停止售票,64,错误Cmdok.Visible=FalseElseCmdok.Visible=TrueEndIfElseCmdok.Visible=TrueEndIfcc=车型='&Text5.Text&'Adodc3.Recordset.Findcccc=站名='&Text6.Text&'Adodc4.Recordset.FindccIfCombo4.Text=全ThenText2.Text=Int(Val(Text7.Text)*Val(Text8.Text)+0.5)ElseText2.Text=Int(Val(Text7.Text)*Val(Text8.Text)/2+0.5)EndIfText2.RefreshWhileNotAdodc8.Recordset.EOFIfYear(Text12)=Year(Date)AndMonth(Text12)=Combo2.TextAndDay(Text12)=Combo3.TextAndText13.Text=Text9.TextAndText25.Text=FThensum=sum+1EndIfAdodc8.Recordset.MoveNextWendText3.Text=sum+1Adodc8.Recordset.MoveFirstWhileNotAdodc8.Recordset.EOFIfYear(Text12)=Year(Date)AndMonth(Text12)=Combo2.TextAndDay(Text12)=Combo3.TextAndText13.Text=Text9.TextAndText25.Text=TThenText3.Text=Text17.TextAdodc8.Recordset.MoveLastflag=TElseAdodc8.Recordset.MoveNextEndIfWendWhileNotAdodc9.Recordset.EOFIfYear(Text22.Text)=Year(Date)AndMonth(Text22.Text)=Combo2.TextAndDay(Text22.Text)=Combo3.TextAndText23.Text=Text9.TextThensum=sum+Val(Text24.Text)EndIfAdodc9.Recordset.MoveNextWendcc=车次='&Text9.Text&'Adodc7.Recordset.Findcccc=车辆编号='&Text11.Text&'Adodc6.Recordset.FindccText4.Text=Val(Text10.Text)-sumText4.RefreshEndSub退票时当输入票号后算出应退款PrivateSubText1_LostFocus()DimccAsStringAdodc1.Recordset.MoveFirstAdodc2.Recordset.MoveFirstcc=票号='&Text1.Text&'Adodc1.Recordset.FindccText3.Text=Text6.TextText2.Text=Nowcc=车次='&Text7.Text&'Adodc2.Recordset.FindccIfNotAdodc2.Recordset.EOFThenIfMonth(Text5.Text)Month(Text2.Text)ThenText4.Text=Int(Val(Text6.Text)*0.1+0.5)ElseIfMonth(Text5.Text)=Month(Text2.Text)ThenIfDay(Text5.Text)Day(Text2.Text)ThenText4.Text=Val(Text6.Text)-Int(Val(Text6.Text)*0.1+0.5)ElseIfDay(Text5.Text)=Day(Text2.Text)ThenIf(Hour(Text9.Text)-Hour(Text2.Text))*60+Minute(Text9.Text)-Minute(Text2.Text)=120ThenText4.Text=Val(Text6.Text)-Int(Val(Text6.Text)*0.1+0.5)ElseIf(Hour(Text9.Text)-Hour(Text2.Text))*60+Minute(Text9.Text)-Minute(Text2.Text)=60ThenText4.Text=Val(Text6.Text)-Int(Val(Text6.Text)*0.2+1)ElseIf(Hour(Text9.Text)-Hour(Text2.Text))*60+Minute(Text9.Text)-Mi
本文标题:数据库设计文档
链接地址:https://www.777doc.com/doc-7160263 .html