当前位置:   article > 正文

图书借阅管理系统的设计与实现_本项目介绍一个小型图书馆借阅系统设计的实现,通过对实际情况的调查,要求本系统主

本项目介绍一个小型图书馆借阅系统设计的实现,通过对实际情况的调查,要求本系统主

摘 要

当今时代是飞速发展的信息时代。在各行各业中都离不开信息处理,这正是计算机被广泛应用于信息管理系统的原因。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

图书馆管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。因此本人对SQL语言原理、ABAP应用程序设计、数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分,并由此设计了数据库结构和应用程序。

系统运行的最后结果证明,本文所设计的图书管理系统可以满足会员(member)的图书借阅、续接、还书;图书馆管理员(user)的图书管理、会员管理、历史记录查询和超级管理员(administrator)的图书管理、会员管理、历史记录查询、添加管理员、查询管理员操作这三方面的操作需求。也就是说虽然系统可能还会存在一些不完美和需要修改的地方,但总体来看通过这几个月的学习和指导老师的耐心指导我已经基本完成了系统的设计和程序的开发工作。

关键词: ABAP,SQL语言,图书管理

Design and Implementation of the System on Book Management

Abstract

With the rapid development of information technology, people all over the world need to deal with large amount of information every day. That is the reason why computers are widely applied in information management systems. One of the biggest advantages is that computers are able to apply in information management. Using computers to process information not only improve the work efficiency but also enhance its security greatly.

Book Management System is a typical management information system (MIS) which included two aspects: the first one is the establishment and maintenance of background database. The second one is the development of front-end application. The first aspect requires establish a consistent and integral database which can ensure the security of data and information. The second aspects means the application must be full-featured and easy to use. Therefore ,after in-deep research in SQL language, ABAP application program, and database technology, the author gave an analysis in the requirement of the book management, and divided the functional modules. In addition, the author designed the database structure and application which based on the research mentioned.

The outcome of running the system gave three purposes of the book management designed by the author. In the first place, the system was able to satisfy the library members’ requirement like borrow, return, and renew books. In the second place, the library users could also use the system in book management, member management, and historic record inquiry. In the third place, the system provided the super administrator to manage books and members, inquire historic record, add members, and manage normal users. In conclusion, although the systems may have some place not perfect and need to revise, the design of system and the development of procedure were basically completed.

Key words: ABAP, SQL language, Book management

目 录

任务书

 

Abstract

1  

1.1 选题背景

1.2 课题的研究目的及意义

1.3 课题目标

1.4 难题解决

1.4.1 课题难点

1.4.2 关键问题解决方案

1.4.3 拟采取的研究方法

1.5 可行性分析

1.5.1 技术及开发方法可行性

1.5.2 管理可行性

1.5.3 经济可行性

2 系统开发理论基础

2.1 数据库应用系统开发简介

2.1.1 数据库

2.1.2 数据库管理系统

2.2 SQL语言介绍

2.3 关于ABAP

2.3.1 什么是ABAP

2.3.2 ABAP的一些特性

2.3.3 ABAP相关联的SAP BASIS结构

2.4 SQL语言在ABAP中的应用

3 系统分析

3.1 需求分析

3.2 业务流程分析

3.3 数据流分析

3.4 数据字典

3.4.1 外部实体定义

3.4.2 数据存储

3.4.3 处理逻辑定义

3.4.4 数据流定义

4章 系统设计

4.1 系统设计原则及具体功能划分

4.1.1 模块设计原则

4.1.2 功能模块划分

4.2 代码设计

4.3 输入/输出设计

4.3.1 输出设计

4.3.2 输入设计

4.3.3 人机对话设计

4.4 界面设计

4.5 数据库的设计

4.5.1 概念设计

4.5.2 逻辑结构设计

4.5.3 物理结构设计

第5章 系统实现

5.1 总界面的实现

5.2 登录功能的实现

5.3 会员功能的实现

5.3.1 会员的已借功能的实现

5.3.2 会员借书功能的实现

5.3.3 会员需借功能的实现

5.3.4 会员还书功能的实现

5.4 管理员功能的实现

5.4.1 管理员的图书管理功能的实现

5.4.2 管理员的会员管理功能的实现

5.4.3 管理员的查询历史记录功能的实现

5.5 超级管理员功能的实现

5.5.1 超级管理员的添加管理员功能的实现

5.5.2 超级管理员的查询管理员操作功能的实现

6 系统验证

6.1 方法概述

6.2 系统功能测试

6.3 错误处理测试

6.4 安全性验证

6.5 系统实用性验证

6.6 测试的具体情况

7  

参考文献

 

第1章  绪 论

1.1 选题背景

随着现代科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用愈来愈重要,我国图书馆计算机等信息技术的应用起步于20世纪70年代末期,随着改革开放的步伐得迅速发展,特别是90年代以后,我国图书馆信息网络建设取得了较大发展图书馆信息化建设迈向了一个新台阶。图书馆的信息化从最初的对图书馆业务管理实行信息化发展到对图书馆各个业务流程进行系统和网络话化管理,并建立大规模以个体文献目录联机查询为主的资源共享系统。进入21世纪,充分利用计算机网络和信息技术,逐步实现不同载体的实体文献的信息化管理和多方位的联机查询。图书馆的计算机信息化管理,就是将传统图书馆业务的手工操作转变成由计算机管理,既图书馆的图书期刊、音像资料等各种载体文献的采编、典藏、流通、检索及常规业务管理等工作,利用计算机技术,进行高效、准确的信息化管理。

1.2 课题的研究目的及意义

数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。

基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。

该课题主要包括会员对图书馆藏书的浏览、借阅管理、续接管理和还书管理以及管理员对图书管中书籍的添加、删除、信息更改、查询及对会员的添加和信息更改等功能,还有的就是超级管理员除了有管理员的全部功能以外还有对管理员的信息进行查询和添加管理员的功能。综上所述本图书管理系统一共把用户分成了三类,即会员、管理员和超级管理员,他们的功能各不相同有效地并高效率完成着一个图书管理系统应该有的功能并且使得整个系统清晰明了可操作性更强。

1.3 课题目标

基于上述分析,本课题旨在实现分权限的管理此系统,实现的功能有会员的图书借阅、续接、还书;图书馆管理员的图书管理、会员管理、历史记录查询;超级管理员的图书管理、会员管理、历史记录查询、添加管理员、查询管理员等功能。

1.4 难题解决

1.4.1 课题难点

在做这个图书管理系统期间我一共遇到了三大问题,首先要解决的问题是如何划分系统边缘,这也是在需求分析时要解决的问题之一;其次要解决的问题就是如何使用ABAP的OPEN SQL进行操作,SAP的OPEN SQL虽然也是从标准SQL延伸而来的但是它也有一些特殊的地方与标准的SQL不同;最后遇见的问题就是数据库的设计问题,因为该系统数据信息量比较大,所以对系统的数据库表进行进一步的优化很难做到。

1.4.2 关键问题解决方案

