用于歌手管理工作的数据库系统设计书.docx
《用于歌手管理工作的数据库系统设计书.docx》由会员分享,可在线阅读,更多相关《用于歌手管理工作的数据库系统设计书.docx(30页珍藏版)》请在冰豆网上搜索。
用于歌手管理工作的数据库系统设计书
用于歌手管理工作的数据库系统设计书
一、系统需求分析
本系统是用于开发一套专门用于歌手管理工作的数据库系统,经过仔细研究分析,我们决定将系统分为三大部分,分别为歌手数据信息管理,歌曲管理,后台操作管理三部分。
为了便于使用者对歌曲情况的管理,其中主要侧重点在歌手人事档案管理方面。
在歌手人事档案管理又分为歌手人事维护打印和查询打印两个分支。
歌手成绩菜单具有查询打印功能。
系统管理分为操作员管理,密码管理,数据备份等部分。
1.歌手信息维护:
管理歌手号、姓名、星座等,一些主要功能:
数据录入、修改、删除、查询、浏览、保存、打印等。
2.歌手数据信息的查询:
提供歌手号,姓名,作曲查询。
分别利用不同的命令代码方式实现查询打印功能,功能是便于用户的检索查询
3.歌曲点歌次数查询的管理:
提供歌手号,姓名,作曲,与歌手信息查询相似。
4、三大部分紧密结合联系,包括歌手数据管理表、歌曲数据管理表、用户口令三个部分。
二、系统主要功能模块
歌手管理系统基于VisualFoxPro6.0中文版开发,VFP在数据库开发方面具有方面,实用,简单,直接等优点,同时其也具有一定的局限性。
本系统主要面向歌曲管理者,歌曲查询者等开发使用,因此主要侧重于系统的使用性和方便性,同时在安全性方面,我们也十分重视。
特别是操作员级别的划分等密码管理,我们都做了仔细的分析研究。
一、“电台歌曲点播系统”的开发
在开发应用程序时,可以利用“项目管理器”将应用程序的各个部分组织起来。
用集成化的方法建立应用系统项目,并进行项目测试。
1.建立电台歌曲点播系统项目文件
(1)创建子目录
一个完整的应用程序,即使规模不大,也会涉及多种类型的文件,如dbc数据库、dbf表以及菜单、表单、报表、位图等。
如果把这些文件都放在一个文件夹下,将会给以后的修改、维护工作带来很大的不便。
因此,需要建立一个层次清晰的目录结构,让不同类型的文件各归其所。
图1-4所示的就是一种目录结构的示例。
图1-4目录结构
(2)建立电台歌曲点播系统项目文件
选择“文件”菜单中的“新建”命令或单击常用工具栏上的“新建”按钮,在dgxt文件夹位置建立一个名为“Dgxt.PJX”的项目文件,如图1-5所示。
图1-5项目管理器——Dgxt
2.建立数据库与数据表
(1)建立数据库
1)在项目管理器上切换到“数据”选项卡,选取该选项卡中的“数据库”选项。
2)单击右边的“新建”按钮,出现“新建数据库”对话框,单击“新建数据库”按钮,在弹出的“保存新建文件”对话框中;输入数据库名称“Order”,保存在“\DATA”子目录下。
3)单击“保存”按钮,进入Order数据库设计器
三、数据库设计
数据库设计是总体设计阶段非常重要的环节,数据库结构的变化会造成编码的改动,所以必须认真设计数据库结构后再进行编码,从而避免无谓的重复工作。
本系统的数据库包括3个表,即歌手数据管理表,歌曲数据管理表、用户口令表。
1.歌手数据表(歌手.dbf)
歌手数据管理表(歌手.dbf)用于记录歌手编号、姓名、性别、生日、星座等信息,其逻辑结构如表1所示。
字段
类型
描述
键
索引
说明
歌手编号
C(3)
歌手编号
主
主
000~999,不允许为空
姓名
C(16)
姓名
中文1~8,西文16个字符
XB
C
(2)
性别
男或女
生日
D
生日
星座
C(6)
星座
最多3个汉字,如天秤座
代表作
C(30)
代表作
1~15个汉字
国籍
C(10)
国籍
最多5个汉字
档案
M
档案
表1歌手基本信息表
2.歌曲数据表(歌曲.dbf)
歌曲数据表(歌曲.dbf)用于歌曲的基本信息,包括歌曲编号、歌曲名、歌手编号、点歌次数等信息,其逻辑结构如表2所示。
表1-2歌曲数据表.DBF描述如下
字段
类型
描述
键
索引
说明
歌曲编号
C(4)
歌曲编号
主
主
0000~9999,不允许为空
歌曲名
C(30)
歌曲名
1~15个汉字
歌手编号
C(3)
歌手编号
外
001~999
作词
C(30)
作词
一个人、两个人或乐队,最多15个汉字
作曲
C(30)
作曲
同上
歌曲
G
歌曲
记录歌曲,便于播放
点歌次数
I
点歌次数
普通
0~999
另外,为了便于系统管理,还需增设一个口令管理数据表,如表1-3所示。
表1-3口令管理数据表KLB.DBF
字段
类型
描述
说明
用户名
C(8)
用户名
最多4个汉字,8个字符
用户口令
C(8)
用户口令
最多8个字符
3.用户口令数据管理表(用户口令.dbf)
用于记录系统用户的基本信息,包括用户名,密码等,其逻辑结构如表3所示。
表3用户表
字段
类型
描述
说明
用户名
C(8)
用户名
最多4个汉字,8个字符
用户口令
C(8)
用户口令
最多8个字符
下一步就是设计软件的大概功能图,根据本系统的情况,其概要图如图1-2所示。
图1-2电台歌曲点播系统概要图
第三步就是详细设计,这里要求对VisualFoxPro有一定的了解。
如果知道VisualFoxPro能提供什么样的组件,就可以比较轻松地细化系统。
本系统初步细化的框图如图1-3所示。
图1-3电台歌曲点播系统框图
这里,还要听取用户的意见,如果用户同意方案,就可以开工了。
否则,还要根据用户的意见进行修改。
第四步就是运行调试。
当我们将系统开发完毕以后,就要交付给用户使用,就是所说的运行了。
一般来说半年以内不出现错误,并且验收合格后,开发工作结束。
第五步,编写使用说明书。
作为开发者,我们并不希望为用户开发的软件,用户却不会用。
对用户来讲,使用说明书是比较重要的。
因此,软件不仅仅是程序本身,还要包括相关的文档信息。
二、具体设计步骤
1、数据库的建立
1)在‘文件’菜单中,点击‘新建’选择‘数据库’,保存在f:
\周琦文件夹下,进行表的设计,如图所示:
2)表的建立
在数据库设计器中点击新建
然后在索引选项卡中,将歌手编号选为主索引。
歌手数据表、歌曲数据表、口令管理数据表如图所示:
四、、各功能模块的具体设计
密码验证作为系统最基本的安全管理步骤。
用户如果不输入合法的用户名和密码,系统是不能进入的。
当用户输入合法的用户名和密码时,系统管理会自动判断此用户,使用户的操作具有合法性。
密码验证页包括操作员姓名和密码两个部分。
具体的代码实现也将在详细设计书说明。
下面是密码登陆页的图示(图4):
用户在文本框输入操作员及口令,若正确则调用系统主界面(菜单)。
允许输入三次,若三次均不正确刚自动退出系统。
若用户输入的操作员姓名及口令正确,要完成下列工作:
图4登陆界面
1)要参数设置
(1)设置一个全局变量operat,用于记录登陆系统的操作员姓名,系统中有3个地方要用到操作员的姓名和代号:
一是进入主界面后在标题栏显示的操作员姓名;二是操作员在系统管理模块的口令设置中更改自己的口令,系统要知道是哪个操作员;三是退出系统时系统日志中要记录操作员的退出时间。
(2)在系统日志表log.dbf中增加一条记录,并同时记录此操作员的登录系统的时间。
从权限表menuright.dbf中读出此操作员对应各菜单项的权限,并赋值给数组。
调用菜单文件,显示系统主界面。
2)登陆表单界面中主要控件属性如表5所示。
表5登陆表单控件属性
对象名称
属性名称
属性值
Form1
caption
口令输入窗口
AutoCenter
.T.
Command1
caption
确定
Command2
caption
退出
3)事件代码:
Form1的init事件代码:
SETEXACTON&&精确比较
PUBLICARRAYrr[18]&&数组用于实现菜单项权限
PUBLICi&&i用于记录用户名及口令输入次数
PUBLICoperat&&operat用于保存操作员姓名
i=0
THISFORM.Text1.Setfocus
“确定”按钮(COMMAND1)CLICK事件代码:
*判断密码是否正确
i=i+1
SELECToperator
LOCATEFOR操作员姓名=ALLTRIM(THISFORM.Text1.Value)
DOCASE
CASEi<=3ANDFOUND()ANDTHISFORM.Text2.Value=operator.口令
*输入次数未超过3次且用户名正确、口令正确
operat=THISFORM.Text1.Value
INSERTINTOlog(操作员代号,操作员姓名,登录时间)VALUES(operator.操作;员代号,operator.操作员姓名,DATETIME())
_SCREEN.Caption="05计专歌手管理系;
统"+SPACE(40)+DTOC(DATE())+SPACE(40)+"操作员:
"+operatSELECT权限FROMmenurightINTOARRAYrrWHERE操作员代号;
=operator.操作员代号ORDERBY菜单项编号
RELEASETHISFORM
DO.\main\main_menu.mpr
CASEi<=3ANDFOUND()ANDTHISFORM.Text2.Value!
=operator.口令
*输入次数未超过3次且用户名正确、口令不正确
MESSAGEBOX("密码错误,请重输!
","警告")
THISFORM.Text2.Value=""
THISFORM.Text2.Setfocus
CASEi<=3ANDNOTFOUND()&&输入次数未超过3次且用户名不正确
MESSAGEBOX("操作员姓名错误,请重输!
","警告")
THISFORM.Text1.Value=""
THISFORM.Text2.Value=""
THISFORM.Text1.Setfocus
CASEi>3&&输入次数超过3次
MESSAGEBOX("禁止进入系统!
","警告")
THISFORM.Release
ENDCASE
退出按钮(COMMAND2)CLICK事件代码:
RELEASETHISFORM
CLEAREVENTS
4)系统主页面
当操作员的名称和密码均正确的时候,系统便会进入系统主界面使用主菜单。
主菜单共分为三个分菜单项:
歌手信息管理,歌手成绩管理,系统管理。
如图:
在歌手信息管理中分为歌手信息维护和歌手信息查询两个菜单项,在歌手信息管理中含有歌手点歌次数查询打印菜单项,在系统管理中分为:
操作员管理、口令设置、权限管理、系统日志、数据备份、数据恢复、退出系统七项。
以下为各个界面的成果图:
界面
6、系统菜单设计
1、歌手信息管理系统的菜单
在应用系统中,各个了模块是通过菜单组织在一起的。
通过对歌手信息管理系统功能模块的设计,可以交系统划分为3大模块:
歌曲信息管理、点歌次数查询、系统管理,具体的菜单设计见表6:
表6系统菜单
歌手信息管理
点歌次数管理
系统管理
歌手信息维护
点歌次数查询
操作员管理
口令设置
歌手信息查询
权限管理
系统日志
数据备份
数据恢复
退出系统
在菜单设计器中实现权限设置
在菜单项设计器中,通过[提示选项]对话框设置菜单项的跳过条件可以实现用户权限。
每个操作员对每个菜单项有两种权限:
0或1。
“0”表示此操作员对该菜单项没有操作权,系统运行后,该菜单项为灰色。
不能打开对应的表单,“1”代表该操作员对该菜单项具有操作权,系统运行后,该菜单项可用,鼠标单击菜单项能打开对应的表单。
操作员对各菜单项的权限保存在表文件menuright.dbf中,在登录系统时读出该操作员对应各菜单项的权限,并赋值给一个数组RR。
本系统共10个菜单项,所以定义的数组也包含10个元素。
6.歌手信息查询表单(歌手.dbf)的设计
歌手数据信息的查询如图8,是基于RSB.dbf表,提供歌手号,姓名,全体查询。
分别利用不同的命令代码方式实现查询打印功能。
功能是便于使用者,歌手用户的检索查询。
1)歌手信息查询表单界面中主要控件属性如表8所示。
表8歌手信息查询表单控件属性
对象名称
属性名称
属性值
Form1
caption
歌手信息查询
AutoCenter
.T.
Grid1
recordsourcetype
1-别名
recordsource
rsb
Optiongroup1
buttoncount
4
value
1
Command1
caption
查询
2)各事件的代码如下:
FORM1的INIT事件代码:
*输入编号、姓名提示标签及文本框
THISFORM.Label2.Visible=.F.
THISFORM.Text1.Visible=.F.
THISFORM.Text1.Setfocus()
*输入起始日期、截止日期提示标签及文本框不可见
THISFORM.Label4.Visible=.F.
THISFORM.Label5.Visible=.F.
THISFORM.Text2.Visible=.F.
THISFORM.Text3.Visible=.F.
THISFORM.Command4.Visible=.F.
*表格数据不可修改
THISFORM.Grid1.Readonly=.T.
Optiongroup1的CLICK事件代码:
*选定查询类别后,设置各控件是否可见
DOCASE
CASETHIS.Value=1&&按歌手号查询
THISFORM.Label2.Visible=.T.
THISFORM.Text1.Visible=.T.
THISFORM.Label4.Visible=.F.
THISFORM.Label5.Visible=.F.
THISFORM.Text2.Visible=.F.
THISFORM.Text3.Visible=.F.
THISFORM.Command4.Visible=.F.
THISFORM.Label2.Caption="请输入要查询的歌手号:
"
THISFORM.Text1.Value=""
THISFORM.Text1.Setfocus
CASETHIS.Value=2&&按姓名查询
THISFORM.Label2.Visible=.T.
THISFORM.Text1.Visible=.T.
THISFORM.Label4.Visible=.F.
THISFORM.Label5.Visible=.F.
THISFORM.Text2.Visible=.F.
THISFORM.Text3.Visible=.F.
THISFORM.Command4.Visible=.F.
THISFORM.Label2.Caption="请输入歌手姓名:
"
THISFORM.Text1.Value=""
THISFORM.Text1.Setfocus()
CASETHIS.Value=3&&按出生日期查询
THISFORM.Label2.Visible=.F.
THISFORM.Text1.Visible=.F.
THISFORM.Label4.Visible=.T.
THISFORM.Label5.Visible=.T.
THISFORM.Text2.Visible=.T.
THISFORM.Text3.Visible=.T.
THISFORM.Command4.Visible=.T.
THISFORM.Text2.Setfocus
CASETHIS.Value=4&&显示全体记录
THISFORM.Label2.Visible=.F.
THISFORM.Text1.Visible=.F.
THISFORM.Label4.Visible=.F.
THISFORM.Label5.Visible=.F.
THISFORM.Text2.Visible=.F.
THISFORM.Text3.Visible=.F.
THISFORM.Command4.Visible=.F.
SETFILTERTO
GOTOP
THISFORM.Grid1.Refresh
ENDCASE
GRID1的数据连接连接RSB表。
一一对应该对应的数据项,
COMMAND4(查询)的CLICK事件代码:
*按输入的日期条件在表格中显示查询的记录
SELECTrsb
PUBLICqsrq,jzrq
qsrq=THISFORM.Text2.Value
jzrq=THISFORM.Text3.Value
DOCASE
CASENOTEMPTY(qsrq)ANDEMPTY(jzrq)
SETFILTERTO出生日期>=qsrq
CASEEMPTY(qsrq)ANDNOTEMPTY(jzrq)
SETFILTERTO出生日期<=jzrq
CASENOTEMPTY(qsrq)ANDNOTEMPTY(jzrq)
SETFILTERTO出生日期>=qsrqAND出生日期<=jzrq;
OTHERWISE
MESSAGEBOX("未输入查询时间!
","提示")
ENDCASE
THISFORM.Grid1.Refresh
COMMAND1的CLICK事件代码:
REPORTFORM.\menu1\rsb_bb1.frxPREVIEW
实现调用.\menu1\rsb_bb1.frx报表实现打印的功能。
7.歌手点歌次数查询表单(点歌次数.scx)设计
首先,歌手点歌次数菜单的设计与歌手信息查询菜单的设计比较类似。
菜单调用的是点歌次数.scx表单。
1)将点歌次数.dbf添加到该表单的数据环境中。
2)歌手成绩查询表单界面中主要控件属性如表9所示。
表9歌手成绩查询表单控件属性
对象名称
属性名称
属性值
Form1
caption
歌手成绩查询
AutoCenter
.T.
Grid1
recordsourcetype
1-别名
recordsource
cjb
Optiongroup1
buttoncount
3
value
1
Command1
caption
打印预览
…
设计界面如图10,界面如下:
3)各事件代码均类似于歌手信息查询的事件代码。
其打印预览按钮的CLICK的事件代码为:
DOCASE
CASETHISFORM.Optiongroup1.Option1.Value=1
SETFILTERTO歌手号=ALLTRIM(THISFORM.Text1.Value);
CASETHISFORM.Optiongroup1.Option2.Value=1
SETFILTERTO歌手姓名;=ALLTRIM(THISFORM.Text1.Value)
CASETHISFORM.Optiongroup1.Option4.Value=1
ENDCASE
REPORTFORM.\cjb_pri.frxPREVIEW
…
…
8.系统菜单的设计
系统菜单的设计主要分为操作员管理、口令设置、权限管理、系统日志、数据备份、数据恢复、退出系统七项。
各项调用相应的表单。
在操作员管理项可实现操作员的添加,删除,编辑等功能,口令设置实现口令修改的功能,权限管理实现该操作员相应的操作权限功能的设置,系统日志用来记录每个操作员的登陆动作,便于系统的安全管理,数据备份和数据恢复主要是为数据库的数据安全管理设置的。
退出系统菜单功能实现退出到操作系统界面,把内存归还给操作系统。
系统菜单的各项设计类似于前几项菜单的设计,代码也基本类似于歌手信息管理菜单的设计,在此不再详细给出。
操作员管理的菜单运行如下:
(图11)
图11歌手成绩查询
课程
3、建立报表文件
(1)打印歌单文件dygd.frx
打印歌单功能主要是设计打印的格式,如图1-18所示
图1-18打印歌单报表设计界面
打印歌单预览界面
打印排行榜界面
打印排行榜预览
打印歌手设计界面
打印歌手预览
4﹑菜单设计
主界面
歌曲管理菜单
歌手管理子菜单
系统子菜单
五、
设计总结
关于本次课程设计,本组一共9名成员,所选择的课题是<潍坊科技学院点歌系统>。
主要由以下几个部分组成:
数据表的设计(歌手数据信息表、歌曲数据信息表、用户口令表);数据库的建立;表单的建立;菜单的建立。
为了提高大家的熟练程度以及数据统一的需要,本组全体成员均练习了3个数据表的建立。
至于表单,根据难易程度的不同,大部分组员负责一个表单,少量组员负责2个表单。
在进行数据表的输入,建立以及表单的设计的过程中,组员同时一边撰写程序设计书。
虽然其中由于部分组员的基础不同,负责的表单不同,中间出现差错,所以在表单建立的过程中有些困难,但是在大家的齐心协力合作下,《潍坊科技学院点歌系统》得以顺利完成。
在本次程序设计过程中,我收获颇丰,也深深地感觉到团队合作的重要性,希望也能得到老师的肯定。
六、参考文献
[1]周永恒.VisualFoxPro基础教程(第3版).北京:
高等教育出版社,2006.
[2]李魁明.visualFoxPro程序设计(第4版).北京:
地质出版社,2008.
[3]郭元辉.visualFoxPro程序设计.北京:
科学出版社,2010.
[4]王永国.visualFoxPro程序设计(第2版).北京:
高等教育出版社,2009