数据库系统实验报告图书馆管理系统oraclejava.docx

上传人:b****6 文档编号:6727312 上传时间:2023-01-09 格式:DOCX 页数:21 大小:112.11KB
下载 相关 举报
数据库系统实验报告图书馆管理系统oraclejava.docx_第1页
第1页 / 共21页
数据库系统实验报告图书馆管理系统oraclejava.docx_第2页
第2页 / 共21页
数据库系统实验报告图书馆管理系统oraclejava.docx_第3页
第3页 / 共21页
数据库系统实验报告图书馆管理系统oraclejava.docx_第4页
第4页 / 共21页
数据库系统实验报告图书馆管理系统oraclejava.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数据库系统实验报告图书馆管理系统oraclejava.docx

《数据库系统实验报告图书馆管理系统oraclejava.docx》由会员分享,可在线阅读,更多相关《数据库系统实验报告图书馆管理系统oraclejava.docx(21页珍藏版)》请在冰豆网上搜索。

数据库系统实验报告图书馆管理系统oraclejava.docx

数据库系统实验报告图书馆管理系统oraclejava

湖南科技大学

数学与计算科学学院

数据库系统

课程设计

课程设计题目:

图书馆管理系统

指导教师:

刘*芳

学生院系:

数学学院

学生班级:

信计*班

学生姓名:

黎*文

学生学号:

**

一、任务书1

二、相关技术与环境介绍2

三、需求分析2

四、概念结构设计3

五、逻辑结构设计5

六、数据库实施6

6.1数据库的建立和表空间的建立6

6.2数据库用户的建立7

6.3java前端编程8

13

七、系统测试方案和测试报告13

八、系统的主要功能和使用说明14

8.1功能说明:

14

8.2使用说明14

8.3图书管理系统数据库安全:

15

九.系统安装说明15

9.1数据库的安装15

9.2java前端程序的安装15

十.课程设计心得15

10.1实验心得16

10.2总结16

一.任务书

1.题目:

图书馆管理系统

2.内容及要求:

(1)创建数据库存储信息

(2)开发java前端程序,使用数据库。

(3)具有实际应用价值

3.实验成员分工:

黎*文:

主要负责物理结构,数据库实施,数据库与前端的连接处理操作。

沈*杰:

主要负责系统界面、概念与逻辑结构的设计,并进行维护调试。

二.相关技术与环境介绍

开发工具:

oracle11g,Eclipse4.5

开发语言:

Java

开发环境:

JDK1.8

运行环境:

Windows10

其他辅助工具:

PowerDesigner165,edrawmax

核心技术:

JOBC对数据库的操作,java操作界面的设计,各种布局方式和插件

(1)使用JFrame控件进行界面设计

(2)使用静态字段实现窗体间的数据传递

(3)使用代码方式向容器控件中添加控件

(4)数据库连接和前台操作

(5)数据库和开发工具之间的编码转换

三.需求分析

图书馆管理系统是一个高度集成的图书信息处理系统,通过将图书馆的各种功能进行整合,从而达到显示检索信息,提高工作效率,降低管理成本等目的。

一个典型的图书馆管理系统应该能够管理所有的图书种类,图书信息以及读者信息,还需要提供各种图书信息的检索查询功能。

该系统还需要能够对图书的借阅,归还进行管理,并对读者的罚款进行自动计算。

通过该系统的自动化管理,能够大大减少图书馆管理人员,还能减少管理人员的工作任务,从而降低管理开销和成本。

一个完整的图书馆管理系统包括前台和后台,前台主要是显示在计算机屏幕上的显示界面,有各种指令按钮,操作框以及文本框,后台主要是为前台的一些操作提供一些必要的数据,也就是一个相对于系统比较完整的数据库,操作员以及各类图书的信息,借书者的信息等等。

此次的图书馆管理系统有如下几个重要功能:

(1)管理员可以方便进行图书管理,用户管理,管理员管理。

图书管理包括图书信息以及图书分类的添加,修改,删除。

用户管理包括用户信息的添加,删除,修改。

管理员管理包括管理员信息的添加,删除,修改等。

(2)管理员可以修改自己的以及用户密码,修改前需先核实自己的原始密码。

(3)实现模糊查询,使用户得到更多的相关记录。

并且考虑使用的方便性,一些经常使用的输入无须用户输入,比如进行图书查询时图书分类只须用户做选择就可以。

(4)如果出现超期未还的情况,能够就做出记录,并作出相应处罚处理。

四.概念结构设计

4.1E-R图的设计