解决第一个问题的方法是我首先对这个图书馆的管理业务进行分析,然后抽取逻辑模型,最后才设计与实现相应的信息系统;第二个问题是一个需要细心积累的问题,所以我仔细的参考文献进行分析,找到其中的相同于不同之处并且对其加以应用;第三个问题也是最难解决问题,因为它没有一个具体的标准所以我也只能尽量的搜索相关资料做一个相对优化的数据库。

1.4.3 拟采取的研究方法

首先进行需求分析,充分了解图书馆对系统的要求及想要实现的功能;其次在与客户进行交流了解客户需求以后,对系统进行分析设计尽量做出让客户容易操作的系统;最后充分使用ABAP面向过程和OPEN SQL的语言特点,利用先进技术语言编写程序。

1.5 可行性分析

1.5.1 技术及开发方法可行性

网上有类似的系统,在界面的设计上可以进行参照,加之本人对ABAP开发语言相对比较熟练,而且在对系统进行模块化分后也解决了一些技术方面的难题,所以应该可以做出一个相对功能比较完善的系统。我也可以参照网上比较成熟的同类软件我相信这样会获得更好的效果。

1.5.2 管理可行性

在开发此系统时根据处理的不同将系统分为三层,包括会员即系统注册用户、管理员和超级管理员,这样在开发时只需各层分配各层的功能十分的简单,在使用上就算没接触过计算机的用户在系统的提示下也可以轻松的操作。

1.5.3 经济可行性

在进行系统开发的同时进行同类成功系统功能和源代码的研究,吸取经验,合理使用软件开发的方法,使用软件开发模型进行有步骤有计划的开发。由于该项目是毕业设计题目,开发项目使用到的工具软件并不设计版权的问题,开发经费大大减少。

第2章 系统开发理论基础

2.1 数据库应用系统开发简介

在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。

数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库。

数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。

2.1.1 数据库

数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。

2.1.2 数据库管理系统

    数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。根据数据模型的不同,DBMS可以分成层次型、网状型、关系型、面向对象型等。ABAP中的就是一种关系型数据库管理系统。SQL语言是关系数据库的标准化语言,已得到了广泛的应用,ABAP中的OPEN SQL就是基于SQL语言的。

2.2 SQL语言介绍

SQL(Structured Query Language,结构查询语言)是一个功能强大的数据库语言。SQL语句通常用于完成一些数据库的操作任务,比如在数据库中更新数据,或者从数据库中检索数据。使用SQL的常见关系数据库管理系统有:R/3、Oracle、Microsoft SQL Server、 Access等等。虽然绝大多数的数据库系统使用SQL,但是它们同样有它们自立另外的专有扩展功能用于它们的系统。但是,标准的SQL命令,比如Select、 Insert、 Update、 Delete、 常常被用于完成绝大多数数据库的操作。R/3的OPEN SQL就是如此。

SQL不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。

2.3 关于ABAP

2.3.1 什么是ABAP

首先了解一下ABAP的发展历史是必要的,ABAP产生的最初的目的是用以生成简单打印报表程序,我们知道SAP最初是为解决财务实时数据处理问题的,ABAP(Advanced Business Application Programming->高级业务应用编程语言)现在用于编写SAP AG的几乎全部产品源代码。

严格地讲,ABAP/4不仅仅是一个开发工具,而且是一套完整的client/server开发环境,这很好理解,微软的Visiual Studio是开发环境;VB,VC++等是开发工具。ABAP开发环境包含支持程序开发的一些函数和包等。

ABAP/4 是第四代支持结构化程序设计的语言。它合并了所有通常的控制结构和模块化概念。同时,它还支持面向对象的程序设计方法,这就为ABAP的应用开发开拓了更广阔的空间。而且,它还可以实现和其他编程语言的合成,如VB,JAVA,C/C++等。

2.3.2 ABAP的一些特性:

(1) ABAP/4支持商业数据类型和操作。您可以用特殊日期和时间字段进行计算。 系统会自动执行必需的类型转换。

(2)ABAP/4包含一个叫 Open SQL 的SQL子集。用 Open SQL,您可以读取和访问数据库表,与所用的数据库系统无关。

(3)ABAP/4允许您定义和调用子程序。也可以调用其他程序的子程序 。参数能够以各种方式从子程序传递或传递到子程序。

(4)ABAP/4包含一种特殊子程序,叫做功能模块。您可以在中央库中创建和维护功能模块。在调用程序和子程序之间功能模块有一个明确定义的数据接口。它们能够以调用程序的独立模式进行分别测试。

(5)ABAP/4 报表程序用于分析数据库表中的数据。这种分析的结果可以显示在屏幕上或发送到打印机上。逻辑数据库支持报表程序。

(6)ABAP/4将对话程序组织为包含对话模块的模块池。每个动态程序( 由一个屏幕及其流逻辑组成的“动态程序” )都基于一个ABAP/4 对话程序。流逻辑包含对ABAP/4对话模块的调用。

2.3.3 和ABAP相关联的SAP BASIS结构

SAP R/3系统是一个典型的三层架构系统,包括:

(1)表现层(Presentation Layer):这是SAP用户和R/3系统交流的接口,用户在这一层对SAP系统进行操作。这层将用户的命令或者操作传送给R/3系统,然后系统进行相应的处理后把数据返还给用户。

(2)应用层(Application layer):这层包括一个或者多个应用服务器和一个消息服务器。每一个应用服务器包括一系列服务以便运行应用程序。所有的服务分置在这些应用服务器之中,其实用户需要的只是其中的一个应用服务器,多个服务器之间传递信息以决定用户到底需要的是哪个服务器的服务。

(3)数据库层(Database layer):这里就是SAP系统的核心,存放了所有SAP系统的数据。

SAP支持很多数据库系统,包括:Microsoft SQL Server,ORACLE,INFORMIX,DB2等主流数据库系统。

2.4 SQL语言在ABAP中的应用

在ABAP中SQL语言被分为OPEN SQL 和 NATIVE SQL两种,OPEN SQL支持跨数据库平台的数据操作也就是说无论你用的是什么数据库他都能使用,而NATIVE SQL只能在指定的数据库中使用也就是说你一旦换了数据库种类以前所写的SQL语句就都不好用了。所以在大多数情况下我们都是使用OPEN SQL的只有在少数用OPEN SQL不能实现操作的情况下才使用NATIVE SQL。

第3章  系统分析

3.1 需求分析

需求分析阶段主要的目的是了解客户的切实需求,即做出一个客户真正想要的系统,因为客户对软件设计可能不太了解所以这个阶段是非常重要的,如果出现错误就可能导致整个系统的开发方向错误,也就是说做出了一个不是客户所想要的系统,这样就需要重新返工,所以这个阶段一定要跟客户做好沟通了解客户对功能系统的要求。

结合企业实际,需要系统满足以下功能:

有良好的人际界面,可以简单方便的操作;

会员对在馆图书有:借阅、续接、归还的功能;

管理员对在馆图书有增、删、改、查的功能,对会员有添加和修改会员信息的功能;

超级管理员除了有管理员的所有功能外还有添加管理员和对管理员曾经的操作进行查询的功能。

3.2 业务流程分析

