您好,欢迎来到刀刀网。
搜索
您的当前位置:首页电影院管理系统开发

电影院管理系统开发

来源:刀刀网


09521班 张雄

2009年6月

目 录

一、 二、 三、 四、 五、 六、 七、 八、 九、 十、

需求分析 ................................................................................................................................................1 数据字典 ................................................................................................................................................2 数据库设计............................................................................................................................................3 主界面设计............................................................................................................................................3 子模块的规划 .......................................................................................................................................5 建立公共模块 .......................................................................................................................................5 修改密码模块的实现 .........................................................................................................................6 分类管理模块 .......................................................................................................................................7 会员管理模块 .......................................................................................................................................9 电影登记模块 .....................................................................................................................................11

十一、 购票通道模块 .....................................................................................................................................12 十二、 电影查询模块 .....................................................................................................................................14 十三、 会员积分统计模块............................................................................................................................15 十四、 用户登录窗体模块............................................................................................................................16 十五、 生成EXE文件...................................................................................................................................18 十六、 发布软件包..........................................................................................................................................19

电影院管理系统设计

电影院管理系统设计

一、 需求分析

电影院管理系统可以实现电影的登记和购买,可以方便的进行电影的查询以及会员的购买等信息。 1.功能需求分析

电影管理系统 系统设置 售票营业 营业统计查询 工具 修改登录密码 分类设置 用户管理 退出系统 电影登记 购票通道 电影查询 会员积分统计 记事本 计算器 2.数据需求分析 本系统比较简单,涉及的实体主要有二个:自行车、借车人,二者之间的联系是自行车租借。实体以及实体之间的联系一般用E-R图表示。

在关系型数据库系统中,实体以及实体之间的联系都是用表(关系)来表示的,表之间的联系通过关键字实现关联。对E-R图进行转换,可构成便于实现的数据库逻辑结构图,如下图所示。

1

ID号 电影编号 ID 号 电影编号 会员 m 购买 n 电影 电影名称 姓名 购买日期 购买件数 类别 详情 电影院管理系统设计

电影 电影编号 销售 ID号 会员 类 别 类别

在上图中,我们增加了2个表。“自行车类别”表中存放自行车分类的名称,目的是简化和规范化自行车信息的录入,也便于以后的信息更新。“管理员”表是为了系统安全性而设置的,用于 保存管理员的用户名和密码,用户在进入管理系统时需要输入正确的账号和密码。

图中菱形框内表示的是用于表之间关联的关键字段。 各表的字段为:

电影(电影编号、电影名称、放映时间、类别、电影详情) 会员(ID号、姓名、积分)

销售(电影编号、ID号、购买日期、购买件数) 分类(分类)

管理员(账号、密码)

管理员 二、 数据字典

1.“电影”表 字段名 电影编号 电影名称 放映时间 类别 电影详情 2.“会员”表 字段名 ID号 姓名 积分 3.“销售”表 字段类型 文本 文本 数字 字段长度 10 10 整形 备注 关键字段 字段类型 文本 文本 日期 文本 文本 字段长度 10 30 10 200 备注 关键字段 2

电影院管理系统设计

字段名 电影编号 ID号 购买日期 购买件数 4.“类别”表 字段名 类型 5.“管理员”表 字段名 账号 密码 字段类型 文本 文本 日期 数字 字段类型 文本 字段类型 文本 文本 字段长度 10 10 整形 字段长度 10 字段长度 10 10+ 备注 备注 关键字段 备注 三、 数据库设计

本系统采用最简单最常用的Access数据库,数据库文件名为manage.mdb。

四、 主界面设计

设计好的程序主界面如下图所示

3

电影院管理系统设计

本管理系统的主要界面采用MDI窗体,MDI是英文多文档界面的缩写,是可在显示多个窗体。因此,一般将MDI窗体称为主窗体(父窗体),在其中显示的窗体称为子窗体。 本管理系统的各个功能模块采用菜单驱动,有4个菜单选项,与功能需求分析相对应。 创建主窗体基本步骤如下:

在硬盘上创建一个文件夹(命名为自行车管理系统),用于存放本系统开发过程中所有的文件,把创建的db1.mdb数据库文件也复制到该文件夹中。

