课程设计:图书信息管理系统2.doc
- 文档编号:4710761
- 上传时间:2023-05-07
- 格式:DOC
- 页数:43
- 大小:646.03KB
课程设计:图书信息管理系统2.doc
《课程设计:图书信息管理系统2.doc》由会员分享,可在线阅读,更多相关《课程设计:图书信息管理系统2.doc(43页珍藏版)》请在冰点文库上搜索。
湖南科技学院
课程设计报告
课程名称:
面向对象程序设计课程设计
课程设计题目:
图书信息管理系统
系:
数学与计算科学系
专业:
信息与计算科学
年级、班:
XXX
姓名:
XXX
学号:
XXX
指导教师:
XXX
职称:
讲师
2011年6月
自我评价
自我评分:
90'。
首先,我在老师给的程序上完善了图书管理系统的一些基本功能,如增加、修改、删除、查询,另外,我还增加了bookmain()、Adminbooksever()、login()、jdbcfile()等函数功能,实现了可以按多种方式查找,如按图书编号,按图书名称,实现了完全的在界面操作的系统。
然后,我通过查阅书籍,上网查询,最后,我将数据存储在数据库(OracleDatabase10g)中,通过C\S模式的服务器和接收端的运行平台,以及Java驱动程序,连接了数据库,使其数据库当中的数据随着界面的操作而随时更新。
用java.sql.PreparedStatement这个java.sql.Statement接口的一个变种,可以使用参数化SQL语句,用java.sql.ResultSet这个接口抽象了运行SQLselect语句的结果,提供了访问结果的方法,这个接口可以用来来访问各记录中不同的字段。
为了保证安全性,我使用了自定义函数Login()的登录功能,使得登录用户要有用户名和密码;Bookmain()函数是实现首页面板,除了菜单选项,还有下拉菜单的功能实现;Adminbooksever()函数是接受服务器端的传输功能,实现提示面板,因为本系统采用的是本地C\S模式,有服务器和接收端;jdbcfile()函数是实现与数据库的连接函数。
而在每个面板上也就免不了的加了按钮的触发事件功能。
另外的基本功能是用单独的每个函数实现的。
具体见代码。
下面是我的工作步骤:
一:
查阅相关资料。
针对系统的开发目的、需求分析、功能分析、系统分析、系统结构、系统设计等相关知识的查阅和学习。
二:
数据库设计-------概念设计(E-R图的设计)、逻辑设计(表及视图的设计)
三:
系统功能设计-----功能模块详细设计
四:
总结
【摘要】
书籍是人类不可缺少的精神食粮,图书管理系统是一些单位不可缺少的部分,尤其是对一些学校来说尤为的重要。
所以图书管理系统应该能够为用户提供重做的信息和快捷的查询手段。
但一直以来人们使用传统的人工的方式管理图书、期刊、试卷合订本等,这种管理方式存在着诸多的缺点,如:
效率低,保密性差,另外时间长了,将产生大量的文件和数据,这对于查找、更新和维护都带来不少的困难。
随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆信息管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。
本论文主要是针对图书信息管理系统的研究,介绍的是一个典型的数据库应用系统,主要涉及数据的读写和数据的传递,利用数据库OracleDatabase10g软件和Eclipse3.62工具,采用java语言进行开发,介绍了系统的开发目的、系统分析、系统结构、系统设计、等。
系统的建立将支持图书管理人员对各类信息进行快捷、准确、方便的查询;支持管理人员对图书的录入、修改、删除与查询。
关键词JavaOracleAccess面向对象图书馆里
目录
摘要...............................................................I
第1章绪论..........................................................1
第2章系统功能介绍..................................................1
2.1系统设计...................................................1
2.2系统流程及模块功能.........................................2
2.3模块功能介绍...............................................2
第3章数据库设计....................................................3
3.1数据库需求分析.............................................3
3.2数据库概念结构设计.........................................3
3.3数据库表逻辑结构设计.......................................3
第4章系统功能实现..................................................4
4.1数据库模块设计.............................................4
4.2管理员登录模块设计.........................................6
4.3主界面功能实现.............................................9
4.4图书添加功能实现..........................................12
4.5图书查询功能实现..........................................17
4.6图书删除功能实现..........................................21
4.7图书信息修改功能实现......................................26
4.8图书管理模块的服务器端功能实现............................32
第5章总结........................................................39
第6章参考文献.....................................................39
第1章绪论
随着社会经济的迅速发展、科学技术的全面进步和计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。
随着经济文化水平的显著提高,人们对生活质量及工作环境要求也越来越高。
书籍作为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种不同的选择。
与此同时,为了管理大量的图书,图书仓库也大量的出现,仓库的管理问题也就提上了日程。
随着图书的大量增加,其管理难度也越来越大,如何优化仓库的日常管理也就成了一个大众化的课题。
在计算机飞速发展的今天,将计算机这一信息处理器应用于仓库的日常管理已是势必索然,而且这也将为仓库的管理带来前所未有的变化,同时也会为企业的飞速发展提供无限潜力。
采用计算机管理信息系统已成为仓库管理科学化和现代化的重要标志,它给企业管理带来明显的经济效益和社会效益。
主要体现在:
极大的提高了仓库管理人员的工作效率,大大减少了以往入出存流程繁琐、杂乱、周期长的弊端。
基于仓库管理的自动化,可以减少入库管理、出库管理及库存管理的漏洞,可以节约不少管理开支,增加企业收入。
仓库的管理操作自动化和信息的电子化,全面提高了仓库的管理水平。
随着我国改革开放的不断深入,经济飞速的发展,企业想要生存和发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理好似万万不行的,图书管理的全面自动化、信息化则是其中极其重要的部分。
为了加快仓库管理的自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统已变得十分重要。
新书入库、出库还是现在企业图书仓库管理的常规基本模式。
如何设计好仓库的管理系统,尽可能的减少仓库管理的复杂性和低效率性就成为当前最重要的问题。
通过对图书仓库管理的日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等诸多方面进行考虑,认为本课题是一个适合现今图书仓库管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。
第2章系统功能介绍
2.1系统设计
本人设计的图书信息管理系统采用C/S模式,通过内部网络处理和信息交换,开发结构、解决数据库共享问题,客户端运行Java客户端程序,服务器端运行Java服务器端程序。
主要用于对图书馆日常工作的管理,主要任务是用计算机图书各种信息进行日常的管理,如增加、修改、删除、查询图书的管理等。
本系统实现了图书馆的信息自动化管理,完成了图书管理系统的基本功能,该系统主要包括管理员子系统和书籍管理子系统退出子系统两个部分。
其书籍管理子系统的主要功能是用于书籍信息的管理,如新书的入库、图书查询、删除图书、图书修改。
2.2系统流程及模块功能
系统图书信息管理流程如下图1所示
N
结束
更新数据库
成功
登录
开始
Y
图1
系统模块功能结构分析图如图2所示
图书管理信息系统
登录
添加图书
修改图书
删除图书
查询图书
退出系统
图2
2.3模块功能介绍
本系统是图书管理系统,本系统启动后需要登录,然后进入主界面在这个界面,我们可以选择所需要的功能模块来实现所要的执行功能。
A)添加图书功能:
图书信息录入到数据库当中(主要包括图书的编号、书名、作者、出版社、出版日期、图书简介、图书类别等);
B)修改图书功能:
把数据库当中图书的录入信息错误的图书先查找出来,再对其进行修改和保存;
C)删除图书功能:
主要的是对图书馆中没有此书和不想保留图书的资料进行删除,不存储该书信息;
D)查询图书功能:
方便管理工作人员对图书信息的了解,主要按照图书的编号和书名进行浏览图书信息;
第3章数据库设计
3.1数据库需求分析
数据库结构要能充分满足各种信息的输入和输出,收集基本数据,数据结构处理的流程,组成一份详尽的数据字典,为具体设计做准备。
针对一般图书管理系统的需求,通过对数据管理工作过程的内容和数据流程的分析,得到其系统的逻辑模型,设计如下数据项和数据结构:
l图书(图书编号,图书名称,作者,出版社,出版日期,图书简介,图书类型)
l用户(用户名,密码)
3.2数据库概念结构设计
本系统用到的数据库表的E—R图如图3
3.3数据库表逻辑结构设计
管理员表Admin用来保存管理员用户信息,结构如表1
表1管理员表
图书表book用来保存图书信息,结构如表2
表2图书表book
第4章系统功能实现
4.1连接数据库模块设计
系统对图书所需要的信息都存储于数据库当中,要对这些数据信息进行操作,就必须连接数据库,为了省去每次操作都要编写连接数据库程序的步骤,我们把连接数据库操作封装到一个类jdbcfile.java中,在不同的模块中调用这个类就可以对数据库进行连接,执行相应的数据库操作,这样就使得连接数据库安全高效,程序代码简洁清晰,也符合java面向对象的思想。
连接数据库类jdbcfile.java的代码如下:
package管理员登录;
importjava.sql.*;
publicclassjdbcfile{
//声明变量
Connectionconn;
Statementstmt;
intinorupdatevalue=-1;
//声明构造方法,并抛出异常
publicjdbcfile()throwsException{
try{
Stringdrivername="oracle.jdbc.driver.OracleDriver";
StringdbURL="jdbc:
oracle:
thin:
@0.0.0.0:
1521:
xe";
Stringuser="system";
Stringpassword="123";
//加载驱动程序
Class.forName(drivername);
//创建数据库连接Connection对象
conn=DriverManager.getConnection(dbURL,user,password);
//创建Statement对象
stmt=conn.createStatement();
}catch(ClassNotFoundExceptione){
//捕获异常
thrownewException("数据库驱动未找到"+e.getMessage());
}catch(SQLExceptione){
//捕获异常
thrownewException("数据库未连接"+e.getMessage());
}
}
//定义查询数据的方法
publicsynchronizedResultSetexecuteQuery(Stringsql)throwsException{
ResultSetrs=stmt.executeQuery(sql);
returnrs;
}
//定义插入数据的方法
publicsynchronizedintinsert(Stringsql)throwsException{
inorupdatevalue=stmt.executeUpdate(sql);
returninorupdatevalue;
}
//定义修改数据的方法
publicsynchronizedintupdate(Stringsql)throwsException{
inorupdatevalue=stmt.executeUpdate(sql);
returninorupdatevalue;
}
//定义删除数据的方法
publicsynchronizedintdel(Stringsql)throwsException{
inorupdatevalue=stmt.executeUpdate(sql);
returninorupdatevalue;
}
//定义关闭数据库连接的方法
publicvoidclose()throwsException{
conn.close();
}
}
在jdbcfile的代码中,定义了查询数据、插入数据、修改数据、删除数据和关闭数据库连接的方法。
其连接的图如图4所示
图4
4.2管理员登录模块设计
为了保证系统的安全性,只有管理员才可以对系统进行操作,因此,需要对用户登录的信息进行验证,管理员的用户和密码存放在数据库当中,通过文本框获得用户输入的用户名和密码,然后与数据库的用户名和密码进行比较,如果匹配,则进入系统,否则提示用户名和密码不正确。
管理员登录界面主要用于输入用户名和密码,以便与数据库的用户名和密码进行比较,界面主要包括两个标签、一个文本框、一个密码框和两个按钮,如图5所示。
图5登录界面
图形用户登录界面的代码如下:
package管理员登录;
importjava.awt.Container;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JPasswordField;
importjavax.swing.JTextField;
importjavax.swing.SwingConstants;
publicclassLoginextendsJFrame{
//声明标签、按钮、文本框和密码框
privateJLabelJLb1;privateJLabelJLb2;
privateJButtonOk_btn;privateJButtonCancel_btn;
privateJTextFieldjtflduser;privateJPasswordFieldjtpwdfld;
//声明窗口
privateJFrameframe;//构造方法
publicLogin(){
frame=newJFrame("登录");Containercontent=frame.getContentPane();
//采用GridLayout布局管理
content.setLayout(newGridLayout(3,2,20,20));
JLb1=newJLabel("用户名");JLb2=newJLabel("密码");
//将标签置于居中位置
JLb1.setHorizontalAlignment(SwingConstants.CENTER);
JLb2.setHorizontalAlignment(SwingConstants.CENTER);
jtflduser=newJTextField();jtpwdfld=newJPasswordField();
Ok_btn=newJButton("确定");Cancel_btn=newJButton("取消");
//为按钮添加事件监听者
Ok_btn.addActionListener(newActionHandler());
Cancel_btn.addActionListener(newActionHandler());
//添加标签、文本框、密码框和按钮到窗口
content.add(JLb1);content.add(jtflduser);
content.add(JLb2);content.add(jtpwdfld);
content.add(Ok_btn);content.add(Cancel_btn);
frame.pack();
//设定登录窗口启动时出现在屏幕的中央位置
frame.setLocationRelativeTo(null);
frame.setSize(300,200);frame.setVisible(true);
}
//实现ActionListener监听
classActionHandlerimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Stringstr1,str2,sqlStr;Objectobj=e.getSource();
//获得文本框和密码框的数据
str1=jtflduser.getText().trim();
str2=newString(jtpwdfld.getPassword()).trim();
try{//单击确定按钮
if(obj.equals(Ok_btn)){if(str1.equals("")){
JOptionPane.showMessageDialog(frame,"用户名不能为空!
");
return;}
//创建数据库连接
jdbcfileconn=newjdbcfile();
sqlStr="select*fromAdminwherenum='"+str1+"'andpassword='"+str2+"'";
ResultSetresult=conn.executeQuery(sqlStr);
if(result.next()){//弹出对话框提示登录成功
JOptionPane.showConfirmDialog(frame,"登录成功!
");
//打开图书馆主页
bookmainbookmain1=newbookmain();bookmain1.go();
//关闭登录窗口
frame.dispose();//关闭数据库连接
conn.close(); }else{
JOptionPane.showMessageDialog(frame,"用户名或密码错误!
");}
}elseif(obj.equals(Cancel_btn)){
//单击取消按钮
System.exit(0);}
}catch(ClassNotFoundExceptionce){
System.out.println("SQLException:
"+ce.getMessage());}
catch(SQLExceptionex){System.out.println(ex);}
catch(Exceptions){s.printStackTrace();}
}}
publicstaticvoidmain(String[]args){
Loginlogin=newLogin();}
}
Login类继承了Frame类,因此可以显示,在Login类中,首先声明标签、按钮、文本框、密码框、和一个JFrame窗口,然后通过构造方法创建标签、按钮、文本框、密码框,并添加到窗口容器中,最后设置窗口的大小和可见性。
当单击按钮的时候产生事件,按钮把事件对象传递给监听者,事件监听者要监听到该事件,就要在程序当中加入一个能够“听到”该事件的接口,实现这个接口并处理监听到的事件。
那么就在上面的Login代码中实现一个ActionListener类的代码。
4.3主界面功能实现
在系统的主界面中,包括两个部分:
图书管理和退出。
而在各自的下拉菜单中有各自的实现功能。
运行的主界面如图6所示。
图6系统主界面
在本界面的实现当中,定义了一个类bookmain,继承了JFr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 图书 信息管理 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)