业务流程分析可以帮助我们了解某项业务的具体处理过程,发现和处理系统调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程。

会员系统的业务流程如下: 会员首先需要登录,如果登录失败,系统给出登录失败的信息,如果登录成功,会员可以查看自己现在已经借的图书信息,包括本数、图书名称、作者和欠款数目等等。

管理员的业务流程如下:管理员首先需要登录,如果登录失败,系统给出登录失败的信息,如果登录成功,管理员有以下三个功能:图书管理(添加图书、删除图书、更改图书信息、查询图书信息)、会员管理(添加会员、会员信息更改)、历史记录查询(查询历史记录、查询欠款记录)。

超级管理员的业务流程如下:超级管理员首先需要登录,如果登录失败,系统给出登录失败的信息,如果登录成功,超级管理员除了有管理员的功能以外还有添加管理员和查询管理员操作信息的功能。具体的业务流程图如图3.1所示。

                           图3.1 业务流程图

3.3 数据流分析

数据流程图精确地在逻辑上描述系统的功能、输入、输出和数据存储等,摆脱了其物理内容,是描述MIS逻辑模型的最主要的工具(可描述现行系统和新系统),是结构化分析最基本、最重要的工具。

数据流是由一组确定的数据组成,用带有名字的箭头表示,名字表示流经的数据,箭头表示流向。

加工是对数据进行的操作,加工也称处理,包括两方面内容:变换数据的组成,即改变数据结构;在原有的数据内容基础上增加新的内容,形成新的数据。

外部实体是在所研究系统外,独立于系统而存在的,但又和系统有联系的实体,它表示数据的来源和去向,它可以是某个人员、组织、某一信息系统或某种事物。

确定系统的外部项,实际上就是明确系统与外部环境之间的界限,从而确定系统的范围。

根据自顶向下,逐层分解的原则,对系统顶层处理功能进行细化分成若干个处理功能,产生一层细化DFD图(顶层数据图如图3.2)。

图3.2 数据流程图顶层图

将系统各功能进一步细化,产生数据流程二层图

处理1为会员子图,它主要描述一个注册后的会员登录后所能进行的操作,首先会员需要输入会员信息进入登录界面,在这个界面上会员就可以借阅、续借、归还图书了。如图3.3所示。

图3.3 数据流程图底层图(1)-用户

处理2为管理员子图,它主要描述一个图书管理员所能进行的操作,首先管理员通过在登录界面输入登录信息,成功登录后就可以对注册会员、图书和历史记录进行操作和查询了。如图3.4所示。

图3.4 数据流层图底层图(2)-管理员

    处理3为超级管理员子图,它主要描述系统超级管理员所能进行的操作,首先超级管理员通过在登录界面输入登录信息,成功登录后除了有管理员的所有功能意外还可以添加管理员和查询管理员的操作记录。如图3.5所示。

图3.5 数据流程图底层图(3)-超级管理员

3.4 数据字典 

数据字典是以特定格式记录下来的、对系统的数据流程图中各个基本要素(数据流、加工、存储、和外部项)的内容和特征所作的完整的定义和说明。是对数据流程图的重要补充和说明。

3.4.1 外部实体定义

外部实体如表3.1到表3.3所示。

表3.1 外部实体(1)

名称:会员

总编号:1-001

说明:以会员的身份进行操作的人

编  号:001

数据流来源:数据库输入或管理员、超级管理员添加

结      构:编码+名+作者+出版社+总数+在馆数

表3.2 外部实体(2)

名称:管理员

总编号:1-002

说明:以管理员身份进行操作的人

编  号:002

输入数据流:登录信息

输出数据流:返回信息

表3.3 外部实体(3)

名称:超级管理员

总编号:1-003

说明:以超级管理员身份进行操作的人

编  号:003

输入数据流:登录信息

输出数据流:返回信息

以上即为本系统的外部实体表。

3.4.2 数据存储

数据流的暂停或永久保存的地方。包括:数据存储的编号、名称、简述、组成、关键字和相关的处理。数据存储如表3.4到3.9所示。

表3.4 数据存储(1)

名      称:图书信息

总编号:2-001

简      述:存放所有图书信息

编  号:D1

数据流来源:数据库输入或管理员、超级管理员添加

结      构:编码+名+作者+出版社+总数+在馆数

关  键  字:编码

表3.5 数据存储(2)

名      称:会员信息  

总编号:2-002

简      述:存放所有会员的信息  

编  号:D2

数据流来源:用户的输入

结      构:学号+用户名+密码

关  键  字:学号

表3.6 数据存储(3)

名      称:图书借阅信息  

总编号:2-003

简      述:存放图书在借情况    

编  号:D3

数据流来源:用户输入

结      构:学号+编码+借阅时间+应还时间+还书时间+欠款+数目

关  键  字:学号+编码

表3.7 数据存储(4)

名      称: 用户信息  

总编号:2-004

简      述:存放所有用户的名称和密码    

编  号:D4

数据流来源:数据库输入或用户、管理员、超级管理员添加

结      构:用户编码+用户名+密码

关  键  字:用户编号

表3.8 数据存储(5)

名      称:历史记录信息  

总编号:2-005

简      述:存放图书曾借情况    

编  号:D5

数据流来源:用户输入

结      构:学号+编码+借阅时间+应还时间+还书时间+欠款+数目

关  键  字:学号+编码

表3.9 数据存储(5)

名      称:管理员操作  

总编号:2-006

简      述:存放管理员操作情况    

编  号:D6

数据流来源:管理员输入

结      构:用户编码+操作种类+操作时间

关  键  字:用户编码

以上即为本系统的数据存储表。

3.4.3 处理逻辑定义

仅对数据流程图(DFD)中最底层的处理逻辑加以说明。包括:处理逻辑名称及编号、说明、输入和输出。处理逻辑表如表3.10到3.26所示。

表3.10 处理逻辑(1)

名      称:会员信息辨别

总编号:3-001

功      能:会员登录系统

编号:P1

输入数据流: 用户名和密码

输出数据流:成功登录或失败

表3.11 处理逻辑(2)

名      称:管理员信息辨别

总编号:3-002

功      能:管理员登录系统

编号:P2

输入数据流: 用户名和密码

输出数据流:成功登录或失败

表3.12 处理逻辑(3)

名      称:超级管理员信息辨别

总编号:3-003

功      能:超级管理员登录系统

编号:P3

输入数据流: 用户名和密码

输出数据流:成功登录或失败

表3.13 处理逻辑(4)

名      称:浏览已借图书

总编号:3-004

功      能:显示已借图书

编号:P4

输入数据流: 会员名和密码

输出数据流:已借图书或没有信息

表3.14 处理逻辑(5)

名      称:借阅图书

总编号:3-005

功      能:借阅图书

编  号:P5

输入数据流: 会员名和密码

输出数据流:借取成功或失败信息

表3.15 处理逻辑(6)

名      称:续接图书

总编号:3-006

功      能:续接图书

编  号:P6

输入数据流: 会员输入

输出数据流:续接成功或失败信息

表3.16 处理逻辑(7)

名      称:归还图书

