图书管理系统的建立—免费毕业设计论文内容摘要:

要的,图书馆中进而体现的更加明显,管理员可以从成千上万本书的数据库中不费吹灰之力检索出读者想要借阅的图书„„等等。 ACCESS2020 数据库是一个面向对象,采用事件驱动机制的新型关系数据库管理系统( RDBMS)它既可以通过 ODBC与其他数据库 (Sybase、 Paradox 等 )相连实现数据的交换与共享,也可以与 Word 、 Excel 等 Office办公软件进行数据信息交换与共享。 使用 ACCESS2020 数据库后,用户可以在单一的数据库中管理所有的信息。 数据只需要在表中存储一次,用户便可以在不同的位置查看,当某一数据更新后,所有显示该数据的位置都将自动更新,这样可以避免冗余存储减少了工作量和错误 ACCESS2020 数据库是由表、查询 、窗体、报表、数据访问页、宏以及模块七种数据对象组成,这些数据对象在数据库中有着不同的功能,这些数据库对象大部分都存储在数据库中作为 ACCESS2020的一部分,如果要单独输出某个数据库对象,可以利用 ACCESS2020 提供的导出功能,虽然 ACCESS2020能够利用其整合的 ACCESS Visual basic ,但是很少有人利用它来开发一个数据库应用程序。 1.图书信息数据表 图书信息数据表的主要功能在于新书入库以及保存在库图书的主要信息和相关信息 , 包括:‘图书编号’、‘图书名称’、‘作者’、‘出版社’、‘单价’以及‘库存量’ 图书编号字段为主关键字段,书名字段、作者字段、出版社字段、单价字段和库存量字段分别记录图书的书名、作者、出版社、图书单价和库存量的 信息; 读者信息数据表的主要功能是新读者的注册以及保存已注册的读者相关信息。 它包括:‘借阅证编号’、‘读者姓名’、‘读者身份证号’、‘最多借书数’和‘止借标志’。 字段名称 字段类型 字段大小 索引 必须填写 BOOK_ID 文本 30 有(无重复) 是 BOOK_NAME 文本 50 是 CLASS 文本 20 是 AUTHOR 文本 30 是 PRESS 文本 50 是 PRICE 数字 是 STOCK 数字 是 字段名称 字段类型 字段大小 索引 必须填写 READER_ID 文本 30 有(无重复) 是 NAME 文本 8 是 ID_CARD 文本 20 是 MAXNUM_CAN_BORROW 数字 长整型 是 FLAG_BORROW 数字 长整型 是 读者编号字段为主关键字段,读者姓名字段、身份证号字段、 最大借书数字段和‘止借标志’字段分别记录读者的借阅证编号、读者姓名、读者的身份证号、最大借书数和‘止借标志’信息; 员工信息数据表的主要功能是新员工的注册以及保存已注册员工的相关信息。 它包括:‘员工编号’、‘员工姓名’、‘员工身份证号’、‘员工性别’和‘登录密码’。 员工编号字段为主关键字段,姓名字段、性别字段、身份证号字段、登录密码字段分别记录读者的员工编号、员工姓名、员工性别、员工的身份证号以及登录密码。 借书登记信息数据表的主要功能是进行有关借阅图书过程中信息的处理 它包括:‘借阅证编号’、‘图书编号 1’、‘图书编号 2’、‘图书编号 3’、‘借阅时间 1’、‘借阅时间 2’、‘借阅时间 3’和‘员工姓名’。 5. 借 阅历史信 息数据表 借阅历史信息数据表的主要功能是对借阅历史的信息进行查询。 它包括:‘借阅证编号’、‘ 读者姓名’、‘图书编号’、‘图书名称’、‘借阅时间’、 ‘归还时间’‘借书操作员姓名’、‘还书操作员姓名’和‘备注’。 字段名称 字段类型 字段大小 索引 必须填写 CLERK_ID 文本 30 有(无重复) 是 NAME 文本 8 是 ID_CARD 文本 20 是 PASSWORD 文本 30 是 SEX 文本 2 是 字段名称 字段类型 字段大小 索引 必须填写 READER_ID 文本 30 有(无重复) 是 BOOK_ID1 文本 30 是 BOOK_ID2 文本 30 是 BOOK_ID3 文本 30 是 BORROW_DATE1 日期 是 BORROW_DATE2 日期 是 BORROW_DATE3 日期 是 CLERK_NAME 文本 30 是 6.罚款信息数据表 罚款信息数据表的主要功能是读者因不正常还书而被罚款的记录。 它包括:‘借阅证编号’、‘读者姓名’、‘图书编号’ 、‘图书名称’、‘借阅时间’、‘罚款原因’‘罚款金额’、‘罚款日期’和‘操作员姓名’。 7. 罚 款历史信 息数据表 罚款历史信息数据表的主要功能是对某位读者罚款历史的信息 进行查询。 它包括: ‘借阅证编号’、‘读者姓名’、‘图书编号’、‘图书名称’、 ‘罚款原因’‘罚款金额’、‘罚款日期’和‘解止日期’。 文本 30 有(无重复) 是 文本 30 是 文本 30 是 30 是 日期 是 日期 是 文本 30 是 R_CLERK_NAME 文本 30 是 REMARK 文本 8 是 字段名称 字段类型 字段大小 索引 必须填写 READER_ID 文本 30 有(无重复) 是 NAME 文本 30 是 BOOK_ID 文本 30 是 BOOK_NAME 文本 30 是 WHYS 文本 是 AMOUNT 数字 20 是 FINE_DATE 日期 是 CLERK_NAME 文本 30 是 字段名称 字段类型 字段大小 索引 必须填写 READER_ID 文本 30 有(无重复) 是 NAME 文本 30 是 BOOK_ID 文本 30 是 BOOK_NAME 文本 30 是 8. 图 书分类信 息数据表 图书分类信 息数据表的主要功能是对图书进行分类。 它包括:‘分类编号’和‘类名’ 详细设计 1.“图书资料维护”模块: 要进行图书资料的维护就必须有图书的相关信息:如:图书的分类、图书的编号、图书的名称、图书的作者、图书出版社以及图书的库存量。 新的图书,都要进行新书入库,将新书的各项信息输入图书资料维护信息数据表中,从而图书资料维护信息数据表将会更 新,新书入库过程完成。 在进行图书分类信息的时候,字段就相应比较少了,只需要描述某本图书在所有图书中的类型就完全可以了,这个信息将提供给工作人员进行借书登记时信息的一个依据。 在图书修改信息中,每本现有的图书将会出现丢失或严重损坏,从而导致该类图书无法再进行借阅,那么就要进行删除或修改图书的库存量。 2.“读者资料维护”模块: 要进行读者资料的维护就必须有读者的相关信息:如:读者所使用的借阅证编号、读者的姓名、读者的身份证号以及止借标志。 新的读者,都要进行信息登记,将新会员的各项信息输入读者资料维护信息数据表中 ,从而读者资料维护信息数据表将会更新,更新后新的会员就可以借阅图书了。 在进行只需要描述某本图书在所有图书中的类型就完全可以了,这个信息将提供给工作人员进行借书登记时信息的一个依据。 在图书修改信息中,每本现有的图书将会出现丢失或严重损坏,从而导致该类图书无法再进行借阅,那么就要进行删除或修改图书的库存量。 1. 系统功能流程图 WHYS 文本 是 AMOUNT 数字 20 是 FINE_DATE 日期 是 OK_DATE 文本 30 是 字段名称 字段类型 字段大小 索引 必须填写 CLASS_ID 文本 30 有(无重复) 是 CLASS_NAME 文本 30 是 用户登录 图 31 系统功能流程图 2.“图书资料维护”数据流图 图 32 “图书资料维护”数 据流图 3.“读者资料维护”数据流图 调用数据库。 Y/N 系统主界面 退出系统 图 33 “读者资料维护”数据流图 第四章 设计思想 面向对象的程序设计 面向对象技术是一个非常实用而强有力的软件开发方法。 它具有许多特色。 一是方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。 二是从生存期的一个阶段到下一个阶段的高度连续性,即在一个阶段所用到的部分与在下一个阶段所使用的部分是衔接的,所使用的技术经过生存期每一阶段后不改变。 三是把面向对象分析( OOA)、面向对象设计( OOD)和面向对象程序设 计( OOP)集成到生存期的相应阶段。 什么是“面向对象”。 对于这个问题,有许多不同的看法。 Coad和 Yourdon 给出了一个定义:“面向对象 =对象 +类 +继承 +通信”。 如果一个软件系统是使用这样 4个概念设计和实现的,则可以认为这个软件系统是面向对象的。 一个面向对象的程序的每一部分对应的是对象,计算是通过新的对象的建立和对象之间的通信来执行的。 对象( object)是面向对象开发模式的基本成分。 每个对象可用其一组属性和它执行的一组操作来定义。 属性一般只能通过执行对象的操作改变。 操作又称为方法或服务,在 C++中成为成员函数,它描述了对象执行的功能。 类( class)是一组具有相同数据结构和相同操作的对象的集合。 类的定义包括一组数据属性和在数据上的某组合法操作。 类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。 在一个类中,每个对象都是类的实例( Instance),它们都可使用类中提供的函数。 一个对象的状态则包含在它的实例变量中。 继承( Inheritance)是使用已存在的(现存)定义作为基础建立新定义的技术。 使用继承设计一个新的类,可以视为描述一个新的对象集合,它是现存类所描述对象集合 的字集合。 这个新的类可以认为是现存类的一个特化。 面向对象的程序设计已成为软件界主流的程序设计思想和方法。 传统的过程是程序设计本质的缺陷是非常不自然、不符合客观世界本身的特点以及人们分析和思考问题的习惯。 面向对象的程序设计一方面是为了满足日益复杂的程序开发所提出的,另一方面为程序设计提供了一个更为合理和自然的分析和思考方式。 详细设计思想 “用户登录”模块设计: 登录模块是要根据用户输入的用户名和密码与数据库 Clerk中的 Username和 Password的比较来判断用户名和密码是否合法。 这里用到在 Visual C++环境下数据库的操作。 该操作的流程如下:用户在相应的控件内填写姓名和密码,通过“ UpdateData(TRUE);”将控件中的数据传送给字段数据成员,然后执行下面的 SQL语句: SELECT * FROM CLERK WHERE NAME=m_strName AND PASSWORD=m_strPassword。 查询 Clerk 表中是否有用户名为 m_strName,并且密码为 m_strPassword的记录。 打开记录集,查询是否有符合条件的记录,如果记录集不为空,则说明 有符合条件的记录,说明登录合法,否则“登录失败。 ”。 在用户通过了身份验证之后,就可以进入系统,进行所有的操作。 登录模块实现起来相对比较简单,只是用到了一个 SOL 查询语句,在编程过程中没有遇到什么困难。 “用户登录”模块实现代码如下: if (()) /*判断用户名信息是否为空 */ { AfxMessageBox(请输入用户名。 )。 return。 } mSqlStr = SELECT * FROM CLERK WHERE NAME=39。 mSqlStr = mSqlStr + m_strName。 mSqlStr = mSqlStr + 39。 AND PASSWORD=39。 mSqlStr = mSqlStr + m_strPassword。 mSqlStr = mSqlStr + 39。 if (!(AFX_DB_USE_DEFAULT_TYPE, mSqlStr)) { AfxMessageBox(CLERK表打开失败。 )。 return。 } //CString strSQL。 //(select * from CLERK where NAME=39。 %s39。 AND PASSWORD=39。 %s39。 ,m_strName,m_strPassword)。 //(AFX_DB_USE_DEFAULT_TYPE,strSQL)。 if(()==0) { if(count3) { AfxMessageBox(用户名或密码不正确 !)。 count++。 }。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。