(1)学生E-R图:

 

(2)管理员E-R图:

(3):

图书E-R图:

(4)数据库关系图:

 

 

(5)系统逻辑图:

4.2数据库的设计

(1)建立orcl数据库

(2)建立LIBRARYTEST表空间

(3)在表空间中建立用户libadmin,进行权限的设置,为最高权限

(4)登录libadmin用户,创建libstudent用户,只具有查询的权限

(5)根据4.1中(4)图建立7个表。

五.逻辑结构设计

1.图书(BOOK)的逻辑结构:

2.超期图书(ECEEDTIME):

3.丢失图书(LOSERBOOK):

4.管理员权限表(MSANAGER):

5.预约图书:

6.借阅记录:

7.学生用户:

以上为各种表的逻辑结构。

六.数据库实施

6.1数据库的建立和表空间的建立

直接在oracle数据库OEM企业管理其中直接操作。

界面化操作省略。

6.2数据库用户的建立

(1)//创建libadmin用户:

connsystem/Kyq020520//登录system超级用户

createuserlibadmin

identifiedby123456

defaulttablespaceLIBRARYTEST

grantcreatesession,resourcetolibadmin

grantcreateuser,resourcetolibadmin

(2)//创建libstudent用户

connsystem/Kyq020520//登录libadmin用户

createuserlibstudent

identifiedby123456

defaulttablespaceLIBRARYTEST

grantcreatesession,resourcetolibstudent

(3)部分权限分配

GRANTALTERON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTION

GRANTDELETEON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTION

GRANTINDEXON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTION

GRANTINSERTON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTION

GRANTREFERENCESON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTION

GRANTSELECTON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTION

GRANTUPDATEON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTION

(4)初始数据的插入

给出一个学生表的建立和插入代码:

createtablestudent

StuNOintprimarykey,

StuNamevarchar(50),

StuAgeint,

StuSexvarchar(50),

Classvarchar(50),

Departmentvarchar(50),

Telchar(11),

Permittedvarchar(50),

Passwordvarchar(20)

);

insertintostudentvalues(10001,'陈小诗',20,'女','计算机1班','计算机系',2592921,'是','number1');

insertintostudentvalues(10004,'何二',22,'男','计算机1班','计算机系',2568975,'是','number4');

insertintostudentvalues(10006,'宋江',20,'男','计算机2班','计算机系',1234667,'是','number6');

6.3java前端编程

6.3.1数据库连接类DataBase:

packagecom.listen;

importjavax.swing.*;

importjava.sql.*;

publicclassDataBase