总编号:3-007

功      能:归还图书

编号:P7

输入数据流: 会员输入

输出数据流:归还成功或失败信息

表3.17 处理逻辑(8)

名      称:添加图书

总编号:3-008

功      能:添加图书

编号:P8

输入数据流: 管理员输入

输出数据流:成功或失败信息

表3.18 处理逻辑(9)

名      称:删除图书

总编号:3-009

功      能:删除图书

编号:P9

输入数据流: 管理员输入

输出数据流:成功或失败信息

表3.19 处理逻辑(10)

名      称:更改图书

总编号:3-010

功      能:更改图书

编号:P10

输入数据流: 管理员输入

输出数据流:成功或失败信息

表3.20 处理逻辑(11)

名      称:查询图书

总编号:3-011

功      能:查询图书

编号:P11

输入数据流: 管理员输入

输出数据流:成功或失败信息

表3.21 处理逻辑(12)

名      称:添加会员

总编号:3-012

功      能:添加会员

编号:P12

输入数据流: 管理员输入

输出数据流:成功或失败信息

表3.22 处理逻辑(13)

名      称:更改会员

总编号:3-013

功      能:更改会员

编号:P13

输入数据流: 管理员输入

输出数据流:成功或失败信息

表3.23 处理逻辑(14)

名      称:所借记录查询

总编号:3-014

功      能:所借记录查询

编号:P14

输入数据流: 管理员输入

输出数据流:成功或失败信息

表3.24 处理逻辑(15)

名      称:欠款记录查询

总编号:3-015

功      能:欠款记录查询

编号:P15

输入数据流: 管理员输入

输出数据流:成功或失败信息

表3.25 处理逻辑(16)

名      称:添加管理员

总编号:3-016

功      能:添加管理员

编号:P16

输入数据流: 管理员输入

输出数据流:成功或失败信息

表3.26 处理逻辑(17)

名      称:操作记录

总编号:3-017

功      能:操作记录

编号:P17

输入数据流: 管理员输入

输出数据流:成功或失败信息

以上即为本系统的处理逻辑表。

3.4.4 数据流定义

表明系统中数据的逻辑流向,可以是数据项或数据结构。包括:数据流的名称及编号;说明;数据流的来源;数据流的去向;数据流的组成;数据流的流通量;高峰期流通量。数据流表如表3.27到3.31所示。

表3.27 数据流(1)

名称:登录信息

总编号:4-001   

编  号:F1

数据流来源:会员、管理员、超级管理员

数据流去向:P1、P2、P3

表3.28 数据流(2)

名称:返回信息

总编号:4-002   

编  号:F2

数据流来源:P1、P2、P3

数据流去向:会员、管理员、超级管理员

表3.29 数据流(3)

名称:会员信息

总编号:4-003   

编  号:F3

数据流来源:P1

数据流去向:P11、P12、P13、P14

表3.30 数据流(4)

名称:管理员信息

总编号:4-004   

编  号:F4

数据流来源:P2

数据流去向:P211、P212、P213、P214、P221、P222、P231、P231

表3.31 数据流(5)

名称:图书信息

总编号:4-005  

编  号:F5

数据流来源:P3

数据流去向:P311、P312、P313、P314、P321、P322、P331、P331、P34、P35

以上即为本系统的数据流表。

第4章 系统设计

4.1 系统设计原则及具体功能划分

4.1.1 模块设计原则

该图书管理系统是为了使图书馆的图书更为系统而分析设计的。该图书管理系统更加注重了界面的洁化,大方化,力求给人以耳目一新的感觉,更加方便可几乎没有计算机技术的人员使用。

4.1.2 功能模块划分

该系统在功能模块的划分上本着上面所介绍的原则进行,具体分为会员的借书、续接、还书;管理员的图书管理、会员管理和历史记录查询;超级管理员的除了有与管理员相同的图书管理、会员管理、历史记录查询以外还有添加管理员与管理员操作查询。具体说明如下:

(1)会员的借书、续接、还书:包括查看该会员已借的书籍,及对这些书籍的归还和续接和借取新书。在进入会员登录界面时,首先可以查看该会员已借的图书,退出这个界面后可以对已借图书进行续接和归还管理还可以借取新书,但是每位会员只能借取最多两本书,如果会员已经借了两本书,系统则会提醒不能再借了。

(2)管理员的图书管理、会员管理和历史记录查询:图书管理可以对图书信息进行增、删、改、查;会员管理可以对会员信息进行修改和添加会员;历史记录查询可以对已借记录进行查询,查询的项目有借书会员编号、所借图书编号和借书时间范围,还可以查询欠款记录其中包括借书会员编号、所借图书编号、应还日期、还书日期和欠款数目等信息。

(3)超级管理员的管理:其中图书管理、会员管理和历史记录查询与管理员的相同,另外还可以添加管理员并且查询管理员的操作情况其中包括管理员编码、管理员操作和操作时间等信息。

4.2 代码设计

代码设计在系统软件的开发、维护与升级中都者有不可替代的作用,代码设计是一个系统软件安全性能是不是符合要求,实用性是否强的一个衡量标准。

该系统的代码设计遵循标准化原则,对代码的很多方面进行了规范,例如:代码设计时要尽量使用比较经典的算法为系统提供一个简单、清楚、易于辨识、冗余度最小的数据信息,以节省存储空间。代码设计还遵从了可读性设计,可使用性强等的设计原则,对代码进行了必要的注释,这是因为该系统课程信息的维护模块可能在以后进行系统升级或系统维护时并不是原来的程序员进行,那么接管该系统的程序员就必须进行代码的阅读,如该代码的可读性比较差,那么该系统就会给程序员带来麻烦。虽然进行了以上的这些代码的优化设计,但是由于本人水平有限,并不能保证这些系统代码的最优化设计。

4.3 输入/输出设计

4.3.1 输出设计

选择输出方式:实现输出要采用哪些输出设备和介质。

本系统选用的输出设备:终端显示器;

介质:屏幕;

用途:显示数据文本和图形;

特点:响应快、灵活、实现人机对话。

输出格式设计:查询客户信息的时候,采用简单组列的格式。简单组列式把若干组有关的输出数据,按一定的顺序要求,在进行简单的组织之后,显示在屏幕或打印纸上。输出程序设计简单,输出内容直观、排列简单紧凑,适合数据项不多,而数据量较大的场合采用,常作为核对、查询用的输出格式。

4.3.2 输入设计

输入设计是MIS系统与用户之间交互的纽带,决定着人机交互的效率。

确定输入数据内容:本系统输入的数据内容为图书编码、图示名称、图书作者等。数据格式为文字或数字。

 输入数据正确性校验输入设计的重要内容。输入设计最重要的问题是保证输入数据的正确性。对数据进行必要的检验,是保证输入正确的重要环节。

确定输入设备:输入设备选用终端控制台键盘,适用于少量数据,直接人工输入或用于人机对话等。

输入设计的格式:本系统采用的合同选用表格式输入,表格式输入格式是把一组输入的数据项排列成一张空白表的格式,操作员像填表一样输入数据,该方式称为“表格式输入方式”。符合人们日常习惯,受欢迎。但要注意和安排屏幕,尽量与数据载体的格式一样,输入操作会觉得亲切自如,不易出错。

