1、无 锡 职 业 技 术 学 院毕 业 设 计 (论 文) 说 明 书论计算机在影视业的应用【关键字】电影、计算机、应用、票务管理、程序设计、visual Basic、mvc、设计模式。【摘要】电影的产生改变人们的生活和娱乐习惯。去影院看电影也成为人们平时休闲娱乐、交友、学习的重要内容。生活习惯的改变影响着影院的发展。影院的规模越来越大,经营管理也越来越受到影院经营者的关注。计算机的发展和软件业的兴起对影院的发展产生了很大的影响。借助与计算机的软件的强大功能,影院的经营管理模式发生了中大变化。文章将结合电影业的发展和变迁,讨论计算机的发展对电影业的影响,讨论计算机技术在电影业的应用。以及使用vi
2、sual basic语言开发影院售票系统相关问题。论文主要介绍了本课题的开发背景、系统分析、数据库设计和系统的设计与实现。【Keyword】movie、computer、application、ticket、program、visual Basic、mvc、Design parttern。【Abstract】Filmdoms development change the habit of people ,we go to the cinema with our friends,its very good,so the size of cinema become bigger and bigge
3、r. The business of cinema arouse peoples attention.This article will be tall about the effect to filmdom of computer develop ,Through the talk I will notice the history of filmdom. My topic is the application that made by program in filmdom. and also I will spend the most sections to talk about prog
4、ramming in develop application with visual basic.目录第一章 绪论51. 前言52. 研究背景5第二章 系统概述及工具介绍61. 系统概述62. 数据库技术63. visual Basic64. 控件介绍75. ADO.net技术8第三章 需求分析101. 需求分析102. 系统框架图10第四章 系统设计1. 数据库设计112. 程序设计13a) 登录模块13b) 系统主界面15c) 影片管理17d) 操作员管理20e) 预订票管理22f) 检票退票25g) 售票统计27第五章 结束语28第六章 参考文献28第一章 绪论【前言】计算机软件作为一门
5、学科得到了迅速发展,相关技术和方法层出不穷,研究领域不断深入和发展,计算机的应用范围也得到了很大程度的普及。影视业的蓬勃发展也对计算机应用产生了极大的需求。不仅在电脑特效、音效合成、电影宣传,影院的经营与完善也要借助与计算机提供的强大支持,如影院的自动播放系统,售票系统等等。这篇文章就主要讨论影院的售票系统发展。【开发背景】电影的产生改变人们的生活和娱乐习惯。去影院看电影也成为人们平时休闲娱乐、交友、学习的重要内容。生活习惯的改变影响着影院的发展。影院的规模越来越大,经营管理也越来越受到影院经营者的关注。随着计算机技术的发展,特别是计算机软件技术与数据库技术的发展,使用人们的生活与工作方式发生
6、了很大的改观。数据库始于20世纪60年代,经过40多年的发展,现在已经形成了理论体系,成为计算机软件的一个重要分支。数据库技术体现了当代先进的数据管理方法,使计算机的应用真正渗透到国民经济各个部门,在数据处理领域发挥着越来越大的作用。统的影院售票模式是人工的,一旦影院规模扩大,多场次、多包间,业务越来越细化,这种传统的售票模式就不能适应。必须有一种快捷、方便的经营模式出现,利用计算机软件的强大功能,就可以很容易完成这些任务。并且还能提供更多的更人性化的服务,比如预订票,更换场次、推迟场次,更换包间、退票,检票等等,如果是传统的人工售票模式,将很难完成。接下来我就将介绍我使用微软.net框架下的
7、visual Basic 语言开发的售票系统。第二章 系统概述及工具介绍【系统概述】这是一个简单的影院售票管理系统,提供了影院售票过程中可能遇到的各种操作。如:添加新影片、修改或删除影片信息、搜索影片、售票、打印影票、检票、退票、预订票、统计售票基本情况等。【数据库技术】数据库引擎是用于存储、处理和保护数据的核心服务。数据库引擎提供了受控访问和快速事务处理,以满足企业内最苛刻的数据消费应用程序的要求。数据库引擎还提供了大量的支持以保持高可用性。SQL Server 提供了设计、开发、部署和管理关系数据库、Analysis Services 多维数据集、数据转换包、复制拓扑、报表服务器和通知服务
8、器所需的工具SQL Server Management Studio:这是微软的另外一款强大的数据库系统开发工具,他除了是一个强大的IDE,同时还包含了数据库服务、报表服务等功能。它也是最流行的数据库系统之一。现在最常见的数据库系统有:oracle(甲骨文)、DB2(IBM公司)、Sysbase等。该工具秉承了微软的一贯作用,高集成,它可与vsiaul studio进行无缝的集成,使用开发人员在开发应用时更加的快速和方便。可以使用Vs提供的数据库访问工具很轻松的连接到sql server服务,同时可以建立数据库、表、存储过程、视图等。SQL Server是微软推出的中小型网络数据库系统,是目前
9、最常用的数据库系统之一。随着SQL Server网络数据库应用程序日益增多,这种Web数据库应用系统的正常运行一般依赖于已存在的用户数据库。创建维护数据库的工作可用SQL Server提供的SQL Enterprise Manager工具来进行,如能提供一种定制的数据库管理工具,通过管理应用程序来管理数据库及其设备,对用户来说无疑是最理想的。SQLServer2005客户端/服务器数据库系统由以下两个组件组成: 程序,为基于客户端的用户提供界面以访问数据。数据库结构,管理和存储服务器上的数据。例如,如果使用 Microsoft SQL Server 2005 创建支票帐户应用程序,则必须设置一
10、个数据库结构来管理帐户交易数据,还要设置一个应用程序充当数据库的用户界面。这使用户可以访问支票帐户信息。创建能够满足业务需要的数据库,要求了解如何设计、创建和维护各个组件,这样才能确保数据库的性能处于最佳状态。【visual Basic】Microsoft Visual Studio 6.0:这是微软公司提供的一款集成IDE开发工具,主要使用对象为.net程序员,即使用.net框架下的语言进行开发的程序员。该工具为c/s架构下的GUI开发和B/S架构下的网站开发都提供了强大的工具支持,如工程建立、代码联想、代码着色、控件化开发、调试、测试等。而且该工具不只适合与vb程序员,C+、vf等程序员也
11、可以使用该工具提供的功能。工具的最新版本是vs2010,增加了对C#程序员、基于ajax的网站开发、linq、silverlight富客户端开发等的支持。功能更加强大。VB访问SQL Server数据的常用方法 使用Visual Basic作为前端开发语言,与SQL Server接口有几种常用的方法,即: 数据访问对象/Jet 为ODBC API编程 使用SQL Server的Visual Basic库(VBSQL)为DB库的API编程 RDO 远程数据对象(RemoteData Objects) ADO 数据对象(Active Data Objects)【控件介绍】(1)Windows窗体:
12、Windows 窗体控件是可重用的组件,它们封装了用户界面功能,可以在基于 Windows 的客户端应用程序中使用。“Windows 窗体”不仅提供了许多现成控件,还提供了自行开发控件的基础结构。可以组合现有控件、扩展现有控件或创作自己的自定义控件。(2)DataGrid控件:Windows 窗体 DataGrid 控件可为 ADO.NET 数据集提供用户界面,以显示表格数据并允许对数据源进行更新。当 DataGrid 控件设置为有效的数据源时,该控件将被自动填充,同时根据数据的形状创建列和行。DataGrid 控件可以用于显示单个表或显示一组表之间的分层关系。(3)DataGridVIew控
13、件:新版的.net框架中,该控件替换了DataGrid,DataGridView 控件提供一种强大而灵活的以表格形式显示数据的方式。可以使用 DataGridView 控件来显示少量数据的只读视图,也可以对其进行缩放以显示特大数据集的可编辑视图。可以用很多方式扩展 DataGridView 控件,以便将自定义行为内置在应用程序中。例如,可以采用编程方式指定自己的排序算法,以及创建自己的单元格类型。通过选择一些属性,可以轻松地自定义 DataGridView 控件的外观。可以将许多类型的数据存储区用作数据源,也可以在没有绑定数据源的情况下操作 DataGridView 控件。(4)ListVie
14、w控件:Windows 窗体 ListView 控件显示了带图标的项的列表。可使用列表视图创建类似于 Windows 资源管理器右窗格的用户界面。该控件具有四种视图模式:“LargeIcon”、“SmallIcon”、“List”和“Details”。ListView 控件的主要属性是 Items,该属性包含该控件显示的项。SelectedItems 属性包含控件中当前选定项的集合。如果将 MultiSelect 属性设置为 true,则用户可选择多项,例如,同时将若干项拖放到另一个控件中。如果将 CheckBoxes 属性设置为 true,ListView 控件可以显示这些项旁的复选框。Ac
15、tivation 属性可以确定用户激活列表中的某项时必须执行的操作类型:选项有 Standard、OneClick 和 TwoClick。执行 OneClick 激活时,需要通过一次单击激活该项。执行 TwoClick 激活时,要求用户通过双击激活该项;一次单击可以更改该项的文本颜色。执行 Standard 激活时,要求用户通过双击激活某项,但是该项的外观不会发生更改。(5)imageList控件:在 Visual Basic 6.0 中,Picture、DownPicture 和 DisabledPicture 属性用于根据 CheckBox、CommandButton 或 OptionBu
16、tton 控件的状态显示不同的图片。例如,如果选中 CheckBox 控件,则显示 DownPicture 图像;如果禁用该控件,则显示 DisabledPicture 图像。在 Visual Basic 2005 中,使用 ImageList 控件可以获得同样的效果,例如:在运行时显示 DisabledPicture 图像If CheckBox1.Enabled = False Then Assign the third image (DisabledPicture) to the Image property. CheckBox1.Image = ImageList1.Images(2)E
17、lseIf CheckBox1.Checked = True Then Assign the second image (DownPicture) to the Image property CheckBox1.Image = ImageList1.Images(1)Else Assign the first image (Picture)to the Image property CheckBox1.Image = ImageList1.Images(0)End If以上介绍的控件在本应用中都进行了使用。【ADO.net技术】任何数据库应用程序的一项主要功能是连接数据源并检索数据源中包含的数
18、据。ADO.NET 的 .NET Framework 数据提供程序充当应用程序和数据源之间的桥梁,使您可以执行命令以及使用 DataReader 或 DataAdapter 检索数据。例如下面的一个应用:读取数据库连接信息:Dim strTmp As String, strT() As String Open App.Path & sql.inf For Input As #1 If EOF(1) = False Then Line Input #1, strTmp Close #1 strTmp = Trim(strTmp) If strTmp Then strT = Split(strTm
19、p, |) For i = 0 To 3 strT(i) = strT(i) Next strserver = strT(0) struser = strT(1) strpwd = strT(2) strdb = strT(3) End If执行一个查询操作:Dim sql As String Dim rs As New ADODB.Recordset sql = select * from maintain where mtnnum= & Trim(Me.Combo2.Text) & rs.Open sql, cn If rs.EOF = False Then Me.DTPicker1(0)
20、.Value = Trim(rs.Fields(rpttime).Value) & Me.Text2.Text = Trim(rs.Fields(consumer).Value) & Me.Text3.Text = Trim(rs.Fields(csmphoto).Value) & Me.Text4.Text = Trim(rs.Fields(csmaddress).Value) & Me.Text5.Text = Trim(rs.Fields(rtpcontent).Value) & idflag = Trim(rs.Fields(mtnid).Value) Else MsgBox 没有找到
21、该记录!, vbOKOnly + vbExclamation, 信息提示! End IfEnd Sub要编写安全的 ADO.NET 应用程序,所涉及的问题不仅仅是要避免常见的编码缺陷。访问数据的应用程序包含许多潜在的故障点,攻击者可以利用这些故障点来检索、操纵或破坏敏感的数据。一定要了解安全的各个方面,从应用程序设计阶段建立威胁模型的过程,到应用程序的最终部署,到对应用程序的不断的实时维护,都要考虑到。第三章 需求分析【需求分析】需求分析是软件设计当中最重要的步骤之一,它也是决定一个软件产品好坏的重要因素。通过需求分析可以得知该系统的可行性程度,开发难度,并决定应该使用的技术和开发工具。这是一
22、个基于C/S架构的数据库应用程序,主要用在影院的影片和售票管理方面,主要功能模块如下:1、 影片管理:增加、删除、修改影片。2、 系统管理:该模块又包含了操作员管理、重新登录、退出系统模块。3、 预订票管理:提供了预订票的功能4、 登录模块:主要给操作员提供一个登录系统的界面,并验证用户名称和密码。5、 检票:在观众入场时使用6、 退票:该功能有时间限制,在开场之后一段时间是不能退票的7、 统计信息:可以按照年月日对过去的售票记录进行查询、统计。这样很容易得到当天或一段时间内的销售业绩。【系统框架图】影院售票管理系统影片管理系统管理预订票管理登录模块检票、退票影片管理统计信息图 1 功能模块图
23、本系统选择VisualBasic6.0集成开发工具和SqlServer2005 数据库系统。第四章 系统设计1、 数据库设计:数据库设计分为详细设计和物理设计。根据系统的需求分析得出,该系统的数据流向和数据可能有以下内容:操作员、影片信息、售票信息、退票信息、公告信息、检票口信息等,以下是根据需求分析之后得出的系统的数据结构字典:【详细设计】表1 操作员信息表字段名数据类型及长度说 明备 注optidint管理员编号主关键字,自增optnamechar(12)管理员姓名不能为空optpwdnchar(20)管理员密码不能为空optrgtbit帐号是否有效不能为空表2 影片信息字段名数据类型及长
24、度说 明备 注Tstidint影片编号主关键字,自增tstname varchar(50)影片名称不能为空tstxbvarchar(50)检票口号码不能为空tstdepartmentvarchar(50)包间号码不能为空tstnlsmallint总票数不能为空tstphonedatetime开始时间不能为空tstzcvarchar(50)备注可以为空表3 售票信息字段名数据类型及长度说 明备 注mtnidbigint编号主关键字,自增mtnnumnvarchar(12)票的编号不能为空rpttimedatetime销售时间不能为空rtpcontenttext 影片名称不能为空consumerc
25、har(12)检票口号码不能为空csmaddresschar(50)包间号码不能为空csmphotochar(30)备注可以为空tsttimevarchar(50)有效时间可以为空csmattitudetinyint票的状态可以为空tstpaynchar(19)操作员可以为空sfclint价格可以为空表4 公告信息字段名数据类型及长度说 明备 注ggidint编号主关键字,自增ggrqdatetime发布时间不能为空ggnrtext公告内容不能为空表5 检票口信息字段名数据类型及长度说 明备 注tmpidtinyint编号主关键字,自增tmpnumtinyint检票口号码不能为空【物理设计】即
26、根据ER图或根据详细设计部分得出的数据字典,在数据库设计器中进行数据库模型、表结构的具体建立。数据库设计器是一种可视化工具,它允许您对所连接的数据库进行设计和可视化处理。设计数据库时,可以使用数据库设计器创建、编辑或删除表、列、键、索引、关系和约束。为使数据库可视化,可创建一个或更多的关系图,以显示数据库中的部分或全部表、列、键和关系。除了通过设计器进行建立,还可以通过编写sql脚本来建立数据库和表结构。脚本实例:use master goif exists (select * from sysdatabases where name = Hr) drop database Hrgocreat
27、e database Hr ON PRIMARY ( NAME = hr_db, FILENAME = d:hr_db.mdf, SIZE = 3 MB, MAXSIZE = UNLIMITED, FILEGROWTH = 256 KB )LOG ON ( NAME = hr_log, FILENAME = d:hr_log.ldf, SIZE = 1 MB, MAXSIZE = UNLIMITED, FILEGROWTH = 256 KB ) go以上脚本可以完成数据库的建立。use Hr go */ create table users ( u_id int identity not nu
28、ll,u_name varchar(60) not null,u_true_name varchar(60) not null,u_password varchar(60) not null,roleId int ) 以上脚本可以完成在数据库hr中建立一个用户表。2、 程序设计:程序设计即coding阶段。本系统采用vb语言进行实现,下面是主要功能的实现思路和代码逻辑:A、登录模块:图2 登录窗口【实现思路】该窗口在系统开始运行前首先显示,通过验证输入的用户名和密码来让操作员进入系统。登录成功后将进入系统主界面:【流程图】开始登录窗体退出终止YN系统主界面验证登录YN图3 登录流程图【实现代码
29、】代码段1:验证输入的用户名称是否为空:Private Sub Command1_Click()If Text1.Text = Or Text2.Text = Then If Text1.Text = Then MsgBox 请输入用户名, 16 Text1.SetFocus Exit Sub Else MsgBox 请输入密码, 16 Text2.SetFocus Exit Sub End IfEnd If不为空则到数据库去查询该用户的信息,验证密码和用户名是否正确If rs.State = 1 Then rs.Closers.Open select * from operator wher
30、e optname= & Text1.Text & and optpwd= & Text2.Text & , cnIf rs.EOF = False ThenIf rs.Fields(optrgt).Value True ThenMDIForm1.MenuOperator.Visible = FalseMDIForm1.OperEmp.Visible = FalseMDIForm1.Toolbar1.Buttons(1).Visible = FalseMDIForm1.Toolbar1.Buttons(2).Visible = FalseEnd If MDIForm1.Show Unload
31、Me Exit SubElselcount = lcount + 1 If lcount 4 Then MsgBox 输入有错误,你还剩下 & 3 - lcount & 登录机会, 32 Else MsgBox 超出了输入的次数 Unload Form2 rs.Close cn.Close Exit Sub End End IfEnd IfEnd Sub这里采用了一种安全机制,以防有人进行恶意的密码破解,每次程序程序用户只有三次输入密码的机会,如果三次密码都不正确,则退出系统。B、系统主界面:图4 系统主界面【实现思路】该界面应该包含用户常用的功能菜单、工具条等,点击相应的按钮或下拉菜单即可运
32、行相应的模块:如图所示。【流程图】登录成功系统主界面系统管理影片管理售票管理检票退票统计结束退出系统图5 系统主界面流程图【代码实现】该界面的代码实现只包含相应的子窗体调用代码,例如:(1)点击退出按钮,将根据用户的选择来判断是否退出系统:Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.Index Case 1 Frmopt.Show Case 2 frmemp.Show Case 3 frmmate.Show Case 4 FrmRep.Show Case 5 frm
33、deal.Show Case 6 Case 7 frmsearch.Show Case 8 Dim a As Integer a = MsgBox(确定退出系统吗?, vbYesNo + 48, 信息提示) If a = 6 Then Unload MDIForm1 End End IfEnd SelectEnd Sub(2)点击重新登录的时候要退出系统,并显示登录界面Private Sub Menurelogin_Click() login.Show Unload MDIForm1End SubC、影片管理模块:图6 影片管理界面【实现思路】当用户点击影片管理按钮时应显示该界面,同时在下拉列
34、表中加载出所有的检票口信息。然后操作员输入相应的信息,点击增加即可完成影片的添加,新添加的影片将显示在下面的列表中。当用户在ListView控件中点击某一部影片的时候应在上半部分显示出该影片的详细信息。并将增加按钮禁用,启用修改和删除按钮,点击取消的时候关闭该窗口。【流程图】开始管理退出N结束返回主界面输入内容增加YN点击修改修改N图7 添加影片的流程图【代码实现】主要部分代码:增加影片功能代码:(1)点击添加按钮将执行下面的代码,代码中从文本框中获取用户的输入,并拼接到插入的sql语句中,最后执行插入Private Sub Command1_Click()Dim s As Dates = M
35、e.DTPicker1.Value cn.Execute insert into transactor(tstname,tstxb,tstdepartment,tstnl,tstphone,tstzc) values ( & Me.Text1.Text & , & Me.Combo1.Text & , & Me.Text2.Text & , & Me.Text3.Text & , & Me.DTPicker1.Value & , & Me.Text5.Text & ) MsgBox 添加成功!, vbOKOnly + vbInformation, 信息提示 lstrefresh txtclrE
36、nd Sub(2)修改功能的代码Dim sql As String sql = update transactor set tstname= & Me.Text1.Text & ,tstxb= & Me.Combo1.Text & ,tstdepartment= & Me.Text2.Text & ,tstnl= & Me.Text3.Text & ,tstphone= & Me.DTPicker1.Value & ,tstzc= & Me.Text5.Text & where tstid= & id & cn.Execute sql lstrefresh MsgBox 已经修改信息!, vb
37、OKOnly + vbExclamation, 修改结果! txtclr Me.Command1.Enabled = True Me.Command3.Enabled = False Me.Command2.Enabled = False(3)删除按钮功能Private Sub Command3_Click() Dim sql As String sql = delete from transactor where tstid= & id & cn.Execute sql lstrefresh MsgBox 已经删除信息!, vbOKOnly + vbExclamation, 删除结果! tx
38、tclr Me.Command1.Enabled = True Me.Command3.Enabled = False Me.Command4.Enabled = FalseEnd Sub(4)点击ListView中一项,将在上面显示该项目的详细信息,并让修改按钮可以使用,增加按钮不能使用Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem)Me.Text1.Text = ListView1.SelectedItem.TextMe.Combo1.Text = ListView1.SelectedItem.ListS
39、ubItems(1).TextMe.Text2.Text = ListView1.SelectedItem.ListSubItems(2).TextMe.Text3.Text = ListView1.SelectedItem.ListSubItems(3).TextMe.DTPicker1.Value = ListView1.SelectedItem.ListSubItems(4).TextMe.Text5.Text = ListView1.SelectedItem.ListSubItems(5).Textid = ListView1.SelectedItem.ListSubItems(6).TextMe.Command1.Enabled = FalseMe.Command2.Enabled = TrueMe.Command3.Enabled = TrueEnd Sub(5)添加或修改完毕后,刷新ListView信息的显示Private Sub lstrefresh()Dim rs As New ADODB.Recordset Set rs =