《图书管理系统》
设计报告
学
院: 计算机科学与技术学院
2009 年~2010 年第二学期
三人行书店图书管理系统设计报告——封愿、柳慧敏、姚树秘
图书管理系统设计方案
一、绪论
随着数据库在各行业的广泛应用,强大的功能,良好的数据库访问能力,
和友好的用户界面,深受人们的喜爱,也成为设计者的得力助手。
1.1 课题研究现状分析
在现在信息化发达的社会,图书的发行量与日俱增。传统的图书馆需要制
作有署名于对应编号的书卡,由读者按分类查找在交由图书管理员来处理借书
工作,还书也要人工翻阅大量的记录,这样使得工作量大并且极其繁琐,效率
很低。因此有必要设计这个系统,对书籍资源、读者资源、借书信息、还书信
息进行管理,及时了解各个环节中信息的变更,有利于管理效率的提高。
1.2 目的与意义
目的:对图书馆种类繁多的书籍进行管理,并且合理管理好用户的借还信
息。提高图书馆的工作效率,家底管理成本。
意义:通过完成从用户需求分析、数据库设计到上机编程、调试和应用等
全过程,进一步了解和掌握本书众所讲解的内容。
二、需求分析
2.1 用户调查
1.图书馆工作人员对功能的需求
<1>职工信息的输入,查询,修改;
<2>书籍信息的输入,查询,修改;
<3>借书信息的输入;
<4>还书信息的输入;
<5>读者信息的查询。
2.读者对功能的需求
<1>图书信息检索:包括通过书名、作者、出版社、类别等。
<2>读者个人信息的输入、查询、修改。建立读者个人信息档案,获取当
前读者个人信息。并记录该学号读者的借还情况。
1
三人行书店图书管理系统设计报告——封愿、柳慧敏、姚树秘
2.2 图书管理系统数据流程图
图 书 管 理 系
图书信息
借还管理
图
书
查
询
图
书
修
改
图
书
输
入
图
书
借
阅
图
书
归
还
图
书
信
息
查
询
读
者
信
息
查
询
2.3 数据字典
1.图书信息表
属性名 数据类型 长度
允许空
备注
书名
作者
价格
出版社
Char
Char
Money
Char
Char
Char
Char
出 版 日
期
是 否 借
出
流水号
2.读者信息表
属性名 数据类型 长度
姓名
密码
备注
Char
Char
Char
50
30
50
10
5
10
30
10
100
N
N
Y
Y
Y
N
N
允许空
N
N
Y
2
备注
唯一
三人行书店图书管理系统设计报告——封愿、柳慧敏、姚树秘
3.借阅图书信息表
属性名 数据类型
长度
允许空
学号
书名
借 书 日
期
应 还 日
期
归 还 标
记
流水号
Char
Char
Datetime
Datetime
Char
Char
10
50
5
10
N
N
N
N
N
N
备注
唯一
三、数据库设计
3.1 E-R 图
姓
名
读者
借书情况
还书情况
借出
姓
名
借
还
密码
管理员
姓
名
出
版
社
图书
管理
作
者
出
版
日
期
价
格
图 3.1 E-R 图
3
三人行书店图书管理系统设计报告——封愿、柳慧敏、姚树秘
3.2 逻辑结构设计
通过 E-R 图可得以下关系模式:
图书(流水号,书名,作者,价格,出版社,出版日期,是否借出);
读者(学号,姓名,性别,备注);
借阅图书(流水号,学号,借书日期,书名,应还日期,归还标记);
3.3 系统编程
前台:java
后台:SQL Server 2005
3.4 图书管理
前台:查询显示各种图书信息。
后台:对图书的信息进行输入、修改。
四、详细设计
4.1 数据库表
本系统使用的数据库名为图书管理系统,根据已设计的关系模式及各模式
的完整性要求,现在可以在 SQL Server 2005 数据库系统中实现这些逻辑结构,
下面是创建基本表的 SQL 语句:
Create table 读者信息(
密码 char(10) not null,
姓名 char(30) not null primary key,
备注 char(100),
)
Create table 图书信息(
流水号 char(10) not null primary key,
书名
作者
价格
出版社 char(50),
出版日期 char(10),
是否借出 char(5),
)
Create table 借阅图书信息(
流水号 char(10) not null,
char(50) not null,
书名
char(50) not null,
char(30) not null,
money,
4
三人行书店图书管理系统设计报告——封愿、柳慧敏、姚树秘
借书日期 datetime not null,
应还日期 datetime not null,
归还标记 char(5) not null,
)
4.2 程序设计部分代码
1.连接数据库
import java.sql.*;
import java.lang.*;
public class test {
public static void main(String[] srg) {
String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=library";
//加载 JDBC 驱动
//连接服务器和数据库 test
String userName = "sa";
String userPwd = "123";
Connection dbConn;
//默认用户名
//密码
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!");
//如果连接成功 控制台
输出 Connection Successful!
} catch (Exception e) {
e.printStackTrace();
}
}
}
2.界面主程序
package src;
import java.util.*;
import java.awt.*;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class library
{
public static void main(String args[])
{
5
三人行书店图书管理系统设计报告——封愿、柳慧敏、姚树秘
Librarybox mf=new Librarybox();
mf.bookse.setEnabled(false);
mf.bookth.setEnabled(false);
mf.bookfo.setEnabled(false);
mf.bookfi.setEnabled(false);
mf.mi_system_manger.setEnabled(false);
}
}
3.主程序设计
package src;
import java.util.*;
import java.awt.*;
import java.io.*;
import java.net.*;
import java.sql.*;
import java.awt.event.*;
import javax.swing.*;
public class Librarybox extends JFrame implements ActionListener
{
JLabel mlabel;
JMenuBar mainmenu;
static
JMenu
system,bookse,bookth,bookfo,bookfi,booksex,mi_system_manger;
JMenuItem
mi_system_login,mifi_system_adduser,mifi_system_moduser,mifi_system
_deluser,mi_system_exit;
JMenuItem se_book_addbook,se_book_modifybook,se_book_delbook;
JMenuItem th_book_borrowmsg,th_book_borrowmsgmodif;
JMenuItem fo_book_returnmsg,fo_book_returnmsgmodif;
JMenuItem
fi_msglabel_book,fi_msglabel_borrow,fi_msglabel_user;
JMenuItem sex_edition;
Loginfrm frml=new Loginfrm(this,"登陆窗口");
Adduser frma=new Adduser(this,"添加用户");
Mdiuser frmm=new Mdiuser(this,"修改用户");
Deluser frmd=new Deluser(this,"删除用户");
Addbookfrm frmab;Mdibookfrm frmmb;Delbookfrm frmdb;Borbookfrm
6
三人行书店图书管理系统设计报告——封愿、柳慧敏、姚树秘
frmbb;BorMsgbookfrm frmbmb;
Booklistfrm
frmbl;Borlistbookfrm
frmblb;Userlistfrm
frmul;ReturnMsgbookfrm frmrmb;Returnbookfrm frmrb;
Readme frmread;
Librarybox()
{
三人行书店图书管理系统");
super("图书管理系统");
Font myFont=new Font("楷体_GB2312",Font.BOLD,60);
mlabel=new JLabel("
mlabel.setFont(myFont);
add(mlabel);
mainmenu=new JMenuBar();
system=new JMenu("系统管理");
mi_system_login=new JMenuItem("用户登陆");
mi_system_manger=new JMenu("用户管理");
mifi_system_adduser=new JMenuItem("添加用户");
mifi_system_moduser=new JMenuItem("修改用户");
mifi_system_deluser=new JMenuItem("删除用户");
mi_system_manger.add(mifi_system_adduser);
mi_system_manger.add(mifi_system_moduser);
mi_system_manger.add(mifi_system_deluser);
mi_system_exit=new JMenuItem("退出");
mi_system_login.addActionListener(this);
mi_system_exit.addActionListener(this);
mifi_system_adduser.addActionListener(this);
mifi_system_moduser.addActionListener(this);
mifi_system_deluser.addActionListener(this);
system.add(mi_system_login);
system.add(mi_system_manger);
system.addSeparator();
system.add(mi_system_exit);
mainmenu.add(system);
bookse=new JMenu("书籍管理" );
se_book_addbook=new JMenuItem("添加书籍");
se_book_modifybook=new JMenuItem("修改书籍");
se_book_delbook=new JMenuItem("删除书籍");
se_book_addbook.addActionListener(this);
se_book_modifybook.addActionListener(this);
se_book_delbook.addActionListener(this);
bookse.add(se_book_addbook);
bookse.add(se_book_modifybook);
7