数据库课程设计网吧管理系统文档格式.docx
- 文档编号:20617593
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:27
- 大小:129.82KB
数据库课程设计网吧管理系统文档格式.docx
《数据库课程设计网吧管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计网吧管理系统文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
说明:
此表一式四份,学生、指导教师、教研室、系部各一份。
可加附页。
2008年7月4
第一章概述
随着上个世纪九十年代计算机网络的高速发展,人类进入到了网络化、信息化的时代。
而网络的发展带动了一种新兴产业——网吧行业。
从上世纪九十年代至今,网吧经历了前所未有的发展。
从小规模到大规模,从单一经营到连锁经营,从简单提供上网服务演变到休息、娱乐场所。
这就带来了新的问题——网吧管理。
目前,网吧的人工管理已经不能适应网吧的高速发展,成为阻碍网吧发展的桎梏。
因此开发一套完善的网吧管理系统成为网吧发展的首要任务。
本系统主要负责服务器子系统的设计。
采用功能强大的VisualBasic6.0作为开发工具,MicrosoftAccess作为数据库平台。
本系统采用C/S结构。
它将一个应用系统分成两大部分,由多台计算机分别执行,协同完成整个系统的应用,从而达到系统中软、硬件资源最大限度的利用。
因此,对于一个相对专用、独立的系统,它是—个较好的系统建立方法。
因此,本设计采用这一模式。
本系统从操作简便、界面友好、灵活、实用、安全的要求出发,实现较为简单。
本系统设计功能较为齐全,适合于中小型网吧的管理。
第二章问题定义
网吧管理人员:
系统的录入人员,主要指管理各种档案的工作人员,需要通过密码才能进入。
他们拥有对系统数据的录入、修改、查询、删除等操作权限。
但不可以更改系统密码。
上机人员:
权限最低的登入人员,当上网时间到了之后就会被提示。
第三章需求分析
一、主要功能:
完成网吧管理人员对上机人员的调整,对机器的分配,以及纪录用户的上机时间,并对整个网吧的系统进行管理。
因此,本系统应该主要完成和实现如下功能:
初始化系统数据;
录入登陆人员的基本信息数据;
上机时间,下机时间的基本设定;
查询机器的剩余时间;
计算上机的费用;
人员信息:
在该项内容中将包括的数据库项有用户名,用户密码,密码确认,开户时间,开户金额,开户总机时,剩余时间,上机次数,备注。
会员信息:
用户名,用户密码,密码确认,开户时间,开户金额,折扣,总时间,上机次数,备注。
机器编号:
ID,IP。
二、数据流图(DFD):
三、数据字典(DD):
ClientIP=ID+IP
History=ID+用户名+机器号+开始时间+结束时间+应付费
Member=用户名+用户密码+密码确认+开户时间+开户金额+折扣+总时间+上机次数+备注
四、程序流程图:
五、功能结构图:
网吧管理系统模块
时间设定模块
第四章数据库设计
二、逻辑设计:
下面列出几个主要的数据库表设计:
4.1ClientIP表:
序号
中文名
字段名
类型
备注
ID
3
字符型
主键
1
IP
10
文本archar
4.2history表:
2
字符型
userID
(10,2)
文本型
pcid
2
数字
starttime
日期时间
4
endtime
5
pay
货币
4.3member表:
文本符型
Pwd
ChkPwd
文本类型
DataTime
Balance
Discount
6
Totaltime
7
CountNum
9
Memo
4.3member1表:
4.4online表:
ClientID
字符型archar
LoginTime
时间日期
TimeOut
10
Mstate
(是,否)
判断
Jstate
文本
stime
日期
Endtime
Time
Money
Ltime
8
Userid
uprice
三、物理设计
写索引是如何设计的:
镞索引是行的物理顺序和索引的顺序是一致的。
页级,低层等索引的各个级别上都包含实际的数据页。
一个表只能是有一个镞索引。
由于update,delete语句要求相对多一些的读操作,因此镞索引常常能加速这样的操作。
在至少有一个索引的表中,你应该有一个镞索引
第五章界面设计
一、主界面
单击主界面上的各个按钮,可以进入相应的界面中。
二、系统设置
对参数进行设置
功能介绍,相关控件;
三、查询上机时间等信息
第六章代码与注释
一、窗体1代码
OptionExplicit
PrivateSubcmdexit_Click()
UnloadMe
EndSub
PrivateSubcmdcounter_Click()
DimcnAsADODB.Connection
DimiAsInteger
DimrstAsADODB.Recordset
DimstrsqlAsString
Setcn=NewConnection
Setrst=NewADODB.Recordset
cn.Openconcn
'
Í
ù
history±
í
Ö
Ð
Ì
¼
Ó
Ç
Â
×
¢
Ò
â
Ê
±
ä
¶
Î
µ
Ä
·
½
¨
£
¬
#
Debug.Printstrsql
cn.Executestrsql
Ê
Õ
Ñ
³
É
¹
¦
ý
¾
Ý
õ
»
¯
WithfrmManager.Adodc1
.Recordset!
mstate=0
[stime]=0
[jstate]="
´
Æ
"
[Money]=0
[endtime]=0
[Time]=0
[lTime]=0
[userID]="
OnErrorGoToerror_proc
.Recordset.Save
EndWith
frmManager.Refresh'
²
Ï
Ô
MsgBox"
UnloadMe
ExitSub
error_proc:
MsgBoxErr.Description,vbCritical,"
Ø
PrivateSubcmdvipexit_Click()
PrivateSubcmdvipcounter_Click()
DimGdiscountAsDouble
DimupriceAsDouble
¸
ü
MEMBER±
é
ö
Ã
§
à
î
rst.Openstrsql,cn,adOpenDynamic,adLockOptimistic
Ifrst.BOFAndrst.EOFThen
SystemError5"
EndIf
uprice=rst("
balance"
)
Ifuprice<
0Then
rst.Close
Setrst=Nothing
cn.Close
Setcn=Nothing
á
PrivateSubForm_Load()
¿
ñ
È
¡
ø
ð
Else
Else
ª
Á
ã
EndIf
二、窗体2代码
datPrimaryRS.CommandType=adCmdTable
datPrimaryRS.RecordSource="
history"
datPrimaryRS.Refresh
PrivateSubForm_Resize()
OnErrorResumeNext
°
å
÷
û
grdDataGrid.Height=Me.ScaleHeight-datPrimaryRS.Height-30-picButtons.Height
PrivateSubForm_Unload(CancelAsInteger)
Screen.MousePointer=vbDefault
PrivateSubdatPrimaryRS_Error(ByValErrorNumberAsLong,DescriptionAsString,ByValScodeAsLong,ByValSourceAsString,ByValHelpFileAsString,ByValHelpContextAsLong,fCancelDisplayAsBoolean)
ó
À
ò
ú
ë
Ú
Ë
º
ô
Dataerroreventhiterr:
&
Description
PrivateSubcmdDelete_Click()
OnErrorGoToDeleteErr
WithdatPrimaryRS.Recordset
.Delete
.MoveNext
If.EOFThen.MoveLast
DeleteErr:
MsgBoxErr.Description
PrivateSubcmdClose_Click()
三、窗体3代码
PrivateSubcmdok_Click()
IftxtHour.Text="
Then
Ü
Ç
!
vbCritical
txtHour.Text="
txtHour.SetFocus
frm
PrivateSubcmdcancel_Click()
'
EndSub
四、窗体4代码
PublicblnReceivedAsBoolean
PublicblnOnlineOKAsBoolean'
Å
ß
PublicstrDataAsString
PrivateSubDataGrid1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
¥
IfButton=2ThenPopupMenumnupopup
PrivateSubForm_Activate()
¤
datagrid1.Left=(Me.ScaleWidth-datagrid1.Width)/2
Adodc1.ConnectionString=concn
Adodc1.CommandType=adCmdTable
Adodc1.RecordSource="
pc"
Adodc1.Refresh
CallDisableX(Me)'
DimrsAsADODB.Recordset
DimsqlAsString
Setcn=NewADODB.Connection
Setrs=NewADODB.Recordset
sql="
selectid,ipfromclientip"
rs.Opensql,cn,adOpenKeyset
rs.MoveNext
rs.MoveFirst
glngClientNum=rs.RecordCount
ReDimgstrClientIP(glngClientNum-1)
WhileNotrs.EOF
gstrClientIP(rs("
ID"
)-1)=rs("
IP"
Wend
rs.Close
Setrs=Nothing
WithWinsock1
.Protocol=sckUDPProtocol
.RemoteHost=gstrClientIP(glngClientNum-1)
.RemotePort=4001
.LocalPort=4002
blnReceived=False
blnOnlineOK=False
Timer3.Enabled=False
Label1.Caption="
è
--¡
Þ
ip,Ö
Label1.Visible=True
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
IfButton=2ThenPopupMenumnupopup
DimFrmAsForm
ForEachFrmInForms
UnloadFrm
SetFrm=Nothing
NextFrm
PrivateSubmnuExit_Click()
End
PrivateSubmnuLimittime_Click()
frmLimittime.Show1'
PrivateSubmnuLock_Click()
IfMsgBox("
vbOKCancel)=vbOKThen
frmCounter.Show1'
frmCounter´
PrivateSubmnusystem_Click()
frmSystem.ShowvbModal
PrivateSubmnuTiming_Click()
frmTiming.Show1'
PrivateSubTimer1_Timer()
DimAAsString
A=Adodc1.Recordset!
strsql="
updatepcset[time]=format((DateDiff("
d"
stime,now())*24+(hour(now())-hour(stime))+(Minute(now())-Minute(stime))/60),"
##,##0.000"
),[money]=[time]*upricewherejstate="
rst.CursorLocation=adUseClient
select*frompcwhereTime>
=lTimeandltime<
>
0andjstate="
Ifrst.RecordCount>
rst.MoveFirst
WhileNotrst.EOF
rst!
rst.Update
MsgBox("
["
[Mid]&
"
]º
rst.MoveNext
PrivateSubTimer3_Timer()
«
selectClientIDfromonline"
rst.Openstrsql,cn
Ifrst.BOF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 网吧 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)