资源描述
图书管理系统设计报告
学生姓名: 指导老师:单承刚
摘 要 本课程设计重要解决的是在图书馆中,实现计算机对图书借阅和读者的管理。在课程设计中,系统开发平台为Windows XP,程序设计设计语言采用Java,数据库采用SQL server,程序运营平台为Windows 98/2023/XP。在Java中可以实现的功能有图书管理、新书入库、读者管理、添加读者、系统管理员管理、借书、还书、续借等等。以MS SQL server作为各种信息资料的后台数据库。
本系统实现提供图书管理员对图书入库和出库以及图书借阅的管理。程序通过调试运营,初步实现了设计目的,并且通过适当完善后,将可以应用在图书馆前台解决实际问题。
关键词 Java程序设计;JDBC;ODBC;
JDBC:JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可认为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员可以用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。
ODBC: ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API运用SQL来完毕其大部分任务。ODBC自身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
1 引 言
1.1 课程设计的目的
前言:图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者互相作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有助于提高管理效率。
1.2 课程设计的意义
通过一个图书馆管理信息系统,使图书馆的信息管理工作系统化、规范化、自动化,从而达成提高公司人事管理效率的目的。
2 系统功能介绍
图书管理系统涉及八大模块:图书管理、新书入库、读者管理、添加读者、系统管理员管理、借书、还书、续借等模块。
2.1图书管理模块
该模块实现图书信息的查找、修改、删除功能。图1-1
图1-1 图书管理模块
2.2新书入库模块
该模块实现新书信息录入功能。图1-2
图1-2 新书入库模块
2.3读者管理模块
该模块实现新书信息录入功能。图1-3
图1-3 读者管理模块
2.4添加读者模块
该模块实现读者信息录入数据库功能。图1-4
图1-4
2.5借书模块
该模块实现图书借阅功能。图1-5
图1-5
2.6还书模块
该模块实现归还图书功能。图1-6
图1-6
2.7管理员管理模块
该模块实现添加删除管理员功能。图1-7
图1-7
3.数据结构和数据库设计
我们使用的的是MS SQL Sever2023的数据库,它功能强大,简朴易用。根据需要,我们建立了数据库(BOOKSDB.MDF),库中有4张物理表。
(1) Books表
该表用于存储图书信息,如图书id、书名、种类等等。
Book表
(2) Outbooks表
该表用于存储借出图书的日期时间、读者id。
Outbooks表
(3) Admin表
该表用于存储管理员的姓名、密码。
Admin表
(4) Users表----
该表用于存储读者的信息,如读者id、读者姓名、性别、联系方式等。
User表
图1 图书管理系统业务流程图
图2 图书管理系统数据流程图
图3 图书管理系统概念数据模型
图4 图书管理系统面向对象模型
4. 系统代码设计分析
4.1 数据库连接模块
public class DBC {
//数据源
public String url = "jdbc:odbc:test";
//创建connection对象
public Connection conn;
public static DBC only;
//创建DBC对象
public static DBC getInstance() {
if (only == null) {
return new DBC();
} else {
return only;
}
}
//创建数据库连接
public void getConnection() {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection(url);
} catch (SQLException ex) {
javax.swing.JOptionPane.showMessageDialog(null,
ex.getMessage().toString());
} catch (ClassNotFoundException ex) {
javax.swing.JOptionPane.showMessageDialog(null,
ex.getMessage().toString());
}
}
//数据库查询方法
public ResultSet executeQuery(String sql) {
ResultSet rs = null;
try {
getConnection();
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
javax.swing.JOptionPane.showMessageDialog(null,
ex.getMessage().toString());
}
return rs;
}
//更新,插入数据并返回是否成功
public boolean executeUpdate(String sql) {
getConnection();
int i = 0;
try {
Statement stmt = conn.createStatement();
i = stmt.executeUpdate(sql);
stmt.close();
conn.close();
} catch (SQLException ex) {
javax.swing.JOptionPane.showMessageDialog(null,
ex.getMessage().toString());
return false;
}
if (i > 0) {
return true;
} else {
return false;
}
}
}
4.2 借书模块
DBC dbc = DBC.getInstance();
ResultSet rs1=dbc.executeQuery("SELECT * FROM Books WHERE Bid = " + Integer.parseInt(txtBid.getText()));
ResultSet rs2 = dbc.executeQuery("SELECT * FROM Users WHERE Uid = " + Integer.parseInt(txtUid.getText()));
int uyue = 0;
int bprice = 0;
//查询是否有此书信息
try {
rs1.next();
rs1.getInt("Bprice");
rs1.close();
} catch (SQLException ex1) {
javax.swing.JOptionPane.showMessageDialog(this,
"库中无此书信息!请重新确认。");
return;
}
//查询是否有该读者信息
try {
rs2.next();
uyue = rs2.getInt("Uyue");
rs2.close();
} catch (SQLException ex2) {
javax.swing.JOptionPane.showMessageDialog(this, "无此读者信息!请重新确认。");
return;
}
//判断余额是否允许租借本书
if (uyue < bprice) {
javax.swing.JOptionPane.showMessageDialog(this, "该读者余额局限性以租借此书!");
return;
} else {
//更新相关数据并将该书库存量减1
if(Integer.parseInt(txtRenttime.getText()) < 0){
javax.swing.JOptionPane.showMessageDialog(this,"时间不能为负数!");
return;
}
if (dbc.executeUpdate("INSERT OutBooks VALUES (" +
Integer.parseInt(txtBid.getText()) +
"," +
Integer.parseInt(txtUid.getText()) +
"," +
bprice +
",DEFAULT," +
Integer.parseInt(txtRenttime.getText()) +
",DEFAULT,DEFAULT)") &&
dbc.executeUpdate(
"UPDATE Books SET Bsum = Bsum-1 WHERE Bid =" +
Integer.parseInt(txtBid.getText()))) {
javax.swing.JOptionPane.showMessageDialog(this, "借书成功!");
} else {
javax.swing.JOptionPane.showMessageDialog(this,
"借书失败!请重试。");
}
}
参考文献
[1] 刘萌.Java入门与提高实用教程[M].中国铁道出版社,2023.9
[2] 陈艳峰.Java数据库项目案例导航[M].北京:清华大学出版社,2023.8
[3].郑人杰,殷人昆等. 实用软件工程. 北京:清华大学出版社,1997
[4].徐孝凯. 面向对象程序设计实验. 北京:中央广播电视大学出版社,2023
[5].邵维忠,杨芙清. 面向对象的系统分析. 北京:清华大学出版社,1998
枣庄学院
《软件工程》课程设计报告
图书管理系统
叶 嵩
李 平
张芹芳
李 娜
系 计算机科学系 专 业 计算机科学与技术
班 级 学 号
学生姓名 指导教师
课程成绩 完毕日期
课程设计成绩评估
系 专 业 计算机科学与技术
班 级 学 号
学生姓名 指导教师
课程成绩 完毕日期
指导教师对学生在课程设计中的评价
评分项目
优
良
中
及格
不及格
课程设计中的发明性成果
学生掌握课程内容的限度
课程设计完毕情况
课程设计动手能力
文字表达
学习态度
规范规定
课程设计论文的质量
指导教师对课程设计的评估意见
综合成绩 指导教师签字 2023年 月 日
展开阅读全文