影院订票管理系统实验报告Word格式.docx
《影院订票管理系统实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《影院订票管理系统实验报告Word格式.docx(46页珍藏版)》请在冰点文库上搜索。
(3)检票管理事宜要完成观众进场时检票的事宜。
其中包括了电影票的真假检测问题。
(4)数据管理要处理电影的播放的次序,工作人员的管理,以及过期电影票的处理问题。
根据需求分析的结果,本小组成员讨论协商,决定本系统主要划分为以下三个子模块:
售票管理模块、检票管理模块、数据管理模块。
影院售票管理系统是一个基于电影院工作人员的系统,不同类型的用户在系统中有不同的权限。
主要有三种用户:
1.售票管理人员:
主要负责卖票,订票及退票事宜;
2.检票管理人员:
主要负责观众进场时检票工作,以及辨认电影票的真假(此工作自然可以由服务系统来完成);
3.数据处理人员:
主要负责播放电影导入数据库,工作人员的应聘以及开除的数据管理,还有过期电影票的数据处理;
以下分别介绍此系统中各个系统(3个子模块。
):
(1)售票系统模块
给观众提供售票服务。
不同的位置有不同的价格。
要选购哪个位置由观众决定。
工作人员根据观众的需要进行操作。
系统在购票成功后会产生一个验证码,此验证码连工作人员都不知道。
是随机生成的。
用于对电影票真假的辩识。
(2)检票系统模块
在观众进场时所使用的系统。
由扫描仪扫描,取的验证码,然后进行辩识,看是不是和数据库中数据一样,如果一样,则电影票为真,否则电影票为假。
由此来决定让不让观众入场。
(3)维护系统模块
此模块是由电影院的数据库管理员来管理的。
他根据电影院事情的需要对有关数据进行处理。
如电影票的管理,工作人员的管理,和电影库的管理等。
整个系统的结构如下图1所示:
以下分别介绍系统中数据系统3个子模块。
(1)影片播放管理模块
影片播放管理是对电影院播放的电影的充实,设定电影的播放,以及电影时间的设定。
当所设定的电影已经播放完成后,要对其进行删除。
还要对数据库进行清理,把一些没用的数据全部清除。
(2)工作人员管理:
电影院里当然有工作人员的增加与开除,以及他们的管理权限的变化。
这一部分事件的发生都需要数据库管理人员将有关数据进行处理。
保证数据库里数据的统一与完整。
其中有他们的共号,登陆电影院管理系统的密码,以及所拥有的权限。
(3)过期票务管理:
电影院里的电影在放过以后,在数据库的电影票数据就会变成没有用的数据。
通过此管理可以把那些没用的过期的数据清除。
这里指的是与放过的电影同名的电影票清除,而其他的电影票保存不变。
小组人员分工情况:
王圣武登陆界面和售票界面、系统转换界面的程序编写,整个系统框架的设计,整个系统界面及美化设计,整个系统流程的管理,创建数据库
张润驰检票系统和整个维护系统的程序编写,局部框架辅助设计,创建数据库
本系统后台数据库采用目前比较流行的MicrosoftSQLSever,该数据库系统在安全性、准确性、运行速度方面有绝对的优势,并且处理数据量大、效率高;
前台采用Microsoft公司的VB.NET2003作为主要的开发工具,其可与 SQLSever2000数据库无缝衔接。
1.分析与创建数据库;
根据系统的功能分析结果,影院售票管理系统将会使用MicrosoftSQLSever2000作为后台的数据库管理系统。
本管理系统是应用于电影院中,而且需要和数据库之间进行频繁数据交换,所以采用MicrosoftSQLSever2000作为后台的数据库管理系统。
在本管理系统中,需要掌握影库充实信息,职工管理信息,票务管理信息,此外,由于要进行职工管理,还需要掌握使用本系统的职工。
表1存储硬库信息列表,表2存储了电影院座位的相关数据连接关系,表3存储了电影票销售情况管理,表4存储了系统使用者职工的相关情况的管理列表。
表1影库管理表---MOVIES
字段名称
数据类型
字段属性
字段大小
作用
必填字段
索引
是否主键
Movie_id
smallint
2
电影号
是
有(无重复)
Movie_name
Nvarchar
50
电影名称
无
actor
导演
否
actress
主演
producer
25
制片厂
palydate
datetime
8
上映时间
表2电影院座位管理表---SEATS
seatid
座位号
price
float
票价
soldornot
是否售出
表3电影票信息表---TICKETS
ticketsid
电影票号
有
电影名
价格
yanzhengma
验证码
表4职工信息表---WORKERS
workerid
职工号
password
职工密码
leibie
职工类型
根据规范化的设计理念,本管理系统的数据分成上面4个表,减少了数据的冗余,同时在这些表之间又存在着一些关联关系。
这四个表之间的这两种关系表现在下图所示的关系:
(1)窗体模块的功能
登陆窗体
(2)窗体界面的设计
在工程中添加一个窗体,命名为“登陆系统”,用来作为系统登陆窗体。
界面
的设计如图3所示。
(3)窗体代码
Imports
PublicClassForm1
Inherits
DimnavigatorAsBindingManagerBase'
用来对记录导航
DimmyconAsNewSqlConnection'
连接对象
DimmycomAsNewSqlCommand'
命令对象
Dimmycom1AsNewSqlCommand
Dimfrm2AsNewForm2
Dimfrm3AsNewForm3
Dimfrm8AsNewForm8
PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer1.Tick
StatusBar1.Panels(0).Text=DateTime.Today
StatusBar1.Panels
(1).Text=
EndSub
PrivateSubGroupBox1_Enter(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesGroupBox1.Enter
IfRadioButton1.Checked=TrueThen
RadioButton2.Checked=False
RadioButton3.Checked=False
ElseIfRadioButton2.Checked=TrueThen
RadioButton1.Checked=False
ElseIfRadioButton3.Checked=TrueThen
EndIf
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
AxShockwaveFlash1.Movie="
E:
\实验运行场\VB.NET程序设计\电影院票务系统\image\登陆界面1.swf"
AxShockwaveFlash1.Playing=False
AxShockwaveFlash1.Stop()
Dimtox1AsInt32
Dimtox2AsInt32
DimmydataadapterAsNewSqlDataAdapter
DimmydsAsNewDataSet
DimiAsInteger
DimjAsInteger
tox1=Val(TextBox1.Text)
tox2=Val(TextBox2.Text)
mycon.ConnectionString="
initialcatalog=ticketbooking;
userid=sa;
password=;
"
mycom.Connection=mycon'
通过MYCON连接对象操作数据库
mycom.CommandType=CommandType.Text'
设置命令类型
mycom.CommandText="
select*fromworkers"
'
设置要执行的命令
Try
mycon.Open()
mydataadapter.SelectCommand=mycom
CatchexAsException
MessageBox.Show("
连接失败"
)
Finally
mycon.Close()
EndTry
mydataadapter.Fill(myds,"
workers"
Fori=0Tomyds.Tables("
).Rows.Count-1
Iftox1=Val(myds.Tables("
).Rows(i).ItemArray(0))Then
j=0
ExitFor
Else
j=1
Next
Iftox2=Val(myds.Tables("
).Rows(i).ItemArray
(1))Then
Ifj=1Then
您的工号或者密码错误"
"
错误提示"
MessageBoxButtons.OK,MessageBoxIcon.Warning)
mycom1.Connection=mycon'
mycom1.CommandType=CommandType.Text'
mycom1.CommandText="
selectleibiefromworkerswhereworkerid="
+CStr(tox1)+"
andpassword="
+CStr(tox2)+"
Dimmydataadapter1AsNewSqlDataAdapter
mydataadapter1.SelectCommand=mycom1
Dimmyds1AsNewDataSet
mydataadapter1.Fill(myds1,"
IfRadioButton1.Checked=TrueAndVal(myds1.Tables("
).Rows(0)("
leibie"
))=1Then
frm2.Show()
Me.Hide()
ElseIfRadioButton2.Checked=TrueAndVal(myds1.Tables("
))=2Then
frm3.Show()
ElseIfRadioButton3.Checked=TrueAndVal(myds1.Tables("
))=3Then
frm8.Show()
您超出职责范围或未选择服务系统,请重新输入!
MessageBoxButtons.OK,MessageBoxIcon.Warning,MessageBoxDefaultButton.Button1)
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
AxShockwaveFlash1.Play()
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
DimexitformAsNewForm7
Ifexitform.ShowDialog=DialogResult.OKThen
exitform.Close()
Me.Close()
Application.Exit()
EndClass
3.创建售票窗体模块
(1)窗体模块的功能
为观众提供买票服务。
在界面上观众可以看见座位的情况,根据此来选择自己喜欢的座位。
不同的座位有不同的价格。
此窗体还有退票功能。
(2)窗体界面的设计
在工程中添加一个窗体,命名为“售票系统”,用来作为仓管人员窗体。
的设计如下图所示。
(3)代码编写
PublicClassForm2
PrivateSubForm2_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
Me.Show()
\实验运行场\VB.NET程序设计\电影院票务系统\image\销售界面.swf"
AxShockwaveFlash2.Movie="
\实验运行场\VB.NET程序设计\电影院票务系统\image\检票界面下.swf"
AxShockwaveFlash2.Play()
DimstrrowAsString
DimdtAsNewDataTable
select*fromMovies"
设置要执行的命令"
Movies"
strrow=myds.Tables("
).Rows(i)("
movie_name"
ComboBo
MessageBox.Show(ex.ToString)
PrivateSubButton1_Click_1(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimtickethaoAsInteger
DimmoviehaoAsInteger
DimsuijiAsInteger
Dimmydataadapter3AsNewSqlDataAdapter
Dimmyds3AsNewDataSet
Dimdt3AsNewDataTable
Dimmycom3AsNewSqlCommand
Dimmycon3AsNewSqlConnection
Randomize()
suiji=Int(9000*Rnd()+1000)
tickethao=tickets_id()
moviehao=movieid()
mycon3.ConnectionString="
mycom3.Connection=mycon3'
mycom3.CommandType=CommandType.Text'
Iftickethao=0Then
此座位已售出,请重新选择!
错误"
ComboBox1.Text="
TextBox1.Text="
TextBox2.Text="
TextBox3.Text="
TextBox4.Text="
TextBox5.Text="
mycon3.Open()
mycom3.CommandText="
insertintotickets(ticketsid,seatid,movie_id,movie_name,palydate,price,yanzhengma)values("
+CStr(tickethao)+"
+TextBox4.Text+"
+CStr(moviehao)+"
'
+TextBox2.Text+"
+TextBox1.Text+"
+TextBox5.Text+"
+CStr(suiji)+"
)"
DimsqlAsString
sql="
+TextBox3.Text+"
mydataadapter3.InsertCommand=mycom3
mycom3.ExecuteNonQuery()
售票成功!
谢谢观看"
MsgBox(ex.ToString)
mycon3.Close()
revoke_seat()
PrivateSubComboBox1_SelectedIndexChanged_1(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesComboBox1.SelectedIndexChanged
Dimmydataadapter11AsNewSqlDataAdapter
Dimmyds11AsNewDataSet
Dimdt1AsNewDataTable
Dimdt11AsNewDataTable
Dimmycom11AsNewSqlCommand
initialcatalog=ti