图书信息管理系统数据库课程设计报告.docx

上传人:b****5 文档编号:11575976 上传时间:2023-03-19 格式:DOCX 页数:24 大小:938.46KB
下载 相关 举报
图书信息管理系统数据库课程设计报告.docx_第1页
第1页 / 共24页
图书信息管理系统数据库课程设计报告.docx_第2页
第2页 / 共24页
图书信息管理系统数据库课程设计报告.docx_第3页
第3页 / 共24页
图书信息管理系统数据库课程设计报告.docx_第4页
第4页 / 共24页
图书信息管理系统数据库课程设计报告.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

图书信息管理系统数据库课程设计报告.docx

《图书信息管理系统数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统数据库课程设计报告.docx(24页珍藏版)》请在冰豆网上搜索。

图书信息管理系统数据库课程设计报告.docx

图书信息管理系统数据库课程设计报告

 

数据库系统原理

课程设计报告

 

题目:

学院:

专业:

学生姓名:

学号:

指导教师:

 

年月日

摘要

如今的图书馆早已不像以前通过手工记录来登记图书、读者以及借阅信息了,互联网的飞速发展实现了图书管理的信息化。

在本文的开始部分介绍了图书管理信息系统的设计背景,然后阐述了图书信息管理系统的需求和总体设计方案,较具体的论述了系统的详细设计和实现过程。

该系统是在Win7系统下,以关系型数据库MySql为数据库开发管理软件,Java编程技术开发的图书管理信息系统。

该系统主要包括基础维护模块、借阅模块、查询管理模块、统计模块等其他功能模块。

用户界面设计方面所利用的是Java编程技术。

后台数据库选用的则是MySql关系型数据库。

 

关键词:

图书管理;Java;数据库

目录

引言1

1程序开发的技术基础2

1.1Java技术2

1.2数据库原理3

2图书管理信息系统需求分析4

2.1系统目标4

2.2需求概述4

2.3系统功能分析4

2.4系统的需求分析5

2.4.1设计分析5

2.4.2数据库需求分析5

3图书管理系统的设计6

3.1系统功能模块设计6

3.1.1系统功能模块设计6

3.1.2系统功能模块结构图6

3.2系统数据库设计7

3.2.1数据流图7

3.2.2数据存储词条描述9

3.3用户界面设计11

3.3.1输入设计11

3.3.2输出设计12

4图书管理信息系统的实现12

4.1开发环境的构建12

4.2系统工程目录12

4.3公共模块13

4.3.1db包13

4.3.2util包15

4.4功能模块的实现16

4.4.1登录模块相关16

4.4.2基础维护模块相关17

4.4.3借阅模块相关18

4.4.4查询管理模块相关20

4.4.5统计模块相关21

4.4.6系统管理模块相关21

5结论23

参考文献24

引言

 

21世纪后我们进入了一个高速发展的信息化时代,在各行各业中离不开信息处理,这正是计算机网络被广泛应用于管理信息系统的外部原因。

计算机的好处在于它能对信息数据进行高速、安全的处理,尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。

图书馆作为一种信息资源的集聚地,图书、用户与借阅资料繁多,包含很多信息数据的管理,图书管理是一项非常重要的内容。

随着图书数量的增加。

采用传统的手工图书管理方式,管理过程繁琐而复杂,执行效率低,并且容易出错。

在这种情况下,就需要开发一套图书管理系统来提高图书管理工作的效率和质量。

1程序开发的技术基础

1.1Java技术

Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。

它继承了C++语言面向对象技术的核心。

Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。

在Java1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

Java不同于一般的编译执行计算机语言和解释执行计算机语言。

它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。

从而实现了“一次编译、到处执行”的跨平台特性。

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了Java程序的性能。

Java语言的优良特性使得Java应用具有无比的健壮性和可靠性,这也减少了应用系统的维护费用。

Java对对象技术的全面支持和Java平台内嵌的API能缩短应用系统的开发时间并降低成本。

Java的编译一次,到处可运行的特性使得它能够提供一个随处可用的开放结构和在多平台之间传递信息的低成本方式。

特别是Java企业应用编程接口(JavaEnterpriseAPIs)为企业计算及电子商务应用系统提供了有关技术和丰富的类库。

1.2数据库原理

数据库是数据管理的一个领域,是计算机科学技术的一个重要子科学。

如今信息资源已成为各个部门、组织的一笔财富。

建立一个满足各级部门信息处理要求的行之有效的信息系统就成为了一个企业、事业单位、政府部门或其他社会组织生存和发展的重要条件。

因此,作为信息系统核心和基础的数据库得到了越来越深远的运用。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。

由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

由于其社区版的性能卓越,搭配各种编程语言可组成良好的开发环境。

2图书管理信息系统需求分析

2.1系统目标