4.3.3 人机对话设计

人与计算机进行信息交流。输入、输出都是人机对话。通过屏幕、键盘等设备与计算机进行信息交换,控制系统的运行。

人机对话设计的原则:对话要清楚、简单,用词要符合用户观点和习惯;对话要适应不同操作水平的用户,便于维护和修改;错误信息设计要有建设性;关键操作要有强调和警告。

4.4 界面设计

界面是给用户留下第一印象的系统的一个方面,是用户最常接触的部分,一个友好的用户界面不仅要做到具有良好的观赏性,还应方便用户对系统的操作使用。

该系统的界面是由ABAP语言来进行编辑的,在该系统模块中进行界面设计时要充分考虑用户的操作习惯,减少用户大量的输入操作以减轻用户的工作量。在进行管理的界面设计时,遵循了软件工程界面设计原则保持了界面的一致性,在用户进行完一系列的操作之后,系统将给出提示信息,告诉用户操作的结果

4.5 数据库的设计

4.5.1 概念设计

得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。

根据上面的设计规划出的实体有:图书管理信息、会员信息、用户信息。

实体之间关系的E-R图如下图4.1所示

图4.1 E-R图

下图为实体图书的具体属性图。

图4.2 图书

下图为实体会员的具体属性图。

图4.3 会员

下图为实体管理员的具体属性图。

图4.4 管理员

4.5.2 逻辑结构设计

由于概念设计的结果是ER图,DBMS一般采用关系型,因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。

概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。设计逻辑结构时一般要分为三步进行:(1)将概念结构转换为一般的关系、网状、层次模型;(2)将转换来的关系、网状、层次模型、向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化。

因为我们选用的是关系型数据库。所以我们要做的就是将E-R图转换为关系模型。将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转换为关系模式。结果如下:

图书信息表(图书编码、图书名称、图书作者、图书出版社、图书数量、在馆数目)

会员信息(用户学号、用户姓名、用户性别、用户年龄、用户专业、用户学制、注册时间、到期时间)

图书借阅信息表(用户学号、图书编号、借阅日期、应还日期、还书日期、欠款数目、货币种类)

用户信息(用户编码、用户名称、用户密码)

历史记录(用户学号、图书编号、借阅日期、应还日期、还书日期、欠款数目、货币种类)

管理操作表(用户编码、操作种类、操作时间)

4.5.3 物理结构设计

物理设计是在计算机的物理设备上确定应采取的数据存储结构的存取方法,以及如何分配存储空间等问题。

数据的概念结构设计完成后,可以将其转化为数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。具体的物理设计表如4.1到4.6所示。

表4.1 图书信息表(zybookinfo)

字段名

字段含义

数据类型

长度

主键

允许空

默认值

Books_number

图书编码

Numc

6

P

0

Books_name

图书名称

Char

16

Null

Books_author

图书作者

Char

16

Null

Books_concern

图书出版社

Char

16

Null

Books_amount

图书总数

Int1

3

0

Books_remain

在馆数目

Int1

3

0

表4.2 会员信息表(zymemberinfo)

字段名

字段含义

数据类型

长度

主键

允许空

默认值

Member_number

用户学号

Numc

6

P

0

Member_name

用户姓名

Char

16

Null

Member_pw

用户密码

Char

16

Null

Member_age

用户年龄

Numc

2

0

Member_major

用户专业

Char

16

Null

Member_length

用户学制

Int1

3

0

Member_time

用户注册时间

Dats

8

00000000

Member_timeup

用户到期时间

Dats

8

00000000

表4.3 图书借阅信息表(zyinfos)

字段名

字段含义

数据类型

长度

主键

允许空

默认值

Member_number

用户学号

Numc

6

P

0

Books_number

图书编码

Numc

6

P

0

Borrowed_date

借阅日期

Dats

8

00000000

Maturity_date

应还日期

Dats

8

00000000

Return_date

还书日期

Dats

8

00000000

Member_arrears

欠款数目

Curr

5

0

Member_currency

货币种类

Cuky

5

Null

表4.4 用户信息表(usersinfo)

字段名

字段含义

数据类型

长度

主键

允许空

默认值

Number_user

用户编号

Numc

6

P

0

Member_name

用户名称

Char

16

Null

Member_pw

用户密码

Char

16

Null

表4.5 历史记录信息表(zyannals)

字段名

字段含义

数据类型

长度

主键

允许空

默认值

Member_number

用户学号

Numc

6

P

0

Books_number

图书编码

Numc

6

P

0

Borrowed_date

借阅日期

Dats

8

00000000

Maturity_date

应还日期

Dats

8

00000000

Return_date

还书日期

Dats

8

00000000

Member_arrears

欠款数目

Curr

5

0

Member_currency

货币种类

Cuky

5

Null

表4.6 管理操作表(zadministrator)

字段名

字段含义

数据类型

长度

主键

允许空

默认值

Number_user

用户编号

Numc

6

P

0

Work_class

操作种类

Char

16

P

Null

Work_time

操作时间

Dats

8

P

00000000

以上即为本系统的具体物理设计表。

第5章 系统实现

5.1 总界面的实现

本程序运行后的效果如图5.1所示。选择按钮[浏览]可以查看图书馆中所有书籍信息,其中包括图书的编号、图书名称、图书作者、图书出版社、图书总数、在馆图书;选择按钮[登录]系统会根据您输入的用户编号和密码自动登录到会员、管理员和超级管理员的相应界面;选择按钮[退出]则会退出系统。

图5.1 实例运行效果

5.2 登录功能的实现

选择按钮[登录]后,如果是会员的账号和密码则会进入会员登录界面,在这个界面中您可以浏览你已经借过的图书信息,可以借阅新的图书但是一名会员最多就只能借两本书,也可以续借已借书籍但是前提是您已借的图书还没有到时,如果已经有欠款你则必须先归还图书并交罚金后才可以再借该书,还可以归还书籍如果您没有欠款则可直接归还如果有欠款系统则会提醒您归还欠款;如果是管理员的账号和密码则会进入管理员界面在这个界面中管理员可以对图书和会员进行管理包括对图书的增删改查和对会员的添加及修改,但当会员手中有图书时系统会提示管理员暂时不能修改该会员信息,除此之外管理员还可以查询历史记录包括借书记录和欠款记录;如果是超级管理员的账号和密码则会进入超级管理员界面在这个界面中超级管理员除了有管理员的所有功能以为还可以添加管理员和对管理员的操作信息进行查询。代码如下:

下面的代码用于定义属性。

PARAMETERS: number(15) TYPE c,

              pw(15) TYPE c.

DATA wa1_zymemberinfo TYPE zymemberinfo.

DATA itab1_zymemberinfo TYPE TABLE OF zymemberinfo.

DATA wa_zymemberinfoes TYPE zymemberinfo.

DATA wa1_zyusersinfo TYPE zyusersinfo.

DATA itab1_zyusersinfo TYPE TABLE OF zyusersinfo.

