影院订票管理系统实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件工程实验报告
一.系统概述;
1.项目需求;
2
1
2
3
4
5
1
2
3
七.参考资料、书籍;
一.系统概述;
1.项目需求;
现在中国大部分的家庭都喜欢在家里置办属于自己风格的家庭影院。

但是,仍然有很多人喜欢到电影院去看电影。

因为家里的气氛毕竟不如影院好。

所以,现代家庭影院的出现并不会让电影院没有生路。

每个社会服务系统都有自己的一套管理机制。

当然,电影院也不除外。

其实电影院的管理系统应该来说比其他的社会服务系统的管理要简单一点。

电影院不外乎是引进电影,制定播放影片的时间表,买票,检票进场观看,还有就是一些数据管理方面的事。

如工作人员管理,票务管理等等。

为了工作机制简单有序,必然要引进一套
管理系统。

2.需求分析;
具体而言,影院售票系统需要实现以下的需求:
(1)能够对播放电影,工作人员,售票事宜,检票事宜,无用数据进行处理。

(2)售票管理自然有专人负责,要处理各电影的电影票销售问题。

当然包括退票问题,还有就是预订电影票其实也就相当于买票。

两者可以当一回事处理。

(3)检票管理事宜要完成观众进场时检票的事宜。

其中包括了电影票的真假检测问题。

(4)数据管理要处理电影的播放的次序,工作人员的管理,以及过期电影票的处理问题。

