图书管理系统设计报告
学生姓名, 指导老师,单承刚 摘 要 本课程设计主要解决的是在图书馆中,实现计算机对图书借阅和读者的管理.在课程设计中,系统开发平台为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
日
因篇幅问题不能全部显示,请点此查看更多更全内容