Oracle10g数据库应用教程授课教师:职务:第12章图书借阅管理系统课程描述很多学校和单位都有自己的图书馆或阅览室,需要管理大量的图书和期刊杂志。图书借阅管理系统可以有效地管理图书资源,控制图书借阅的流程,对图书馆或阅览室的管理有很大的益处。本章将讲述如何使用VisualBasic+Oracle开发图书借阅管理系统。此实例具有很强的实用性,可以帮助读者更方便地了解开发Oracle数据库应用程序的过程。本章知识点图书借阅管理系统总体设计图书借阅管理系统各模块详细设计开发VisualBasic+Oracle数据库应用系统的完整过程12.1系统总体设计系统功能描述创建数据库用户数据库表结构设计系统功能描述图书借阅管理系统图书分类管理图书基本信息管理图书库存管理借阅证管理图书借阅管理创建数据库用户--创建用户CREATEUSERBOOKMANIDENTIFIEDBYBOOKMANDEFAULTTABLESPACEUSERSTEMPORARYTABLESPACETEMP;--设置角色权限GRANTCONNECTTOBOOKMAN;GRANTRESOURCETOBOOKMAN;--设置系统权限GRANTUNLIMITEDTABLESPACETOBOOKMAN;数据库表结构设计——表BookType--创建表BookTypeCREATETABLEBOOKMAN.BookType(TypeIdNumberPrimaryKey,TypeNameVarchar2(50)NOTNULL,DescribeVarchar2(400),UpperIdNumber);编号字段名称数据结构说明1TypeIdNumber分类编号2TypeNameVarchar250分类名称3DescribeVarchar2400描述信息4UpperIdNumber上级分类的编号数据库表结构设计——表BookInfo--创建表BookInfoCREATETABLEBOOKMAN.BookInfo(BookNoVarchar2(50)PrimaryKey,BookNameVarchar2(50)NOTNULL,AuthorVarchar2(50)NOTNULL,PublisherVarchar2(50),PtimesVarchar2(50),BpriceNumber(8,2),BtypeNumber,TotalNumNumber,);编号字段名称数据结构说明1BookNoVarchar250书号2BookNameVarchar250图书名称3AuthorVarchar250作者4PublisherVarchar250出版社5PtimesVarchar250版次6BpriceNumber(8,2)价格7BtypeNumber图书分类8TotalNumNumber当前库存数据库表结构设计——表StoreIn--创建表StoreInCREATETABLEBOOKMAN.StoreIn(StoreIdVarchar2(50)PrimaryKey,BookNoVarchar2(50)NOTNULL,BookNumNumberNOTNULL,StorePosVarchar2(200),EmpNameVarchar2(50),OptDateChar(10));编号字段名称数据结构说明1StoreIdVarchar250入库编号2BookNoVarchar250书号3BookNumNumber入库数量4StorePosVarchar2200图书存放位置5EmpNameVarchar250经办人6OptDateChar10入库日期数据库表结构设计——表Books--创建表BooksCREATETABLEBOOKMAN.Books(BookNoVarchar2(50)PrimaryKey,BookNumNumberNOTNULL,CountNumNumber,EmpNameVarchar2(50),CountDateChar(10));编号字段名称数据结构说明1BookNoVarchar250书号2BookNumNumber图书原始数量3CountNumNumber图书盘点数量4EmpNameVarchar250盘点人5CountDateChar10盘点日期数据库表结构设计——表Cards--创建表CardsCREATETABLEBOOKMAN.Cards(CardnoVarchar2(50)PrimaryKey,DepNameVarchar2(50)NOTNULL,EmpNameVarchar2(50),IdcardVarchar2(50),CreateDateChar(10),FlagNumber(1));编号字段名称数据结构说明1CardnoVarchar250借阅证编号2DepNameVarchar250所属部门3EmpNameVarchar250员工姓名4IdcardVarchar250有效证件号码5CreateDateChar10发证日期6FlagNumber1挂失标记数据库表结构设计——表Cards--创建表BorrowCREATETABLEBOOKMAN.Borrow(BidNumberPrimaryKey,BookNoVarchar2(50)NOTNULL,CardnoVarchar2(50)NOTNULL,BdateChar(10),RdateChar(10),RRdateChar(10),ForfeitNumber(8,2),FlagNumber(1));编号字段名称数据结构说明1BidNumber编号2BookNoVarchar250书号3CardnoVarchar250借阅证编号4BdateChar10借出日期5RdateChar10应归还日期6RRDateChar10实际归还日期/挂失日期7ForfeitNumber(8,2)超期罚款金额8FlagNumber(1)借阅标记(0-借阅,1-续借,2-归还,3-挂失)数据库表结构设计——表Users--创建表UsersCREATETABLEBOOKMAN.Users(UserNameVarchar2(50)PrimaryKey,UserPwdVarchar2(50)NOTNULL);INSERTINTOBOOKMAN.UsersVALUES('Admin','Admin')编号字段名称数据结构说明1UserNameVarchar250用户名2UserPwdVarchar250密码12.2设计工程框架创建工程添加模块添加类模块创建工程首先需要创建工程存储的目录。运行VisualBasic12.0主程序,并选择新建“标准EXE”工程。新建工程后,在VisualBasic窗口中有一个缺省的窗体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.8BookType类的成员函数添加类模块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设置窗体名称BorderSt