打开vb,将默认的窗体form1移除,并修改工程属性中的名称为:zxcgl,然后保存工程。 添加1个MDI主窗体。选择“工程”→“添加MDI窗体”命令,然后设置窗体属性如下图所示。

表1:主窗体的属性 属性名 Captionn (名称) Windowstate 属性值 电影院管理系统 FRMMAIN 2-Maxsized

(4)在主窗体中添加菜单栏。在MDI主窗体上单击右键打开快捷菜单,选择“菜单编辑器”命令,打开“菜单编辑器”对话框。按下表创建菜单。 表2:菜单项表 级别 1 2 2 2 2 1 2 2 1 2 2 标题 系统设置 修改登录密码 分类设置 会员管理 退出 销售营业 电影登记 购票通道 营业统计查询 电影查询 会员积分查询 名称 Menu1 Menu11 Menu12 Menu13 Menu14 Menu2 Menu21 Menu22 Menu3 Menu31 Menu32 4

功能描述 命令 FRMXGMM.SHOW FRMFLSZ.SHOW FRMHYGL.SHOW UNLOAD ME FRMDYDJ.SHOW FRMGPTD.SHOW FRMDYCX.SHOW FRMHYJFTJ.SHOW 电影院管理系统设计

1 2 工具 记事本 Menu4 Menu41 Shell \"notepad\" 计算器 2 Menu42 Shell \"calc\" (5)将MDI窗体设置为启动窗体。选择“工程”→“zxcgl属性”菜单,打开对话框,“启动对象”下拉列表框中选择“frmmain”

(6)运行工程,点击运行按钮,如果想美化窗体可添加背景图片。在主窗体的属性框中添加背景图片。

五、 子模块的规划

本窗体的各个功能都通过单独的窗体来完成,选择“工程”→“添加窗体”命令,可以添加实现具体功能的各个子窗体。要创建的子窗体如下表所示。 子窗体名称 FRMXGMM FRMFLSZ FRMHYGL FRMGPTD FRMDYDJ FRMDYCX FRMHYJFCX 几点说明:

子窗体标题 修改登录密码 分类设置 用户管理 购票通道 电影登记 电影查询 会员积分查询 (1) 每个窗体保存的文件名就用窗体的名称;

(2) 这些窗体都是作为子窗体,因此都需要将其MDIChild属性设置为True;

(3) 子窗体的大小一般都是固定的,即用户不能改变大小,这可通过设置BorderStyles属性为1-Fixed single来实现。 (4)

我们一般希望打开的子窗体在主窗体的位置显示,但窗体设置MDIChild属性

为TRUE后不能通过startupposition属性的设置来实现,需要在子窗体的form_load()子程序中加入如下代码实现:

Me.Left = (frmmain.Width - Me.Width) / 2 Me.Top = (frmmain.Height - Me.Height) / 2 其中的frmmain为MDI主窗体名称

六、 建立公共模块

建立公共模块可以提高代码的效率,同时使得修改和维护代码都很方便.本系统中各个子窗体都需要对数据库进行操作,因此最好把用来建立数据库连接的变量和代码放在模块中. 创建公共模块的步骤如下:

(1)在菜单中选择”工程” “添加模块”命令,则出现模块对话框.

(2)选择模块图标后,单击”打开”按钮,则模块已经添加到项目中了.默认情况下名为Modulel,保存的文件名默认为Modulle1.bas.

(3)在模块中定义整个项目的公共变量.这里先添加几个用于进行数据库操作的公共变量,以

5

电影院管理系统设计

后如果需要其他的公共变量再添加.

Public conn As New ADODB.Connection’数据库连接对象 Public rs1 As New ADODB.Recordset’记录集对象

Public rs2 As New ADODB.Recordset’多设几个记录集

(4)在模块中编写公用子程序或函数.这里先添加建立数据库连接的子程序. Public Sub conn_open() On Error GoTo errout

conn.CursorLocation = adUseClient

If conn.State <> adStateClosed Then conn.Close

connstr = \"provider=microsoft.jet.oledb.4.0;data source=\" & App.Path & \"\\db1.mdb\" conn.Open connstr Exit Sub

errout:

If conn.State = adStateOpen Then conn.Close

MsgBox \"数据库连接错误!\错误提示\"

End Sub