图书管理信息系统是典型的信息管理系统,其开发主要包括后台数据库的建立以及前端应用程序的开发两个方面。

对于前者要求建立数据一致性与完整性强,数据安全性好的库。

对于后者则要求应用程序功能完备,容易使用等特点。

系统开发的总体目标就是实现各种信息的系统化、规范化和自动化。

 

2.2需求概述

在图书管理系统中,管理员为每个读者建立一个账户,账户内存储读者个人的详细信息,并依据读者类别的不同给每个读者发放借书卡(提供借书卡号、姓名、读者分类等信息)。

读者可以凭借书卡号在图书馆进行图书查询、密码的修改以及个人信息查询等操作,不同类别的读者在借书数量、还书期限上可以有所不同。

借阅图书时,由管理员录入借书卡号,系统首先验证该卡号的有效性,若有效,则显示卡号、姓名、已借数量等信息,实际借书的数量不能超出总借书数量的值。

完成借书操作的同时要修改相应图书信息的状态、读者信息中的借书数量、在借阅信息中添加相应的记录。

归还图书时,由管理员录入借书卡号和待归还的图书编号,显示借书卡号、读者姓名、图书编号、图书名称、借书日期、应还日期等信息。

完成归还操作的同时,修改相应图书信息的状态、修改读者信息中的已借数量、在借书信息中对相应的借书记录做归还标记。

管理员不定期地对图书信息进行添加、修改和删除等操作。

也可以对读者信息进行添加、修改、删除等操作。

同时可以对图书以及借阅情况做分类统计。

 

2.3系统功能分析

该系统主要具备以下功能:

查询功能:

能够列出当前系统图书目录,读者目录以及借阅信息,并能够按照需求对图书与读者进行相应的匹配查询。

增加功能:

能够对图书与读者信息进行添加。

修改功能:

能够对数据库中已存在的读者与图书信息进行修改,以及对账户的密码进行修改。

删除功能:

能够对数据库中已存在的读者与图书信息进行删除。

统计功能:

能够对图书与读者信息按需求进行分类统计。

 

2.4系统的需求分析

2.4.1设计分析

此管理软件使用Java语言进行开发,可粗略的划分为前台和后台部分。

前台部分主要的是人机交互的界面,遵照一定的界面设计一般原则,针对不同的用户给予差别化的用户体验。

后台部分主要是底层数据间的相互传递,调用Java中封装好的不同类去实现用户的需求。

2.4.2数据库需求分析

为了对数据进行统一的管理与维护,以确保数据的完整性与安全性,我在这里选择的是一种关系数据库MySql,它的规模较小、体积较小、速度较快而且相对成本低,最主要是MySql提供的功能已经足够满足图书管理系信息系统软件的使用了。

图2-1ER图

图书的入库需要管理员的登记,登记后的图书才能被读者进行借阅,读者的可借阅数量有限定,并且在借书时自动生成借书与还书时间。

管理员也可以对读者进行管理,主要体现在对读者的增加与读者信息的更新与删除上。

整个功能至少需要以下数据项:

图书:

图书编号、isbn号、图书名称、图书类型、作者、译者、出版社、出版日期、库存数量、价格、在馆状态

读者:

读者帐号、读者姓名、读者类型、性别、可借书数量、借阅时间长度

借还信息:

编号、书籍编号、书籍名称、借阅读者帐号、借书日期、还书日期、是否归还

用户:

编号、帐户名、密码、是否管理员

 

3图书管理系统的设计

3.1系统功能模块设计

3.1.1系统功能模块设计

通过需要实现的功能情况,把图书管理系统软件分成6个模块来实现

登录模块:

这是程序的入口,用来判断登录的是读者还是管理员,以及拒绝非系统用户的登录;

基础维护模块:

用来实现管理员对图书以及读者的信息管理。

实现图书与读者信息的增删改功能;

借阅模块:

管理员可通过借阅模块来实现读者的借还书需求;

查询管理模块:

该模块主要用来实现管理员对图书、读者以及借阅情况的查询,还能实现读者对自己信息的查询以及对自己借阅情况的查询;

统计模块:

用以实现管理员对图书、读者以及借阅情况的统计分析;

系统管理模块:

用户与管理员可通过该模块来实现密码的更新修改。

3.1.2系统功能模块结构图

图3-1系统功能模块结构图

 

3.2系统数据库设计

3.2.1数据流图

(1)0层数据流图

图3-20层数据流图

(2)1层数据流图

①读者信息管理

图3-31层数据流图

(1)

 

②图书信息管理

图3-41层数据流图

(2)

③图书借还管理

图3-51层数据流图(3)

 

3.2.2数据存储词条描述

经过认真的系统需求分析后,确定图书管理信息系统需要用到以下4张表:

 

(1)图书信息表

book(图书信息表)

名称

数据类型

长度

说明

id

