图书库存管理系统设计与开发.docx
- 文档编号:18211589
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:18
- 大小:1.30MB
图书库存管理系统设计与开发.docx
《图书库存管理系统设计与开发.docx》由会员分享,可在线阅读,更多相关《图书库存管理系统设计与开发.docx(18页珍藏版)》请在冰点文库上搜索。
图书库存管理系统设计与开发
图书库存管理系统设计与开发
图书库存管理系统设计与开发
一、课程设计目的:
无论是学校、出版社或其他一些单位,往往需要对图书库存和出库进行管理,而这些工作是一个繁杂的事情,如何用一个现代化的管理手段来代替复杂的手工劳动,这是一个重要的问题。
本例结合图书库存与出库两方面的问题,开发出一个比较科学的图书库存管理系统,可以供一些图书使用单位和出版单位参考使用。
二、需求分析:
1、功能需求
(1)对图书入库的管理(更新、添加、修改和删除)
(2)对图书出库的管理(更新、添加、修改和删除)
(3)对图书进行入库统计
(4)对图书进行出库统计
(5)对图书入库结存报表的查询
(6)对图书出库结存报表的查询
(7)对用户权限的维护
2、总体设计
FLASH画面
系统主控界面
入库管理
出库管理
入库统计
出库统计
入库结存报表
出库结存报表
权限维护
图书的添加
图书的修改
图书的删除
图书的更新
计算库存金额
报表统计
出库金额
出库报表
增加用户
修改密码
删除用户
(1)系统层次框图
(2)系统模块设计(各模块功能说明)
1、FLASH画面:
系统启动画面,它首先运行一个FLASH画面,在一定间隔之后,该画面自动隐藏,然后自动进入主控界面,再执行各个功能。
2、系统主控界面:
系统的主控界面既系统主窗体,它用于控制其他功能模块的运行。
该主控界面为每一个使用模块赋予了一个用户权限,只有经过相关的权限认证后才能进行相关的操作。
3、图书入库管理:
由于图书入库是一个多次完成的过程,因此,需要用一个图书主表与相关的数据表进行关联。
在该窗体中,只需要输入一本书的基本信息,然后在下面的表格中可以多次进行该书的入库记录。
4、图书出库管理:
由于图书出库也是一个多次完成的过程,因此,需要用一个图书主表与相关的数据表进行关联。
在该窗体中,只需要输入一本书的基本信息,然后在下面的表格中可以多次进行该书的出库记录。
5、图书入库结存窗体:
图书结存是库存管理的重要内容,往往一个库房中图书众多,统计起来非常麻烦,因此能否实现自动统计功能是非常重要的一个问题。
通过该窗体,可以逐条地对记录进行每一本书的入库金额计算,然后通过报表自动统计出每一本图书的册数、金额、全部图书的总册数和总金额。
6、图书出库结存窗体:
图书结存是库存管理的重要内容,往往一个库房中图书众多,统计起来非常麻烦,因此能否实现自动统计功能是非常重要的一个问题。
通过该窗体,可以逐条地对记录进行每一本书的出库金额计算,然后通过报表自动统计出每一本图书的册数、金额、全部图书的总册数和总金额。
7、入/出库图书结存报表:
作为一个数据库应用系统,一个信息输出的报表往往是不可少的,因此我们为入/出库数据表创建一个报表,该报表不仅可以报告入/出库的全部信息,而且可以对一些数据进行结存统计,如果对图书的总册数、图书的总金额等直接在报表中进行相关的统计,完全不需要人工去统计。
8、用户权限维护窗体:
作为一个完整的系统,往往需要对用户权限进行控制或认证,用户可以通过本窗体进行增加、删除或修改密码。
(3)数据库设计
1、名称:
入库图书数据表
名称
字段类型
字段大小
索引
忽略空值
图书编号
Text
50
普通索引
否
书名
Text
50
无
否
作者
Text
10
无
否
出版社
Text
50
无
否
版次
Text
10
无
否
库存数
Integer
默认
无
否
单价
Currency
默认
无
否
库存金额
Currency
默认
无
否
入库时间
Date/time
默认
无
否
2、名称:
图书出库数据表
名称
字段类型
字段大小
索引
忽略空值
图书编号
Text
50
普通索引
否
书名
Text
50
无
否
作者
Text
10
无
否
出版社
Text
50
无
否
版次
Text
10
无
否
出库数
Integer
默认
无
否
单价
Currency
默认
无
否
出库金额
Currency
默认
无
否
出库时间
Date/time
默认
无
否
3、名称:
图书主表数据表
名称
字段类型
字段大小
索引
忽略空值
图书编号
TEXT
50
主要的、唯一的
否
书名
TEXT
50
无
否
作者
TEXT
10
无
否
出版社
TEXT
50
无
否
4、名称:
密码数据表
名称
字段类型
字段大小
索引
忽略空值
密码
Text
20
主要的、唯一的
否
用户名
Text
50
无
否
三、详细设计:
(1)各模块界面简介及代码
a、FLASH画面:
计时器控件的过程代码:
PrivateSubTimer1_Timer()
Text1.Text=Text1.Text+1
IfText1.Text>=20Then
Timer1.Interval=0
Form1.Hide
Form2.Show
EndIf
EndSub
退出系统标签的过程代码:
PrivateSubLabel3_Click()
UnloadMe
EndSub
b、系统主控界面:
“图书入库”标签的过程代码:
PrivateSubLabel1_Click()
Dimmsg
oldmark=Data1.Recordset.Bookmark
msg=Trim(InputBox("请输入用户密码:
","权限认证"))
msg="密码like'"&msg&"'"
Data1.Recordset.FindFirstmsg
IfData1.Recordset.NoMatchThen
MsgBox("你无权进入系统操作!
")
Else
入库管理.Show
EndIf
EndSub
“图书出库”标签的过程代码:
PrivateSubLabel2_Click()
Dimmsg
oldmark=Data1.Recordset.Bookmark
msg=Trim(InputBox("请输入用户密码:
","权限认证"))
msg="密码like'"&msg&"'"
Data1.Recordset.FindFirstmsg
IfData1.Recordset.NoMatchThen
MsgBox("你无权进入系统操作!
")
Else
图书出库.Show
EndIf
EndSub
“权限维护”标签的过程代码:
PrivateSubLabel3_Click()
MMFORM.Show
EndSub
“入库结存”标签的过程代码:
PrivateSubLabel4_Click()
Dimmsg
oldmark=Data1.Recordset.Bookmark
msg=Trim(InputBox("请输入用户密码:
","权限认证"))
msg="密码like'"&msg&"'"
Data1.Recordset.FindFirstmsg
IfData1.Recordset.NoMatchThen
MsgBox("你无权进入系统操作!
")
Else
入库统计.Show
EndIf
EndSub
“出库结存”标签的过程代码:
PrivateSubLabel5_Click()
Dimmsg
oldmark=Data1.Recordset.Bookmark
msg=Trim(InputBox("请输入用户密码:
","权限认证"))
msg="密码like'"&msg&"'"
Data1.Recordset.FindFirstmsg
IfData1.Recordset.NoMatchThen
MsgBox("你无权进入系统操作!
")
Else
出库统计.Show
EndIf
EndSub
“返回到启动封面”标签的过程代码:
PrivateSubLabel6_Click()
Form1.Show
UnloadMe
EndSub
c、图书入、出库管理窗体:
d、图书出库结存窗体:
相关代码如下:
“添加”按钮的过程代码:
PrivateSubCommand1_Click()
OnErrorGoToAddErr
datprimaryRS.Recordset.AddNew
ExitSub
AddErr:
MsgBoxErr.Description
EndSub
“更新”按钮的过程代码:
PrivateSubCommand2_Click()
OnErrorGoToUpdateErr
datprimaryRS.Recordset.UpdateBatchadAffectAll
ExitSub
UpdateErr:
MsgBoxErr.Description
EndSub
“删除”按钮的过程代码:
PrivateSubCommand3_Click()
OnErrorGoToDeleteErr
WithdatprimaryRS.Recordset
.Delete
.MoveNext
If.EOFThen.MoveLast
EndWith
ExitSub
DeleteErr:
MsgBoxErr.Description
EndSub
“刷新”按钮的过程代码:
PrivateSubCommand4_Click()
'只有多用户应用程序需要
OnErrorGoToRefreshErr
datprimaryRS.Refresh
ExitSub
RefreshErr:
MsgBoxErr.Description
EndSub
“关闭”按钮的过程代码:
PrivateSubCommand5_Click()
UnloadMe
EndSub
“出库金额”按钮的过程代码:
PrivateSubCommand6_Click()
Text5.Text=Val(Text3.Text)*Val(Text4.Text)
datprimaryRS.Recordset.MoveNext
IfdatprimaryRS.Recordset.EOF=TrueThen
MsgBox("记录已经统计完毕!
")
EndIf
EndSub
“出库报表”按钮的过程代码:
PrivateSubCommand7_Click()
DataReport2.Show
EndSub
d、图书入库结存窗体:
相关代码如下:
“添加”按钮的过程代码:
PrivateSubCommand1_Click()
OnErrorGoToAddErr
datprimaryRS.Recordset.AddNew
ExitSub
AddErr:
MsgBoxErr.Description
EndSub
“更新”按钮的过程代码:
PrivateSubCommand2_Click()
OnErrorGoToUpdateErr
datprimaryRS.Recordset.UpdateBatchadAffectAll
ExitSub
UpdateErr:
MsgBoxErr.Description
EndSub
“删除”按钮的过程代码:
PrivateSubCommand3_Click()
OnErrorGoToDeleteErr
WithdatprimaryRS.Recordset
.Delete
.MoveNext
If.EOFThen.MoveLast
EndWith
ExitSub
DeleteErr:
MsgBoxErr.Description
EndSub
“刷新”按钮的过程代码:
PrivateSubCommand4_Click()
'只有多用户应用程序需要
OnErrorGoToRefreshErr
datprimaryRS.Refresh
ExitSub
RefreshErr:
MsgBoxErr.Description
EndSub
“关闭”按钮的过程代码:
PrivateSubCommand5_Click()
UnloadMe
EndSub
“计算库存金额”按钮的过程代码:
PrivateSubCommand6_Click()
Text6.Text=Val(Text4.Text)*Val(Text5.Text)
datprimaryRS.Recordset.MoveNext
IfdatprimaryRS.Recordset.EOF=TrueThen
MsgBox("记录已经统计完毕!
")
EndIf
EndSub
“报表统计”按钮的过程代码:
PrivateSubCommand7_Click()
DataReport1.Show
EndSub
e、用户权限维护窗体:
“增加用户”按钮的过程代码:
PrivateSubCommand1_Click()
Dimmsg
oldmark=Data1.Recordset.Bookmark
msg=Trim(InputBox("请输入原用户密码","确认原密码"))
msg="密码like'"&msg&"'"
Data1.Recordset.FindFirstmsg
IfData1.Recordset.NoMatchThen
MsgBox("你无权增加用户")
Data1.Recordset.Bookmark=oldmark
Else
Data1.Recordset.AddNew
Command4.Enabled=True
EndIf
EndSub
“修改密码”按钮的过程代码:
PrivateSubCommand2_Click()
Dimmsg
oldmark=Data1.Recordset.Bookmark
msg=Trim(InputBox("请输入原用户密码","确认原密码"))
msg="密码like'"&msg&"'"
Data1.Recordset.FindFirstmsg
IfData1.Recordset.NoMatchThen
MsgBox("你无权修改密码")
Data1.Recordset.Bookmark=oldmark
Else
Data1.Recordset.Edit
Command4.Enabled=True
EndIf
EndSub
“确认修改”按钮的过程代码:
PrivateSubCommand3_Click()
Data1.Recordset.Update
EndSub
“删除用户”按钮的过程代码:
PrivateSubCommand4_Click()
Dimmsg
oldmark=Data1.Recordset.Bookmark
msg=Trim(InputBox("请输入原用户密码","确认原密码"))
msg="密码like'"&msg&"'"
Data1.Recordset.FindFirstmsg
IfData1.Recordset.NoMatchThen
MsgBox("你无权删除用户")
Data1.Recordset.Bookmark=oldmark
Else
IfMsgBox("确实要删除该用户吗?
",vbYesNo,"提示信息")=vbYesThen
Data1.Recordset.Delete
Data1.Recordset.MoveNext
EndIf
EndIf
EndSub
f、入库图书结存报表:
g、出库图书结存报表:
四、课程设计小结
这周我们进行了visualbasic课程设计与开发的实训。
通过这周实训大家学到了不少东西,同时对visualbasic语言也有了更深刻的了解和认识。
此次课程设计的目的是让我们综合应用所学知识,在应用软件工程的方法进行软件开发的过程中提高分析和解决问题的能力。
通过本次课程设计,我们已经基本能够利用VB程序设计语言开发一个小型的管理信息系统了。
在课程设计的过程中,我们遇到了许多如:
程序制作、VB的编程、数据库应用系统的开发等方面的种种问题。
虽然有详细的参考书在手,但是,还是出现了许多“莫名其妙”的错误。
经过多次苦苦对照排查,最后才发现原来是多了一个空格或者是打错了一个单词字母等等。
然而还是有一些问题解决不了,最后还是不得不求助于两位老师。
而在老师删除了一个空格或做了其它一些微小的改动之后,一切又恢复了正常。
老师们就这样一遍又一遍不厌其烦地帮助我们找出问题解决问题,我们的实习也就在这样轻松的氛围中进行着。
当然,完全依赖于参考书还是不行的。
还要加上自己学过的东西来丰富和完善程序,使它变得更加美观和实用。
然而这时问题又来了,代码也对,基本设置也不错,但是程序就是运行不起来。
经过反反复复的调试还是不行,这可把我急坏了。
可却还是束手无策,最后还是不得不求助于老师。
然而,老师看过之后只是改了一个属性值,搞得我焦头烂额的问题便不复存在了。
真是给了我沉重的“打击”啊!
呵呵……
通过这周的实训,我认识到了自己许多方面的不足。
在编程过程中不仔细是很麻烦的,这将让费许多的时间。
这次实习给我敲响了警钟以后一定要注意,要细心。
还有就是对vb语言不够熟悉,好多属性的功能也不是很清楚,今后一定要多找机会练习练习。
总之,在这短短的一周实习中,我收获了许多,不但以前学过的东西得到了巩固而且还学到了许多新的知识。
最后要感谢两位老师不厌其烦地讲解和耐心的指导。
因为你们,我们的实习才会进行的如此顺利。
2007-1-5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 库存 管理 系统 设计 开发