DATA wa_zyusersinfo TYPE zyusersinfo.

DATA timeup TYPE i.

DATA wa_zyinfos TYPE zyinfos.

下面的代码用于判断是不是超级管理员,如果是进入超级用户界面。

IF number = '888888' AND pw = '888888'.

  MESSAGE '超级管理员欢迎您的登录!' TYPE 'I'.

  wa1_zyusersinfo-number_user = '888888'.

  wa1_zyusersinfo-member_pw = '888888'.

  EXPORT wa_zyusersinfo FROM wa1_zyusersinfo itab1_zyusersinfo TO

 MEMORY ID 'user_id'.

  SUBMIT zy_01_02_03.

ENDIF.

下面的代码用于判断是不是会员,如果是会员进入会员界面。

SELECT  SINGLE *

       FROM zymemberinfo

       INTO wa_zymemberinfoes

       WHERE member_number = number.

IF wa_zymemberinfoes-member_pw = pw.

  wa1_zymemberinfo-member_number = wa_zymemberinfoes-member_number.

  wa1_zymemberinfo-member_name = wa_zymemberinfoes-member_name.

  wa1_zymemberinfo-member_pw = wa_zymemberinfoes-member_pw.

  wa1_zymemberinfo-member_age = wa_zymemberinfoes-member_age.

  wa1_zymemberinfo-member_major = wa_zymemberinfoes-member_major.

  wa1_zymemberinfo-member_length = wa_zymemberinfoes-member_length.

  wa1_zymemberinfo-member_time = wa_zymemberinfoes-member_time.

  wa1_zymemberinfo-member_timeup = wa_zymemberinfoes-member_timeup.

  EXPORT wa_zymemberinfo FROM wa1_zymemberinfo itab1_zymemberinfo TO

 MEMORY ID 'member_id'.

  SELECT SINGLE *

               FROM zyinfos

               INTO wa_zyinfos

               WHERE member_number = wa1_zymemberinfo-member_number.

  timeup = wa1_zymemberinfo-member_timeup - 30.

下面的代码用于判断用回是否到期,如果到期则不能再借书了。

  IF sy-datum < timeup.

    MESSAGE '用户登录成功!' TYPE 'I'.

    SUBMIT zy_01_02_01.

  ELSEIF    sy-datum > timeup

        AND sy-datum < wa1_zymemberinfo-member_timeup.

    MESSAGE '您的使用期限即将到期!' TYPE 'I'.

    SUBMIT zy_01_02_01.

  ELSEIF     sy-datum > wa1_zymemberinfo-member_timeup

         AND wa_zyinfos-books_number = ''.

    MESSAGE '您的使用期限已过!' TYPE 'I'.

    SUBMIT zy_01.

  ELSEIF     sy-datum > wa1_zymemberinfo-member_timeup

         AND wa_zyinfos-books_number NE ''.

    MESSAGE '您的使用期限已过,请归还您手中的借书!' TYPE 'I'.

    SUBMIT zy_01_02_01_04.

  ENDIF.

ENDIF.

下面的代码用于判断是不是管理员,如果是进入管理员界面。

SELECT SINGLE *

       FROM zyusersinfo

       INTO wa_zyusersinfo

       WHERE number_user = number.

IF wa_zyusersinfo-member_pw = pw.

  wa1_zyusersinfo-number_user = wa_zyusersinfo-number_user.

  wa1_zyusersinfo-member_name = wa_zyusersinfo-member_name.

  wa1_zyusersinfo-member_pw = wa_zyusersinfo-member_pw.

  EXPORT wa_zyusersinfo FROM wa1_zyusersinfo itab1_zyusersinfo TO

 MEMORY ID 'user_id'.

 MESSAGE '管理员登录成功!' TYPE 'I'.

  SUBMIT zy_01_02_02.

ENDIF.

MESSAGE '用户名或密码错误,请重新输入!' TYPE 'I'.

SUBMIT zy_01_02 VIA SELECTION-SCREEN AND RETURN.

5.3 会员功能的实现

5.3.1 会员的已借功能的实现

在登录系统后查看已借图书信息界面的实现,如果没有借书则会出现提示信息说该会员已经没有借书,如果有借书则会显示出您所借书的信息情况其中包括用户编码、图书编码、借阅日期、应还日期和欠款数目。

5.3.2 会员借书功能的实现

借书界面的实现,在你预想借的图书编码处双击并在接下来的界面中点击确定后则可借取该书如不想借取也可以点击返回,其中包括图书编码、图书名称、图书作者、图书出版社、图书总数和在馆数目(即当你借后的图书数目)等信息。代码如下:

下面的代码用于定义属性。

DATA ok_code LIKE sy-ucomm.

DATA wa_zyinfos TYPE zyinfos.

DATA wa_zybookinfo TYPE zybookinfo.

DATA wa_zyannals TYPE zyannals.

TABLES zybookinfo.

TABLES zyinfos.

DATA: wa2_zymemberinfo TYPE zymemberinfo,

          itab2_zymemberinfo TYPE STANDARD TABLE OF zymemberinfo.

IMPORT wa_zymemberinfo TO wa2_zymemberinfo itab2_zymemberinfo FROM

MEMORY ID 'member_id'.

下面的代码用于在界面输出所有图书馆的图书及其属性。

START-OF-SELECTION.

      WRITE: AT 30(10)'图书编码',

             AT 40(10)'图书名称',

             AT 50(10)'图书作者',

             AT 60(12)'图书出版社',

             AT 72(10)'该书总数',

             AT 82(10)'剩余数目'.

      ULINE.

      WRITE: / '您现在所在的是借书界面!'.

      SELECT *

             FROM zybookinfo

             INTO CORRESPONDING FIELDS OF wa_zybookinfo.

        WRITE: /  wa_zybookinfo-books_number UNDER '图书编码',

                  wa_zybookinfo-books_name UNDER '图书名称',

                  wa_zybookinfo-books_author UNDER '图书作者',

                  wa_zybookinfo-books_concern UNDER '图书出版社',

                  wa_zybookinfo-books_amount UNDER '该书总数',

                  wa_zybookinfo-books_remain UNDER '剩余数目'.

        HIDE:  wa_zybookinfo-books_number,

               wa_zybookinfo-books_name,

               wa_zybookinfo-books_author.

      ENDSELECT.

下面的代码用于在界面内容中显示点击的信息。

AT LINE-SELECTION.

      SELECT SINGLE *

             FROM zybookinfo

             INTO CORRESPONDING FIELDS OF wa_zybookinfo

             WHERE books_number = wa_zybookinfo-books_number.

      IF wa_zybookinfo-books_remain >= 1.

        wa_zybookinfo-books_remain = wa_zybookinfo-books_remain - 1.

        MOVE-CORRESPONDING wa_zybookinfo TO zybookinfo.

      ELSE.

        MESSAGE '该书已经全部借出!' TYPE 'E'.

      ENDIF.

下面的代码用于在界面中点击按钮后产生相应的功能。

