《图书管管理系统.doc》由会员分享,可在线阅读,更多相关《图书管管理系统.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、23沈阳理工大学课程设计专用纸目录一 系统概述2二 需求分析22.1 ER图 2.2 数据流图2.3 数据字典2.4 状态转换图三 系统设计63.1 概要设计3.2 详细设计3.3 界面设计四 测试报告20五 设计心得22六 参考文献22一 系统概述现某图书馆需要管理其各种人员和图书信息,希望实现办公的信息化,通过建立一个图书管理系统来管理图书。其完成的功能如下: (1) 可以实现图书的登记、借阅管理。 (2) 可以实现对图书及读者的各种信息的查询,包括逐个浏览,以及对图书及读者信息的增加、删除和编辑操作。系统运行环境为vb 6.0二需求分析 2.1 ER图 读者借阅图书姓名编号性别读者类别工
2、作单位家庭住址电话号码登记日期已借书数量编号书名类别作者出版社出版日期登记日期是否被借出借阅编号读者编号读者姓名书籍编号书籍名称出借日期还书日期MN 2.2 数据流图(分层) 1图书管理模块 登陆信息 事务管理员 身份验证 事务分析 图书管理 D1 用户表 图书类别管理 图书信息管理 添加 编辑 查询 添加图书类别 编辑图书类别 图书信息 图书信息 图书信息 图书类别信息 图书类别信息 图书信息 图书信息 图书信息 D2 图书类别 D2 图书类别 D3 书籍信息2读者管理模块 登陆信息 事务管理员 身份验证 事务分析 读者管理 D1 用户表 读者类别管理 读者信息管理 添加 编辑 查询 添加读
3、者类别 编辑读者类别 读者信息 读者信息 读者信息 读者类别信息 读者类别信息 读者信息 读者信息 读者信息 D4 读者类别 D4 读者类别 D5 读者信息3图书借阅管理模块 登陆信息 事务管理员 身份验证 事务分析 图书借阅管理 D1 用户表 借书管理 还书管理 添加 添加借书信息 查询借书信息 还书信息 还书信息 还书信息 借书信息 借书信息 借书信息 借书信息 借书信息 还书信息 D6 借阅信息 D3 书籍信息 D5 读者信息 2.3 数据字典 名字:图书类别信息别名: 使用地点与方式:输入,本地选择内容描述:图书类别信息图书类别类别编号附加信息:名字:登陆信息别名: 使用地点与方式:输
4、入内容描述:登陆信息用户名密码附加信息: 2.4 状态转换图 确定身份验证do/输入用户名和密码取消名或密码错误用户名或密码正确用户图书管理系统do/选择功能选择图书管理图书管理选择读者管理借阅管理选择图书读者管理图书借阅管理关于do/对图书信息进行操作do/对读者信息进行操作do/对图书借阅情况进行操作版本完成操作退出 三 系统设计 3.1 概要设计 添加借书信息3.5 查询结束信息3.4 添加还书信息3.3 添加读者类别2.9 修改读者类别2.8 删除读者类别2.7 添加读者信息2.6 修改读者信息2.5 删除读者信息2.4 添加图书类别1.7 编辑图书类别1.6 添加图书信息1.5 查询
5、图书信息1.3 图书管理 1.0读者管理 2.0图书借阅管理 3.0图书管理系统退出4.0借书管理 3.2还书管理 3.1 读者类别管理 2.2 读者信息管理 2.1 图书类别管理 1.2 图书信息管理1.1查询读者信息2.3编辑图书信息1.4 图书管理系统 HIPO 图 3.2 详细设计 (1)算法设计在此只给出读者信息管理的算法设计 添加读者信息 (流程图) 开始点击command1 Y Trim(Combo1.Text) = N Msgbox Y Trim(Text1.Text) N = Msgbox N Trim(Text2.Text) = Y Msgbox Y N Msgbox N
6、Trim Y(Combo2.Text) = Msgbox Msgbox NotIsDate (Text6.Text)Y rs_addreader N.EOF Msgbox (2)数据库设计这里的数据库采用Access,用ADO作为连接数据对象。1、建立Access 数据库启动Access,建立一个空的数据库book.mdb,如图8所示。使用程序设计器建立系统需要的表格如下。读者信息表2、连接数据在Visual Basic环境下,选择“工程”“引用”命令,在随后出现的对话框中选择“Microsoft ActiveX Data Objects 2.5 Library”,然后单击“确定”按钮Dim
7、conn As New ADODB.Connection 标记连接对象然后在子程序中,用如下的语句即可打开数据库:Dim sql As StringProvider = Microsoft.Jet.OLEDB.3.5.1 ;Persist Security Info=false;data source=D:图书管理系统database.mdbconn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdb3、设置ODBCVB的ADO对象是通过ODBC来访问数据库,所以还要建立ODBC数据引擎接口
8、。打开控制面板中的“管理工具”“数据源”(ODBC)单击“添加”按钮,出现“创建新数据源”对话框选择Microsoft Access Driver(*.mdb),单击“完成”按钮在“数据源名”文本框中添加一个名字,单击“确定”按钮完成系统默认连接设置。然后在ODBC话框中单击“确定”按钮完成ODBC设置。(3)界面设计1、创建主窗体主窗体代码在本项目中,子菜单事件都是Click事件Private Sub about_Click()Form1.ShowEnd SubPrivate Sub cxdz_Click() frmfindreaderinfo.ShowEnd SubPrivate Sub
9、cxjx_Click() frmfindborrowinfo.ShowEnd SubPrivate Sub cxtx_Click() frmfindbookinfo.ShowEnd SubPrivate Sub exit_Click() Unload MeEnd SubPrivate Sub printinfor_Click()DataReport1.ShowEnd SubPrivate Sub scdx_Click() frmmodifyreaderinfo.ShowEnd SubPrivate Sub scdz_Click() frmmodifyreaderstyle.ShowEnd Su
10、bPrivate Sub tjdx_Click() frmaddreaderinfo.ShowEnd SubPrivate Sub tjdz_Click() frmaddreaderstyle.ShowEnd SubPrivate Sub tjgy_Click() frmadduser.ShowEnd SubPrivate Sub tjhx_Click() frmbackbookinfo.ShowEnd SubPrivate Sub tjjx_Click() frmfindbookinfo.ShowEnd SubPrivate Sub tjts_Click() frmaddbookstyle.
11、ShowEnd SubPrivate Sub tjtx_Click() frmaddbookinfo.ShowEnd SubPrivate Sub xgdx_Click() frmmodifyreaderinfo.ShowEnd SubPrivate Sub xgdz_Click() frmmodifyreaderstyle.ShowEnd SubPrivate Sub xgtu_Click() frmmodifystyle.ShowEnd SubPrivate Sub xgtx_Click() frmmodifybookinfo.ShowEnd Sub2、创建各子窗体 在此只创建读者信息管理
12、模块 添加读者信息模块:Private Sub command1_Click()Dim rs_addreader As New ADODB.RecordsetDim conn As New ADODB.ConnectionDim sql As String If Trim(Combo1.Text) = Then MsgBox 请选择读者类别, vbOKOnly + vbExclamation, Combo1.SetFocus Exit SubEnd IfIf Trim(Text1.Text) = Then MsgBox 读者姓名不能为空, vbOKOnly + vbExclamation, T
13、ext1.SetFocus Exit SubEnd IfIf Trim(Text2.Text) = Then MsgBox 读者编号不能为空, vbOKOnly + vbExclamation, Text2.SetFocus Exit SubEnd IfIf Not IsDate(Text6.Text) Then MsgBox 请按照yyyy-mm-dd格式输入登记日期, vbOKOnly + vbExclamation, Text6.SetFocus Exit SubEnd IfIf Trim(Combo2.Text) = Then MsgBox 请选读者性别, vbOKOnly + vbE
14、xclamation, Combo2.SetFocus Exit SubEnd Ifconn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdbsql = select * from 读者信息 where 读者编号= & Text2.Text & rs_addreader.Open sql, conn, adOpenKeyset, adLockPessimisticIf rs_addreader.EOF Then rs_addreader.AddNew rs_addreader.Fields
15、(0) = Trim(Text1.Text) rs_addreader.Fields(1) = Trim(Text2.Text) rs_addreader.Fields(2) = Trim(Combo2.Text) rs_addreader.Fields(3) = Trim(Combo1.Text) rs_addreader.Fields(4) = Trim(Text3.Text) rs_addreader.Fields(5) = Trim(Text4.Text) rs_addreader.Fields(6) = Trim(Text5.Text) rs_addreader.Fields(7)
16、= Trim(Text6.Text) rs_addreader.Fields(8) = 0 rs_addreader.Update MsgBox 添加读者信息成功!, vbOKOnly, rs_addreader.CloseElse MsgBox 读者编号重复!, vbOKOnly + vbExclamation, Text2.SetFocus rs_addreader.Close Exit SubEnd IfEnd SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load()Dim rs_leibie As N
17、ew ADODB.RecordsetDim conn As New ADODB.ConnectionDim sql As StringProvider = Microsoft.Jet.OLEDB.3.5.1 ;Persist Security Info=false;data source=D:图书管理系统database.mdbconn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdbsql = select * from 读者类别rs_leibie.Open sql, conn, adO
18、penKeyset, adLockPessimisticrs_leibie.MoveFirstDo While Not rs_leibie.EOF Combo1.AddItem rs_leibie.Fields(0) rs_leibie.MoveNextLooprs_leibie.CloseCombo2.AddItem 男Combo2.AddItem 女End Sub查询读者信息模块:代码:Private Sub command1_Click()Dim rs_findreader As New ADODB.RecordsetDim conn As New ADODB.ConnectionDim
19、 sql As StringIf Check1.Value = vbChecked Then sql = 读者编号= & Trim(Text1.Text & ) & End IfIf Check2.Value = vbChecked Then If Trim(sql) = Then sql = 读者姓名= & Trim(Text2.Text & ) & Else sql = sql & and 类别= & Trim(Text2.Text & ) & End IfEnd IfIf Check3.Value = vbChecked Then If Trim(sql) = Then sql = 读者
20、类别= & Trim(Combo1.Text & ) & Else sql = sql & and 读者类别= & Trim(Combo1.Text & ) & End IfEnd Ifconn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdbIf Trim(sql) = Then MsgBox 请选择查询方式!, vbOKOnly + vbExclamation Exit SubEnd Ifsql = select * from 读者信息 where & sqlrs_findreader
21、.CursorLocation = adUseClientrs_findreader.Open sql, conn, adOpenKeyset, adLockPessimisticDataGrid1.AllowAddNew = FalseDataGrid1.AllowDelete = FalseDataGrid1.AllowUpdate = FalseIf rs_findreader.RecordCount = 0 Then MsgBox 查询不到该图书信息!, vbOKOnly + vbExclamationElse Set DataGrid1.DataSource = rs_findrea
22、derEnd IfEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load() Dim rs_find As New ADODB.Recordset Dim conn As New ADODB.Connection Dim sql As String sql = select * from 读者类别 conn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdb rs_find.Open sql, conn
23、, adOpenKeyset, adLockPessimistic rs_find.MoveFirst If Not rs_find.EOF Then Do While Not rs_find.EOF Combo1.AddItem rs_find.Fields(0) rs_find.MoveNext Loop Combo1.ListIndex = 0 End If rs_find.Close End Sub读者信息管理模块:代码:Option ExplicitDim rs_reader As New ADODB.RecordsetPrivate Sub cmdcancel_Click() rs
24、_reader.CancelUpdate DataGrid1.Refresh DataGrid1.AllowAddNew = False DataGrid1.AllowUpdate = False cmddel.Enabled = True cmdmodify.Enabled = True cmdupdate.Enabled = False cmdcancel.Enabled = FalseEnd SubPrivate Sub cmdmodify_Click() Dim answer As String On Error GoTo cmdmodify cmddel.Enabled = Fals
25、e cmdmodify.Enabled = False cmdupdate.Enabled = True cmdcancel.Enabled = True DataGrid1.AllowUpdate = True Exit Sub cmdmodify: If Err.Number 0 Then MsgBox Err.Description End IfEnd SubPrivate Sub cmdupdate_Click() If Not IsNull(DataGrid1.Bookmark) Then rs_reader.Update End If cmddel.Enabled = True c
26、mdmodify.Enabled = True cmdupdate.Enabled = False cmdcancel.Enabled = False MsgBox 修改成功!, vbOKOnly + vbExclamation, End SubPrivate Sub cmddel_Click() Dim answer As String On Error GoTo cmddel answer = MsgBox(确定要删除吗?, vbYesNo, ) If answer = vbYes Then DataGrid1.AllowDelete = True rs_reader.Delete rs_
27、reader.Update DataGrid1.Refresh Else Exit Sub End If cmddel: MsgBox Err.DescriptionEnd SubPrivate Sub Form_Load() Dim sql As String Dim conn As New Connection On Error GoTo loaderror conn.Open provider=Microsoft.Jet.OLEDB.4.0; data source= & App.Path & database.mdb sql = select * from 读者信息 rs_reader
28、.CursorLocation = adUseClient rs_reader.Open sql, conn, adOpenKeyset, adLockPessimistic cmdupdate.Enabled = False cmdcancel.Enabled = False DataGrid1.AllowAddNew = False DataGrid1.AllowDelete = False DataGrid1.AllowUpdate = False Set DataGrid1.DataSource = rs_reader Exit Subloaderror: MsgBox Err.Des
29、criptionEnd SubPrivate Sub Form_Unload(Cancel As Integer) Set DataGrid1.DataSource = Nothing rs_reader.CloseEnd Sub四 测试报告 添加读者信息: 修改删除读者信息: 查询读者信息五 设计心得通过这次课程设计,我们对应用数据库,编程、理解、动手及思维能力有了提高,我编制的这个程序,基本上实现了题目要求的功能,但是对于一些复杂情况的处理还是不足的,比如项目一多,运算速度就会变得很慢,甚至也可能出现一些数据处理得错误。这说明了一种良好的数据结构的选择与设计对一个程序的稳定性是多么的重要,而目前我们所学的是远远不够的。我们要通过多多练习,实践,增加自己的经验,熟练掌握好软件工程这门课程,才能开发出符合要求、具有实用性的程序出来。六 参考文献1 张海潘编著软件工程导论清华大学出版社,2006年。2 李梅主编VB实用教程(第版)人民邮电出版社,2000年。沈阳理工大学
限制150内