Java图书馆管理系统附全代码课程设计报告Word格式文档下载.docx
《Java图书馆管理系统附全代码课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Java图书馆管理系统附全代码课程设计报告Word格式文档下载.docx(74页珍藏版)》请在冰豆网上搜索。
图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。
由于图书馆主要从事大量的图书资料的储存和流通。
所以一直以来,计算机在图书馆的图书管理中得到了广泛的应用。
本系统实现图书信息管理的系统化,规范化和自动化,以最大程度提高操作人员的办公效率。
关键词:
JAVA、JDBC、SQLServer、数据库、图书馆管理
一、实验题目:
二、实验的目的和要求:
完成一个小型图书管理系统,功能要求如下:
1)能够通过书籍基本信息(包括:
书号、书名、出版社、出版日期、作者、内容摘要)单个或以AND方式组合多个条件查询书籍信息;
2)对于每一种书籍,除可查看其基本信息之外还可查看其总数以及目前在馆数量
3)可增添新的书籍
4)可删除已有书籍(如有读者借了该书籍尚未归还,则不允许删除)
5)可修改书籍的基本信息
6)能够通过读者基本信息(包括:
证号、姓名、性别、系名、年级)单个或以AND方式组合多个条件查询读者信息
7)对于每位读者除可查看其基本信息之外,还可查看其已借的书籍列表、数量、借还日期
8)可增添新的读者
9)可删除已有读者(如该读者有尚未归还的借书,则不允许删除)
10)可修改读者的基本信息
11)可完成借还书籍的手续
12)还书时如超期,应该显示超期天数
13)借书时如果有超期的书没有还,则不允许借书
14)可查询有哪些读者有超期的书没有还,列出这些读者的基本信息
三、实验的环境:
1、硬件环境:
CPU:
Intel(R)Corei5-32302.60GHz
RAM:
8GB
2、软件环境:
操作系统:
Windows7UltimateSP1
编译软件:
EclipseLuna
MicrosoftSQLServer2014
四、系统ER图
五、表结构定义(使用表格说明)
六、系统功能模块
1)能够通过书籍基本信息单个或组合多个条件查询书籍信息;
6)能够通过读者基本信息单个或组合多个条件查询读者信息
七、程序框架流程图
九、程序运行结果
八、核心代码
AddBook.java
importjava.awt.BorderLayout;
importjava.awt.Container;
importjava.awt.GridLayout;
importjava.awt.event.*;
importjava.util.ArrayList;
importjavax.swing.*;
publicclassAddBookextendsJFrameimplementsActionListener{
SQLOperationop=newSQLOperation();
Containerc=getContentPane();
JPanelp1=newJPanel();
JLabelbookNumber=newJLabel("
BookNumber:
"
);
JLabelbookName=newJLabel("
BookName:
JLabelbookAuthor=newJLabel("
BookAuthor:
JLabelpress=newJLabel("
Press:
JLabelpressTime=newJLabel("
Presstime:
JLabelbookAbstract=newJLabel("
Abstract:
JLabelstorage=newJLabel("
Storage:
JLabelremain=newJLabel("
Remain"
JLabelremain1=newJLabel("
UpdatewithStorage"
JTextFieldnumberField=newJTextField();
JTextFieldnameField=newJTextField();
JTextFieldauthorField=newJTextField();
JTextFieldpressField=newJTextField();
JTextFieldpressTimeField=newJTextField();
JTextFieldabstractField=newJTextField();
JTextFieldstorageField=newJTextField();
JButtoncancel=newJButton("
Cancel"
JButtonconfirm=newJButton("
Confirm!
!
publicAddBook(){
c.add(p1,BorderLayout.NORTH);
p1.setLayout(newGridLayout(9,2,20,10));
p1.add(bookNumber);
p1.add(numberField);
p1.add(bookName);
p1.add(nameField);
p1.add(bookAuthor);
p1.add(authorField);
p1.add(press);
p1.add(pressField);
p1.add(pressTime);
p1.add(pressTimeField);
p1.add(bookAbstract);
p1.add(abstractField);
p1.add(storage);
p1.add(storageField);
p1.add(remain);
p1.add(remain1);
p1.add(cancel);
p1.add(confirm);
cancel.addActionListener(this);
confirm.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente){
//TODOAuto-generatedmethodstub
if(e.getSource()==cancel){
this.dispose();
}
if(e.getSource()==confirm){
BookInfobook=newBookInfo(numberField.getText(),
nameField.getText(),authorField.getText(),
pressField.getText(),pressTimeField.getText(),
abstractField.getText(),Integer.parseInt(storageField
.getText()),
Integer.parseInt(storageField.getText()));
ArrayList<
String>
strArray=newArrayList<
();
strArray=op.addBookJudgement();
intn=0;
intreplicate=0;
while(n<
Integer.parseInt(strArray.get(0))){
n++;
if(numberField.getText().equals(strArray.get(n))){
replicate++;
}
}
if(replicate==0){
op.saveBook(book);
JOptionPane.showMessageDialog(null,"
Addabooksuccessfully!
"
Information"
JOptionPane.INFORMATION_MESSAGE);
}else{
JOptionPane.showMessageDialog(null,
Thisbook(number)hasalreadyexisted!
"
Warning"
JOptionPane.INFORMATION_MESSAGE);
}
AddReader.java
publicclassAddReaderextendsJFrameimplementsActionListener{
JLabelreaderNumber=newJLabel("
ReaderNumber:
JLabelreaderName=newJLabel("
ReaderName:
JLabelsex=newJLabel("
Sex:
JLabeldpt=newJLabel("
Department:
JLabelgrade=newJLabel("
Grade:
JTextFieldsexField=newJTextF