在子窗体中如果要建立数据库连接,只要使用Call conn_open 语名即可建立数据库连接,然后就可以使用conn 对象了.

使用公用子程序的好处是,如果数据库文件改名了,只要修改此处即可,其他地方的程序不必修改。

七、 修改密码模块的实现

1.界面设计

2.功能设计

如果用户输入的原密码正确,新密码不为空而且两遍一样,则将新密码保存到数据库的“管理员”表中。 3.代码设计

Private Sub Command1_Click() Call Conn_open

SQL = \"SELECT * FROM 管理员 WHERE 账号='1234'\" RS1.Open SQL, CONN, adOpenStatic, adLockReadOnly

6

电影院管理系统设计

Password = RS1.Fields(\"密码\")

RS1.Close

If Password <> Text1.Text Then

MsgBox \"原密码不正确!\提示信息\" Else

If (Text2.Text = \"\") Or (Text2.Text <> Text3.Text) Then

MsgBox \"新密码不一致或为空!\提示信息\" Else

SQL = \"UPDATE 管理员 SET 密码 =\" & Text2.Text & \" WHERE 账号='1234'\" CONN.Execute (SQL)

MsgBox \"密码修改成!\提示信息\" Unload Me End If End If End Sub

Private Sub Command2_Click() Unload Me End Sub

Private Sub Form_Load()

Me.Left = (FRMMAIN.Width - Me.Width) / 2 Me.Top = (FRMMAIN.Height - Me.Height) / 2 End Sub

八、 分类管理模块

1.界面设计

2.代码设计

Private Sub Command1_Click()

7

电影院管理系统设计

On Error GoTo errout

If Command1.Caption = \"添加记录\" Then Command1.Caption = \"确认添加\" Command2.Caption = \"放弃添加\" RS1.AddNew DataGrid1.Refresh DataGrid1.SetFocus

Else

RS1.UpdateBatch

Command1.Caption = \"添加记录\" Command2.Caption = \"删除记录\" End If

Exit Sub errout:

MsgBox \"记录不能为空或重复!\出错提示\" End Sub

Private Sub Command2_Click()

If Command2.Caption = \"删除记录\" Then

If MsgBox(\"真的删除该记录吗?\esNo + vbQuestion + vbDefaultButton2, \"确认信息\") = vbYes Then RS1.Delete RS1.Update

End If Else

RS1.CancelBatch

Command1.Caption = \"添加记录\" Command2.Caption = \"删除记录\" End If

DataGrid1.Refresh DataGrid1.SetFocus End Sub

Private Sub Command3_Click() Unload Me

End Sub

Private Sub DataGrid1_Click()

8

电影院管理系统设计

Command1.Caption = \"确认添加\" Command2.Caption = \"放弃修改\" End Sub

Private Sub Form_Load()

Me.Left = (FRMMAIN.Width - Me.Width) / 2 Me.Top = (FRMMAIN.Height - Me.Height) / 2 Call Conn_open

SQL = \"SELECT *FROM 类别\"

RS1.Open SQL, CONN, adOpenKeyset, adLockPessimistic Set DataGrid1.DataSource = RS1

End Sub

九、 会员管理模块

1.界面设计

2.代码设计

Private Sub Command1_Click() On Error GoTo errout

If Command1.Caption = \"添加记录\" Then Command1.Caption = \"确认添加\" Command2.Caption = \"放弃添加\" RS1.AddNew DataGrid1.Refresh DataGrid1.SetFocus Else

RS1.UpdateBatch

Command1.Caption = \"添加记录\"

9

电影院管理系统设计

Command2.Caption = \"删除记录\"

End If Exit Sub errout:

MsgBox \"记录不能为空或重复!\出错提示\" End Sub

Private Sub Command2_Click()

If Command2.Caption = \"删除记录\" Then

If MsgBox(\"真的删除该记录吗?\esNo + vbQuestion + vbDefaultButton2, \"确认信息\") = vbYes Then RS1.Delete RS1.Update End If Else

RS1.CancelBatch

Command1.Caption = \"添加记录\" Command2.Caption = \"删除记录\" End If

DataGrid1.Refresh DataGrid1.SetFocus End Sub

Private Sub Command3_Click() Unload Me

End Sub

Private Sub DataGrid1_Click() Command1.Caption = \"确认添加\" Command2.Caption = \"放弃修改\" End Sub

Private Sub Form_Load()

Me.Left = (FRMMAIN.Width - Me.Width) / 2 Me.Top = (FRMMAIN.Height - Me.Height) / 2 Call Conn_open

SQL = \"SELECT *FROM 会员 \"

RS1.Open SQL, CONN, adOpenKeyset, adLockPessimistic

10

电影院管理系统设计

Set DataGrid1.DataSource = RS1 End Sub

十、 电影登记模块

1.界面设计

2.代码设计

Private Sub Command1_Click() On Error GoTo errout

SQL = \" INSERT INTO 电影(电影编号,电影名称,放映时间,类别,电影详情) Values (\" SQL = SQL & \"'\" & Text1.Text & \"'\" SQL = SQL & \ SQL = SQL & \ SQL = SQL & \ SQL = SQL & \ Call Conn_open

CONN.Execute (SQL) CONN.Close

MsgBox \"数据已录入!\信息提示\" Text1.Text = \"\"

Text2.Text = \"\" Text4.Text = \"\" Exit Sub

errout:

MsgBox \"数据输入有错,请检查!\错误提示\" End Sub

Private Sub Command2_Click()

11

电影院管理系统设计

Unload Me

End Sub

Private Sub Form_Load()

Me.Left = (FRMMAIN.Width - Me.Width) / 2 Me.Top = (FRMMAIN.Height - Me.Height) / 2

Call Conn_open

SQL = \"select*from 类别\"

RS1.Open SQL, CONN, adOpenStatic, adLockReadOnly While Not RS1.EOF

Combo1.AddItem (RS1.Fields(\"类别\")) RS1.MoveNext Wend

Combo1.ListIndex = 0 CONN.Close Text3 = Date End Sub

十一、 购票通道模块

1. 界面设计

2.代码设计

Private Sub Command1_Click()

On Error GoTo errout

SQL = \"INSERT INTO 销售(电影编号,ID号,购买日期,购买件数) VALUES(\"

12

电影院管理系统设计

SQL = SQL & \"'\" & Text3.Text & \"'\" SQL = SQL & \SQL = SQL & \SQL = SQL & \Call Conn_open

CONN.Execute (SQL) SQL = \"UPDATE 会员 SET 积分=积分+1 WHERE ID号 = '\" & Text1.Text & \"'\" CONN.Execute (SQL) CONN.Close

MsgBox \"数据已录入!\提示信息\" Text3.Text = \"\" Text4.Text = \"\" Text5.Text = \"\" Text3.SetFocus

Exit Sub errout:

MsgBox \"数据输入有错,请检查!\错误提示\" Text3.SetFocus End Sub

Private Sub Command2_Click() Unload Me End Sub

Private Sub Form_Load()

Me.Left = (FRMMAIN.Width - Me.Width) / 2 Me.Top = (FRMMAIN.Height - Me.Height) / 2 Text6.Text = Date End Sub

Private Sub Text1_Validate(Cancel As Boolean) Call Conn_open

SQL = \"select * from 会员 WHERE ID号 ='\" & Text1.Text & \"'\" RS1.Open SQL, CONN, adOpenStatic, adLockReadOnly

If RS1.EOF Then

MsgBox \"输入的ID号不存在,请检查!\错误提示\" KEEPFOCUS = True Else

Text2.Text = RS1.Fields(\"姓名\") End If RS1.Close

CONN.Close End Sub

Private Sub Text3_Validate(Cancel As Boolean)

13

电影院管理系统设计

Call Conn_open

SQL = \"SELECT * FROM 电影 WHERE 电影编号='\" & Text3.Text & \"'\"

RS1.Open SQL, CONN, adOpenStatic, adLockReadOnly If RS1.EOF Then

MsgBox \"输入的电影编号不存在,请检查!\错误提示\" Text4.Text = \"\" Text5.Text = \"\"

KEEPFOCUS = True Else

Text4.Text = RS1.Fields(\"电影名称\")

End If RS1.Close CONN.Close End Sub

十二、 电影查询模块

1. 界面设计

2. 代码设计

Private Sub Command1_Click()

If Option1.Item(0).Value = True Then

SQL = \"select * from 电影 where 电影名称 like '%\" & Text1.Text & \"%'\" Else

SQL = \"select * from 电影 where 类别 like '%\" & Combo1.Text & \"%'\" End If

14

电影院管理系统设计

If RS1.State = adStateOpen Then RS1.Close

RS1.Open SQL, CONN, adOpenStatic, adLockReadOnly Set DataGrid1.DataSource = RS1 End Sub

Private Sub Form_Load()

Me.Left = (FRMMAIN.Width - Me.Width) / 2 Me.Top = (FRMMAIN.Height - Me.Height) / 2 Call Conn_open

SQL = \"select * from 类别\"

RS1.Open SQL, CONN, adOpenStatic, adLockReadOnly While Not RS1.EOF

Combo1.AddItem (RS1.Fields(\"类别\")) RS1.MoveNext Wend

Combo1.ListIndex = 0 RS1.Close End Sub

Private Sub Option1_Click(Index As Integer) If Index = 0 Then

Label1.Caption = \"电影书名称\" Text1.Visible = True Combo1.Visible = False Else

Label1.Caption = \"类型\" Text1.Visible = False Combo1.Visible = True End If End Sub

十三、 会员积分统计模块

1.界面设计

15

电影院管理系统设计

2.代码设计

Private Sub Form_Load()

Me.Left = (FRMMAIN.Width - Me.Width) / 2 Me.Top = (FRMMAIN.Height - Me.Height) / 2

Call Conn_open

SQL = \"SELECT 会员.ID号, 会员.姓名, Sum(会员.积分) AS 积分之总计 FROM 会员, 销售 GROUP BY 会员.ID号, 会员.姓名\"

RS1.Open SQL, CONN, adOpenStatic, adLockReadOnly Set DataGrid1.DataSource = RS1 End Sub

Private Sub Command1_Click() Unload Me End Sub

十四、 用户登录窗体模块

1. 界面设计

2. 代码设计

Dim txt As String, n As Integer, k As Integer

Private Sub Command1_Click() Call Conn_open

SQL = \"SELECT *FROM 管理员 WHERE 账号='\" & Text1.Text & \"' AND 密码 = '\" & Text2.Text & \"'\"

RS1.Open SQL, CONN, adOpenStatic, adLockReadOnly

If RS1.EOF Then RS1.Close

MsgBox \"用户名或密码不正确!\提示信息\" Text1.Text = \"\"

16

电影院管理系统设计

Text2.Text = \"\" Text1.SetFocus Else

RS1.Close Unload Me FRMMAIN.Show End If End Sub

Private Sub Command2_Click() Unload Me End Sub

Private Sub Form_Load()

Me.Left = (FRMMAIN.Width - Me.Width) / 2 Me.Top = (FRMMAIN.Height - Me.Height) / 2 n = 0

txt = \"欢迎使用电影管理系统 \" Label1.ForeColor = QBColor(Int((16 * Rnd))) k = Len(txt) End Sub

Private Sub Timer1_Timer() n = n + 1

If n <= k Then

Label1.Caption = Space(2 * (k - n)) + Left(txt, n) Else

n = 0

Label1.Caption = \"\"

End If End Sub

3. 将本窗体设置为启动对象

17

电影院管理系统设计

十五、 生成EXE文件

选择生成的EXE文件存文件夹,输入文件名,然后按“确定“按钮就可生成EXE文件了。

18

电影院管理系统设计

十六、 发布软件包

应用程序开发好后,最好将程序“打包”,生成可安装软件,及我们常见的setup.exe/来安装软件。具体步骤如下:

(1) 使用菜单“外接程序”/“外接程序管理器”打开外接程序管理器;

(2)选择“打包和展开向导”,选择“加载/卸载”,确定。 (3)选择菜单“外接程序”/“打包和展开向导”,打开“打包和展开向导”

(4)点击“打包”,打开向导:

19

电影院管理系统设计

20

电影院管理系统设计

点击“添加”,吧manage.mdb文件包含进来

21

电影院管理系统设计

22

电影院管理系统设计

23

电影院管理系统设计

24

电影院管理系统设计

将setup.exe和电影管理系统.CAB文件拷贝到u盘上,完整的应用程序就制作好了。运行setup.exe,就可以安装好开发的软件,并自动在“开始”/“程序”菜单中增加了“电影管理系统”/“电影管理系统”菜单项。

25

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务