《图书信息管理系统实训指导书.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统实训指导书.docx(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、VB实训指导书 图书信息管理系统广西机电职业技术学院一、实训周的具体按排和要求1、实训对象:07级电子商务专业学生2、实训时间:1周3、实训内容:开发图书信息管理系统4、实训目的:(1) 进一步熟悉 VB的集成开发环境,掌握VB设计应用程序的主要步骤,从而加深对面向可视化对象编程方法的认识。(2) 了解并初步掌握用VB开发应用程序界面、图形图像、数据库、多媒体等实用内容。(3) 通过实训巩固一学期来所学到的VB知识,熟练掌握计算机操件技能,培养开发的思想,同时产生浓厚的兴趣,为今后进一步学习打下基础。5、实训要求说明: 指导书给出的内容只是完成基本功能,其它功能请查阅相关参考书。 实训上机期间
2、,每个学生都要认真听从指导老师及实验老师的指挥,按时按量独立完成实训的内容。如有违纪者,将取消其实训的上机资格,并且其实训成绩当零分处理。 实训期间要严格按照实训报告格式要求认真书写实训报告(电子档与手写稿(或打印稿),实训结束后将实训作品和实训报告一起上交指导老师批改、评分。 实训后期,将酌情安排现场测试与答辩,并将此项分数按一定比例打入实训成绩总评。二、实训报告(设计说明书)书写的格式要求1、实训报告封面要依次填写设计的科目、题目、专业、班级、姓名、学号、日期、指导老师等项目。2、报告内页书写的具体内容应包含以下几个方面:1) 实训名称:即实训题目。2) 实训目的:即通过本次实训要得到哪些
3、方面的主要训练,将学会掌握哪些相关专业技能。3) 实训环境:既设备(硬件、系统平台)、开发工具、方法手段等。4) 实训计划:做出本次实训的总体计划并制定出实施计划的具体步骤(可按完成功能模块来划分)及进度安排,列出时间表。5) 关键技术与解决途径:本次实训的技术要点(可按实训计划里制定的具体步骤一一编写),并要求写出如何解决这些技术要点(要求编写源代码并附上代码说明,必要时请附上截图)。6) 自我评价:即总结本次实训的个人心得体会。包括对这次实训任务完成情况的评价;实训的收获与预期目标是否一致的评价以及对实训组织、安排、管理等方面的评价。这部分不仅要求写出问题,更希望写出你的建议。三、实训成绩
4、的评定标准指导老师根据学生实训期间的表现、实训内容的完成情况以及所写的实训报告(设计说明书)给予该生优、良、中、及格、不及格等综合评定等级,并作为该实训课程的期评成绩上报成绩。四、本次实训的具体内容:图书信息管理系统系统功能分析:l 读者基本信息的输入l 读者基本信息的查询(要求能按读者编号进行查询)l 读者基本信息的修改l 图书信息的输入l 图书信息的修改l 借阅信息的查询(要求能根据人来查书、根据书来查人)l 读者借书l 读者还书以下是附加的功能:(选做)l 根据读者姓名来查询读者信息l 根据书名来查询图书信息l 利用新窗口来修改读者信息和图书信息显示所有图书查询单册增加新书删除图书根据书
5、来查人根据人来查书显示所有借阅情况借书还书查询一个读者增加一个读者删除一个读者显示所有读者读者管理图书管理借阅管理图书管理系统系统功能模块: 一、图书信息管理系统功能介绍1主界面图1 程序运行后主界面的效果如图1所示。可以看到,窗体的上部是菜单栏,包含3个菜单项,即:读者管理、图书管理和借阅管理。2读者管理选择菜单“读者管理”,如图2所示,该菜单项中有4个子菜单项:显示所有读者、查询一个读者、增加一个读者和删除一个读者。选择菜单“读者管理显示所有读者”,则在主界面的数据表格中列出所有的读者信息,如图3所示。选择菜单“读者管理查询一个读者”,弹出对话框如图4所示,要求输入要查询的读者编号信息。输
6、入读者编号后单击“查询”按钮,则在主界面的数据表格中列出该读者的信息;否则,系统提示用户“查无此人”。选择菜单“读者管理增加一个读者”,弹出对话框如图5所示,要求输入读者编号和读者姓名,输入完整的信息后单击保存按钮,系统判断是否可以向数据库中添加该读者信息,如果添加成功,则在主界面的数据表格中列出数据库中所有的读者信息。选择菜单“读者管理删除一个读者”,弹出对话框如图6所示,要求输入读者编号,输入完整的信息后单击“删除”按钮,若该删除操作成功,则在主界面的数据表格中显示剩余的所有读者信息。 图2 图3 图4图5 图63图书管理选择菜单“图书管理”,如图7所示,该菜单项中有4个子菜单项:显示所有
7、图书、查询单册、增加新书和删除图书。该菜单项功能与读者管理部分类似,在此不再重复。4借阅管理选择菜单“借阅管理”,如图8所示。该菜单项中有5个子菜单项:显示所有借阅情况、借书、还书、根据书来查人和根据人来查书。图7 图8选择菜单“借阅管理显示所有借阅情况”,则在主界面的数据表格中显示所有的借阅记录。选择菜单“借阅管理借书”,弹出对话框如图9所示,要求用户输入所借图书编号和读者编号。输入完整的信息后单击“借书”按钮,如果借书成功,则在主界面的数据表格中列出当前读者的借阅情况。选择菜单“借阅管理还书”,弹出对话框如图10所示,要求输入所借图书编号,输入完整的信息后单击“还书”按钮,如果还书成功,则
8、在主界面的数据表格中列出当前读者还书后的借阅情况。 图9 图10选择菜单“借阅管理根据人来查书”,弹出对话框如图11所示,要求输入读者编号,输入完整的信息后单击“查询”按钮,如果查询操作成功,则在主界面的数据表格中列出当前读者所有的借阅情况。选择菜单“借阅管理根据书来查人”,弹出对话框如图12所示,系统显示相应的信息提示,如果查询操作成功,则在主界面的数据表格中列出当前图书的借阅情况。 图11 图12二、创建数据库打开Access,建立一个名为bookdb的数据库,数据库中有两张数据表:book、borrow和reader 。三张表的字段信息如下:表1 book表项内容字段名称数据类型字段大小
9、bookid文本15bookname文本100bookstate文本4(将bookid字段设为主键)表2 borrow表项内容字段名称数据类型字段大小bookid文本15readerid文本15(将bookid字段设为主键)表3 reader表项内容字段名称数据类型字段大小readerid文本15readername文本20booknum文本4(将readerid字段设为主键)三、创建数据源(ODBC)基于SQL的ODBC(Open DataBase Connectivity,开放式数据库连接)是Microsoft公司在1989年退出的连接外部数据库的标准,若采用这套标准,一个应用程序就可以通
10、过一组通用的代码访问不同的数据库管理系统。在Windows XP操作系统环境下,本实例的ODBC设置步骤如下:1 进入“控制面板管理工具”,双击“数据源(ODBC)”,出现“ODBC数据源管理器”,如图13所示。 图13 图142 单击“添加”按钮,出现创建数据源对话框,如图14所示。3 选择“Driver Do Microsoft Access (*.mdb)”,单击完成按钮,出现ODBC Microsoft Access安装对话框,如图15所示,在数据源一项中输入“book”。4 单击“选择”按钮,出现选择数据库对话框,如图16所示,首先选择数据库所在的驱动器,然后在目录中选择数据库的路径
11、,这样在“数据库名”一栏中就会列出相应的Access数据库,然后单击选定数据库“bookdb”。 图15 图165 单击确定按钮,系统自动返回ODBC数据源管理器,数据源“book”创建成功。四、图书管理系统实现该图书管理系统的工程名称为BookManSys.vbp,该工程包含所有文件如图17所示。 图171新建工程新建工程,并在工程资源管理器中将工程名称属性改为:BookManSys.vbp。选择菜单“工程部件”,从控件列表中选中如下选项:Microsoft ADO Data Control 6.0 (OLEDB)Microsoft DataGrid Control 6.0 (OLEDB)(
12、1) 在“工程资源管理器”窗口中单击鼠标右键,选择“添加添加模块”。单击打开按钮,然后在该模块的“代码编辑窗口”中添加代码如下:Public ActFlag As Boolean2FrmMain窗体FrmMain窗体的设计步骤如下:(2) 选中“Form1”窗体,将该窗体的“名称”属性改为“frmMain”,“Caption”属性改为“图书管理系统”。在窗体上设计一个菜单,该菜单结构见表4。(3) 在窗体上添加一个框架控件(Frame),将其“Caption”属性删除,“BorderStyle”属性选择“0None”。在Fram1中添加一个数据表格(DataGrid),将其“名称”属性设置为“
13、DataGrid”,“Visible”属性设置为False。(4) 向窗体中添加两个ADO数据控件(Adodc),将“Adodc1”的“名称”属性设置为“Adodc”,将“Adodc2”的“名称”属性设置为“AdodcTemp”,“Visible”属性均设置为False。这两个控件属性列表中的“ConnectionString”属性值均按如下方法设置。(5) 单击,弹出属性页对话框,如图18所示。(6) 单击“生成”按钮,进入“数据链接属性”对话框,如图19所示。图18 图19(7) 选择“Microsoft OLE DB Provider for ODBC Drivers”,单击“下一步”按
14、钮,由“提供者”选项卡跳到“连接”选项卡,如图20所示。选中“使用数据源名称”,在该项下拉列表中选择“book”,然后单击“确定”按钮,系统自动回到属性页对话框,单击确定按钮即可。 图20(8) 进入frmMain窗体的代码视图,添加如下代码:Public Sub DisplayGrid(CaptionStr As String)将临时ADO数据控件中的RecordSource属性赋值给和数据表格相连的ADO数据控件 Adodc.RecordSource = AdodcTemp.RecordSource Adodc.Refresh 将数据表格绑定到ADO数据控件 Set DataGrid.Da
15、taSource = Adodc DataGrid.Refresh 修改数据表格的标题 DataGrid.Caption = CaptionStr 将数据表格设置为用户可见 DataGrid.Visible = TrueEnd Sub表4 菜单结构设置菜单项名称读者管理ReaderMan.显示所有读者DispAllReader.查询一个读者FindOneReader.增加一个读者AddReader.删除一个读者DelReader图书管理BookMan.显示所有图书DispAllBook.查询单册FindOneBook.增加新书AddBook.删除图书DelBook借阅管理BorrowMan.显
16、示所有借阅情况DispAllBor.借书Borrow.还书Return.根据人来查书ReaderToBook.根据书来查人BookToReader3显示所有读者(9) 选择菜单“读者管理显示所有读者”,在代码编辑窗口中添加以下代码:Private Sub DispAllReader_Click() Dim RecCount As Integer 从数据库表reader中查找所有的读者记录 AdodcTemp.RecordSource = select readerid as & 读者编号 & _, readername as & 读者姓名 & ,booknum as & 借阅图书册数 _& f
17、rom reader AdodcTemp.Refresh RecCount = AdodcTemp.Recordset.RecordCount 如果查到的记录数 0,则显示所有读者信息,否则提示未查到任何读者记录,然后显示一个空 的数据表格。 If RecCount 0 Then DisplayGrid (显示所有读者) Else MsgBox 未查到任何读者记录!, , 提示 DisplayGrid (显示所有读者) Exit Sub End IfEnd Sub4查询一个读者(10) 选择菜单“读者管理查询一个读者”,在代码编辑窗口中添加以下代码:Private Sub FindOneRea
18、der_Click() Dim RecCount As Integer 将标志变量置为假 ActFlag = False 显示查询一个读者窗体 frmFindOneReader.Show vbModal 若是在查询一个读者窗体中已经将ActFlag修改为True时,则查看所查到的记录条数,如果查到的 记录条数 0时,刷新数据表格,显示查询结果 If ActFlag Then RecCount = AdodcTemp.Recordset.RecordCount If RecCount 0 Then DisplayGrid (查询一个读者) End If End If ActFlag = Fals
19、eEnd Sub(11) 为工程添加一个新的窗体,将新窗体的“名称”属性改为“frmFindOneReader”,“Caption”属性改为“查询一个读者”。(12) 在窗体上添加一个框架控件(Frame)和一个ADO数据控件(Adodc),在Frame1中添加一个命令按钮(CommandButton)、一个标签(Label)和一个文本框(TextBox)。(13) 修改frmFindOneReader窗体控件的属性,见表5。表5 frmFindOneReader窗体控件属性控件名称属性名称属性设置值Frame1 Caption输入查询条件Label1 Caption读者编号Text1名称Tx
20、tReaderidTextCommand1名称CmdFindCaption查询Adodc1名称AdodcVisibleFalse(14) 根据frmMain主界面中设置Adodc控件的方法来设置本窗体的Adodc的属性,完成以上操作后frmFindOneReader窗体的效果如图21所示。 图21(15) 双击“查询”按钮,在代码编辑窗口中添加以下代码:Private Sub CmdFind_Click() Dim RecCount As Integer 判断用户是否输入了读者编号信息,如果没有输入信息,则发出提示退出子程序 If Trim(TxtReaderid.Text) = Then M
21、sgBox 查询条件不能为空,请填写!, , 提示 Exit Sub End If 根据读者编号查询读者信息 Adodc.RecordSource = select readerid as & 读者编号 _ & , readername as & 读者姓名 & ,booknum as _ & 借阅图书册数 & from reader where readerid= & _ & Trim(TxtReaderid.Text) & Adodc.Refresh 如果查到该读者信息则释放当前窗体,回到主界面在数据表格上显示查到的读者信息 RecCount = Adodc.Recordset.Record
22、Count If RecCount 0 Then frmMain.AdodcTemp.RecordSource = select readerid as _ & 读者编号 & , readername as & 读者姓名 _ & ,booknum as & 借阅图书册数 _ & from reader where readerid= _ & & Trim(TxtReaderid.Text) & frmMain.AdodcTemp.Refresh 将标志变量置为真 ActFlag = True Unload Me Else 如果没有查到该读者的信息则发出提示,退出子程序 MsgBox 查无此人!
23、, , 提示 Exit Sub End IfEnd Sub5增加一个读者(16) 选择菜单“读者管理增加一个读者”,在代码编辑窗口中添加以下代码:Private Sub AddReader_Click() 将标志变量置为假 ActFlag = False 显示增加一个读者窗体 frmAddReader.Show vbModal If ActFlag Then 如果需要刷新数据表格,则显示所有读者信息 DispAllReader_Click End If ActFlag = FalseEnd Sub(17) 为工程添加一个新的窗体,讲窗体的名称属性改为“frmAddReader”,Caption
24、属性改为“增加一个读者”。(18) 在窗体上添加一个框架控件(Frame),然后在Frame1中添加一个命令按钮,两个标签,两个文本框和一个ADO数据控件(Adodc)。(19) 修改frmAddReader窗体控件的属性,见表6。表6 frmAddReader窗体控件属性控件名称属性名称属性设置值 Frame1 Caption 输入数据 Label1Caption 读者编号 Label2Caption 读者姓名Text1Text 名称 TxtReaderidText2Text名称 TxtReaderNameCommand1名称 CmdSave Caption 保存Adodc1名称 Adodc
25、Visible False(20) 运用frmMain主界面中设置Adodc的方法来设置本窗体的Adodc,完成后的frmAddReader窗体效果如图22所示。 图22(21) 双击“保存”按钮,在代码编辑窗口中添加以下代码:Private Sub CmdSave_Click() Dim RecCount As Integer 判断是否输入了读者编号和读者姓名,如果没有输入信息,则发出提示并退出子程序 If Trim(TxtReaderid.Text) = Or Trim(TxtReaderName.Text) = Then MsgBox 请将内容填写完整!, , 提示 Exit Sub E
26、nd If 根据读者编号信息查找该读者是否已经存在 Adodc.RecordSource = select * from reader where readerid= _ & & Trim(TxtReaderid.Text) & Adodc.Refresh 如果该读者已经存在,则发出提示,并退出子程序 RecCount = Adodc.Recordset.RecordCount If RecCount 0 Then MsgBox 已经存在此读者编号,请重新设置!, , 提示 Exit Sub End If 向数据库表book中添加新的读者记录 Adodc.RecordSource = sele
27、ct * from reader Adodc.Refresh Adodc.Recordset.AddNew Adodc.Recordset.Fields(readerid) = Trim(TxtReaderid.Text) Adodc.Recordset.Fields(readername) = Trim(TxtReaderName.Text) Adodc.Recordset.Fields(booknum) = 0 Adodc.Recordset.Update Adodc.Refresh 将标志变量置为真 ActFlag = True Unload MeEnd Sub6删除一个读者(22) 选
28、择菜单“读者管理删除一个读者”,在代码编辑窗口中添加以下代码:Private Sub DelReader_Click() 将标志变量置为假 ActFlag = False 显示删除一个读者窗体 frmDelReader.Show vbModal 判断是否需要刷新数据表格,如果需要则在主界面的数据表格中显示所有的读者信息 If ActFlag Then DispAllReader_Click End If ActFlag = FalseEnd Sub(23) 为工程添加一个新的窗体,将新窗体的“名称”属性改为“frmDelReader”,“Caption”属性改为“删除一个读者”。(24) 在窗
29、体 上添加一个框架控件(Frame),在Frame1中添加一个命令按钮、一个标签、一个文本框和一个ADO数据控件。(25) 修改frmDelReader窗体控件的属性,见表7。表7 FrmDelReader窗体控件属性控件名称属性名称属性设置值Frame1Caption 输入编号Label1Caption 读者编号Text1名称TxtReaderidTextCommand1名称CmdDelCaption删除Adodc1名称AdodcVisibelFalse(26) 运用frmMain主界面中设置Adodc的方法来设置本窗体的Adodc,完成后的frmDelReader窗体效果如图22所示。 图
30、22(27) 双击“删除”按钮,在代码编辑窗口中添加以下代码:Private Sub CmdDel_Click() Dim RecCount As Integer 判断是否输入了读者编号信息,如果没有输入则发出提示并退出子程序 If Trim(TxtReaderid.Text) = Then MsgBox 请填入编号信息!, , 提示 Exit Sub End If 根据读者编号查找读者信息 Adodc.RecordSource = select * from reader where readerid= _ & & Trim(TxtReaderid.Text) & Adodc.Refresh
31、 如果没有该读者信息则提示查无此人!信息,退出子程序 RecCount = Adodc.Recordset.RecordCount If RecCount 0 Then MsgBox 此人有书未归还,故不能删除!, , 提示 Exit Sub End If 从数据库表reader中找到该读者记录,删除 Adodc.RecordSource = select * from reader where readerid= _ & & Trim(TxtReaderid.Text) & Adodc.Refresh Adodc.Recordset.Delete Adodc.Refresh 将标志变量置为真
32、 ActFlag = True Unload MeEnd Sub7显示所有图书(28) 选择菜单 “图书管理显示所有图书”,在代码编辑窗口中添加以下代码:Private Sub DispAllBook_Click() Dim RecCount As Integer 从数据库表book中查找所有的图书记录 AdodcTemp.RecordSource = select bookid as _ & 图书编号 & , bookname as & 图书名称 _ & ,bookstate as & 此书是否已借出 & from book AdodcTemp.Refresh 如果查到的记录数 0则刷新数据
33、表格显示查到的图书信息,否则提示未查到任何图书记录!信息 并刷新数据表格显示空表 RecCount = AdodcTemp.Recordset.RecordCount If RecCount 0 Then DisplayGrid (显示所有图书) Else MsgBox 未查到任何图书记录!, , 提示 DisplayGrid (显示所有图书) Exit Sub End IfEnd Sub8查询单册(29) 选择菜单“图书管理查询单册”,在代码编辑窗口中添加以下代码:Private Sub FindOneBook_Click() Dim RecCount As Integer 将标志变量置为假
34、 ActFlag = False 显示查询单册窗体 frmFindOneBook.Show vbModal 判断是否需要刷新数据表格 If ActFlag Then RecCount = AdodcTemp.Recordset.RecordCount If RecCount 0 Then DisplayGrid (查询单册) End If End If ActFlag = FalseEnd Sub(30) 为工程添加一个新的窗体,将新窗体”(名称)”属性改为”frmFindOneBook”,”caption”属性改为“查询单册”。(31) 在窗体添加一个框架控件(Frame)和一个ADO数据控
35、件(Adodc),在” Frame1”中添加一个命令按钮(CommandButton)、一个标签(label)和一个文本框(textbox)。(32) 修改frmFindOneBook窗体控件的属性如表8所示:表8 frmFindOneBook窗体控件属性控件名称属性名称属性设置值Frame1Caption输入查询条件labelCaption图书编号Text1名称txtbookidtextCommand1名称CmdfindCaption查询Adodc1名称Adodcvisiblefalse(33) 根据“frmMain”主界面中的设置“Adodc”的方法来设置本窗体的“Adodc”的“conn
36、ectionstring”属性。(34) 双击“查询”按钮,在代码编译窗口中添加以下代码:Private Sub CmdFind_Click() Dim RecCount As Integer 判断是否输入了图书编号,如果没有输入信息,则发出提示,并退出子程序 If Trim(TxtBookid.Text) = Then MsgBox 查询条件不能为空,请填写!, , 提示 Exit Sub End If 根据图书编号查找该图书信息 Adodc.RecordSource = select bookid as & 图书编号 _ & , bookname as & 图书名称 & , booksta
37、te as _ & 此书是否已借出 & from book where bookid= & _ & Trim(TxtBookid.Text) & Adodc.Refresh 如果查到的记录数 0,则返回主界面在数据表格中显示查到的图书信息 RecCount = Adodc.Recordset.RecordCount If RecCount 0 Then frmMain.AdodcTemp.RecordSource = select bookid as _ & 图书编号 & , bookname as & 图书名称 _ & , bookstate as & 此书是否已借出 _ & from bo
38、ok where bookid= & & Trim(TxtBookid.Text) _ & frmMain.AdodcTemp.Refresh ActFlag = True Unload Me Else 若没查到该图书信息,则提示查无此书!信息,退出子程序 MsgBox 查无此书!, , 提示 Exit Sub End IfEnd Sub9添加新书(35) 选择菜单“图书管理增加新书”,在代码编辑窗口中添加以下代码:Private Sub AddBook_Click() 将标志变量置为假 ActFlag = False 显示增加新书窗体 frmAddBook.Show vbModal 判断如果需要刷新数据表格,则在主界面中显示所有的图书信息 If ActFlag Then DispAllBook_Click End If ActFlag = FalseEnd Sub(36) 为工程添加一个新的窗体,将新窗体“