资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,Click to edit Master title style,第,12,章 图书借阅管理系统,课程描述,很多学校和单位都有自己的图书馆或阅览室,需要管理大量的图书和期刊杂志。图书借阅管理系统可以有效地管理图书资源,控制图书借阅的流程,对图书馆或阅览室的管理有很大的益处。,本章将讲述如何使用,Visual Basic + Oracle,开发图书借阅管理系统。此实例具有很强的实用性,可以帮助读者更方便地了解开发,Oracle,数据库应用程序的过程。,本章知识点,图书借阅管理系统总体设计,图书借阅管理系统各模块详细设计,开发,Visual Basic + Oracle,数据库应用系统的完整过程,12.1,系统总体设计,系统功能描述,创建数据库用户,数据库表结构设计,系统功能描述,创建数据库用户,-,创建用户,CREATE USER BOOKMAN,IDENTIFIED BY BOOKMAN,DEFAULT TABLESPACE USERS,TEMPORARY TABLESPACE TEMP;,-,设置角色权限,GRANT CONNECT TO BOOKMAN;,GRANT RESOURCE TO BOOKMAN;,-,设置系统权限,GRANT UNLIMITED TABLESPACE TO BOOKMAN;,数据库表结构设计,表,BookType,-,创建表,BookType,CREATE TABLE,BOOKMAN.BookType,(,TypeId,Number Primary Key,TypeName,Varchar2(50) NOT NULL,Describe Varchar2(400),UpperId,Number,);,编号,字段名称,数据结构,说 明,1,TypeId,Number,分类编号,2,TypeName,Varchar2 50,分类名称,3,Describe,Varchar2 400,描述信息,4,UpperId,Number,上级分类的编号,数据库表结构设计,表,BookInfo,-,创建表,BookInfo,CREATE TABLE,BOOKMAN.BookInfo,(,BookNo,Varchar2(50) Primary Key,BookName,Varchar2(50) NOT NULL,AuthorVarchar2(50) NOT NULL,PublisherVarchar2(50),Ptimes,Varchar2(50),Bprice,Number(8,2),Btype,Number,TotalNum,Number,);,编号,字段名称,数据结构,说 明,1,BookNo,Varchar2 50,书号,2,BookName,Varchar2 50,图书名称,3,Author,Varchar2 50,作者,4,Publisher,Varchar2 50,出版社,5,Ptimes,Varchar2 50,版次,6,Bprice,Number( 8, 2),价格,7,Btype,Number,图书分类,8,TotalNum,Number,当前库存,数据库表结构设计,表,StoreIn,-,创建表,StoreIn,CREATE TABLE,BOOKMAN.StoreIn,(,StoreId,Varchar2(50) Primary Key,BookNo,Varchar2(50) NOT NULL,BookNum,Number NOT NULL,StorePos,Varchar2(200),EmpName,Varchar2(50),OptDate,Char(10),);,编号,字段名称,数据结构,说 明,1,StoreId,Varchar2 50,入库编号,2,BookNo,Varchar2 50,书号,3,BookNum,Number,入库数量,4,StorePos,Varchar2 200,图书存放位置,5,EmpName,Varchar2 50,经办人,6,OptDate,Char 10,入库日期,数据库表结构设计,表,Books,-,创建表,Books,CREATE TABLE,BOOKMAN.Books,(,BookNo,Varchar2(50) Primary Key,BookNum,Number NOT NULL,CountNum,Number,EmpName,Varchar2(50),CountDate,Char(10),);,编号,字段名称,数据结构,说 明,1,BookNo,Varchar2 50,书号,2,BookNum,Number,图书原始数量,3,CountNum,Number,图书盘点数量,4,EmpName,Varchar2 50,盘点人,5,CountDate,Char 10,盘点日期,数据库表结构设计,表,Cards,-,创建表,Cards,CREATE TABLE,BOOKMAN.Cards,(,Cardno,Varchar2(50) Primary Key,DepName,Varchar2(50) NOT NULL,EmpName,Varchar2(50),Idcard,Varchar2(50),CreateDate,Char(10),FlagNumber(1),);,编号,字段名称,数据结构,说 明,1,Cardno,Varchar2 50,借阅证编号,2,DepName,Varchar2 50,所属部门,3,EmpName,Varchar2 50,员工姓名,4,Idcard,Varchar2 50,有效证件号码,5,CreateDate,Char 10,发证日期,6,Flag,Number 1,挂失标记,数据库表结构设计,表,Cards,-,创建表,Borrow,CREATE TABLE,BOOKMAN.Borrow,(BidNumber Primary Key,BookNo,Varchar2(50) NOT NULL,Cardno,Varchar2(50) NOT NULL,Bdate,Char(10),Rdate,Char(10),RRdate,Char(10),ForfeitNumber(8,2),FlagNumber(1),);,编号,字段名称,数据结构,说 明,1,Bid,Number,编号,2,BookNo,Varchar2 50,书号,3,Cardno,Varchar2 50,借阅证编号,4,Bdate,Char 10,借出日期,5,Rdate,Char 10,应归还日期,6,RRDate,Char 10,实际归还日期,/,挂失日期,7,Forfeit,Number (8,2),超期罚款金额,8,Flag,Number(1),借阅标记(,0-,借阅,,1-,续借,,2-,归还,,3-,挂失),数据库表结构设计,表,Users,-,创建表,Users,CREATE TABLE,BOOKMAN.Users,(,UserName,Varchar2(50) Primary Key,UserPwd,Varchar2(50) NOT NULL,);,INSERT INTO,BOOKMAN.Users,VALUES(Admin, Admin),编号,字段名称,数据结构,说 明,1,UserName,Varchar2 50,用户名,2,UserPwd,Varchar2 50,密码,12.2,设计工程框架,创建工程,添加模块,添加类模块,创建工程,首先需要创建工程存储的目录。运行,Visual Basic 12.0,主程序,并选择新建“标准,EXE,”工程。新建工程后,在,Visual Basic,窗口中有一个缺省的窗体,Form1,,在此基础上设计系统的主界面。,选择“工程”菜单中的“工程,1,属性”命令,在“工程属性”对话框中,将工程名设置为,Books,。单击“保存”按钮,将工程存储为,Books.vbp,,将,Form1,窗体保存为,FrmMain.frx,。,添加模块,Const,用来管理工程中的常量;,DbFunc,用来管理工程中与数据库操作相关的声明、变量和函数;,GeneralFunc,用来管理工程中一些通用的自定义函数;,Variable,用来管理工程中的全局变量。,添加类模块,BookType,类的成员函数,函数名,具体说明,Init,初始化成员变量,Delete,删除指定的图书分类记录。参数,TmpId,表示要删除的图书类型编号,GetId,根据指定的图书分类名称,读取图书分类编号。参数,TmpName,表示指定的分类名称,GetInfo,读取指定的图书分类记录。参数,TmpId,表示要读取的图书分类编号,GetName,根据指定的图书分类编号,读取图书分类名称。参数,TmpId,表示指定的图书分类编号,GetNewId,生成新记录的图书分类编号,HaveSon,判断指定的图书分类是否存在下一级分类。参数,TmpUpperId,表示指定的图书分类编号,In_DB,判断指定的图书分类名称是否已经在数据库中。参数,TypeName,表示指定的分类名称,Insert,插入新的图书分类记录,Load_by_Upper,读取指定图书分类的所有子分类。参数,UpperId,表示指定的图书分类的编号,Update,修改指定的图书分类记录。参数,TmpId,表示要修改的图书分类的编号,表,12.8,BookType,类的成员函数,添加类模块,BookInfo,类的成员函数,函数名,具体说明,Init,初始化成员变量,Delete,删除指定的图书信息记录。参数,TmpBookNo,表示要删除的图书信息编号,GetInfo,读取指定的图书信息记录。参数,TmpBookNo,表示要读取的图书信息编号,GetName,根据指定的图书编号,读取图书信息名称。参数,TmpBookNo,表示指定的图书信息编号,GetNo,根据指定的图书名称,读取图书信息编号。参数,TmpName,表示指定的图书名称,GetTotalNum,返回指定图书的库存数量,In_DB,判断指定的图书名称是否已经在数据库中。参数,TmpBookName,表示指定的图书名称,Insert,插入新的图书信息记录,Update,修改指定的图书信息记录。参数,OriBookNo,表示要修改的图书编号,UpdateStoreNum,图书入库时,更改指定图书的基本库存数量。参数,OriBookNo,表示要修改的图书编号,,addNum,表示入库的图书数量,UpdateTotalNum,图书盘点时,更改指定图书的库存数量。参数,OriBookNo,表示要修改的图书编号,,CountNum,表示入库的图书数量,添加类模块,StoreIn,类的成员函数,函数名,具体说明,Init,初始化成员变量,HaveBook,判断入库记录中是否包含指定的图书信息。参数,TmpBookNo,表示指定的图书编号,GetInfo,读取指定的入库记录。参数,TmpStoreId,表示要读取的入库记录编号,Insert,插入新的入库信息记录,添加类模块,Book,类的成员函数,函数名,具体说明,Init,初始化成员变量,Delete,删除指定的库存图书记录。参数,TmpNo,表示要删除的图书编号,GetNum,读取指定图书的库存数量。参数,TmpNo,表示图书编号,In_DB,判断指定的图书是否已经在库存中。参数,TmpNo,表示图书编号,Insert,插入新的库存图书记录,添加类模块,Cards,类的成员函数,函数名,具体说明,Init,初始化成员变量,Delete,删除指定的借阅证记录。参数,TmpNo,表示要删除的借阅证编号,GetFlag,读取指定借阅证的挂失标记。参数,TmpNo,表示指定的借阅证编号,GetInfo,读取指定的借阅证记录。参数,TmpNo,表示要读取的借阅证编号,Insert,插入新的借阅证记录,Update,修改指定的借阅证记录。参数,TmpNo,表示要修改的借阅证编号,UpdateFlag,更改借阅证的挂失状态。参数,TmpNo,表示要修改的借阅证编号,参数,FlagNum,表示挂失状态,添加类模块,Borrow,类的成员函数,函数名,具体说明,Init,初始化成员变量,Delete,删除指定的借阅记录。参数,TmpId,表示要删除的借阅编号,GetInfo,读取指定的借阅记录。参数,TmpId,表示要读取的借阅编号,GetNewId,生成新记录的借阅信息编号,Insert,插入新的借阅记录,Update,修改指定的借阅记录。参数,TmpId,表示要删除的借阅编号,UpdateFlag,更新借阅标志。,0,表示借阅,,1,表示续借,,2,表示归还,,3,表示挂失,UpdateLost,更新图书挂失罚款记录及日期,UpdateReturn,更新图书归还日期,添加类模块,Users,类的成员函数,函数名,具体说明,Init,初始化成员变量,Delete,删除指定的用户记录。参数,TmpUser,表示要删除的用户名,GetInfo,读取指定的记录。参数,TmpUser,表示要读取数据的用户名,In_DB,判断指定的用户名是否已经在数据库中。参数,TmpUsers,表示用户名,Insert,插入新的用户记录,Update,修改指定的用户记录。参数,TmpUser,表示要修改的用户名,12.3,系统主界面和登录模块设计,设计主界面,设计登录模块,主界面,主界面窗体的属性,窗体属性,设置值,具体说明,名称,FrmMain,设置窗体名称,BorderStyle,1 Fixed Single,设置窗体的边框属性,Caption,图书借阅管理系统,窗体的标题条文本,MaxButton,True,取消最大化按钮,MinButton,True,激活最小化按钮,Picture,ImgMain.jpg,设置窗体背景,StartUpPosition,2 ,屏幕中心,设置窗体弹出时,位置在屏幕中心,登录窗体,12.4,图书分类管理模块设计,使用,TreeView,控件管理图书分类的方法,设计图书分类信息编辑窗体,设计图书分类信息管理窗体,设计图书分类选择窗体,添加控件,设计图书分类信息编辑窗体,设计图书分类信息管理窗体,设计图书分类选择窗体,窗体名为,FrmBookTypeSel,12.5,图书信息管理模块设计,设计图书信息编辑窗体,设计图书信息管理窗体,设计图书选择窗体,设计图书信息编辑窗体,图书信息编辑窗体可以用来添加和修改图书的基本信息,窗体名称为,FrmBookInfoEdit.,设计图书信息管理窗体,图书基本信息管理窗体的名称为,FrmBookInfo,。,设计图书选择窗体,在图书借阅时,需要选择图书,选择图书窗体的名称为,FrmBookSel,。,12.6,图书库存管理模块设计,设计图书库存编辑模块,设计图书库存管理模块,设计库存盘点编辑模块,设计库存盘点管理模块,设计图书库存编辑模块,创建一个新窗体,窗体名称设置为,FrmStoreInEdit,。,设计图书库存管理模块,图书库存管理窗体的名称为,FrmStoreIn,,窗体布局如图,12.14,所示。,设计库存盘点编辑模块,库存盘点的作用是直接修改图书的库存数量,保证系统数据的准确性。库存盘点编辑窗体的名称为,FrmStoreCountEdit,。,设计库存盘点管理模块,创建一个新窗体,窗体名称设置为,FrmStoreCount,。,12.7,借阅证件管理模块设计,设计借阅证信息编辑窗体,设计借阅证信息管理窗体,设计图书借阅记录窗体,设计借阅证信息编辑窗体,借阅证信息编辑窗体可以用来添加和修改借阅证信息。借阅证信息编辑窗体的名称为,FrmCardsEdit,。,设计借阅证信息管理窗体,借阅证信息管理窗体的名称为,FrmCards,,窗体的布局如图,12.18,所示。,设计图书借阅记录窗体,图书借阅记录窗体的名称为,FrmRecord,,窗体布局如图,12.19,所示。,12.8,图书借阅管理模块设计,设计图书借阅信息编辑窗体,设计图书借阅信息管理窗体,设计图书催还信息管理窗体,设计图书借阅信息编辑窗体,图书借阅信息编辑窗体可以用来添加和修改图书借阅信息,包括图书续借、图书归还、图书挂失等。窗体名称为,FrmBorrowEdit,。,设计图书借阅信息管理窗体,图书借阅信息窗体的名称为,FrmBorrow,。,设计图书催还信息管理窗体,当读者在窗体,FrmBorrow,中单击“图书催还”按钮时,将打开“图书催还记录”窗体,显示近期需要归还的图书记录。图书催还信息窗体的名称为,FrmPush,。,
展开阅读全文