MODULE user_command_1212 INPUT.

      CASE ok_code.

        WHEN '确定'.

          SELECT * FROM zyinfos

                   INTO CORRESPONDING FIELDS OF wa_zyinfos

                   WHERE member_number = wa2_zymemberinfo-member_number.

          ENDSELECT.

下面的代码用于判断这是不是您借的第一本书,如果是则作为第一本图添加到借阅信息表。

      IF sy-dbcnt = 0.

        wa_zyinfos-member_number = wa2_zymemberinfo-member_number.

        wa_zyinfos-books_number = wa_zybookinfo-books_number.

        wa_zyinfos-borrowed_date = sy-datum.

        wa_zyinfos-maturity_date = sy-datum + 30.

        UPDATE zybookinfo FROM wa_zybookinfo.

        INSERT INTO zyinfos  VALUES wa_zyinfos.

        INSERT INTO zyannals VALUES wa_zyinfos.

        MESSAGE '这是您借的第一本书,您还可以再借一本书!' TYPE 'I'.

下面的代码用于如果这是您要借的第二本书则需判断这本书您是不是曾经结果,如果是则提示。

      ELSEIF   wa_zyinfos-books_number EQ wa_zybookinfo-books_number

           AND sy-dbcnt = 1.

        MESSAGE '您已经借过这本书了!' TYPE 'W'.

下面的代码用于如果这是您要借的第二本书则需判断这本书您是不是曾经结果,如果不是则作为您借的第二本书把这本书的信息添加到借阅信息表中。

      ELSEIF   wa_zyinfos-books_number NE wa_zybookinfo-books_number

           AND sy-dbcnt = 1.

wa_zyinfos-member_number = wa2_zymemberinfo-member_number.

        wa_zyinfos-books_number = wa_zybookinfo-books_number.

        wa_zyinfos-borrowed_date = sy-datum.

        wa_zyinfos-maturity_date = sy-datum + 30.

        INSERT INTO zyinfos VALUES wa_zyinfos.

        UPDATE zybookinfo FROM wa_zybookinfo.

        INSERT INTO zyannals VALUES wa_zyinfos.

        MESSAGE '这是您借的第二本也是最后一本书了!' TYPE 'I'.

      ELSE.

MESSAGE '您已经借了两本书了,在没还书之前不能再借了!' TYPE 'I'.

ENDIF.

SUBMIT zy_01_02_01_01.

WHEN '返回'.

SUBMIT zy_01_02_01_02.

ENDCASE.

ENDMODULE.                 " USER_COMMAND_1021  INPUT

下面的代码用于清空字段。

MODULE status_1212 OUTPUT.

*  SET PF-STATUS 'xxxxxxxx'.

*  SET TITLEBAR 'xxx'.

  CLEAR ok_code.

ENDMODULE.                 " STATUS_1021  OUTPUT

5.3.3 会员需借功能的实现

续借图书界面的实现,如果你尚未有借书则会提示您已经没有借书,如果你已经借取了图书则会进入续借界面,这时您可以下您想要续借的图书编码处双击这会出现这本数的具体情况,如果您确定想续借该书则可点击确定如果不想续借也可点击返回,但是如果您想续借的书已经欠款则不能再续借,这时您必须先归还此书并且缴纳欠款。

5.3.4 会员还书功能的实现

还书界面的实现与续借界面相同。

5.4 管理员功能的实现

5.4.1 管理员的图书管理功能的实现

管理员图书管理界面的实现,添加界面:如果该书已经存在则会弹出该书已经存在的界面,如果添加成功则会出现该书添加成功;删除界面:如果该书不存在则会出现该书不存在的界面,如果该书存在则会成功删除该书;更改界面:如果该书不存在则弹出该书不存在界面,如果该书存在则可以成功更改信息;查询界面:在这个界面中如果不填写确切信息则代表全部。图书添加界面如图5.2所示。

图5.2 图书添加界面

5.4.2 管理员的会员管理功能的实现

管理员会员管理界面的实现,添加会员界面:如果该会员已经存在则会弹出该会员已经存在的界面,如果添加成功则会出现该会员成功添加的消息;更改会员:在这个界面您可以对会员的全部信息进行修改。更改会员信息界面如图5.3所示。

图5.3 更改会员信息界面

5.4.3 管理员的查询历史记录功能的实现

历史记录查询,如果点击所借记录查询在弹出的界面中您可以输入会员编码、图书编码和所借时间范围进行模糊查询,如果点击欠款记录查询则会显示出所有欠款记录,如果没有欠款记录则会显示出没有欠款记录的信息。历史记录查询界面如图5.4所示。

图5.4 历史记录查询界面

5.5 超级管理员功能的实现

5.5.1 超级管理员的添加管理员功能的实现

添加管理员界面的实现,其中包括管理员的账号、管理员名称和管理员密码。添加管理员界面如题5.5所示

图5.5 添加管理员界面

5.5.2 超级管理员的查询管理员操作功能的实现

管理员操作查询界面的实现,其中包括管理员的编号、管理员的操作类别和管理员的操作时间等信息。

第6章 系统验证

6.1 方法概述

在对系统进行测试之前进行了测试方法的讨论,挑选出最适合的软件测试方法对该图书管理系统进行测试。

主要的测试方法有:

(1)等价类划分:该方法不仅仅对系统进行无效的输入数据进行系统的纠错能力的测试,而且也给出正确的输入来对系统是否能进行正确的输出来进行分析。根据该系统维护模块的功能说明,对每一个输入条件确定若干个有效的等价类和若干个无效的等价类进行测试。

(2)数据和数据库完整性测试:在该系统的测试中,数据库和数据库进程应作为一个子模块来进行测试。在数据库的存储容量及安全性来进行测试。

(3)集成测试:集成测试的主要目的是检测系统是否达到需求,对业务流程技术的处理是否符合规范,检测系统对业务流的处理是否存在逻辑不严谨即错误,检测需求是否存在不合理的标准计要求。

6.2 系统功能测试

根据上面所提到的该系统的测试方法,对该系统进行了比较详细的功能测试,具体的测试如下:

(1)对会员登录模块进行功能测试:测试在会员没有借书时是不是会跳出信息提示,在会员已经借了两本书后是不是可以再借书,是不是有提示信息,如果会员借的第二本书与用户借的第一本书相同是不是有提示信息告诉会员该书您已经借过,如果在本次登录之前会员已经有借书是不是会自动根据借书时间和系统时间算出会员的欠款数目,以及当会员还书后数据库中的在馆数量是否会增加。

(2)对管理员登录模块进行功能测试:在图书管理中,管理员是否可以成功的添加图书,如果该书已经存在是否又提示信息说该书已经存在,如果当添加图书时图书总数和在馆数目不相同时是否有提示,在删除图书、更改图书、查询图书功能中如果输入了一个不存在的书是否有提示说该书不存在;在会员管理中,当添加会员时如果该会员已经存在是否有提示,当成功时是否有提示,当更改会员信息时如果该会员手中有借书是否有提示告知该会员信息现在不能进行修改;在历史查询中,是否能按照要求查出所要查询的记录。