{

Connectioncon=null;//声明Connection引用

Statementstat;

ResultSetrs;

intcount;

Stringsql;

publicstaticStringmessage;//声明一个静态成员变量

publicstaticLoginlog;

publicDataBase(Stringuser,StringpassWord){

try{//加载orac的驱动类,并创建数据库连接

con=DriverManager.getConnection("jdbc:

oracle:

thin:

"

+"@127

stat=con.createStatement();//创建Statement对象

}

catch(Exceptione){//如果从Login类传的参数不对,则提示出错

JOptionPane.showMessageDialog(log,"用户IP或端口号错误!

"+"信息",JOptionPane.INFORMATION_MESSAGE);

}

}

publicvoidselectDb(Stringsql){//声明select方法

try{

rs=stat.executeQuery(sql);

}

catch(Exceptionie){ie.printStackTrace();}

}

publicintupdateDb(Stringsql){//声明update方法

try{

//因为oracle数据库的默认编码方式是gbk,而eclipse的默认编码方式也是gbk,所以不存在转码问题

//sql=newString(sql.getBytes(),"ISO-8859-1");//转码

//sql=newString(sql.getBytes(),"UTF-8");

count=stat.executeUpdate(sql);

}

catch(Exceptionie){ie.printStackTrace();}

returncount;

}

publicvoiddbClose(){//声明close方法

try{con.close();

}

catch(Exceptione){e.printStackTrace();}

}

publicstaticvoidmain(String[]args){

DataBaseapp=newDataBase("libadmin","Kyq020520");

try{

//转化数据类型

Sy

}

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace()

}

}

}

登陆窗体的界面设计我依然采用的是比较传统的方法,新建一个类BookLoginFrame类,用来显示登录窗体。

在该窗体中需要使用到四类控件,分别是JLabel、JTextFieid、JPasswordField以及JButton。

其中控件JLabel是用来显示顶部的图片以及标签文本;控件JTextFieid用来接收用户名输入信息;控件JPasswordField用来接收密码输入信息;控件JButton用来创建登陆和重置按钮。

定义一个Login类。

设计结果如下:

在主窗体中可以显示其他功能窗体,所以需要在该窗体中加入一个桌面窗体。

通过将其他功能窗体加入到该窗体中。

从而实现多窗体显。

同时在主窗口体中,还需要添加一个main方法,该方法为系统入口的方法,通过执行该方法来执行系统。

这儿给出他的构造函数:

管理面界面操作构造函数:

publicRoot(StringmgNo)

{

this.mgNo=mgNo;//获得管理员ID

mg=newManager(mgNo);//创建管理员管理面板

this.setManager();//设置管理员权限

this.initJp();//初始化卡片布局面板

this.addTreeListener();//为树节点注册事件监听器

for(inti=1;i<9;i++)

{//向根节点添加子节点

dtm.insertNodeInto(dmtn[i],dmtn[0],i-1);

}

jt.setEditable(false);//设置该树中节点是可编辑的

this.add(jsplr);//将包含树的滚动窗口添加进窗体

jsplr.setLeftComponent(jt);//将包含树的滚动窗口添加进左边的子窗口

jp.setBounds(200,50,600,500);//为jp设置大小位置并添加进右边的子窗口

jsplr.setRightComponent(jp);

jsplr.setDividerLocation(200);//设置分隔条的初始位置

jsplr.setDividerSize(4);//设置分隔条的宽度

jlRoot.setFont(newFont("Courier",Font.PLAIN,30));

jlRoot.setHorizontalAlignment(JLabel.CENTER);

jlRoot.setVerticalAlignment(JLabel.CENTER);

//设置窗体的关闭动作,标题,大小,位置及可见性

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Imageimage=newImageIcon("ico.gif").getImage();

this.setIconImage(image);

this.setTitle("图书管理系统");

//设置窗体首次出现的大小和位置--自动居中

DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();

intcenterX=screenSize.width/4;

intcenterY=screenSize.height/4;

intw=800;//本窗体宽度

inth=600;//本窗体高度

//this.setBounds(centerX,centerY,w,h);

this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中央

this.setExtendedState(JFrame.MAXIMIZED_BOTH);//窗体全屏

this.setVisible(true);//设置窗体可见

jt.setShowsRootHandles(true);//设置显示根节点的控制图标

}

测试后界面如下:

和管理员界面设计类类似,但是由于学生权限的限制,所以学生用户部分功能不能使用,构造方法也是类似,简单给出构造函数。

publicStudentSystem(){

this.initJp();

jt.addTreeSelectionListener(newTreeSelectionListener(){//用内部类显示树的各选择节点

publicvoidvalueChanged(TreeSelectionEvente){

DefaultMutableTreeNodecdmtn=

(DefaultMutableTreeNode)e.getPath().getLastPathComponent();

NodeValue1cnv=(NodeValue1)cdmtn.getUserObject();

cl.show(jp,"root");//显示主界面

}

cl.show(jp,"ts");//显示"查询图书"界面

}

cl.show(jp,"OrderBook");//显示"预约图书"界面

}

cl.show(jp,"GuaShi");//显示"归还挂失图书"界面

}

inti=JOptionPane.showConfirmDialog(StudentSystem.this,

"是否退出系统","消息",JOptionPane.YES_NO_OPTION);

if(i==JOptionPane.YES_OPTION){System.exit(0);}

}

}

};

for(inti=1;i

dtm.insertNodeInto(dmtn[i],dmtn[0],i-1);

}

jt.setEditable(false);//设置该树中节点是不可编辑的

this.add(jsplr);//将包含树的滚动窗口添加进窗体

jsplr.setLeftComponent(jt);//将包含树的滚动窗口添加进左边的子窗口

//为jp设置大小位置并添加进右边的子窗口

jp.setBounds(200,50,300,400);jsplr.setRightComponent(jp);

jsplr.setDividerLocation(150);//设置分隔条的初始位置

jsplr.setDividerSize(4);//设置分隔条的宽度

jlRoot.setFont(newFont("Courier",Font.PLAIN,30));

jlRoot.setHorizontalAlignment(JLabel.CENTER);

jlRoot.setVerticalAlignment(JLabel.CENTER);

//设置窗体的关闭动作,标题,大小,位置及可见性

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//对标题和logo图片进行初始化

Imageimage=newImageIcon("ico.gif").getImage();

this.setIconImage(image);

this.setTitle("学生管理系统");

//设置窗体首次出现的大小和位置--自动居中

DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();

intcenterX=screenSize.width/2;intcenterY=screenSize.height/2;

intw=500;//本窗体宽度inth=400;//本窗体高度

this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中央

this.setExtendedState(JFrame.MAXIMIZED_BOTH);//窗体全屏

this.setVisible(true);

jt.setShowsRootHandles(true);//设置显示根节点的控制图标

}

运行界面如下:

6.4功能完善

剩下还有10个类,分别实现上述菜单中的功能,在eclipse模块管理器中可以看出大概结构如下:

七.系统测试方案和测试报告

页面测试:

逐个测试每个页面是否可以正确显示,显示页面是否美观,易懂,测试各菜单能否正常运行。

经测试,所有界面均可以正确显示,显示页面比较美观,易懂,各菜单均能正常运行。

功能测试:

对每个菜单下的功能逐一测试,尽最大可能发现潜在的错误。

经测试,每个菜单下的功能均能实现,暂未发现其潜在的错误。

需求测试:

根据需求分析的内容,测试系统是否和当初的设计一样。

经测试,所设计的图书馆管理系统基本满足当初的设计需求。

其他详情见答辩。

八.系统的主要功能和使用说明

8.1功能说明:

(1)有关读者种类标准的制定、种类信息的输入、包括种类编号、种类名称、借书数量、借书期限等。

(2)读者有关信息的修改、查询等。

(3)读者基本信息的输入,包括读者编号、读者姓名、班级、院系等。

(4)读者基本信息的查询、修改

(5)书籍信息的输入,包括书籍编号、书籍名称、书籍所属类别、作者、出版社、出版日期、在库数、价格。

(6)借书信息包括借书证号、书籍编号、借出日期、拖欠日期、罚款种额

(7)图书管理书籍号、管理员编号、销书数量、销书日期。

(8)超级用户可以设置其他管理员,并登记到管理员表中。

(1)学生能登录学生界面。

并实现相应操作。

(2)查询图书的种类,及其各种信息,本系统不支持模糊查询。

(3)预约图书,对丢失的图书进行挂失登记。

8.2使用说明

(1)点击可执行文件。

登录名为“1001”(默认为超级管理员)密码为“1001”。

(2)进入管理系统后即可更改超级管理员密码。

然后设置其他管理员,并授予相应的权限。

(3)以管理员用户登陆能使用以下所有功能:

(1)在管理员处(由管理者自行设置)进行注册登记。

(2)在登录界面输入相应注册账号和密码即可登录。

(3)以学生用户登陆能使用以下所有功能:

8.3图书管理系统数据库安全:

数据库的转储和恢复是系统正式运行后最重要的维护工作之一。

要针对不同的应用要求制定不同的转储计划,以保证一旦发生故障能尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏。

一周进行使用OEM对数据库进行备份。

各级环境数据库系统主管单位应保证以下安全保护措施的正常执行:

(1)环境数据库系统重要部分的冗余或备份措施。

(2)计算机病毒防治措施。

(3)网络攻击防范、追踪措施。

(4)环境数据库系统运行和用户操作日志记录保存60日以上措施。

(5)记录环境数据库系统用户网络地址的措施。

(6)环境数据库系统身份登记和识别确认措施。

九.系统安装说明

9.1数据库的安装

(1)登陆oracle官网下载oracle11g

(2)安装JDK1.8

(3)数据库管理的安装,并建立“ORCL”数据库实例。

具体内容见模块六

9.2java前端程序的安装

打开给出相应的“图书馆管理系统.jar”文件,即可使用系统。

十.课程设计心得

10.1实验心得

1.人机交互缺乏,对错误的抛出处理不当,考虑到的情况不够全面。

2.对于数据库的连接仅限于本机,无法实现联网工作,所以对于软件的可移植性不够。

虽然用文件的方式操作能够解决这一问题,但是对于数据处理太繁琐。

3.对于系统设计方面的问题,一定要有计划和流程图,不能想一步做一步,最后会导致问题的处理不够全面。

4.应该该有一个良好的编码习惯,类的定义,方法的定义,一定要有一套规则,方便检查调试,使别人能够轻易地看懂。

5.套系统适用于比较小型的图书馆,而且对管理员和学生的要求比较高,需要对系统足够了解之后才能正常使用。

.

10.2总结

整个设计通过了软件和硬件上的调试。

我想这对于自己以后的学习和工作都会有很大的帮助。

在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。

一切问题必须要靠自己一点一滴的解决,而在

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

当前位置:首页 > 总结汇报

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

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