Java 图书馆管理系统附全代码 课程设计报告.docx
《Java 图书馆管理系统附全代码 课程设计报告.docx》由会员分享,可在线阅读,更多相关《Java 图书馆管理系统附全代码 课程设计报告.docx(110页珍藏版)》请在冰豆网上搜索。
Java图书馆管理系统附全代码课程设计报告
《数据库系统概论》课程报告
课题名称:
小型图书管理系统
课题负责人名(学号):
best
同组成员名单(角色):
ﻩ
指导教师:
评阅成绩:
评阅意见:
ﻩ
ﻩ
提交报告时间:
2015年12月15日
小型图书管理系统
计算机科学与技术专业
学生 指导老师
[摘要] 随着计算机技术的飞速发展,利用计算机来获得和处理信息是当今信息管理的一大特点、伴随计算机硬件的快速发展,有关信息管理的软件—-数据库系统软件也在迅猛发展着。
图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。
由于图书馆主要从事大量的图书资料的储存和流通。
因此一直以来,计算机在图书馆的图书管理中得到了广泛的应用。
本系统实现图书信息管理的系统化,规范化和自动化,以最大程度提高操作人员的办公效率。
关键词:
JAVA、JDBC、SQL Server、数据库、图书馆管理
ﻬ
一、实验题目:
小型图书管理系统
二、实验的目的和要求:
完成一个小型图书管理系统,功能要求如下:
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、软件环境:
操作系统:
Windows7Ultimate SP1
编译软件:
EclipseLuna
MicrosoftSQLServer2014
四、系统ER图
五、表结构定义(使用表格说明)
六、系统功能模块
1)能够通过书籍基本信息单个或组合多个条件查询书籍信息;
2)关于每一种书籍,除可查看其基本信息之外还可查看其总数以及目前在馆数量
3)可增添新的书籍
4)可删除已有书籍(如有读者借了该书籍尚未归还,则不允许删除)
5)可修改书籍的基本信息
6)能够通过读者基本信息单个或组合多个条件查询读者信息
7)关于每位读者除可查看其基本信息之外,还可查看其已借的书籍列表、数量、借还日期
8)可增添新的读者
9)可删除已有读者(如该读者有尚未归还的借书,则不允许删除)
10)可修改读者的基本信息
11)可完成借还书籍的手续
12)还书时如超期,应该显示超期天数
13)借书时假如有超期的书没有还,则不允许借书
14)可查询有哪些读者有超期的书没有还,列出这些读者的基本信息
七、程序框架流程图
九、程序运行结果
八、核心代码
AddBook、java
import java、awt、BorderLayout;
importjava、awt、Container;
import java。
awt、GridLayout;
importjava、awt、event。
*;
importjava。
util。
ArrayList;
importjavax、swing、*;
publicclassAddBookextends JFrame implementsActionListener{
ﻩSQLOperationop=newSQLOperation();
Container c = getContentPane();
ﻩJPanelp1=new JPanel();
JLabel bookNumber =newJLabel("Book Number:
");
ﻩJLabelbookName=newJLabel("Book Name:
");
JLabelbookAuthor=newJLabel(”BookAuthor:
");
JLabel press= newJLabel("Press:
");
ﻩJLabelpressTime= newJLabel("Presstime:
");
ﻩJLabelbookAbstract=newJLabel("Abstract:
");
JLabelstorage=new JLabel("Storage:
");
JLabelremain = newJLabel(”Remain”);
ﻩJLabelremain1 =new JLabel(”UpdatewithStorage”);
ﻩJTextFieldnumberField = newJTextField();
JTextFieldnameField= newJTextField();
ﻩJTextFieldauthorField =newJTextField();
ﻩJTextFieldpressField=new JTextField();
JTextFieldpressTimeField=newJTextField();
ﻩJTextFieldabstractField= new JTextField();
ﻩJTextField storageField =newJTextField();
ﻩJButtoncancel=newJButton(”Cancel”);
JButton confirm=newJButton("Confirm!
!
”);
public AddBook() {
ﻩ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(ActionEvent e){
ﻩ// TODOAuto—generatedmethodstub
ﻩﻩif (e、getSource() ==cancel) {
ﻩﻩthis、dispose();
ﻩ}
ﻩﻩif(e。
getSource() ==confirm) {
ﻩﻩﻩthis。
dispose();
ﻩﻩBookInfobook = new BookInfo(numberField、getText(),
ﻩﻩﻩﻩnameField。
getText(),authorField、getText(),
ﻩﻩpressField、getText(),pressTimeField、getText(),
ﻩﻩﻩﻩabstractField。
getText(),Integer、parseInt(storageField
ﻩﻩﻩﻩ、getText()),
ﻩﻩﻩInteger、parseInt(storageField、getText()));
ﻩArrayList<String〉strArray= newArrayList<String>();
ﻩstrArray=op。
addBookJudgement();
ﻩﻩint n =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,"Add a booksuccessfully!
",
ﻩﻩﻩﻩﻩ”Information", JOptionPane、INFORMATION_MESSAGE);
ﻩﻩ} else {
JOptionPane、showMessageDialog(null,
ﻩ"This book(number)hasalready existed!
","Warning",
ﻩﻩﻩJOptionPane、INFORMATION_MESSAGE);
ﻩ}
}
ﻩ}
}
AddReader、java
import java、awt、BorderLayout;
importjava。
awt、Container;
importjava、awt、GridLayout;
importjava。
awt、event、*;
importjava。
util。
ArrayList;
importjavax。
swing、*;
publicclassAddReaderextendsJFrameimplementsActionListener{
SQLOperation op= newSQLOperation();
ﻩContainerc=getContentPane();
ﻩJPanel p1=new JPanel();
ﻩJLabelreaderNumber=newJLabel(”ReaderNumber:
”);
ﻩJLabelreaderName =newJLabel("ReaderName:
");
ﻩJLabelsex=newJLabel("Sex:
");
ﻩJLabeldpt=newJLabel("Department:
”);
ﻩJLabel grade=newJLabel("Grade:
”);
ﻩJTextField numberField=newJTextField();
ﻩJTextFieldnameField=newJTextField();
JTextField sexField=newJTextField();
JTextFielddptField=new JTextField();
JTextFieldgradeField=new JTextField();
JButtoncancel= newJButton("Cancel");
ﻩJButtonconfirm=new JButton(”Confirm!
!
”);
publicAddReader(){
ﻩc。
add(p1,BorderLayout、NORTH);
p1。
setLayout(newGridLayout(6,2, 20,10));
ﻩﻩp1、add(readerNumber);
ﻩp1。
add(numberField);
ﻩp1、add(readerName);
ﻩp1、add(nameField);
ﻩp1、add(sex);
ﻩp1。
add(sexField);
ﻩp1、add(dpt);
ﻩp1。
add(dptField);
ﻩﻩp1。
add(grade);
ﻩp1、add(gradeField);
ﻩﻩp1。
add(cancel);
ﻩp1、add(confirm);
cancel、addActionListener(this);
ﻩﻩconfirm、addActionListener(this);
ﻩ}
publicvoidactionPerformed(ActionEvente) {
ﻩ//TODOAuto—generatedmethod stub
ﻩﻩif(e、getSource() == cancel){
ﻩﻩthis、dispose();
ﻩﻩ}
if(e、getSource() ==confirm){
ﻩﻩthis、dispose();
ﻩReaderInforeader =new ReaderInfo(numberField。
getText(),
ﻩﻩﻩnameField、getText(), sexField。
getText(),
ﻩﻩﻩﻩdptField、getText(), Integer、parseInt(gradeField、getText()));
ﻩﻩArrayListstrArray= newArrayListﻩﻩstrArray = op。
addReaderJudgement();
int n= 0;
ﻩintreplicate =0;
while(n < Integer、parseInt(strArray。
get(0))) {
ﻩn++;
ﻩif(numberField、getText()。
equals(strArray、get(n))){
ﻩﻩreplicate++;
ﻩﻩ}
}
ﻩif(replicate==0){
ﻩﻩif(!
sexField、getText()。
equals("boy")
ﻩﻩ&& !
sexField。
getText()、equals(”girl")) {
ﻩﻩﻩJOptionPane
ﻩﻩﻩﻩ、showMessageDialog(
ﻩﻩﻩﻩﻩﻩnull,
ﻩﻩﻩﻩ"In theSexfield,youcanonlyinput ’boy' or'girl'!
”,
ﻩﻩﻩﻩﻩﻩ”Warning", JOptionPane、INFORMATION_MESSAGE);
ﻩ}else {
ﻩﻩﻩop、saveReader(reader);
ﻩﻩJOptionPane、showMessageDialog(null,
ﻩﻩﻩ”Adda readersuccessfully!
”,"Information",
ﻩﻩﻩJOptionPane、INFORMATION_MESSAGE);
ﻩﻩﻩ}
ﻩﻩﻩ}else {
ﻩJOptionPane、showMessageDialog(null,
ﻩﻩ"Thisreader(number) has alreadyexisted!
",”Warning",
ﻩﻩﻩJOptionPane。
INFORMATION_MESSAGE);
ﻩﻩ}
}
}
}
BookDetails、java
importjava。
awt。
BorderLayout;
import java、awt。
Container;
import java。
awt。
Dimension;
importjava、awt、GridLayout;
import java。
awt、event、*;
importjava。
util、ArrayList;
importjavax、swing、*;
importjavax。
swing、table、DefaultTableModel;
publicclassBookDetailsextends JFrameimplements ActionListener{
ﻩSQLOperation op=new SQLOperation();
Container c=getContentPane();
JPanelp1 =new JPanel();
JPanelp2=newJPanel();
JPanelp3=newJPanel();
ﻩJLabelbookNumber=newJLabel("BookNumber:
");
JLabel bookName=newJLabel("BookName:
”);
ﻩJLabelauthor =newJLabel("Author:
”);
JLabelpress =newJLabel("Press:
");
ﻩJLabelpressTime =newJLabel(”Presstime:
");
ﻩJLabel bookAbstract=new JLabel("Abstract:
”);
ﻩJLabel storage=newJLabel(”Storage:
");
ﻩJLabelremain =new JLabel(”Remain:
");
ﻩJLabelnumberField=new JLabel();
JLabelnameField =new JLabel();
ﻩJLabelauthorField=newJLabel();
JLabelpressField=new JLabel();
ﻩJLabel pressTimeField=newJLabel();
ﻩJLabelabstractField= newJLabel();
ﻩJLabelstorageField=newJLabel();
ﻩJLabelremainField = newJLabel();
ﻩJButton cancel=newJButton("Cancel”);
JLabel details =newJLabel("Borrowandreaturndetails");
Object[] s ={”Readernumber”,”Borrowtime","Deadline",”Overtime" };
Object[][]ob1=newObject[7][4];
JTabletable=new JTable(ob1, s);
ﻩJScrollPanescrollPane=newJScrollPane(table);
publicBookDetails(Stringnumber){
ﻩﻩBookInfobook=newBookInfo(number);
ﻩob1=op、borrowListForBook(number);
for (inti =0;i〈5;i++){
ﻩﻩﻩDefaultTableModelbooks=newDefaultTableModel(ob1,s);
for(int n=0; n 〈7;n++) {
ﻩfor(intm=0;m<4; m++){
ﻩﻩﻩob1[n][m]= this。
ob1[n][m];
ﻩﻩ}
ﻩﻩﻩtable、setModel(books);
ﻩﻩtable。
invalidate();
ﻩ}
ﻩ}
ﻩArrayList〈String>strArray=new ArrayListﻩﻩstrArray=op、outputBook(book);
ﻩnumberField、setText(number);
nameField。
setText(strArray。
get
(1));
authorField、setText(strArray、get
(2));
ﻩﻩpressField。
setText(strArray。
get(3));
ﻩﻩpressTimeField、setText(strArray。
get(4));
ﻩabstractField、setText(strArray。
get(5));
ﻩﻩstorageField。
setText(strArray、get(6));
remainField。
setText(strArray、get(7));
ﻩc、add(p1,BorderLayout、NORTH);
ﻩc、add(p2,BorderLayout。
CENTER);
c、add(p3,BorderLayout、SOUTH);
p1、setLayout(newGridLayout(9, 2,20,10));
ﻩﻩp1、add(bookNumber);
ﻩﻩp1。
add(numberField);
ﻩp1、add(bookName);
ﻩﻩp1、add(nameField);
p1。
add(author);
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(remainField);
ﻩﻩp1、add(details);
scrollPane、setBounds(0,0, 800,300);
ﻩp2。
add(scrollPane);
ﻩﻩp3、add(cancel);
table、setPreferredScrollableViewportSize(new Dimension(400,100));
ﻩﻩcancel、addActionListener(this