您的当前位置:首页正文

图书管理系统设计文档【呕心沥血整理版】

2021-12-15 来源:步旅网
图书管理系统设计文档

图书管理系统设计报告

学生姓名, 指导老师,单承刚 摘 要 本课程设计主要解决的是在图书馆中,实现计算机对图书借阅和读者的管理.在课程设计中,系统开发平台为Windows XP,程序设计设计语言采用Java,数据库采用SQL server,程序运行平台为Windows 98/2000/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 课程设计的目的

前言:图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。

1.2 课程设计的意义

通过一个图书馆管理信息系统,使图书馆的信息管理工作系统化、规范化、自动化,从而达到提高企业人事管理效率的目的.

2 系统功能介绍

图书管理系统包括八大模块:图书管理、新书入库、读者管理、添加读者、系统管理员管理、借书、还书、续借等模块。

2。1图书管理模块

该模块实现图书信息的查找、修改、删除功能。图1—1

2

图1-1 图书管理模块 2。2新书入库模块 该模块实现新书信息录入功能。图1—2

图1-2 新书入库模块 2。3读者管理模块 该模块实现新书信息录入功能。图1-3

3

图1—3 读者管理模块 2.4添加读者模块 该模块实现读者信息录入数据库功能.图1-4

图1—4 2。5借书模块

该模块实现图书借阅功能。图1—5

图1-5 4

2。6还书模块

该模块实现归还图书功能。图1—6

图1—6

2。7管理员管理模块

该模块实现添加删除管理员功能。图1—7

图1-7

3(数据结构和数据库设计

我们使用的的是MS SQL Sever2000的数据库,它功能强大,简单易用。根据需要,

我们建立了数据库(BOOKSDB.MDF),库中有4张物理表。 5 (1) Books表

该表用于存储图书信息,如图书id、书名、种类等等。

Book表

(2) Outbooks表

该表用于存储借出图书的日期时间、读者id。

Outbooks表 (3) Admin表

该表用于存储管理员的姓名、密码。 6

Admin表

(4) Users表---—

该表用于存储读者的信息,如读者id、读者姓名、性别、联系方式等。

User表 7

图1 图书管理系统业务流程图

图2 图书管理系统数据流程图 8

图3 图书管理系统概念数据模型

图4 图书管理系统面向对象模型 9

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()); } } 10

//数据库查询方法

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; 11 } } }

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; } 12

//判断余额是否容许租借本书 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, ”借书失败~请重试。”); } } 13 参考文献

[1] 刘萌。Java入门与提高实用教程[M]。中国铁道出版社,2003。9 [2] 陈艳峰。Java数据库项目案例导航[M].北京:清华大学出版社,2004.8 [3]。郑人杰,殷人昆等。 实用软件工程。 北京:清华大学出版社,1997 [4]。徐孝凯。 面向对象程序设计实验. 北京:中央广播电视大学出版社,2003 5]。邵维忠,杨芙清. 面向对象的系统分析。 北京:清华大学出版社,1998 [

14 枣庄学院

《软件工程》课程设计报告 图书管理系统 叶 嵩 李 平 张芹芳 李 娜

系 计算机科学系 专 业 计算机科学与技术 班 级 学 号 学生姓名 指导教师 课程成绩 完成日期

15

课程设计成绩评定

系 专 业 计算机科学与技术 班 级 学 号 学生姓名 指导教师 课程成绩 完成日期

指导教师对学生在课程设计中的评价 评分项目 优 良 中 及格 不及格 课程设计中的创造性成果 学生掌握课程内容的程度 课程设计完成情况 课程设计动手能力 文字表达 学习态度 规范要求

课程设计论文的质量

指导教师对课程设计的评定意见 16

综合成绩 指导教师签字 2006年 月17

因篇幅问题不能全部显示,请点此查看更多更全内容