int

32

图书编号(主键)

isbn

varchar

50

isbn号

name

varchar

100

图书名称

type

varchar

50

图书类型

author

varchar

50

作者

translator

varchar

50

译者

publisher

varchar

1024

出版社

publish_time

date

出版日期

stock

int

11

库存数量

price

double

价格

is_back

smallint

1

在馆状态

表3-1图书信息表

 

(2)读者信息表

reader(读者信息表)

名称

数据类型

长度

说明

id

varchar

50

读者帐号(主键)

name

varchar

50

读者姓名

type

varchar

20

读者类型

sex

char

2

性别

max_num

int

3

可借书数量

days_num

int

11

借阅时间长度

表3-2读者信息表

 

(3)借还信息表

borrow(借还信息表)

名称

数据类型

长度

说明

id

int

11

编号(主键)

book_id

varchar

50

书籍编号

bookname

varchar

100

书籍名称

reader_id

varchar

50

借阅读者帐号

borrow_date

date

0

借书日期

back_date

date

0

还书日期

is_back

smallint

1

是否归还

表3-3借阅信息表

 

(4)用户信息表

user(用户信息表)

名称

数据类型

长度

说明

id

int

11

编号(主键)

name

varchar

50

帐户名

pass

varchar

50

密码

is_admin

smallint

1

是否管理员

表3-4用户信息表

 

3.3用户界面设计

用户界面主要用于用户与系统之间的交互,一个好的用户界面能使用户用户清晰的明白操作逻辑,省去不必要的繁琐重复操作,让用户以最简单的步骤就能达到需求的实现。

3.3.1输入设计

输入设计是用户与计算机系统管理软件进行传递交换数据信息的重要过程,本系统通过键盘的输入以及鼠标的点击来实现,具备清晰的提示,保证输入数据类型的正确性,让用户能用简单的输入就能达到目的的实现

 

3.3.2输出设计

图书管理系统用简洁统一的界面风格,让用户在第一时间就能清晰快速的获取相应的信息,同时输出的信息可以复制,以便于用户对获取到的信息进行保存以及与其他软件如Word、Excel等进行配合使用,从而达到更多的功能实现。

 

4图书管理信息系统的实现

4.1开发环境的构建

本系统使用Java数据库编程实现,所包含的数据量并不是很大,根据系统的实际情况,采用如下开发环境。

操作系统:

Windows7;

数据库系统:

MySql5.6.24;

编程语言:

JDK1.8.0;

开发工具:

EclipseMarsRelease(4.5.0)。

4.2系统工程目录

在开发一个实际的应用系统的时候,应该规划好系统工程的文件结构。

有规划的工程文件结构便于在开发过程中进行管理,也使得开发工作的内容更加的清晰。

在Eclipse开发环境下,本系统工程目录结构如下图所示

图4-1系统工程目录图

 

src目录:

用于存放系统的所有源代码,源代码按照包结构进行组织。

db包:

存放数据库操作类。

entity包:

存放系统的尸体类,包括图书和读者实体类。

util包:

存放系统的使用工具类,为其他包公用。

windows包:

存放系统的图形界面窗口类。

lib目录:

存放系统运行所需的库文件,需要加入到Eclipse的BuildPath中。

4.3公共模块

系统开发过程中,经常需要设计一些公共模块供系统中其他功能模块共同调用。

本系统的公共模块主要由db和util两个包来实现。

4.3.1db包

db包主要用来存放数据库操作类。

系统与数据库的交互最终都是通过调用db包中的相关类来实现。

db包的构成如下表所示。

序号

类名

标识

实现功能

1

BaseDao

db.BaseDao

基础数据库操作类

2

BookDao

db.BookDao

图书数据操作类

3

ReaderDao

db.ReaderDao

读者数据操作类

4

BorrowDao

db.BorrowDao

借阅数据操作类

表4-1db包构成

(1)BaseDao类

BaseDao类用于完成最基本的数据库操作,包括建立数据库连接和执行sql语句等。

在该类中构造了连接数据库的方法,该方法可判断数据库是否已经建立了连接。

在该类中还定义了两个方法用于根据传入的sql语句,执行数据库的Query或者Update等操作。

调用其方法的外部实体不需要关心具体的数据库操作实现,代码如下。

 

publicclassBaseDao{

protectedstaticStringdriver="com.mysql.jdbc.Driver";//数据库驱动

protectedstaticStringurl="jdbc:

mysql:

//127.0.0.1:

3306/tsgl?

characterEncoding=utf8";//连接url

protectedstaticStringdbUser="root";//数据库用户名

protectedstaticStringdbPwd="1111";//数据库密码

privatestaticConnectionconn=null;

privateBaseDao(){

try{

if(conn==null){

Class.forName(driver);//加载数据库驱动

conn=DriverManager.getConnection(url,dbUser,dbPwd);//建立数据库连接

}else

return;

}catch(Exceptionee){

ee.printStackTrace();

}

}

publicstaticResultSetexecuteQuery(Stringsql){

try{

if(conn==null)

newBaseDao();

returnconn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE).executeQuery(sql);//执行数据库查询

}catch(SQLExceptione){

e.printStackTrace();

returnnull;

}

}

