影院订票管理系统实验报告.docx
《影院订票管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《影院订票管理系统实验报告.docx(52页珍藏版)》请在冰点文库上搜索。
影院订票管理系统实验报告
软件工程实验报告
一.系统概述;
1.项目需求;
2.需求分析;
二.项目开发计划书;
三.设计说明书;
1.分析与创建数据库
2.创建登陆窗体模块;
3.创建售票窗体模块
4.创建检票界面
5.创建维护界面
1.创建影库界面
2.创建职工界面
3.创建票务界面
四.用户操作手册;
五.改进意见;
六.自我评价;
七.参考资料、书籍;
一.系统概述;
1.项目需求;
现在中国大部分的家庭都喜欢在家里置办属于自己风格的家庭影院。
但是,仍然有很多人喜欢到电影院去看电影。
因为家里的气氛毕竟不如影院好。
所以,现代家庭影院的出现并不会让电影院没有生路。
每个社会服务系统都有自己的一套管理机制。
当然,电影院也不除外。
其实电影院的管理系统应该来说比其他的社会服务系统的管理要简单一点。
电影院不外乎是引进电影,制定播放影片的时间表,买票,检票进场观看,还有就是一些数据管理面的事。
如工作人员管理,票务管理等等。
为了工作机制简单有序,必然要引进一套管理系统。
2.需求分析;
具体而言,影院售票系统需要实现以下的需求:
(1)能够对播放电影,工作人员,售票事宜,检票事宜,无用数据进行处理。
(2)售票管理自然有专人负责,要处理各电影的电影票销售问题。
当然包括退票问题,还有就是预订电影票其实也就相当于买票。
两者可以当一回事处理。
(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
Nvarchar
50
导演
否
无
actress
Nvarchar
50
主演
否
无
producer
Nvarchar
25
制片厂
否
无
palydate
datetime
8
上映时间
是
无
表2电影院座位管理表---SEATS
字段名称
数据类型
字段属性
字段大小
作用
必填字段
索引
是否主键
seatid
smallint
2
座位号
是
有(无重复)
是
price
float
8
票价
是
无
soldornot
smallint
2
是否售出
是
无
表3电影票信息表---TICKETS
字段名称
数据类型
字段属性
字段大小
作用
必填字段
索引
是否主键
ticketsid
smallint
2
电影票号
是
有(无重复)
是
seatid
smallint
2
座位号
是
有
Movie_id
smallint
2
电影号
是
有
Movie_name
Nvarchar
50
电影名
否
无
palydate
datetime
8
上映时间
是
无
price
float
8
价格
是
无
yanzhengma
smallint
2
验证码
是
无
是
表4职工信息表---WORKERS
字段名称
数据类型
字段属性
字段大小
作用
必填字段
索引
是否主键
workerid
smallint
2
职工号
是
无
是
password
smallint
2
职工密码
是
无
leibie
smallint
2
职工类型
是
无
根据规化的设计理念,本管理系统的数据分成上面4个表,减少了数据的冗余,同时在这些表之间又存在着一些关联关系。
这四个表之间的这两种关系表现在下图所示的关系:
2.创建登陆窗体模块;
(1)窗体模块的功能
登陆窗体
(2)窗体界面的设计
在工程中添加一个窗体,命名为“登陆系统”,用来作为系统登陆窗体。
界面
的设计如图3所示。
(3)窗体代码
ImportsSystem.Data.SqlClient
PublicClassForm1
InheritsSystem.Windows.Forms.Form
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=DateTime.Now.ToString("T")
EndSub
PrivateSubGroupBox1_Enter(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesGroupBox1.Enter
IfRadioButton1.Checked=TrueThen
RadioButton2.Checked=False
RadioButton3.Checked=False
ElseIfRadioButton2.Checked=TrueThen
RadioButton1.Checked=False
RadioButton3.Checked=False
ElseIfRadioButton3.Checked=TrueThen
RadioButton1.Checked=False
RadioButton2.Checked=False
EndIf
EndSub
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("workers").Rows.Count-1
Iftox1=Val(myds.Tables("workers").Rows(i).ItemArray(0))Then
j=0
ExitFor
Else
j=1
EndIf
Next
Fori=0Tomyds.Tables("workers").Rows.Count-1
Iftox2=Val(myds.Tables("workers").Rows(i).ItemArray
(1))Then
j=0
ExitFor
Else
j=1
EndIf
Next
Ifj=1Then
MessageBox.Show("您的工号或者密码错误","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Else
Try
mycom1.Connection=mycon'通过MYCON连接对象操作数据库
mycom1.CommandType=CommandType.Text'设置命令类型
mycom1.CommandText="selectleibiefromworkerswhereworkerid="+CStr(tox1)+"andpassword="+CStr(tox2)+""'设置要执行的命令
Dimmydataadapter1AsNewSqlDataAdapter
mydataadapter1.SelectCommand=mycom1
Dimmyds1AsNewDataSet
mydataadapter1.Fill(myds1,"workers")
IfRadioButton1.Checked=TrueAndVal(myds1.Tables("workers").Rows(0)("leibie"))=1Then
frm2.Show()
Me.Hide()
ElseIfRadioButton2.Checked=TrueAndVal(myds1.Tables("workers").Rows(0)("leibie"))=2Then
frm3.Show()
Me.Hide()
ElseIfRadioButton3.Checked=TrueAndVal(myds1.Tables("workers").Rows(0)("leibie"))=3Then
frm8.Show()
Me.Hide()
Else
MessageBox.Show("您超出职责围或未选择服务系统,请重新输入!
","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Warning,MessageBoxDefaultButton.Button1)
EndIf
CatchexAsException
EndTry
EndIf
EndSub
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
AxShockwaveFlash1.Movie="E:
\实验运行场\VB.NET程序设计\电影院票务系统\image\登陆界面1.swf"
AxShockwaveFlash1.Play()
EndSub
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
DimexitformAsNewForm7
Ifexitform.ShowDialog=DialogResult.OKThen
exitform.Close()
Me.Close()
Application.Exit()
EndIf
EndSub
EndClass
3.创建售票窗体模块
(1)窗体模块的功能
为观众提供买票服务。
在界面上观众可以看见座位的情况,根据此来选择自己喜欢的座位。
不同的座位有不同的价格。
此窗体还有退票功能。
(2)窗体界面的设计
在工程中添加一个窗体,命名为“售票系统”,用来作为仓管人员窗体。
界面
的设计如下图所示。
(3)代码编写
ImportsSystem.Data.SqlClient
PublicClassForm2
InheritsSystem.Windows.Forms.Form
DimnavigatorAsBindingManagerBase'用来对记录导航
DimmyconAsNewSqlConnection'连接对象
DimmycomAsNewSqlCommand'命令对象
PrivateSubForm2_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
'Me.Show()
AxShockwaveFlash1.Movie="E:
\实验运行场\VB.NET程序设计\电影院票务系统\image\销售界面.swf"
AxShockwaveFlash1.Play()
AxShockwaveFlash2.Movie="E:
\实验运行场\VB.NET程序设计\电影院票务系统\image\检票界面下.swf"
AxShockwaveFlash2.Play()
DimmydataadapterAsNewSqlDataAdapter
DimmydsAsNewDataSet
DimiAsInteger
DimjAsInteger
DimstrrowAsString
DimdtAsNewDataTable
mycon.ConnectionString="initialcatalog=ticketbooking;userid=sa;password=;"
mycom.Connection=mycon'通过MYCON连接对象操作数据库
mycom.CommandType=CommandType.Text'设置命令类型
mycom.CommandText="select*fromMovies"'设置要执行的命令"
Try
mycon.Open()
mydataadapter.SelectCommand=mycom
mydataadapter.Fill(myds,"Movies")
CatchexAsException
MessageBox.Show("连接失败")
Finally
mycon.Close()
EndTry
Try
Fori=0Tomyds.Tables("Movies").Rows.Count-1
strrow=myds.Tables("Movies").Rows(i)("movie_name")
ComboBox1.Items.Add(strrow)
Next
CatchexAsException
MessageBox.Show(ex.ToString)
EndTry
EndSub
PrivateSubButton1_Click_1(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
DimiAsInteger
DimtickethaoAsInteger
DimmoviehaoAsInteger
DimsuijiAsInteger
Dimmydataadapter3AsNewSqlDataAdapter
Dimmyds3AsNewDataSet
Dimdt3AsNewDataTable
Dimmycom3AsNewSqlCommand
Dimmycon3AsNewSqlConnection
Randomize()
suiji=Int(9000*Rnd()+1000)
Try
tickethao=tickets_id()
moviehao=movieid()
mycon3.ConnectionString="initialcatalog=ticketbooking;userid=sa;password=;"
mycom3.Connection=mycon3'通过MYCON连接对象操作数据库
mycom3.CommandType=CommandType.Text'设置命令类型
CatchexAsException
MessageBox.Show(ex.ToString)
EndTry
Iftickethao=0Then
Try
MessageBox.Show("此座位已售出,请重新选择!
","错误")
ComboBox1.Text=""
TextBox1.Text=""
TextBox2.Text=""
TextBox3.Text=""
TextBox4.Text=""
TextBox5.Text=""
CatchexAsException
MessageBox.Show(ex.ToString)
EndTry
Else
Try
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="insertintotickets(ticketsid,seatid,movie_id,movie_name,