影院售票管理系统.doc_第1页
影院售票管理系统.doc_第2页
影院售票管理系统.doc_第3页
影院售票管理系统.doc_第4页
影院售票管理系统.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计课程设计报告 2006 / 2007 学年 第 一 学期项目名称: 影院售票管理系统 项目负责人: 王德才 学号:_0601023230_同 组 者: 李清爽 学号: 0601023214 指导教师: _潘 俊_ 班级:_06会计_课程设计时间及地点:_实验楼521_计算机信息工程学院2007年1月15日一系统概述; 1项目需求; 2需求分析;二项目开发计划书;三设计说明书; 1分析与创建数据库; 2创建登陆窗体模块; 3创建售票窗体模块4创建检票界面5创建维护界面 1创建影库界面 2创建职工界面 3创建票务界面四用户操作手册;五改进意见;六自我评价;七参考资料、书籍;一系统概述;1项目需求; 现在中国大部分的家庭都喜欢在家里置办属于自己风格的家庭影院。但是,仍然有很多人喜欢到电影院去看电影。因为家里的气氛毕竟不如影院好。所以,现代家庭影院的出现并不会让电影院没有生路。 每个社会服务系统都有自己的一套管理机制。当然,电影院也不除外。其实电影院的管理系统应该来说比其他的社会服务系统的管理要简单一点。电影院不外乎是引进电影,制定播放影片的时间表,买票,检票进场观看,还有就是一些数据管理方面的事。如工作人员管理,票务管理等等。为了工作机制简单有序,必然要引进一套管理系统。2需求分析;具体而言,影院售票系统需要实现以下的需求:(1) 能够对播放电影,工作人员,售票事宜,检票事宜,无用数据进行处理。(2) 售票管理自然有专人负责,要处理各电影的电影票销售问题。当然包括退票问题,还有就是预订电影票其实也就相当于买票。两者可以当一回事处理。(3) 检票管理事宜要完成观众进场时检票的事宜。其中包括了电影票的真假检测问题。(4) 数据管理要处理电影的播放的次序,工作人员的管理,以及过期电影票的处理问题。二项目开发计划书; 根据需求分析的结果,本小组成员讨论协商,决定本系统主要划分为以下三个子模块:售票管理模块、检票管理模块、数据管理模块。影院售票管理系统是一个基于电影院工作人员的系统,不同类型的用户在系统中有不同的权限。主要有三种用户:1 售票管理人员: 主要负责卖票,订票及退票事宜;2 检票管理人员: 主要负责观众进场时检票工作,以及辨认电影票的真假(此工作自然可以由服务系统来完成);3 数据处理人员: 主要负责播放电影导入数据库,工作人员的应聘以及开除的数据管理,还有过期电影票的数据处理;以下分别介绍此系统中各个系统(3个子模块。):(1)售票系统模块 给观众提供售票服务。不同的位置有不同的价格。要选购哪个位置由观众决定。工作人员根据观众的需要进行操作。系统在购票成功后会产生一个验证码,此验证码连工作人员都不知道。是随机生成的。用于对电影票真假的辩识。(2)检票系统模块 在观众进场时所使用的系统。由扫描仪扫描,取的验证码,然后进行辩识,看是不是和数据库中数据一样,如果一样,则电影票为真,否则电影票为假。由此来决定让不让观众入场。(3)维护系统模块 此模块是由电影院的数据库管理员来管理的。他根据电影院事情的需要对有关数据进行处理。如电影票的管理,工作人员的管理,和电影库的管理等。整个系统的结构如下图1所示:影院售票管理系统xiop工作人员登录维护系统检票系统售票系统影片播放管理工作人员管理过期票务管理以下分别介绍系统中数据系统3个子模块。(1)影片播放管理模块 影片播放管理是对电影院播放的电影的充实,设定电影的播放,以及电影时间的设定。当所设定的电影已经播放完成后,要对其进行删除。还要对数据库进行清理,把一些没用的数据全部清除。(2)工作人员管理: 电影院里当然有工作人员的增加与开除,以及他们的管理权限的变化。这一部分事件的发生都需要数据库管理人员将有关数据进行处理。保证数据库里数据的统一与完整。 其中有他们的共号,登陆电影院管理系统的密码,以及所拥有的权限。(3)过期票务管理: 电影院里的电影在放过以后,在数据库的电影票数据就会变成没有用的数据。通过此管理可以把那些没用的过期的数据清除。这里指的是与放过的电影同名的电影票清除,而其他的电影票保存不变。小组人员分工情况:王圣武 登陆界面和售票界面、系统转换界面的程序编写,整个系统框架的设计,整个系统界面及美化设计,整个系统流程的管理,创建数据库张润驰 检票系统和整个维护系统的程序编写,局部框架辅助设计,创建数据库本系统后台数据库采用目前比较流行的 Microsoft SQL Sever ,该数据库系统在安全性、准确性、运行速度方面有绝对的优势,并且处理数据量大、效率高;前台采用 Microsoft公司的 VB.NET 2003 作为主要的开发工具,其可与SQL Sever 2000数据库无缝衔接。三设计说明书; 1分析与创建数据库; 根据系统的功能分析结果,影院售票管理系统将会使用Microsoft SQL Sever 2000 作为后台的数据库管理系统。本管理系统是应用于电影院中,而且需要和数据库之间进行频繁数据交换,所以采用Microsoft SQL Sever 2000 作为后台的数据库管理系统。在本管理系统中,需要掌握影库充实信息,职工管理信息,票务管理信息,此外,由于要进行职工管理,还需要掌握使用本系统的职工。表1存储硬库信息列表,表2存储了电影院座位的相关数据连接关系,表3存储了电影票销售情况管理,表4存储了系统使用者职工的相关情况的管理列表。表1 影库管理表-MOVIES字段名称数据类型字段属性字段大小作用必填字段索引是否主键Movie_idsmallint2电影号是有(无重复)是Movie_nameNvarchar50电影名称是无actorNvarchar50导演否无actressNvarchar50主演否无producerNvarchar25制片厂否无palydatedatetime8上映时间是无表2 电影院座位管理表-SEATS字段名称数据类型字段属性字段大小作用必填字段索引是否主键seatidsmallint2座位号是有(无重复)是pricefloat8票价是无soldornotsmallint2是否售出是无表3 电影票信息表-TICKETS字段名称数据类型字段属性字段大小作用必填字段索引是否主键ticketsidsmallint2电影票号是有(无重复)是seatidsmallint2座位号是有Movie_idsmallint2电影号是有Movie_nameNvarchar50电影名否无palydatedatetime8上映时间是无pricefloat8价格是无yanzhengmasmallint2验证码是无是表4 职工信息表-WORKERS字段名称数据类型字段属性字段大小作用必填字段索引是否主键workeridsmallint2职工号是无是passwordsmallint2职工密码是无leibiesmallint2职工类型是无根据规范化的设计理念,本管理系统的数据分成上面4个表,减少了数据的冗余,同时在这些表之间又存在着一些关联关系。这四个表之间的这两种关系表现在下图所示的关系: 2创建登陆窗体模块; (1)窗体模块的功能 登陆窗体 (2)窗体界面的设计 在工程中添加一个窗体,命名为“登陆系统”,用来作为系统登陆窗体。界面 的设计如图3所示。 (3)窗体代码 Imports System.Data.SqlClientPublic Class Form1 Inherits System.Windows.Forms.Form Dim navigator As BindingManagerBase 用来对记录导航 Dim mycon As New SqlConnection 连接对象 Dim mycom As New SqlCommand 命令对象 Dim mycom1 As New SqlCommand Dim frm2 As New Form2 Dim frm3 As New Form3Dim frm8 As New Form8Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick StatusBar1.Panels(0).Text = DateTime.Today StatusBar1.Panels(1).Text = DateTime.Now.ToString(T) End Sub Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Enter If RadioButton1.Checked = True Then RadioButton2.Checked = False RadioButton3.Checked = False ElseIf RadioButton2.Checked = True Then RadioButton1.Checked = False RadioButton3.Checked = False ElseIf RadioButton3.Checked = True Then RadioButton1.Checked = False RadioButton2.Checked = False End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click AxShockwaveFlash1.Movie = E:实验运行场VB.NET程序设计电影院票务系统image登陆界面1.swf AxShockwaveFlash1.Playing = False AxShockwaveFlash1.Stop() Dim tox1 As Int32 Dim tox2 As Int32 Dim mydataadapter As New SqlDataAdapter Dim myds As New DataSet Dim i As Integer Dim j As Integer tox1 = Val(TextBox1.Text) tox2 = Val(TextBox2.Text) mycon.ConnectionString = initial catalog=ticketbooking;user id=sa;password=; mycom.Connection = mycon 通过 MYCON 连接对象操作数据库 mycom.CommandType = CommandType.Text 设置命令类型 mycom.CommandText = select * from workers 设置要执行的命令 Try mycon.Open() mydataadapter.SelectCommand = mycom Catch ex As Exception MessageBox.Show(连接失败) Finally mycon.Close() End Try mydataadapter.Fill(myds, workers) For i = 0 To myds.Tables(workers).Rows.Count - 1 If tox1 = Val(myds.Tables(workers).Rows(i).ItemArray(0) Then j = 0 Exit For Else j = 1 End If Next For i = 0 To myds.Tables(workers).Rows.Count - 1 If tox2 = Val(myds.Tables(workers).Rows(i).ItemArray(1) Then j = 0 Exit For Else j = 1 End If Next If j = 1 Then MessageBox.Show(您的工号或者密码错误, 错误提示, MessageBoxButtons.OK, MessageBoxIcon.Warning) Else Try mycom1.Connection = mycon 通过 MYCON 连接对象操作数据库 mycom1.CommandType = CommandType.Text 设置命令类型 mycom1.CommandText = select leibie from workers where workerid= + CStr(tox1) + and password= + CStr(tox2) + 设置要执行的命令 Dim mydataadapter1 As New SqlDataAdapter mydataadapter1.SelectCommand = mycom1 Dim myds1 As New DataSet mydataadapter1.Fill(myds1, workers) If RadioButton1.Checked = True And Val(myds1.Tables(workers).Rows(0)(leibie) = 1 Then frm2.Show() Me.Hide() ElseIf RadioButton2.Checked = True And Val(myds1.Tables(workers).Rows(0)(leibie) = 2 Then frm3.Show() Me.Hide() ElseIf RadioButton3.Checked = True And Val(myds1.Tables(workers).Rows(0)(leibie) = 3 Then frm8.Show() Me.Hide() Else MessageBox.Show(您超出职责范围 或未选择服务系统,请重新输入!, 错误提示, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1) End If Catch ex As Exception End Try End If End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AxShockwaveFlash1.Movie = E:实验运行场VB.NET程序设计电影院票务系统image登陆界面1.swf AxShockwaveFlash1.Play() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim exitform As New Form7 If exitform.ShowDialog = DialogResult.OK Then exitform.Close() Me.Close() Application.Exit() End If End SubEnd Class3 创建售票窗体模块(1) 窗体模块的功能 为观众提供买票服务。在界面上观众可以看见座位的情况,根据此来选择自己喜欢的座位。不同的座位有不同的价格。此窗体还有退票功能。(2) 窗体界面的设计 在工程中添加一个窗体,命名为“售票系统”,用来作为仓管人员窗体。界面 的设计如下图所示。(3) 代码编写 Imports System.Data.SqlClientPublic Class Form2 Inherits System.Windows.Forms.Form Dim navigator As BindingManagerBase 用来对记录导航 Dim mycon As New SqlConnection 连接对象 Dim mycom As New SqlCommand 命令对象 Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Show() AxShockwaveFlash1.Movie = E:实验运行场VB.NET程序设计电影院票务系统image销售界面.swf AxShockwaveFlash1.Play() AxShockwaveFlash2.Movie = E:实验运行场VB.NET程序设计电影院票务系统image检票界面下.swf AxShockwaveFlash2.Play() Dim mydataadapter As New SqlDataAdapter Dim myds As New DataSet Dim i As Integer Dim j As Integer Dim strrow As String Dim dt As New DataTable mycon.ConnectionString = initial catalog=ticketbooking;user id=sa;password=; mycom.Connection = mycon 通过 MYCON 连接对象操作数据库 mycom.CommandType = CommandType.Text 设置命令类型 mycom.CommandText = select * from Movies 设置要执行的命令 Try mycon.Open() mydataadapter.SelectCommand = mycom mydataadapter.Fill(myds, Movies) Catch ex As Exception MessageBox.Show(连接失败) Finally mycon.Close() End Try Try For i = 0 To myds.Tables(Movies).Rows.Count - 1 strrow = myds.Tables(Movies).Rows(i)(movie_name) ComboBox1.Items.Add(strrow) Next Catch ex As Exception MessageBox.Show(ex.ToString) End Try End Sub Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer Dim tickethao As Integer Dim moviehao As Integer Dim suiji As Integer Dim mydataadapter3 As New SqlDataAdapter Dim myds3 As New DataSet Dim dt3 As New DataTable Dim mycom3 As New SqlCommand Dim mycon3 As New SqlConnection Randomize() suiji = Int(9000 * Rnd() + 1000) Try tickethao = tickets_id() moviehao = movieid() mycon3.ConnectionString = initial catalog=ticketbooking;user id=sa;password=; mycom3.Connection = mycon3 通过 MYCON 连接对象操作数据库 mycom3.CommandType = CommandType.Text 设置命令类型 Catch ex As Exception MessageBox.Show(ex.ToString) End Try If tickethao = 0 Then Try MessageBox.Show(此座位已售出,请重新选择!, 错误) ComboBox1.Text = TextBox1.Text = TextBox2.Text = TextBox3.Text = TextBox4.Text = TextBox5.Text = Catch ex As Exception MessageBox.Show(ex.ToString) End Try Else Try mycon3.Open() mycom3.CommandText = insert into tickets (ticketsid,seatid,movie_id,movie_name,palydate,price,yanzhengma) values ( + CStr(tickethao) + , + TextBox4.Text + , + CStr(moviehao) + , + TextBox2.Text + , + TextBox1.Text + , + TextBox5.Text + , + CStr(suiji) + ) Dim sql As String sql = insert into tickets (ticketsid,seatid,movie_id,movie_name,palydate,price,yanzhengma) values ( + CStr(tickethao) + , + TextBox4.Text + , + CStr(moviehao) + , + TextBox2.Text + , + TextBox3.Text + , + TextBox5.Text + , + CStr(suiji) + ) mydataadapter3.InsertCommand = mycom3 Try mycom3.ExecuteNonQuery() MessageBox.Show(售票成功!, 谢谢观看) Catch ex As Exception MsgBox(ex.ToString) End Try Catch ex As Exception MessageBox.Show(ex.ToString) End Try mycon3.Close() ComboBox1.Text = TextBox1.Text = TextBox2.Text = TextBox3.Text = TextBox4.Text = TextBox5.Text = End If revoke_seat() End Sub Private Sub ComboBox1_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged revoke_seat() Dim mydataadapter1 As New SqlDataAdapter Dim mydataadapter11 As New SqlDataAdapter Dim myds1 As New DataSet Dim myds11 As New DataSet Dim dt1 As New DataTable Dim dt11 As New DataTable Dim mycom1 As New SqlCommand Dim mycom11 As New SqlCommand mycon.ConnectionString = initial catalog=ticketbooking;user id=sa;password=; mycom1.Connection = mycon 通过 MYCON 连接对象操作数据库 mycom1.CommandType = CommandType.Text 设置命令类型 mycom11.Connection = mycon mycom11.CommandType = CommandType.Text Try mycon.Open() mycom11.CommandText = select palydate from Movies where movie_name= + ComboBox1.Text + mycom1.CommandText = select * from tickets where movie_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 Exception MessageBox.Show(ex.ToString) End Try Try If dt1.Rows.Count = 0 Then MessageBox.Show(还未出售!) TextBox1.Text = dt11.Rows(0)(palydate) revoke_seat() Else ShowSellInfo(dt1) TextBox1.Text = dt11.Rows(0)(palydate) End If Catch ex As Exception End Try mycon.Close() End Sub Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim tickethao As Integer Dim mydataadapter4 As New SqlDataAdapter Dim myds4 As New DataSet Dim dt4 As New DataTable Dim mycom4 As New SqlCommand Dim mycon4 As New SqlConnection Try mycon4.ConnectionString = initial catalog=ticketbooking;user id=sa;password=; mycom4.Connection = mycon4 通过 MYCON 连接对象操作数据库 mycom4.CommandType = CommandType.Text 设置命令类型 tickethao = tuipiao() Catch ex As Exception MessageBox.Show(ex.ToString) End Try If tickethao = 0 Then MessageBox.Show(座位号输入错误,请重新输入!, 错误) Else Try mycon4.Open() mycom4.CommandText = delete from tickets where ticketsid= + CStr(tickethao) + Try mycom4.ExecuteNonQuery() MessageBox.Show(退票成功!, 谢谢观看) Catch ex As Exception MsgBox(ex.ToString) End Try Catch ex As Exception MsgBox(ex.ToString) End Try End If mycon4.Close() TextBox1.Text = TextBox2.Text = TextBox3.Text = TextBox4.Text = TextBox5.Text = ComboBox1.Text = revoke_seat() End Sub Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click TextBox2.Text = ComboBox1.Text TextBox3.Text = TextBox1.Text If TextBox4.Text = Then MessageBox.Show(请输入座位号!, 提示) End I Dim mydataadapter2 As New SqlDataAdapter Dim myds2 As New DataSet Dim dt2 As New DataTable Dim mycom2 As New SqlCommand mycon.ConnectionString = initial catalog=ticketbooking;user id=sa;password=; mycom2.Connection = mycon 通过 MYCON 连接对象操作数据库 mycom2.CommandType = CommandType.Text 设置命令类型 Try mycon.Open() mycom2.CommandText = select * from seats where seatid= + TextBox4.Text + mydataadapter2.SelectCommand = mycom2 mydataadapter2.Fill(myds2, seats) dt2 = myds2.Tables(seats) Catch ex As Exception MessageBox.Show(ex.ToString) End Try TextBox5.Text = dt2.Rows(0)(price) mycon.Close() End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim exitform As New Form7 If exitform.ShowDialog = DialogResult.OK Then exitform.Close() Me.Close() Application.Exit() End If End Sub End Class4 创建检票界面(1)创建模块的功能对进场观众检票,如果发现有假票或无票观众不允许入内。(2)创建模块的窗体 在工程中添加一个窗体,命名为“检票系统”,用来作为检票系统窗体。界面 的设计如下图所示。(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论