




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图书管理系统的建立第一章 导论一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便全面掌握图书的流通情况。本次毕业设计题目:“图书管理系统”主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。本系统的设计主要从以下几方面做起:系统业务流程分析、系统的功能设计、系统的数据库结构设计、系统输入/输出设计等。作这些工作需对数据库知识有足够认识,并深入的了解VC+6.0的使用和管理系统的相关知识。在信息时代的今天,人类需要对在政治、经济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加,作为计算机的三大主要应用(科学计算、过程控制和数据处理)之一的数据处理,已迅速上升为计算机应用的主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信息管理系统几乎都以数据库技术作为核心。1.1所用开发语言简介1.1.1 VC+的特点Visual C+是功能最为强大可视化开发工具,它不仅支持传统的软件开发方法,更重要的是它能支持面向对象、可视化的开发风格。因此Visual C+又称作是一个集成开发工具,它提供了软件代码自动生成和可视化的资源编辑功能。Visual C+具有的优点:提供了面向对象的应用程序框架MFC(Microsoft Foundation Class),简化了程序员的编程工作,提高了模块的可重用性;提供了基于CASE技术的可视化软件的自动生成和维护工具AppWizard、ClassWizard、Visual Studio、WizardBar等,实现了直观、可视的程序设计风格,方便地编和管理各种类,维护程序的源代码;封装了Windows的API函数、USER、KERNEL、GDI函数,简化了编程时创建、维护窗口的许多复杂的工作。1.1.2本程序中使用的VC+控件及其属性简介(1)CStatic(静态控件):显示一些几乎固定不变的文字或图形描述。(2)CButton(按钮控件):产生某些命令或改变某些选项设置。(3)CEdit(编辑框控件):完成文字的输入输出双向操作,查看并编辑文字。(4)CListBox(列表框控件):显示一个列表,让用户从中选取一个或多个项。(5)CComboBox(组合框):将列表框和编辑框有机地组合在一起,可选择列表中已有的项,还可以编辑出新的项。1.1.3系统数据访问接口的选择Visual C+中可用的数据访问对象接口有三种:ODBC(Open Database Connectity,开发数据库连接)、DAO(Data Access Objects,数据访问对象)及OLE DB(OLE data Base,OLE数据库)。1ODBC(Open Database Connectity,开发数据库连接)ODBC提供了应用程序接口(API),使得任何一个数据库都可以通过ODBC驱动器与指定DBMC相联,用户的程序就可以通过调用ODBC驱动管理器中相应的驱动程序达到管理数据库的目的。作为Microsoft Windows Open Standards Architecture(WOSA,Windows开放式服务体系结构)的主要组成部分,ODBC一直沿用至今。2.DAO(Data Access Objects,数据访问对象)DAO 提供了一种通过程序代码创建和操纵数据库的机制。多个DAO 对象构成了一个体系结构,在这个结构里,各个DAO 对象协同工作,通过 Microsoft Jet 数据库访问数据库中的数据和数据库的结构定义。可以访问的数据库类型主要有:Microsoft Jet 数据库、ODBC 数据源、可安装的ISAM数据库。DAO 是我们可以通过程序访问和操纵本地的或远程的数据和数据定义,管理数据库中的对象或结构。DAO 支持两种不同的数据库环境称为工作区(Workspace).Microsoft Jet Workspace 这是一种使用Microsoft Jet 数据库引擎来访问数据源的工作区。ODBC Direct Workspace 这是一种使用 ODBC Direct 来直接访问一个ODBC 数据源,并绕过Microsoft Jet 数据库引擎的工作区。可通过ODBC访问数据库服务器,而无须安装Microsoft Jet 数据库引擎。3OLE DB(OLE data Base,OLE数据库)。OLE DB试图提高一种统一的数据访问接口,并能处理除了标准的关系型数据库中的数据之外,还能处理包括邮件数据、Web上的文本或图形、目录服务(Directory Services),以及主机系统中的IMS和VSAM数据。OLE DB提供一个数据库编程COM(组件对象模型)接口,使得数据的使用者(应用程序)可以使用同样的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型。这个COM接口与ODBC相比,其健壮性和灵活性要高的多。但是,由于OLE DB的程序比较复杂,因而对于一般用户来说使用ODBC和DAO方式已能满足一般数据库处理的需要。第二章 需求分析阶段需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。Visual C+ 数据库设计的第一步是明确数据库的目的和如何使用。也就是说需要从数据库中得到哪些信息。明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。要设计一个有效的数据库,必须用系统工程的观点来考虑问题。在系统分析阶段,设计者和用户双方要密切合作,共同收集和分析数据管理中信息的内容和用户对处理的要求。根据系统分析,图书管理系统的要求如下 :(1)需求分析: 能够输入图书的综合情况和进行新书入库、现有图书信息修改以及删除; 能够实现对读者档案的查询和编辑管理; 能够进行罚款功能; 能够进行借阅历史的查询功能;(2)系统性能要求: 系统安全、可靠; 功能齐全; 操作方便、界面友好; 易于维护和扩充。(3)系统的功能分析:密码设置:每个操作员均有自己的密码,可以防止非本系统人员进入本系统;又因每个人的权限不一致,故可以防止越权操作。资料维护:为了存放图书、读者档案的全部数据,本系统将每一本图书和每位读者的信息进行管理。系统维护包括对各种表记录的修改、删除、添加等操作。系统查询:可以按图书编号、借阅证编号等相关信息进行查询系统管理:进行员工管理、数据备份和数据恢复。报表统计:包括统计图书信息、读者信息、借阅信息和罚款信息等。其它操作:包括修改密码、添加用户、页面设置等2.1系统功能模块图书管理系统需要实现的功能主要有四大块:“日常工作管理”、“基本资料维护”、“查询”、和“系统管理”模块。其中日常工作管理和基本资料维护是整个系统的核心。2.1.1 功能的实现:1“日常工作”模块:(1) 借书处理:主要功能是记录借阅证编号和图书编号,进行借书过程。在数据库中插入一条借书记录,该记录包括读者ID、图书ID、借出日期、还书期限、操作员姓名。(2) 还书处理:主要功能是输入借阅证编号、图书ID,在借阅登记表中找到相应的记录,将该记录的相应数据插入到还书记录中,同时将借书记录删除,并保存在借阅历史记录表中。(3) 缴纳罚金:输入读者ID,显示该读者的姓名、图书编号、罚款金额和罚款原因,如果读者交纳了罚金,则将借阅登记表的允许借阅标志置为“Y”。删除罚款记录表中该读者对应的记录,将这一条记录同时插入到罚款历史记录表中。2“基本资料维护”模块:(1)图书资料维护:包括新书的入库,以及现有书籍资料的修改和删除。(2)读者资料维护:包括新会员的资料入库,以及现有会员资料的修改和删除3“查询”模块:(1)图书资料查询:根据相应的图书信息对所有书籍进行所需查询。此查询包括:图书分类、图书编号、图书名称、作者、出版社。(2)读者资料查询:根据相应的读者资料进行所需查询。 借阅证编号、读者姓名 以及身份证编号。(3)借阅历史记录查询:根据相应的借阅信息进行所需查询。此查询包括:借阅证编号、图书编号、借书日期、还书日期。(4)罚款历史记录查询:根据相应的罚款信息进行所需查询。此查询包括:借阅证编号、罚款日期、罚款原因。4“系统管理”模块:(1)员工管理:包括新员工信息的录入,密码的修改以及员工信息的删除。(2)数据备份:对现有的数据库信息的保存。(3)数据恢复:对数据库信息的恢复2.1.2 模块框架图图书管理系统数据恢复 系统管理查 询基本资料维护日常工作数据恢复数据备份员工管理系统登录借书处理还书处理缴纳罚金罚款历史维护借阅历史维护读者资料查询图书资料查询图书资料维护读者资料维护图2-1 模块框架图2.2系统数据分析通过对图书管理系统的分析,可以得出该系统涉及三个实体:读者、图书、工作人员。通过对各实体数据关系的整理,我们可以画出如下ER图: 读者借阅还书管理员还书图 书图2-2 系统E-R图这些实体涉及的数据项有:读者:借阅证编号、姓名、身份证号、最大借书数、止借标志。图书:图书编号、图书名称、作者、出版社、价格、库存量。工作人员:员工编号、员工姓名、员工性别、身份证号、登陆密码。实体之间的联系涉及的数据项有:借阅信息表:借阅证编号,图书编号1,图书编号2,图书编号3,借书日期1,借书日期2,借书日期3,操作员姓名。罚款信息表:借阅证编号,读者姓名,图书编号,图书名称,罚款原因,罚款金额,罚款日期,操作员姓名。第三章 设计阶段3.1概要设计3.1.1数据库概论及SQL、ACCESS2000简介数据库是数据管理的最新技术,是计算机科学的重要分支。数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。所谓数据库是指长期储存在计算机内的、有组织的、可共享的数据集合。数据库中的数据按一定的数据模型组织、描述、和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。为了有效的管理数据库,常常需要一些数据库管理系统(DBMS)为用户提供对数据库操作的各种命令、工具及方法,包括数据库的建立和记录的输入、修改、检索、显示、删除和统计等。SQL Server 是一关系数据库,它除了支持传统关系型数据库对象和特性外,另外也支持现今关系型数据库常用的对象和存储过程、视图等。另外,我们从它的产品名称就可以知道,它支持目前关系型数据库必定要支持标准查询语言SQL(Structured Query Language)。SQL Server 另外一个重要的特点是它支持数据库复制的功能,也就是当你在数据库上执行更新时,可以将其更新结果传到远程 SQL Server 相同的数据库上,让两边数据库的数据保持同步。SQL Server 最早是由另外一个关系性数据库Sybase演化来的,事实上在1988年时SQL Server 的OS/2 版本是由Sybase、Microsoft、Ashton-Tate这三家公司所共同开发的,后来NT操作系统出现,Microsoft 将SQL Server移植到NT操作系统上,三者间的合作才告终止。现在Sybase 则专著在UNIX操作系统上的数据库版本(称为Sybase 数据库系统,和Informix、Oracle二家公司的数据库系统是在UNIX操作系统上最常见的数据库系统),而Microsoft则全力推广Windows NT版本。因为在4。21版本以前,Microsoft和Sybase 皆能销售 SQL Server ,所以有时你会看到和Microsoft SQL Server 和 Sybase SQL Server 两种类似的产品名称,事实上两者是一样的。SQL Server 在现今流行的Client-Server结构中是扮演服务器端角色。它主要的职责是存储数据和提供一套方法来管理这些数据,并且应付来自Client的连接和数据存取需求。由于SQL Server是扮演 Server端的角色,是数据的提供者,所以你在SQL Server 内看不到累世GUI设计的功能,也就是说SQL Server 并不提供工具让你设计一个输入或查询的操作界面,另外你也看不到和报表设计有关的工具,因为对SQL Server所扮演的角色而言,这不是它的职责所在。这些用户操作界面的设计工作是Client 端的事情。通常我们将SQL Server或Oracle等数据库系统成为数据库引擎(Database Engine),因为它是整个数据库应用系统中的核心,它的重要性就如同一部车子的引擎,没有它车子就无法开动。不过光有引擎还不能成为车子,你必须还要有方向盘、轮子等周边设备才可以让车子上路。同样地,当只有数据库引擎也不能构成完整的应用系统,你还要利用前端开发工具如Visual Basic、Delphi、Power Builder等产品开发出了用户界面才能称为完整的数据库应用系统。前端开发工具用来设计输入和查询界面,拥护通过这个界面输入数据,再由前端程序通过网络传给后段的数据库引擎将数据存储在数据库。当拥护要查询数据时,前端程序将查询命令传给后段的数据库执行,前端程序则等待接受数据结果然后再将结果显示在界面上。在以前的应用程序的操作方面,用户是利用终端机或终端机模拟程序来使用数据库系统,其操作截面设计是文字导向。现今的Client-server结构则使用个人计算机和视窗操作系统作为前端平台,所设计出来的操作界面都是视窗化的界面。SQL Server可支持多种前端操作系统的连接。只要经过正确的设定,MS-DOS、Windows 3.11、 Windows95 和N T Workstation 等前端平台皆可和SQL Server 相连接。SQL Server和前端平台连接最主要的是靠网络,所以网络设定必须正确,SQL Server才能正常运行。在网络协议方面,SQL Server可经由TCP/IP、Netware、Name Pipe 和NETBIOS 等通过协议和前端平台相连。至于前端应用程序则是靠标准的ODBC 或OLE DB数据库驱动程序和下层的DB-Library 网络程序驱动和SQL Server相连。微软开发的ACCESS2000是在Windows95/98/2000及Windows NT平台中应用的关系型数据库管理系统,可以通过各种数据库对象对数据进行控制和管理,不论用户创建的独立桌面数据库适用于个人、部门还是整个企业,ACCESS2000都可以为管理数据生成易于使用的数据库,ACCESS2000不仅拥有众多传统数据库管理软件所具备的功能,同时还进一步增强了与web页集成,能够更方便的共享跨越各种平台和不同用户级别的数据。ACCESS2000并不需要数据库管理者具有很高的专业程序设计水平,非专业的用户完全可以利用ACCESS2000创建出一个功能强大的数据库系统,使用ACCESS2000数据库管理系统除非执行复杂或专业的操作,一般情况下用户无需编写程序代码就可以完成大多数数据的管理工作。当今社会是一个信息化的社会,各行各业的数据信息都比较丰富,这决定了利用数据库管理系统管理数据是十分必要的,图书馆中进而体现的更加明显,管理员可以从成千上万本书的数据库中不费吹灰之力检索出读者想要借阅的图书等等。ACCESS2000数据库是一个面向对象,采用事件驱动机制的新型关系数据库管理系统(RDBMS)它既可以通过ODBC与其他数据库(Sybase、Paradox 等)相连实现数据的交换与共享,也可以与Word 、Excel 等 Office办公软件进行数据信息交换与共享。使用ACCESS2000数据库后,用户可以在单一的数据库中管理所有的信息。数据只需要在表中存储一次,用户便可以在不同的位置查看,当某一数据更新后,所有显示该数据的位置都将自动更新,这样可以避免冗余存储减少了工作量和错误ACCESS2000数据库是由表、查询、窗体、报表、数据访问页、宏以及模块七种数据对象组成,这些数据对象在数据库中有着不同的功能,这些数据库对象大部分都存储在数据库中作为ACCESS2000的一部分,如果要单独输出某个数据库对象,可以利用ACCESS2000提供的导出功能,虽然ACCESS2000能够利用其整合的ACCESS Visual basic 6.0语言可视化的创建应用程序,但是很少有人利用它来开发一个数据库应用程序。3.1.2系统数据库设计1图书信息数据表图书信息数据表的主要功能在于新书入库以及保存在库图书的主要信息和相关信息,包括:图书编号、图书名称、作者、出版社、单价以及库存量字段名称字段类型字段大小索引必须填写BOOK_ID文本30有(无重复)是BOOK_NAME文本50是CLASS文本20是AUTHOR文本30是PRESS文本50是PRICE数字是STOCK数字 是图书编号字段为主关键字段,书名字段、作者字段、出版社字段、单价字段和库存量字段分别记录图书的书名、作者、出版社、图书单价和库存量的信息; 2.读者信息数据表读者信息数据表的主要功能是新读者的注册以及保存已注册的读者相关信息。它包括:借阅证编号、读者姓名、读者身份证号、最多借书数和止借标志。字段名称字段类型字段大小索引必须填写READER_ID文本30有(无重复)是NAME文本8是ID_CARD文本20是MAXNUM_CAN_BORROW数字长整型是FLAG_BORROW数字长整型是读者编号字段为主关键字段,读者姓名字段、身份证号字段、最大借书数字段和止借标志字段分别记录读者的借阅证编号、读者姓名、读者的身份证号、最大借书数和止借标志信息;3.员工信息数据表员工信息数据表的主要功能是新员工的注册以及保存已注册员工的相关信息。它包括:员工编号、员工姓名、员工身份证号、员工性别和登录密码。字段名称字段类型字段大小索引必须填写CLERK_ID文本30有(无重复)是NAME文本8是ID_CARD文本20是PASSWORD文本30是SEX文本2是员工编号字段为主关键字段,姓名字段、性别字段、身份证号字段、登录密码字段分别记录读者的员工编号、员工姓名、员工性别、员工的身份证号以及登录密码。4.借书登记信息数据表借书登记信息数据表的主要功能是进行有关借阅图书过程中信息的处理它包括:借阅证编号、图书编号1、图书编号2、图书编号3、借阅时间1、借阅时间2、借阅时间3和员工姓名。字段名称字段类型字段大小索引必须填写READER_ID文本30有(无重复)是BOOK_ID1文本30是BOOK_ID2文本30是BOOK_ID3文本30是BORROW_DATE1日期是BORROW_DATE2日期是BORROW_DATE3日期是CLERK_NAME文本30是 5.借阅历史信息数据表借阅历史信息数据表的主要功能是对借阅历史的信息进行查询。它包括:借阅证编号、读者姓名、图书编号、图书名称、借阅时间、归还时间借书操作员姓名、还书操作员姓名和备注。文本30有(无重复)是文本30是文本30是30是日期 是日期 是文本30是R_CLERK_NAME文本 30是REMARK文本8是6罚款信息数据表罚款信息数据表的主要功能是读者因不正常还书而被罚款的记录。它包括:借阅证编号、读者姓名、图书编号、图书名称、借阅时间、罚款原因罚款金额、罚款日期和操作员姓名。字段名称字段类型字段大小索引必须填写READER_ID文本30有(无重复)是NAME文本30是BOOK_ID文本30是BOOK_NAME文本30是WHYS文本是AMOUNT数字20是FINE_DATE日期是CLERK_NAME文本30是7.罚款历史信息数据表罚款历史信息数据表的主要功能是对某位读者罚款历史的信息进行查询。它包括: 借阅证编号、读者姓名、图书编号、图书名称、 罚款原因罚款金额、罚款日期和解止日期。字段名称字段类型字段大小索引必须填写READER_ID文本30有(无重复)是NAME文本30是BOOK_ID文本30是BOOK_NAME文本30是WHYS文本是AMOUNT数字20是FINE_DATE日期是OK_DATE文本30是8.图书分类信息数据表图书分类信息数据表的主要功能是对图书进行分类。它包括:分类编号和类名字段名称字段类型字段大小索引必须填写CLASS_ID文本30有(无重复)是CLASS_NAME文本30是3.2 详细设计3.2.1数据信息准备1“图书资料维护”模块:要进行图书资料的维护就必须有图书的相关信息:如:图书的分类、图书的编号、图书的名称、图书的作者、图书出版社以及图书的库存量。新的图书,都要进行新书入库,将新书的各项信息输入图书资料维护信息数据表中,从而图书资料维护信息数据表将会更新,新书入库过程完成。在进行图书分类信息的时候,字段就相应比较少了,只需要描述某本图书在所有图书中的类型就完全可以了,这个信息将提供给工作人员进行借书登记时信息的一个依据。在图书修改信息中,每本现有的图书将会出现丢失或严重损坏,从而导致该类图书无法再进行借阅,那么就要进行删除或修改图书的库存量。2.“读者资料维护”模块:要进行读者资料的维护就必须有读者的相关信息:如:读者所使用的借阅证编号、读者的姓名、读者的身份证号以及止借标志。新的读者,都要进行信息登记,将新会员的各项信息输入读者资料维护信息数据表中,从而读者资料维护信息数据表将会更新,更新后新的会员就可以借阅图书了。在进行只需要描述某本图书在所有图书中的类型就完全可以了,这个信息将提供给工作人员进行借书登记时信息的一个依据。在图书修改信息中,每本现有的图书将会出现丢失或严重损坏,从而导致该类图书无法再进行借阅,那么就要进行删除或修改图书的库存量。3.2.2程序数据流图1系统功能流程图用户登录退出系统调用数据库?Y/N系统主界面图3-1 系统功能流程图2“图书资料维护”数据流图 图3-2 “图书资料维护”数据流图3“读者资料维护”数据流图图3-3 “读者资料维护”数据流图第四章 设计思想4.1 面向对象的程序设计面向对象技术是一个非常实用而强有力的软件开发方法。它具有许多特色。一是方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。二是从生存期的一个阶段到下一个阶段的高度连续性,即在一个阶段所用到的部分与在下一个阶段所使用的部分是衔接的,所使用的技术经过生存期每一阶段后不改变。三是把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成到生存期的相应阶段。 什么是“面向对象”?对于这个问题,有许多不同的看法。Coad和Yourdon 给出了一个定义:“面向对象=对象+类+继承+通信”。如果一个软件系统是使用这样4个概念设计和实现的,则可以认为这个软件系统是面向对象的。一个面向对象的程序的每一部分对应的是对象,计算是通过新的对象的建立和对象之间的通信来执行的。 对象(object)是面向对象开发模式的基本成分。每个对象可用其一组属性和它执行的一组操作来定义。属性一般只能通过执行对象的操作改变。操作又称为方法或服务,在C+中成为成员函数,它描述了对象执行的功能。类(class)是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的某组合法操作。类定义可以视为一个具有类似特性与共同行为的对象的模板,可用来产生对象。在一个类中,每个对象都是类的实例(Instance),它们都可使用类中提供的函数。一个对象的状态则包含在它的实例变量中。继承(Inheritance)是使用已存在的(现存)定义作为基础建立新定义的技术。使用继承设计一个新的类,可以视为描述一个新的对象集合,它是现存类所描述对象集合的字集合。这个新的类可以认为是现存类的一个特化。面向对象的程序设计已成为软件界主流的程序设计思想和方法。传统的过程是程序设计本质的缺陷是非常不自然、不符合客观世界本身的特点以及人们分析和思考问题的习惯。面向对象的程序设计一方面是为了满足日益复杂的程序开发所提出的,另一方面为程序设计提供了一个更为合理和自然的分析和思考方式。4.2 详细设计思想4.2.1“用户登录”模块设计:登录模块是要根据用户输入的用户名和密码与数据库Clerk中的Username和Password的比较来判断用户名和密码是否合法。这里用到在 Visual C+环境下数据库的操作。该操作的流程如下:用户在相应的控件内填写姓名和密码,通过“UpdateData(TRUE);”将控件中的数据传送给字段数据成员,然后执行下面的SQL语句: SELECT * FROM CLERKWHERE NAME=m_strName AND PASSWORD=m_strPassword;查询Clerk表中是否有用户名为m_strName,并且密码为m_strPassword的记录。打开记录集,查询是否有符合条件的记录,如果记录集不为空,则说明有符合条件的记录,说明登录合法,否则“登录失败!”。在用户通过了身份验证之后,就可以进入系统,进行所有的操作。登录模块实现起来相对比较简单,只是用到了一个SOL查询语句,在编程过程中没有遇到什么困难。“用户登录”模块实现代码如下:if (m_strName.IsEmpty() /*判断用户名信息是否为空*/AfxMessageBox(请输入用户名!);return; mSqlStr = SELECT * FROM CLERK WHERE NAME=;mSqlStr = mSqlStr + m_strName;mSqlStr = mSqlStr + AND PASSWORD=;mSqlStr = mSqlStr + m_strPassword;mSqlStr = mSqlStr + ;if (!mrsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE, mSqlStr)AfxMessageBox(CLERK表打开失败!);return;/CString strSQL;/strSQL.Format(select * from CLERK where NAME=%s AND PASSWORD=%s ,m_strName,m_strPassword);/mrsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);if(mrsDataSet.GetRecordCount()=0)if(countAddString(大学生);(CComboBox *)pWnd)-AddString(研究生);(CComboBox *)pWnd)-AddString(教师);(CComboBox *)pWnd)-AddString( 职工); void CClerkMDlg:OnEnquery() /对数据的查询时行定义,实现查询功能if (m_strUserIDQ.IsEmpty() & m_strUserNameQ.IsEmpty()/ 对数据库进行查询m_rsDataSet.m_strFilter = ;m_rsDataSet.Requery();DisplayRecord();SetButtonState();return;BOOL mAll = FALSE;if (!m_strUserIDQ.IsEmpty()m_rsDataSet.m_strFilter = CLERK_ID= + m_strUserIDQ ;m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + ;mAll = TRUE;if (!m_strUserNameQ.IsEmpty()if (mAll)m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + AND NAME=;m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + m_strUserNameQ;m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + ;elsem_rsDataSet.m_strFilter = NAME= + m_strUserNameQ;m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + ;m_rsDataSet.Requery();DisplayRecord();SetButtonState();void CClerkMDlg:OnNew() 对新建进行定义,实现新建按钮的功能/ TODO: Add your control notification handler code herem_strUserID = ;用户条码的设置m_strUserName = ;用户名的设置m_strIDCard = ;用户身份证的设置m_strPassword = ;密码的设置/m_cntrPosition.UpdateData(FALSE);m_bEdit = TRUE;m_bAdd = TRUE;SetButtonState();SetTextState();CWnd *pWnd;pWnd = GetDlgItem(IDC_USERID);pWnd-SetFocus();二、“图书资料维护”:其实现的功能是对新书的录入、现有书目的修改、删除以及保存,同时为了便于用户查看书目,使用了MFSlexGrid控件显示出网格数据。打开“图书资料维护模块”对话框(CBookDlg)时,调用SetButtonState()(设置按钮状态)、SetTextState()(设置文本编辑框状态)、DisplayRecord()( 数据显示)函数,将对话框初始化,然后可以进行相关的操作。添加书目时有两种情况,一是要添加的图书是新书,二是书库中已存在此类书籍。实现此功能的程序流程图如下:开始输入相应数据查找数据库判断书名/作者调用Edit函数库存增加调用AddNew添加新记录更新记录集更新记录集结束图4-1 “图书资料维护”数据流程图在这里,图书的添加、修改和删除操作都与前面的用户资料维护功能一样,分别调用CRrecordSet提供的AddNew、Edit、Delete成员函数,可方便的实现对数据库的操作,此模块可以实现图书维护的基本功能。在查看图书基本资料的时候需要用到Crecordset提供的几个成员函数,用来在记录集中滚动,如下所示: void MoveNext( );/前进一个记录 void MovePrev( );/后退一个记录 void MoveFirst( );/滚动到记录集中的第一个记录 void MoveLast( );/滚动到记录集中的最后一个记录当图书信息被添加、修改以及删除后,在保存的同时,数据库将会自动更新。系统调用void shuixin(),重画网格。代码如下:if(m_rsDataSet.IsBOF()m_MSFGrid.SetCols(7);m_MSFGrid.SetRows (m_rsDataSet.GetRecordCount()+1);m_MSFGrid.SetColWidth(-1,2360); /定义网格的表头m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(1);m_MSFGrid.SetText(图书编号);m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(2);m_MSFGrid.SetText(图书名称);m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(3);m_MSFGrid.SetText(作者);m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(4);m_MSFGrid.SetText(出版社);m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(5);m_MSFGrid.SetText(单价);m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(6);m_MSFGrid.SetText(库存量);return; m_rsDataSet.MoveFirst();/画网格while (!m_rsDataSet.IsEOF()m_rsDataSet.MoveNext();m_rsDataSet.GetRecordCount();m_MSFGrid.SetCols(7); m_MSFGrid.SetRows (m_rsDataSet.GetRecordCount()+1); m_MSFGrid.SetColWidth(-1,2360); /定义网格的表头 m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(1);m_MSFGrid.SetText(图书编号);m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(2);m_MSFGrid.SetText(图书名称);m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(3);m_MSFGrid.SetText(作者);m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(4);m_MSFGrid.SetText(出版社);m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(5);m_MSFGrid.SetText(单价);m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(6);m_MSFGrid.SetText(库存量); m_rsDataSet.MoveFirst();/重新画网格 int iRow=1;while(!m_rsDataSet.IsEOF()CString str,str1,str2;str.Format(BOOK%d,iRow);str1.Format(%d,m_rsDataSet.m_STOCK);str2.Format(%d,m_rsDataSet.m_PRICE);m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(0);m_MSFGrid.SetText(str);m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(1);m_MSFGrid.SetText(m_rsDataSet.m_BOOK_ID);m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(2);m_MSFGrid.SetText(m_rsDataSet.m_BOOK_NAME);m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(3);m_MSFGrid.SetText(m_rsDataSet.m_AUTHOR);m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(4);m_MSFGrid.SetText(m_rsDataSet.m_PRESS);m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(5);m_MSFGrid.SetText(str2);m_MSFGr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 涵洞盖板安全教育培训课件
- 沙立度胺零售合同3篇
- 委托技术项目咨询协议3篇
- 教育机构合同及协议书-兼职老师合同8篇
- 安全驾驶培训颜宇鹏课件
- 2025年半导体职业考试题及答案
- 海南省海口市美兰区2026届英语九上期末教学质量检测模拟试题含解析
- 2025年教师招聘之《小学教师招聘》题库高频重点提升(共100题)汇编附答案详解
- 监理知识竞赛试题及答案
- 2025年幼儿口语考试题目及答案
- 2025年农村应急广播系统使用与维护培训模拟题集及解析答案
- 班级日常管理规范及实施方案
- 田径短跑教学课件
- 2025-2026学年教科版(2024)小学体育与健康二年级全一册教学计划及进度表(第一学期)
- 员工思想培训课件内容
- 时尚传播课件
- 反恐知识安全培训课件
- 2025年湖北省中考语文真题(含答案)
- 2025年事业单位笔试-贵州-贵州药事管理(医疗招聘)历年参考题库含答案解析
- 战术基础动作低姿匍匐
- iso内审员管理制度
评论
0/150
提交评论