1面向对象程序设计课程设计报告2006/2007学年第一学期项目名称:影院售票管理系统项目负责人:王德才学号:_0601023230_同组者:李清爽学号:0601023214指导教师:_潘俊__班级:_06会计___课程设计时间及地点:___实验楼521____计算机信息工程学院2007年1月15日2一.系统概述;1.项目需求;2.需求分析;二.项目开发计划书;三.设计说明书;1.分析与创建数据库;2.创建登陆窗体模块;3.创建售票窗体模块4.创建检票界面5.创建维护界面1.创建影库界面2.创建职工界面3.创建票务界面四.用户操作手册;五.改进意见;六.自我评价;七.参考资料、书籍;3一.系统概述;1.项目需求;现在中国大部分的家庭都喜欢在家里置办属于自己风格的家庭影院。但是,仍然有很多人喜欢到电影院去看电影。因为家里的气氛毕竟不如影院好。所以,现代家庭影院的出现并不会让电影院没有生路。每个社会服务系统都有自己的一套管理机制。当然,电影院也不除外。其实电影院的管理系统应该来说比其他的社会服务系统的管理要简单一点。电影院不外乎是引进电影,制定播放影片的时间表,买票,检票进场观看,还有就是一些数据管理方面的事。如工作人员管理,票务管理等等。为了工作机制简单有序,必然要引进一套管理系统。2.需求分析;具体而言,影院售票系统需要实现以下的需求:(1)能够对播放电影,工作人员,售票事宜,检票事宜,无用数据进行处理。(2)售票管理自然有专人负责,要处理各电影的电影票销售问题。当然包括退票问题,还有就是预订电影票其实也就相当于买票。两者可以当一回事处理。(3)检票管理事宜要完成观众进场时检票的事宜。其中包括了电影票的真假检测问题。(4)数据管理要处理电影的播放的次序,工作人员的管理,以及过期电影票的处理问题。二.项目开发计划书;根据需求分析的结果,本小组成员讨论协商,决定本系统主要划分为以下三个子模块:售票管理模块、检票管理模块、数据管理模块。影院售票管理系统是一个基于电影院工作人员的系统,不同类型的用户在系统中有不同的权限。主要有三种用户:1.售票管理人员:主要负责卖票,订票及退票事宜;2.检票管理人员:主要负责观众进场时检票工作,以及辨认电影票的真假(此工作自然可以由服务系统来完成);3.数据处理人员:主要负责播放电影导入数据库,工作人员的应聘以及开除的数据管理,还有过期电影票的数据处理;以下分别介绍此系统中各个系统(3个子模块。):(1)售票系统模块给观众提供售票服务。不同的位置有不同的价格。要选购哪个位置由观众决定。工作人员根据观众的需要进行操作。系统在购票成功后会产生一个验证码,此验证码连工作人员都不知道。是随机生成的。用于对电影票真假的辩识。(2)检票系统模块在观众进场时所使用的系统。由扫描仪扫描,取的验证码,然后进行辩识,看是不是和数据库中数据一样,如果一样,则电影票为真,否则电影票为假。由此来决定让不让观众入场。(3)维护系统模块此模块是由电影院的数据库管理员来管理的。他根据电影院事情的需要对有关数据进行处理。如电影票的管理,工作人员的管理,和电影库的管理等。整个系统的结构如下图1所示:4以下分别介绍系统中数据系统3个子模块。(1)影片播放管理模块影片播放管理是对电影院播放的电影的充实,设定电影的播放,以及电影时间的设定。当所设定的电影已经播放完成后,要对其进行删除。还要对数据库进行清理,把一些没用的数据全部清除。(2)工作人员管理:电影院里当然有工作人员的增加与开除,以及他们的管理权限的变化。这一部分事件的发生都需要数据库管理人员将有关数据进行处理。保证数据库里数据的统一与完整。其中有他们的共号,登陆电影院管理系统的密码,以及所拥有的权限。(3)过期票务管理:电影院里的电影在放过以后,在数据库的电影票数据就会变成没有用的数据。通过此管理可以把那些没用的过期的数据清除。这里指的是与放过的电影同名的电影票清除,而其他的电影票保存不变。小组人员分工情况:王圣武登陆界面和售票界面、系统转换界面的程序编写,整个系统框架的设计,整个系统界面及美化设计,整个系统流程的管理,创建数据库张润驰检票系统和整个维护系统的程序编写,局部框架辅助设计,创建数据库本系统后台数据库采用目前比较流行的MicrosoftSQLSever,该数据库系统在安全性、准确性、运行速度方面有绝对的优势,并且处理数据量大、效率高;前台采用Microsoft公司的VB.NET2003作为主要的开发工具,其可与SQLSever2000数据库无缝衔接。三.设计说明书;1.分析与创建数据库;根据系统的功能分析结果,影院售票管理系统将会使用MicrosoftSQLSever2000作为后台的数据库管理系统。本管理系统是应用于电影院中,而且需要和数据库之影院售票管理系统xiop工作人员登录维护系统检票系统售票系统影片播放管理工作人员管理过期票务管理5间进行频繁数据交换,所以采用MicrosoftSQLSever2000作为后台的数据库管理系统。在本管理系统中,需要掌握影库充实信息,职工管理信息,票务管理信息,此外,由于要进行职工管理,还需要掌握使用本系统的职工。表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职工密码是无6leibiesmallint2职工类型是无根据规范化的设计理念,本管理系统的数据分成上面4个表,减少了数据的冗余,同时在这些表之间又存在着一些关联关系。这四个表之间的这两种关系表现在下图所示的关系:2.创建登陆窗体模块;(1)窗体模块的功能登陆窗体(2)窗体界面的设计在工程中添加一个窗体,命名为“登陆系统”,用来作为系统登陆窗体。界面的设计如图3所示。(3)窗体代码ImportsSystem.Data.SqlClientPublicClassForm1InheritsSystem.Windows.Forms.Form7DimnavigatorAsBindingManagerBase'用来对记录导航DimmyconAsNewSqlConnection'连接对象DimmycomAsNewSqlCommand'命令对象Dimmycom1AsNewSqlCommandDimfrm2AsNewForm2Dimfrm3AsNewForm3Dimfrm8AsNewForm8PrivateSubTimer1_Tick(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesTimer1.TickStatusBar1.Panels(0).Text=DateTime.TodayStatusBar1.Panels(1).Text=DateTime.Now.ToString(T)EndSubPrivateSubGroupBox1_Enter(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesGroupBox1.EnterIfRadioButton1.Checked=TrueThenRadioButton2.Checked=FalseRadioButton3.Checked=FalseElseIfRadioButton2.Checked=TrueThenRadioButton1.Checked=FalseRadioButton3.Checked=FalseElseIfRadioButton3.Checked=TrueThenRadioButton1.Checked=FalseRadioButton2.Checked=FalseEndIfEndSubPrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickAxShockwaveFlash1.Movie=E:\实验运行场\VB.NET程序设计\电影院票务系统\image\登陆界面1.swfAxShockwaveFlash1.Playing=FalseAxShockwaveFlash1.Stop()Dimtox1AsInt32Dimtox2AsInt32DimmydataadapterAsNewSqlDataAdapterDimmydsAsNewDataSetDimiAsIntegerDimjAsIntegertox1=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'设置要执行的命令Try8mycon.Open()mydataadapter.SelectCommand=mycomCatchexAsExceptionMessageBox.Show(连接失败)Finallymycon.Close()EndTrymydataadapter.Fill(myds,workers)Fori=0Tomyds.Tables(workers).Rows.Count-1Iftox1=Val(myds.Tables(workers).Rows(i).ItemArray(0))Thenj=0ExitForElsej=1EndIfNextFori=0Tomyds.Tables(workers).Rows.Count-1Iftox2=Val(myds.Tables(workers).Rows(i).ItemArray(1))Thenj=0ExitForElsej=1EndIfNextIfj=1ThenMessageBox.Show(您的工号或者密码错误,错误提示,MessageBoxButtons.OK,MessageBoxIcon.Warning)ElseTrymycom1.Connection=mycon'通过MYCON连接对象操作数据库mycom1.CommandType=CommandType.Text'设置命令类型mycom1.CommandText=selectleibiefromworkerswhereworkerid=+CStr(tox