二.项目开发计划书;
户:
1
2
成);
3
(1
(2
(3
(1
(2
(3
其可与
三.设计说明书;
1.分析与创建数据库;
根据系统的功能分析结果,影院售票管理系统将会使用MicrosoftSQLSever2000作为后台的数据库管理系统。

本管理系统是应用于电影院中,而且需要和数据库之间进行频繁数据交换,所以采用
MicrosoftSQLSever2000作为后台的数据库管理系统。

在本管理系统中,需要掌握影库充实信息,职工管理信息,票务管理信息,此外,由于要进行职工管理,还需要掌握使用本系统的职工。

表1存储硬库信息列表,表2存储了电影院座位的相关数据连接关系,表3存储了电影票销售情况管理,表4存储了系统使用者职工的相关情况的管理列表。

表1影库管理表---MOVIES
着一些关联关系。

这四个表之间的这两种关系表现在下图所示的关系:2.创建登陆窗体模块;
(1)窗体模块的功能
登陆窗体
(2)窗体界面的设计
在工程中添加一个窗体,命名为“登陆系统”,用来作为系统登陆窗体。

界面的设计如图3所示。

(3)窗体代码
PublicClass Form1
Inherits
Dim navigator As BindingManagerBase'用来对记录导航
Dim mycon AsNew SqlConnection'连接对象
Dim mycom AsNew SqlCommand'命令对象
Dim mycom1AsNew SqlCommand
Dim frm2AsNew Form2
Dim frm3AsNew Form3
Dim frm8AsNew Form8
PrivateSub Timer1_Tick(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Timer1.Tick
EndSub
PrivateSub
If
ElseIf
ElseIf
EndIf
EndSub
PrivateSub
Dim tox1As
Dim tox2As
Dim
Dim myds
Dim i
Dim j
tox1=Val(TextBox1.Text)
tox2=Val(TextBox2.Text)
mycon.ConnectionString="initialcatalog=ticketbooking;userid=sa;password=;"
mycom.Connection=mycon'通过MYCON连接对象操作数据库
mandType=CommandType.Text'设置命令类型
mandText="select*fromworkers"'设置要执行的命令
Try
mycon.Open()
mydataadapter.SelectCommand=mycom
Catch ex As Exception
MessageBox.Show("连接失败")
mycon.Close()
EndTry
mydataadapter.Fill(myds,"workers")
For i=0To myds.Tables("workers").Rows.Count-1
If tox1=Val(myds.Tables("workers").Rows(i).ItemArray(0))Then
j=0
ExitFor
Else
j=1
EndIf
Next
For i=0To
If
j=0
ExitFor
Else
j=1
EndIf
Next
If j=1Then
Else
Try

Dim
Dim myds1
If
Me.Hide()
ElseIf
frm3.Show()
Me.Hide()
ElseIf RadioButton3.Checked=TrueAnd Val(myds1.Tables("workers").Rows(0)("leibie"))=3Then frm8.Show()
Me.Hide()
Else
MessageBox.Show("您超出职责范围或未选择服务系统,请重新输入!","错误提示
",MessageBoxButtons.OK,MessageBoxIcon.Warning,MessageBoxDefaultButton.Button1)
EndIf
Catch ex As Exception
EndTry
EndSub
PrivateSub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)HandlesMyBase.Load AxShockwaveFlash1.Movie="E:\实验运行场\程序设计\电影院票务系统\image\登陆界面1.swf" AxShockwaveFlash1.Play()
EndSub
PrivateSub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button2.Click Dim exitform AsNew Form7
If exitform.ShowDialog=DialogResult.OK Then
exitform.Close()
Me.Close()
EndIf
EndSub
EndClass
3.
(1)
(2)
(3)
Imports
Inherits
Dim
Dim mycon
Dim mycom
PrivateSub
Dim mydataadapter AsNew SqlDataAdapter
Dim myds AsNew DataSet
Dim i AsInteger
Dim j AsInteger
Dim strrow AsString
Dim dt AsNew DataTable
mycon.ConnectionString="initialcatalog=ticketbooking;userid=sa;password=;"
mycom.Connection=mycon'通过MYCON连接对象操作数据库
mandType=CommandType.Text'设置命令类型
mandText="select*fromMovies"'设置要执行的命令"
Try
mycon.Open()
mydataadapter.SelectCommand=mycom
mydataadapter.Fill(myds,"Movies")
Catch ex As Exception
MessageBox.Show("连接失败")
Finally
mycon.Close()
EndTry
Try
For i=0To myds.Tables("Movies").Rows.Count-1
strrow=myds.Tables("Movies").Rows(i)("movie_name") ComboBo
Next
Catch ex As
EndTry
EndSub
PrivateSub
Dim i
Dim
Dim
Dim suiji
Dim
Dim myds3
Dim dt3
Dim mycom3
Dim mycon3
Try
Catch ex As
MessageBox.Show(ex.ToString)
EndTry
If tickethao=0Then
Try
MessageBox.Show("此座位已售出,请重新选择!","错误") ComboBox1.Text=""
TextBox1.Text=""
TextBox2.Text=""
TextBox3.Text=""
TextBox4.Text=""
TextBox5.Text=""
Catch ex As Exception
MessageBox.Show(ex.ToString)
EndTry
Else
Try
mycon3.Open()
mandText="insertintotickets(ticketsid,seatid,movie_id,movie_name,palydate,price,yanzhengma)values("+CSt r(tickethao)+","+TextBox4.Text+","+CStr(moviehao)+",'"+TextBox2.Text+"','"+TextBox1.Text+"',"+TextBox5.Text+","+C Str(suiji)+")"
Dim sql AsString
sql="insertintotickets(ticketsid,seatid,movie_id,movie_name,palydate,price,yanzhengma)values("+CStr(tickethao)+",
Try
Catch ex As
EndTry
Catch ex As
EndTry
EndIf
EndSub
PrivateSub
Dim
Dim mydataadapter11AsNew SqlDataAdapter
Dim myds1AsNew DataSet
Dim myds11AsNew DataSet
Dim dt1AsNew DataTable
Dim dt11AsNew DataTable
Dim mycom1AsNew SqlCommand
Dim mycom11AsNew SqlCommand
mycon.ConnectionString="initialcatalog=ticketbooking;userid=sa;password=;"
mycom1.Connection=mycon'通过MYCON连接对象操作数据库
mandType=CommandType.Text'设置命令类型
mycom11.Connection=mycon
mandType=CommandType.Text
Try
mycon.Open()
mandText="selectpalydatefromMovieswheremovie_name='"+ComboBox1.Text+"'" mandText="select*fromticketswheremovie_name='"+ComboBox1.Text+"'" mydataadapter1.SelectCommand=mycom1
mydataadapter11.SelectCommand=mycom11
mydataadapter1.Fill(myds1,"tickets")
mydataadapter11.Fill(myds11,"Movies")
dt1=myds1.Tables("tickets")
dt11=myds11.Tables("Movies")
Catch ex As
EndTry
Try
If=0Then
Else
EndIf
Catch ex As
EndTry
EndSub
PrivateSub
Dim
Dim
Dim myds4
Dim dt4
Dim mycom4
Dim mycon4
Try
mycom4.Connection=mycon4'通过MYCON连接对象操作数据库
mandType=CommandType.Text'设置命令类型
tickethao=tuipiao()
Catch ex As Exception
MessageBox.Show(ex.ToString)
EndTry
If tickethao=0Then
MessageBox.Show("座位号输入错误,请重新输入!","错误")
Else
Try
mycon4.Open()
mandText="deletefromticketswhereticketsid="+CStr(tickethao)+""
Try
mycom4.ExecuteNonQuery()
MessageBox.Show("退票成功!","谢谢观看")
Catch ex As Exception
MsgBox(ex.ToString)
EndTry
Catch ex As Exception
MsgBox(ex.ToString)
EndTry
EndIf
EndSub
PrivateSub
If
EndI
Dim
Dim myds2
Dim dt2
Dim mycom2
Try
mydataadapter2.SelectCommand=mycom2
mydataadapter2.Fill(myds2,"seats")
dt2=myds2.Tables("seats")
Catch ex As Exception
MessageBox.Show(ex.ToString)
EndTry
TextBox5.Text=dt2.Rows(0)("price")
mycon.Close()
EndSub
PrivateSub Button4_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button4.Click Dim exitform AsNew Form7
If exitform.ShowDialog=DialogResult.OK Then
exitform.Close()
Me.Close()
Application.Exit()
EndIf
EndSub
EndClass
4.创建检票界面
(1)创建模块的功能
对进场观众检票,如果发现有假票或无票观众不允许入内。

(2
(3
Imports
Dim ds1
Dim sqlda1
Dim
PrivateSub
Dim sqlcmd1
Dim str1
Try
Catch ex As
Finally
sqlcn1.Close()
EndTry
Try
sqlda1.Fill(ds1)
Catch ex As SqlException
MsgBox(ex.Message)
EndTry
RecordCount=ds1.Tables(0).Rows.Count
TextBox6.Text=RecordCount
EndSub
PrivateSub Button1_Click_1(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.Click Dim i AsInteger
Dim flag AsBoolean=False
If TextBox1.Text=""Then
TextBox7.Text="请认真填写票号!"
TextBox1.Focus()
ExitSub
EndIf
If TextBox2.Text=""Then
TextBox7.Text="请填写验证码!"
TextBox2.Focus()
ExitSub
EndIf
For i=0To
If
)Then
flag=True
ExitFor
EndIf
Next
If flag=
Try
Catch ex As
EndTry
Else
EndIf
EndSub
PrivateSub
TextBox2.Text=""
TextBox3.Text=""
TextBox4.Text=""
TextBox5.Text=""
TextBox6.Text=""
TextBox7.Text=""
TextBox1.Focus()
EndSub
PrivateSub Button3_Click_1(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button3.Click Dim exitform AsNew Form7
If exitform.ShowDialog=DialogResult.OK Then
exitform.Close()
Me.Close()
Application.Exit()
EndIf
EndSub
EndClass
5.创建维护界面
(1)创建模块的功能
给数据库维护工作人员选择维护的系统数据库(2)创建模块的设计
(3
PrivateSub
EndSub
PrivateSub
Dim frm4
Me.Hide()
EndSub
PrivateSub
Dim frm6
Me.Hide()
EndSub
PrivateSub
Dim frm9
Me.Hide()
EndSub
PrivateSub
Dim exitform AsNew Form7
If exitform.ShowDialog=DialogResult.OK Then exitform.Close()
Me.Close()
Application.Exit()
EndIf
EndSub
EndClass
1.创建影库界面
(1)创建模块的功能
对电影库播放列表的管理
(2)创建模块的设计
在工程中添加一个窗体,命名为“影库系统”,用来作为影库系统窗体。

界面
的设计如下图所示。

(3)代码编写
Dim sqlAdapter AsNew SqlDataAdapter
Dim movieRow As DataRow
Dim RecordCount AsInteger
Dim i AsInteger=0
Dim idnum(2000)AsInteger
Dim
Sub
If
Else
movieRow=
i+=1
EndIf
EndSub
PrivateSub
Me
EndSub
PrivateSub
IfMe.BindingContext(DataSet11,"Movies").Position>0Then
Me.BindingContext(DataSet11,"Movies").Position-=1
ShowPosition()
Else
MessageBox.Show("已到达首记录!","提示信息")
EndIf
EndSub
PrivateSub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button2.Click IfMe.BindingContext(DataSet11,"Movies").Position<RecordCount-1Then
Me.BindingContext(DataSet11,"Movies").Position+=1
ShowPosition()
Else
MessageBox.Show("已到达尾记录!","提示信息")
EndIf
EndSub
PrivateSub Button4_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button4.Click
Me.BindingContext(DataSet11,"Movies").Position=RecordCount-1
ShowPosition()
EndSub
PrivateSub Button5_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button5.Click'添加数据Dim j AsInteger
Dim flag AsBoolean=True
For j=0To i
If
flag=
EndIf
Next
If flag=
Dim
Try
With
If
Else
Return
EndIf
EndWith
Catch ex As
MessageBox.Show(ex.Message)
Return
EndTry
Try
Dim i AsInteger=SqlDataAdapter1.Update(DataSet11,"Movies")
DataSet11.AcceptChanges()
MessageBox.Show(i&"条记录添加成功!")
Catch ex As Exception
MessageBox.Show(ex.Message)
EndTry
idnum(i)=TextBox1.Text
EndSub
PrivateSub Button6_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button6.Click'修改数据Dim j AsInteger
For j=0To i
If TextBox1.Text=CStr(idnum(j))Then
MessageBox.Show("ID地址有冲突!","提示")
EndIf
Next
CurrentPosition=Me.BindingContext(DataSet11,"Movies").Position
movieRow=
Try
With
EndWith
Catch ex As
Return
EndTry
Try
Dim i
Catch ex As
EndTry
EndSub
PrivateSub
Me.BindingContext(DataSet11,"Movies").Position=0
ShowPosition()
EndSub
PrivateSub Button7_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button7.Click'删除数据CurrentPosition=Me.BindingContext(DataSet11,"Movies").Position
movieRow=
Dim n AsInteger=movieRow.Item("movie_id")
Dim j AsInteger=0
For j=0To i
If n=idnum(j)Then
idnum(j)=-1
movieRow.Delete()
Try
Dim i AsInteger=SqlDataAdapter1.Update(DataSet11,"Movies") DataSet11.AcceptChanges()
MessageBox.Show(i&"条记录删除成功!")
Catch ex As Exception
MessageBox.Show(ex.Message)
EndTry
EndSub
PrivateSub
Dim
If
Me
EndIf
EndSub
PrivateSub
Dim frm8
Me
EndSub
EndClass
2
(1
(2
(3
Inherits
Dim
Dim
Dim movieRow As DataRow
Dim RecordCount AsInteger
Dim i AsInteger=0
Dim idnum(2000)AsInteger
Dim CurrentPosition AsInteger
Sub ShowPosition()
RecordCount=
If RecordCount=0Then
TextBox1.Text="无记录"
Else
CurrentPosition=Me.BindingContext(DataSet11,"Workers").Position
movieRow=
TextBox1.Text=movieRow.Item("workerid")
idnum(i)=TextBox1.Text
i+=1
TextBox2.Text=movieRow.Item("password")
TextBox3.Text=movieRow.Item("leibie")
TextBox4.Text=CurrentPosition+1&"/"&RecordCount
EndIf
EndSub
PrivateSub Form6_Load(ByVal sender As System.Object,ByVal e As System.EventArgs)HandlesMyBase.Load DataSet11.Clear()
Me
EndSub
PrivateSub
IfMe
Me
Else
EndIf
EndSub
PrivateSub
IfMe
Me
Else
EndIf
EndSub
PrivateSub
Me
EndSub
PrivateSub
Me
ShowPosition()
EndSub
PrivateSub Button5_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button5.Click Dim j AsInteger
Dim flag AsBoolean=True
For j=0To i
If TextBox1.Text=CStr(idnum(j))Then
flag=False
MessageBox.Show("ID地址有冲突!","提示")
EndIf
Next
If TextBox3.Text<>1And TextBox3.Text<>2And TextBox3.Text<>3Then flag=False
MessageBox.Show("服务系统号只能为1,2,3!","提示")
EndIf
If flag=TrueThen
Dim MyNewData As DataRow
MyNewData=
Try
With MyNewData
.BeginEdit()
If TextBox1.Text<>""Then
Else
Return
EndIf
EndWith
Catch ex As
Return
EndTry
Try
Dim k
Catch ex As
EndTry
i=i+1
EndIf
EndSub
PrivateSub
Dim j AsInteger
For j=0To i
If TextBox1.Text=CStr(idnum(j))Then
MessageBox.Show("ID地址有冲突!","提示")
EndIf
Next
If TextBox3.Text<>1And TextBox3.Text<>2And TextBox3.Text<>3Then MessageBox.Show("服务系统号只能为1,2,3!","提示")
EndIf
CurrentPosition=Me.BindingContext(DataSet11,"Workers").Position movieRow=
With movieRow
.BeginEdit()
.Item("workerid")=TextBox1.Text
.Item("password")=TextBox2.Text
.Item("leibie")=TextBox3.Text
.EndEdit()
EndWith
Catch ex As Exception
MessageBox.Show(ex.Message)
Return
EndTry
Try
Dim k
Catch ex As
EndTry
EndSub
PrivateSub
movieRow=
Dim n
Dim j
For j=0To i
If
EndIf
Next
Try
Dim k
Catch ex As
MessageBox.Show(ex.Message)
EndTry
EndSub
PrivateSub Button8_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button8.Click Dim exitform AsNew Form7
If exitform.ShowDialog=DialogResult.OK Then
exitform.Close()
Me.Close()
Application.Exit()
EndIf
frm8.Close()
PrivateSub Button9_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button9.Click Me.Close()
frm8.Show()
EndSub
EndClass
3.创建票务界面
(1)创建模块的功能
对所售出的电影票进行管理,把没用的数据进行清除
(2)创建模块的设计
(3
Imports
Inherits
Dim ds1
Dim sqlda1
Dim
PrivateSub
Dim sqlcmd1
Dim str1
Try
Catch ex As
Finally
EndTry
Try
sqlda1.Fill(ds1)
Catch ex As SqlException
MsgBox(ex.Message)
EndTry
RecordCount=ds1.Tables(0).Rows.Count
EndSub
PrivateSub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button1.Click Dim i AsInteger
Dim flag AsBoolean=False
If TextBox1.Text=""Then
MessageBox.Show("请认真填写电影名!","提示信息")
TextBox1.Focus()
Else
For i=0To RecordCount-1
IfCStr(ds1.Tables(0).Rows(i).Item("movie_name")).Trim=CStr(TextBox1.Text)Then Try
TextBox2.Text=CStr(ds1.Tables(0).Rows(i).Item("movie_id"))
TextBox3.Text=CStr(ds1.Tables(0).Rows(i).Item("movie_name"))
TextBox4.Text=CStr(ds1.Tables(0).Rows(i).Item("actor"))
TextBox5.Text=CStr(ds1.Tables(0).Rows(i).Item("actress"))
TextBox6.Text=CStr(ds1.Tables(0).Rows(i).Item("producer"))
TextBox7.Text=CStr(ds1.Tables(0).Rows(i).Item("palydate"))
Catch ex As
EndTry
flag=True
ExitSub
EndIf
Next
EndIf
If flag=
EndIf
EndSub
PrivateSub
Me
Dim i
Dim k
k=
Dim flag
If
ExitSub
Else
For i=0To
IfCStr=CStr(TextBox1.Text)Then
flag=True
EndIf
Next
Try
Dim j AsInteger=SqlDataAdapter1.Update(DataSet11,"Tickets")
DataSet11.AcceptChanges()
MessageBox.Show(j&"条记录删除成功!")
Catch ex As Exception
MessageBox.Show(ex.Message)
EndTry
EndIf
If flag=FalseThen
MessageBox.Show("输入电影名有误!","提示")
EndIf
EndSub
PrivateSub Button3_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button3.Click
Dim frm8AsNew Form8
frm8.Show()
Me.Close()
EndSub
PrivateSub Button4_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handles Button4.Click
Dim
If
Me
EndIf
EndSub
EndClass
(1
(2
(3
(4
(1
(2
看的电影,然后界面会显示相关的信息。

则在“座位号“中输入所票上的座位号,按”刷新“,系统显示相关信息,再按”退票“,退票成功。

要退出时,按“退出“,跳出退出窗体,按”确定“,成功退出。

(3)进入检票系统
操作由工作人员完成,可以从第一界面选择“检票系统”进入此界面。

根据提示,在对应的文本框中填入电影票上的票号及对应的验证码,然后点击“验证真伪”按钮,根据数据库中票的信息,在右面的文本框中会有真假信息。

点击“消除数据”按钮,那么所有的文本框都将为空。

“退出”信息同上。

(4)进入维护系统
此窗口是一个过度窗口,工作人员通过点击不同的按钮,系统将进入相应的系统界面,共有如下三个分系统:影库系统,职工系统和票务系统。

(5)进入影库系统
本系统是对电影库的浏览及修改操作,通过点击按钮,可以直接对数据库中“Movies”表进行修改操作。

里面各功能按钮有明确的提示,不会令人误解。

(6)进入职工系统
本系统是对工作人员相关信息的浏览及修改操作,通过点击按钮,你可以进行添加,修改,删除等操作,这些操作将直接作用在数据库中的“Workers”表上。

因不同工作人员的权限,他们的系统服务号不同,所以可以对他们进行不同的修改。

(7)进入票务系统
这个系统关系到两个表,即“Movies”表和“Tickets”表,“Movies”表信息设置为只读,根据电影名会有相应的信息显示出来。

“Tickets”表就是卖票信息表,工作人员需要定期对表中数据进行删除操作,还
这也
不过,在此
应用教程童爱红刘凯编着
实用数据库编程廖疆星张艳钗肖金秀编着。

相关文档
最新文档