(3)对超级管理员模块进行功能测试:在添加管理员功能实行中,如果该管理员已经存在是否有提示信息以及欠款查询是否能够实现查询出的记录是否正确。

6.3 错误处理测试

对于一个好的系统来说,不仅仅是对用户给出的正确的输入信息和给与正确输出就可以的,还要对用户给出的错误输入给出提示,并进行相应的操作。在该模块中,对用户给出的错误输入,系统会有相应的错误处理机制进行错误的处理,给出错误原因,并引导用户对错误的实用方法进行纠正,不至于在捕获了错误信息后就自行退出系统操作。

在进行该系统的测试时,重点进行了该系统的错误处理测试,在测试中并没有发现什么问题,这样就证实了该系统的可用性。下面就是该系统的错误处理测试的具体举例:

(1)添加图书信息测试:填写图书信息时,如果编码为空,系统会给出错误提示“图书编码不能为空!”;如果图书名称为空,系统提示“图书名称不能为空!”;员工的所有信息填写全,但是编码是系统中已有的,系统提示“该书已经存在!”;全部填写并且编码没有被占用,系统提示“您成功的添加了该书!”。

(2)修改图书信息测试:修改时将信息清空点击提交,系统提示“所有字段都不能为空!”;修改全部信息后,系统提示“修改成功!”。

6.4 安全性验证

 软件系统安全缺陷是所有常见计算机安全性问题的根源,而其安全性又是一个涉及面广泛而又复杂的课题,其最大难题之一是:总有可能出现与所有已知模式完全不符合的新型安全性缺陷。因此,要保护软件免受各种可能类型,包括未知类型的攻击是不切实际的,但可以通过在设计和构建软件时运用合理的系统安全性原则来避免软件陷入容易被攻击的状况。该系统的安全性设计分为:

(1)应用系统安全:利用软件防火墙对应用程序进行控制,定期对局域网和服务器进行病毒检测和清除,并定期对网络病毒防治程序进行升级。

(2)数据库安全:根据数据库安全需要,采用数据库访问最小特权策略对用户进行权限控制,即把信用信息局限于工作实际需要的用户范围内,与此同时,还定期对数据库进行备份,并采用磁盘阵列技术,以防如硬盘物理伤害等意外事件所造成的数据丢失。

6.5 系统实用性验证

该系统具有很多操作上的简化。如:该系统中各功能模块可以从其它相关的模块中直接获取所需的数据,同时也可以将该模块内产生的数据自动传递给其它相关模块,减少了重复录入,提高了工作效率。又如:系统中有大量的组合条件模糊查询,即查询的限定条件是多个,查询的结果也可能有多条记录。这种查询可以帮助用户从大量的记录中划定一个较小的范围,从而容易得找到想要的记录。在设计界面时,力求使界面给使用者带来视觉的美感,以及简洁、大方的感觉,注意了各个页面的界面一致性问题。相信该系统模块的界面一定可以给用户留下深刻的印象。

由于该系统在设计开发是本着简洁、实用、高效等思想进行的,所以在完成之后,对各种用户尤其是对计算机系统并不能很好掌握的管理的人员来说是非常有帮助的,加大了该系统的实用性。

6.6 测试的具体情况

(1)首先使用超级管理员添加图书信息、会员信息和管理员,在添加图书信息时要注意图书总数应与在馆数目相同,测试得出如果不相同时系统会提示并且无法添加;再使用管理员添加图书信息和会员信息具体情况与超级管理员的相同,然后再使用超级管理员查看管理员的操作,测试证实这些操作都可以正确完成。

(2)其次使用超级管理员和管理员分别对图书信息进行删除、更改和查询;对会员信息进行添加和修改。对会员信息进行修改的大前提就是这名会员此时必须没有借书,如果有借书则会提示不能修改这名会员的信息,如果想删除哪一位会员则可在修改会员信息是清空会员的用户学号,测试证实这些操作也都可以正确完成。

(3)最后使用会员登录,当首次登录时会提您现在没有借书,如果不是首次登录但是手中也没有借书时也会提示。如果不是首次登录而且手中有借书则会显示会员此时借书的具体情况。当会员借书时会有提示,如果是第一本则会提示说“这是您借的第一本书,您还可以再借一本书!”,如果是第二本则会提示“这是您借的第二本也是最后一本书了!”。但是如果第二本与第一本书相同则会提示“您已经借过这本书了!”。当会员还书时如有欠款系统则会提示“请还款!”,如果会员想续借图书,此时会还想续借的这本书必须没有欠款,如果已经欠了,则不能续借必须先归还然后再借。

举例说明,图书借阅、超级管理员/管理员添加图书和超级管理员/管理员添加会员的测试用例如下图6.1所示。

图6.1测试用例

用例编号

用例说明

输入数据

预期结果

测试结果   

缺陷编号

备注

1

会员借书

书名:客户关系管理

在馆数目:10等

书名:客户关系管理

在馆数目:9

书名:客户关系管理

在馆数目:9

成功

2

超级管理员/管理员添加图书

图书编号:0001等

提示消息:“该本书已经存在!”

提示消息:“该本书已经存在!”

成功

3

超级管理员/管理员添加图书

图书编号:0032;

图书总数:100;

在馆数目:98等

提示消息:“图书总数与在馆数应相同!”

提示消息:“图书总数与在馆数应相同!”

成功

4

超级管理员/管理员添加图书

图书编号:0032;

图书总数:100;

在馆数目:100等

提示消息:“添加成功!”

提示消息:“添加成功!”

成功

5

超级管理员/管理员添加会员

会员编号:0003等

提示消息:“该用户已经存在!”

提示消息:“该用户已经存在!”

成功

6

超级管理员/管理员添加会员

会员编号:0032等

提示消息:“添加成功!”

提示消息:“添加成功!”

成功

该测试用例证明系统功能几乎完善,可以试运行。

第7章  结 论

图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。

本系统是一个面向小型图书管理系统,具有一定实用性的数据库信息管理系统。它主要完成对图书馆的一系列管理,包括进入新书、借阅、信息查询管理。本系统采用当前流行的开发工具—ABAP来完成整个系统的设计,在数据库的设计上利用了SQL的便利性和实用性。

本图书管理系统具有相当的实用功能。在查询方面,系统实现了多条件任意字段的模糊查询。在管理方面,系统较好地实现了管理员注册和密码修改等各项功能。

系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,有关ABAP许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解ABAP和SQL的强大功能,所以系统可能还存在着许多不足之处。这些都是需要完善的地方,所以该系统可能离实际使用也还有相当的距离,需要我进行不断地补充和完善。而且由于时间关系,所以系统功能的实现可能不够完善,或者使用时可能不是足够的方便,并且我也有一些好的设计思想还没有实现,所以我将进一步完善本系统功能,也希望各位老师提出宝贵意见。

通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后继续努力,而且我也知道了只要学习就会发现更多的问题,更多的困惑,但是同样地我也相信一定会得到更多的收获和快乐,所以今后我将继续努力,无论以后人生遇到什么样的困难,都一定不会放弃,并且努力克服!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/678236
推荐阅读
相关标签
  

闽ICP备14008679号