1、Javaee图书馆管理系统 实 验 报 告实验课程名称: JAVAEE应用程序开发 本次实验名称为: 图书馆管理系统 学 生 姓 名: 张铭烨 班 级 中加132 学 号:13416418 学 院(系): 国际教育交流学院 指 导 教 师:倪彤光 1.实验目的(1)读者身份设置:用于设置不同类型读者所具有的借书权限(借阅数量、续借次数)等;(2)读者信息管理:读者图书证的生成、管理读者信息等;(3)新增图书:图书馆新添图书,为图书入库编号等;(4)图书信息管理:图书基本信息的增删与修改;(5)图书类型管理:图书分类及不同类型图书具有不同的借阅权限(借阅天数);(6)图书借阅:管理读者借书过程;
2、(7)图书过期名单:产看是否有过期图书。(1)读者信息表,包括:条形码、编号、姓名、性别、类型、出生日期、有效证件、证件号码、联系方式、登记日期、有效期限、操作员、备注、图书借阅次数、是否挂失等;(2)读者类型表,包括:类型、图书册书。续借次数、限制图书等;(3)新增图书信息表,包括:入库编号、图书编号、订购者、经手者联系方式、定购数量、是否验收、验收日期、操作员等;(4)书架信息表,包括:书架名、书架类型等;(5)图书类型表,包括:可借天数、图书类型、类型编号等;(6)图书借阅表,包括:借阅编号、读者编号、图书编号、操作时间;(7)图书归还表,包括:故还编号、图书编号、读者编号、归还时间、操
3、作员;2. 功能模块图(1)根据上述的功能,可以设计出系统的总体功能模块,如图3-1所示。图3-1 图书信息管理系统管理员登陆与操作模块功能示意图(2)“员工管理”功能模块用于增加员工,删除员工,修改员工已有信息,查询已有员工相关信息。其功能模块如图3-2所示。图3-2 员工管理(3)“读者管理”功能模块用于新生入校时增加使用本系统的读者信息,以及老生毕业离校时删除相关读者信息,清楚数据库,查询读者的借阅书籍情况。其功能模块如图3-3所示。图3-3 读者管理(4)“图书信息管理”功能模块用于新书入库,丢失或者陈旧不可用的书籍的出库,已有书籍的查询。其功能模块如图3-4所示。图3-4 图书信息管
4、理(5)“图书借还管理”功能模块用于读者借书和还书的登记,其其功能模块如图3-5所示。图3-5 图书借还管理本系统将用户划分为三种类型,即系统管理员、员工和读者。系统管理员为Admin,他可以管理其他用户和员工的信息,在其他方面的权限相同。3 详细设计3.1 主界面用户登陆系统以后,将出现主界面,用户可以选择要执行的操作,点击即可实现各功能模块相应的操作,如图4-1所示。图4-1 主界面3.2 读者管理模块功能实现(1)读者添加功能介绍:添加新的读者,使其能够进入图书系统阅览图书,读者添加如图4-2所示。图4-2 读者添加(2)读者修改功能介绍:对读者需要修改的资料进行重定义,读者信息修改如图
5、4-3所示。图4-3 读者信息修改(3)读者查询功能介绍:可以对数据库中已有的读者信息进行查询。读者查询如图4-4所示。图4-4 读者信息查询(4)读者删除功能介绍:删除数据库中已有信息。读者删除如图4-5所示。图4-5 读者删除3.3 书籍管理模块功能实现(1)书入库实现功能介绍:此界面主要完成的功能是往数据库book表中添加新书的记录,在book表中可查看最新的记录。在新书信息输入的过程中,会出现一些异常处理,如某个字段的信息没有填写;新书信息输入字段的过程中,输入的字段类型与给定的字段类型与输入不匹配(如:货币、日期);输入的信息长度超过给定的字段长度等。如果填写的内容正确则可以成功将新
6、书添加入库,新书入库窗口如图4-6所示。图4-6 添加新书入库界面(2)查询功能实现功能介绍:本系统包含两项一是检索项令一个是检索词,在检索项中用户可以根据自己的需求来选择所要查询的项目并在检索词中添写自己所要查询的内容。本系统副带四个按钮:确定、取消、查看全库,该图书馆管理系统的查询界面如图4-7所示。图4-7 查询系统界面在该系统中为了用户使用方便还设有查看全库一项,用户可以通过这一功能来查看全库的图书,所查询的内容将在下方的文本区中显示,其界面如图4-8所示。图4-8 查看全库信息使用检索词必须得满足一定的查询条件才可以执行,用户必须得在检索项中选择查询方式并添好检索词才可查询否则系统会
7、显示未找到您要查找的内容并给以提示,如图4-9所示。图4-9 检索3.4 书籍借阅与归还功能实现(1)借阅书籍功能实现输入图书证号“0001”后点击查看按钮,可显示该读者信息,若输入图书证号错误,点击查看按钮则会弹出借书证错误对话框,如图4-10所示。输入图书编号“0000003”按回车键,可显示该图书信息,若输入图书编号错误,按回车键则会弹出图书编号错误对话框,如图4-11所示。点击借阅按钮则会弹出图书借阅成功对话框。借阅书籍功能的具体实现如图4-12所示。图4-10 借书证错误图4-11 图书编号错误图4-12 借阅书籍(2)归还书籍功能实现输入图书编号“0000003”点击回车键,则该界
8、面右侧会显示借书者的信息,若图书编号错误则会弹出图书编号错告对话框,如图4-13所示。点击还书按钮会弹出归还成功对话框。归还书籍功能的具体实现,如图4-14所示。图4-13 图书编号错误图4-14 归还书籍4. 数据库设计4.1 概念结构设计根据需求分析抽象出信息结构,可得该系统的E-R图。用户E-R图,如图4-15所示。用户用户名密码用户类型图4-15 用户E-R图4.2 逻辑结构设计根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。数据库Bookmanage包含以下5个表:员工信息表yuangong、用户信息表Users、读者信息表duzhe、图书信息表tushu、图书借还信息表
9、jiehuan。(1)员工信息表yuangong用来保存员工编号,姓名,性别,密码,备注等信息。表yuangong的结构如表4-1所示。表4-1 员工的结构编号字段名称数据结构说明1yidchar记录编号2ynameVarchar2(30)记录员工姓名3ysexVarchar(6)记录员工性别4ybirthdaydate记录员工生日5ynoteVarchar2(100)记录员工是否迟到或者是否需要删除6ypasswordchar(6)记录员工登陆系统密码(2)图书信息表表4-2 图书的结构编号字段名称数据结构说明1tidchar(6) 记录图书编号2tnamevarchar2(30)记录图书名
10、称3tpressvarchar2(30)记录图书出版地址4tpricenumber(5,2)记录图书价格本系统将用户划分为三种类型,即系统管理员、员工和普通用户。系统管理员为Admin,他可以管理其他用户的信息,在其他方面的权限相同。前面是通过前台来实现系统安全性的,我们也可以对数据库进行身份验证,可以从服务器角度建一个登录名,使得不同的服务器角色拥有不同的权限,从而实现对数据库的不同权限的管理,以此来增强图书信息管理系统的安全性。4.3 数据库表的建立本次课程设计使用的是SQL Sever数据库,可以在新建的SQL WINDOW里面创建表。(1)创建表yuangong创建表yuangong(
11、员工信息表),它的代码如下:create table yuangong(yid char(5) ,yname varchar2(30),ysex varchar2(2),ybirthday date,ypassword char(6),ynote varchar2(100),constraints yuangong_pk primary key (yid);insert into yuangong values(00001,张三,男,to_date(1991-01-01,yyyy-mm-dd) ,123456,无);insert into yuangong values(00002,李四,男,
12、to_date(1991-01-01,yyyy-mm-dd) ,123456,无);insert into yuangong values(00003,王二,女,to_date(1991-01-01,yyyy-mm-dd) ,123456,无);insert into yuangong values(00004,刘一,女,to_date(1991-01-01,yyyy-mm-dd) ,123456,无);(2)创建表tushu创建表tushu(图书基本信息表),它的代码如下:create table tushu(tid char(6) primary key,tname varchar2(30
13、),tpress varchar2(30),tprice number(5,2),tcount number(4);insert into tushu values(000001,Java入门教程,高等教育出版社,39,20);insert into tushu values(000002,数据库,高等教育出版社,39,20);insert into tushu values(000003,数据结构,高等教育出版社,39,20);insert into tushu values(000004,数据库系统概论,高等教育出版社,59,20);insert into tushu values(000
14、005,三国演义,清华出版社,49,20);insert into tushu values(000006,西游记,高等教育出版社,39,20);insert into tushu values(000007,C语言,高等教育出版社,39,20);insert into tushu values(000008,JAVA语言,高等教育出版社,39,20);insert into tushu values(000009,JavaEE框架,清华出版社,39,20);insert into tushu values(000010,网页制作,高等教育出版社,39,20);insert into tush
15、u values(000011,组成原理,高等教育出版社,39,20);insert into tushu values(000012,操作系统,清华出版社,39,20);(3)创建关系用户数据表user创建关系用户数据表user的代码如下:create table user(uid char(8) primary key,upassword varchar2(30),unote varchar2(2), );创建读者基本信息数据表duzhe创建读者基本信息数据表duzhe的代码如下:create table duzhe(hid char(8) primary key,hname varcha
16、r2(30),hsex varchar2(2), hbirthday date,htel varchar2(11);import java.awt.EventQueue;import java.awt.Frame;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.borde
17、r.EmptyBorder;import .csuinfo.listener.QuXiaoactionlistener;import .csuinfo.listener.QueDingActionListener;public class FrmDengLu extends JFrame private JPanel contentPane;private JTextField txtYongHuMing;private JPasswordField txtPassWord;/* Launch the application.*/public static void main(String a
18、rgs) EventQueue.invokeLater(new Runnable() public void run() try FrmDengLu frame = new FrmDengLu();frame.setVisible(true); catch (Exception e) e.printStackTrace(););/* Create the frame.*/public FrmDengLu() setTitle(南华大学图书信息管理系统);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 374,
19、 183);contentPane = new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5);setContentPane(contentPane);contentPane.setLayout(null);JLabel lblYongHuMing = new JLabel(u7528 u6237 u540D);lblYongHuMing.setBounds(84, 28, 54, 15);contentPane.add(lblYongHuMing);txtYongHuMing = new JTextField();txtY
20、ongHuMing.setBounds(190, 25, 90, 21);contentPane.add(txtYongHuMing);txtYongHuMing.setColumns(10);JLabel lblKouLing = new JLabel(u53E3 u4EE4);lblKouLing.setBounds(84, 58, 54, 15);contentPane.add(lblKouLing);txtPassWord = new JPasswordField();txtPassWord.setBounds(190, 55, 90, 21);contentPane.add(txtP
21、assWord);JButton btnQueDing = new JButton(u786E u5B9A);btnQueDing.setBounds(91, 118, 77, 23);contentPane.add(btnQueDing);btnQueDing.addActionListener(new QueDingActionListener(this);JButton btnQuXiao = new JButton(u53D6 u6D88);btnQuXiao.setBounds(200, 118, 93, 23);contentPane.add(btnQuXiao);btnQuXia
22、o.addActionListener(new QuXiaoactionlistener (this);public JTextField getTxtYongHuMing() return txtYongHuMing;public JPasswordField getTxtPassWord() return txtPassWord;程序功能说明:管理员登陆之后进入的系统主界面程序作者:package .csuinfo.gui;import java.awt.EventQueue;import java.awt.event.ActionEvent;import java.awt.event.A
23、ctionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTabbedPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.ScrollPaneConstants;import javax.swing.borde
24、r.EmptyBorder;import javax.swing.table.DefaultTableModel;import .csuinfo.listener.ChaZhaojiehuanxingxiactionlistener;import .csuinfo.listener.ChaoZhaoActionListener;import .csuinfo.listener.ChaoZhaoshiyanhuiyuanactionlistener;import .csuinfo.listener.Chaozhaotushuactionlistener;import .csuinfo.liste
25、ner.ShanChushiyanactionlistener;import .csuinfo.listener.Shanchuhuiyuanactionlistener;import .csuinfo.listener.Shanchutushuactionlistener;import .csuinfo.listener.XinZengshiyanactionlistener;import .csuinfo.listener.XinZengshiyanhuiyuanactionlistener;import .csuinfo.listener.Xingzengshiyantushuactio
26、nlistener;import .csuinfo.listener.ZengTainjiehuanxingxiactionlistener;public class FrmGuanLiXiTong extends JFrame private JPanel contentPane;private JTable tableYuanGong;private JTable tableHuiYuan;private JTable tableTuShu;private JTable tableJieHuanXinXi;private JTextField textHuiYuanBianHaoj;pri
27、vate JTextField TxtYuanGongBianHao;private JTextField TxtYuanGongXingMing;private String ColumnNames = new String 编 号, 姓 名,性 别, 生 日, 密 码,备 注;private String ColumnNames1 = new String 会员编号, 姓 名,性 别, 生 日, 电话;private String ColumnNames2 = new String 图书编号, 图书名,出版社, 单价, 数量;private String ColumnNames3 = ne
28、w String 图书编号, 图书名,出版社, 单价,借书日期,还书日期,是否归还;private JTextField textHuiYuanBianHao;private JTextField textHuiYuanXingMing;private JTextField texttushuchazhao;/*Launch the application.*/public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try FrmGuanLiXiTong frame
29、 = new FrmGuanLiXiTong();frame.setVisible(true); catch (Exception e) e.printStackTrace(););5系统实现5.1. 数据库的连接/获取与数据库之间的连接String user = scott;String dbpassword = tiger;String url = jdbc:oracle:thin:localhost:1521:student;conn = DriverManager.getConnection(url, user, dbpassword);/创建发送sql语句的Statement对象st = conn.createStatement();/发送sql语句,并用ResultSet类型的对象保存查询的数据行5.2. 系统功能模块设置在该系统中设置管理员登陆后进入的界面如下图所示:图5-1 员工管理框架图5-2 读者管理界面图5-3 图书管理
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1