publicstaticintexecuteUpdate(Stringsql){

try{

if(conn==null)

newBaseDao();

returnconn.createStatement().executeUpdate(sql);//执行数据库更新

}catch(SQLExceptione){

System.out.println(e.getMessage());

return-1;

}finally{

}

}

(2)BookDao类

该类用于对图书信息数据进行数据库操作,主要包含了获取图书信息单个实体与实体列表的方法。

(3)ReaderDao类

该类用于对读者信息数据进行数据库操作,主要包含了获取读者信息单个实体与实体列表的方法。

(4)BorrowDao类

该类用于对借阅信息数据进行数据库操作,同样是获取借阅信息实体列表的方法。

 

4.3.2util包

util包主要用于存放一些使用工具类。

系统所有模块中经常需要使用的一些工具类或者系统常量等在该包中定义,包含一些系统全局变量类与日期工具类。

系统经常碰到一些日期数据,为了方便系统需要,该包中定义了各种日期操作的方法,方便对日期型数据操作时直接调用。

 

4.4功能模块的实现

4.4.1登录模块相关

登录模块用于实现系统的登录功能,也是进入系统的入口。

登录模块主要由window包下的Login类实现。

当用户输入完用户名和密码后,单击“确定”按钮。

“确定”按钮定义了相应的事件监听器用于响应该动作。

其响应事件主要由该类中定义的btn_okActionPerformed()方法来实现。

在连接数据库进行验证之前,判断是否输入了用户名。

如果未输入,则系统给出提示,方法终止运行。

如果用户名不为空,则程序连接数据库。

在user表中查询name值是否等于输入的用户名并且pass值等于输入密码的记录。

如果相应记录不存在,系统给出提示,方法再次中断。

如果满足条件的记录存在,则将用户名记录到全局变量的login_user中,进入系统主界面,登录成功。

图4-2系统登录界面

成功登录系统后即进入系统的主界面,系统会根据登录用户的权限不同展示不同的主界面。

一般用户的些许功能模块不能使用。

图4-3管理员主界面

 

4.4.2基础维护模块相关

(1)图书维护

图书维护子模块用于维护图书的相关信息,包括对图书信息的添加、修改和删除。

所有的维护操作最终都是落实到数据库中book表的数据库操作。

①添加图书

图书信息的添加功能主要由window包下的BookAdd类来实现。

待用户输入完图书信息信息后,单击“保存”按钮,系统触发相应事件来执行添加操作。

图书信息自动存入book表中,并进行自动编号。

图4-4添加图书界面

②图书修改

图书信息的修改功能主要由window包下的BookUpdate类来实现。

选择“图书维护”菜单下的“修改”子菜单后弹出图书修改界面。

程序首先获取用户输入的图书编号,然后根据编号在数据库中提取图书信息,最后将提取的图书信息显示到图形界面上供用户修改。

待用户修改完相应的图书信息后,单击“保存”系统执行图书信息修改的保存操作。

关键代码如下所示。

privatevoidbtn_saveActionPerformed(ActionEvente){

//获取用户输入信息

Stringid=tf_id.getText();

Stringname=tf_name.getText();

Stringtype=cb_type.getSelectedItem().toString();

Stringauthor=tf_author.getText();

Stringtranslator=tf_translator.getText();

Stringpublisher=tf_publisher.getText();

Stringpublish_time=tf_publish_time.getText();

Stringprice=tf_price.getText();

Stringstock=tf_stock.getText();

Stringsql="updatebooksetname='"+name+"',type='"+type

+"',author='"+author+"',translator='"+translator

+"',publisher='"+publisher+"',publish_time='"

+java.sql.Date.valueOf(publish_time)+"',price="

+Double.parseDouble(price)+",stock="+stock+"whereid='"

+id+"'";

//执行数据库操作

inti=BaseDao.executeUpdate(sql);

if(i==1){

JOptionPane.showMessageDialog(null,"修改成功");

dispose();

}

图4-5图书修改界面

③图书删除

图书信息的删除功能主要由window包下的BookDelete类来实现。

删除图书前,首先通过输入待删除的图书编号,获取该编号的图书信息,在确认后通过点击相应的功能按键来实现图书删除功能。

关键代码如下所示。

privatevoidbtn_delActionPerformed(ActionEvente){

Stringid=tf_id.getText();//获取图书编号

Stringsql="deletefrombookwhereid='"+id+"'";//删除指定编号的图书

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1