图书信息管理系统课设说明书.docx

上传人:b****5 文档编号:5983917 上传时间:2023-01-02 格式:DOCX 页数:21 大小:185.86KB
下载 相关 举报
图书信息管理系统课设说明书.docx_第1页
第1页 / 共21页
图书信息管理系统课设说明书.docx_第2页
第2页 / 共21页
图书信息管理系统课设说明书.docx_第3页
第3页 / 共21页
图书信息管理系统课设说明书.docx_第4页
第4页 / 共21页
图书信息管理系统课设说明书.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

图书信息管理系统课设说明书.docx

《图书信息管理系统课设说明书.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统课设说明书.docx(21页珍藏版)》请在冰豆网上搜索。

图书信息管理系统课设说明书.docx

图书信息管理系统课设说明书

*******************

实践教学

*******************

 

兰州理工大学

计算机与通信学院

2012年秋春季学期

Java课程设计

 

题目:

图书信息管理系统

专业班级:

软件工程基地一班

姓名:

学号:

10240506

指导教师:

朱红蕾

成绩:

目录

摘要1

序言2

第一章分析与设计3

1.1系统功能分析3

1.2数据库设计4

第二章详细设计5

2.1登陆界面功能实现5

2.2主界面功能实现6

2.3图书入库功能实现7

2.4图书浏览功能实现9

2.5图书删除功能实现10

2.6图书查询功能实现11

2.7密码修改功能实现13

第三章系统测试14

3.1系统登入与进入主界面:

14

3.2图书入库与图书概览:

15

3.3图书删除与密码修改:

16

第四章软件使用说明书17

设计总结18

参考文献19

致谢20

摘要

随着信息技术的发展,计算机已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。

而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。

软件产业已成为社会信息化进程中的一个战略性产业。

在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。

不断开发适应用户需求、市场需要的新型软件产品。

尤其是在校园里,各种软件的应用无处不在,为我们的学习和生活提供了方便。

学校的图书馆不仅给我们提供看书学习的地方,还给我们提供了一套功能齐全的图书馆系统,方便我们搜索书籍、借阅图书。

我们本次的Java课程设计的最终目标是实现一个小型图书馆管理系统,使其具有一般图书管理系统所具有的功能,可以实现管理员登陆、新书入库、书籍查询、书籍删除、图书浏览、修改密码等功能。

因为Java是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,所以用Java编程为我们本次程序的编写提供了方便。

在设计中我们主要进行了数据库及类的设计,把整系统分成了7个类和2个表。

通过应用awt、swing、sql、util等包,合理的添加了按钮、菜单、文本框、文本区、表格等组件类,还包含窗口、面板等容器类,经过设计者合理的布局,完成了窗体的设计,并通过连接到MySql数据库后,向数据库发送SQL语句实现程序与数据库中表间的消息通信,从而实现了相应的图书馆管理系统的功能。

关键词:

图书馆管理系统,Java程序设计语言,MySql数据库

 

序言

随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。

随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。

书籍做为人类的精神食粮,在现代社会中越来越受到重视,大量的书籍出现在市场上,人们有了各种各样不同的选择。

与此同时,为了管理大量的图书,图书管理系统也大量的出现,随着图书的大量增加,其管理难度也越来越大,如何优化管理也就成为了一个大众化的问题。

大学为我们提供了自由的学习环境,使我们有更多的时间到图书馆借阅书籍,让我们可以随时掌握各方面的知识,不断提高自我、充实自我,但由于图书馆藏书成千上万,我们很难一本一本的去查找自己感兴趣的书籍,因此我们会经常用到学校为我们提供的图书管理系统,用时间长了便对此产生了兴趣,正好本次课程设计为我们提供了良好的机会,让我们亲自设计并实现了图书管理系统的部分功能。

设计一个图书管理系统必不可少的必须对全管书籍进行分类汇总。

而这就是我们所说的数据库设计的第一阶段:

需求分析。

在这一阶段除了对具体情况诸如实行对图书入库,图书查询等功能的实现,还需要对用户的需求进行调查和分析,否则就失去了设计这个系统的意义了。

对于界面的设计我们应该追求的是:

美观、易读性强、清晰度高;原则是:

不能因为刻意追求美观而以整个界面的清晰度的牺牲作为代价,不能为了清晰度而抛弃对易读性的追求。

再设计的过程中我们应该根据实际的情况进行设计,做到具体问题具体分析,不刻意追求原则。

在对应的界面与MySql数据库建立连接,并实现对应的SQL语句进行实现将产生的结果显示出来。

并运用捕捉异常的方法,将异常信息显示出来。

实现SQL语句的时候借助前台开发工具中关于数据处理的控件来完成。

对于图书管理员而言要实现的功能相对而言比较多,例如实现新书入库、MySql数据库表的创建、系统的维护等等,这些都需要设计和实现的。

第一章分析与设计

1.1系统功能分析

我们设计的图书管理系统主要用于对图书馆日常工作的管理,主要任务是用计算机图书各种信息进行日常管理,如查询、修改、增加、删除图书的管理等。

本系统实现了图书馆的信息化管理,完成了图书馆管理系统的基本功能。

该系统主要包括管理员子系统、书籍管理子系统退出子系统两个部分,各部分主要功能如下:

管理员子系统:

用于管理员的登陆和密码修改。

书籍管理子系统:

用于书籍信息的管理,如新书入库、图书查询、图书删除、图书浏览。

根据上述系统功能分析,按照结构化程序设计的要求,得到系统的功能结构图,如图所示。

说明:

首先是输入判断,相当于在登陆模块,要求用户输入用户名和密码;然后判断,如果判断失败退出系统,否则进入图书管理系统的主界面。

进入主界面后,用户要选择所需执行的功能,即通过鼠标点击相应项,来完成所需操作。

1.2数据库设计

在图书管理系统中,共设计2张表。

本系统使用MySql。

数据库的名称为Book.

1.表bookdb

字段名称

数据类型

图书名

varchar

图书号

varchar(主键)

单价

varchar

作者

varchar

出版社

varchar

入库时间

varchar

2.表user

字段名称

数据类型

用户名

varchar(主键)

密码

varchar

第二章详细设计

2.1登陆界面功能实现

管理员通过用户和密码即可进入主功能界面。

主要程序代码如下:

publicvoidconfirm()//验证用户和密码是否存在

{

try{

Class.forName("com.mysql.jdbc.Driver");

}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!

");}

try{

Stringurl="jdbc:

mysql:

//localhost:

3306/users";//

Connectioncon=DriverManager.getConnection(url,"root","feng123");

Statementsql=con.createStatement();

Stringuname=t1.getText().trim();

Stringpword=t2.getText().trim();

StringqueryMima="select*fromuserwhereusername='"+uname+"'andpassword='"+pword+"'";

ResultSetrs=sql.executeQuery(queryMima);

if(rs.next())

{

newBook("uname");

f.hide();

con.close();

}else{

JOptionPane.showMessageDialog(null,"该用户不存在","提示!

",

JOptionPane.YES_NO_OPTION);

}

}catch(SQLExceptiong)

{

System.out.println("ECode"+g.getErrorCode());

System.out.println("EM"+g.getMessage());

}

}

2.2主界面功能实现

图书管理系统主界面用于管理员对书籍的管理,主要功能包括如下几部分:

图书入库、图书查询、图书删除、图书概览和管理员修改密码。

主要程序代码如下:

publicclassBookextendsJFrameimplementsActionListener

{

JButtonQueryBook=newJButton("图书查询");

JButtonBookIn=newJButton("图书入库");

JButtonRemoveBook=newJButton("图书删除");

JButtonBookBrower=newJButton("图书概览");

JButtonUpdateMima=newJButton("修改密码");

JMenuBarmb=newJMenuBar();//菜单栏

JPaneljp=newJPanel();//用来填放子模块

Containercp=getContentPane();

publicStringusername;

publicBook(Stringusername)

{

this.username=username;

mb.add(QueryBook);

mb.add(BookIn);

mb.add(RemoveBook);

mb.add(BookBrower);

mb.add(UpdateMima);

cp.add(mb,"North");

//注册临听器

QueryBook.addActionListener(this);

BookIn.addActionListener(this);

RemoveBook.addActionListener(this);

BookBrower.addActionListener(this);

UpdateMima.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente)

{Stringcmd=e.getActionCommand();

if(

cmd.equals("图书查询")){

newQueryBook();

}

if(cmd.equals("图书入库")){

newBookIn();

}

if(cmd.equals("图书删除")){

newRemoveBook();

}

if(cmd.equals("图书概览")){

newBookBrower().showRecord();

}

if(cmd.equals("修改密码")){

newUpdateMima(username);

}

}

publicstaticvoidmain(String[]args)

{

newBook("username");

//Bookbook=newBook("uu");

}

}

2.3图书入库功能实现

图书入库是图书馆管理系统中不可缺少的部分,用于入库图书,通过界面中的文本框接收书籍信息,然后将此信息写入MySql中。

在添加过程中判断图书号的位数,以确保数据的有效性,还要在添加之前判断要添加信息的图书号在库中是否已经存在,如果存在则要提示操作者图书证号已存在,要求重新输入。

若不存在将信息写入表中,并提示添加成功。

主要程序代码如下:

publicvoidinsertRecord()

{

if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")||

tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals(""))

{

JOptionPane.showMessageDialog(f3,"请填写图书资料");

return;

}

try{

Class.forName("com.mysql.jdbc.Driver");

}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!

");}

try{

Stringurl="jdbc:

mysql:

//localhost:

3306/book";//

Connectioncon=DriverManager.getConnection(url,"root","feng123");

Statementsql;

Strings="insertintobookdbvalues('"+tf1.getText()+"','"+tf2.getText()+"','"+

tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"');";

//查询输入的图书号是否在数据库中存在

Stringquery="select*frombookdbwherebooknumber='"+tf2.getText()+"'";

sql=con.createStatement();

ResultSetrs=sql.executeQuery(query);//返回查询结果集

booleanmoreRecords=rs.next();//判断结果集是否有数据

if(moreRecords)

{

JOptionPane.showMessageDialog(f3,"图书号已经被使用,请重新输入");

con.close();

tf2.setText("");

return;

}

intinsert=sql.executeUpdate(s);

if(insert==1)

{

JOptionPane.showMessageDialog(null,"图书信息录入成功!

");

tf1.setText("");

tf2.setText("");

tf3.setText("");

tf4.setText("");

tf5.setText("");

tf6.setText("");

}

}catch(SQLExceptiong)

{

System.out.println("ECode"+g.getErrorCode());

System.out.println("EM"+g.getMessage());

}

}

2.4图书浏览功能实现

通过图书浏览界面可以查看到现有的书籍和总数。

主要程序代码如下:

publicvoidshowRecord()

{

while(i>=0)

{

ar[i][0]="";

ar[i][1]="";

ar[i][2]="";

ar[i][3]="";

ar[i][4]="";

ar[i][5]="";

i--;

}

i=0;

 

try{

Class.forName("com.mysql.jdbc.Driver");

}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!

");}

try{

Stringurl="jdbc:

mysql:

//localhost:

3306/book";//直接使用当前类目录下的数据库文件

Connectioncon=DriverManager.getConnection(url,"root","feng123");

Strings="select*frombookdb";

Statementsql=con.createStatement();

ResultSetrs=sql.executeQuery(s);

while(rs.next())

{

Stringbname=rs.getString

(1);

Stringbno=rs.getString

(2);

Stringprice=rs.getString(3);

Stringwriter=rs.getString(4);

Stringpublish=rs.getString(5);

Stringindate=rs.getString(6);

ar[i][0]=bname;

ar[i][1]=bno;

ar[i][2]=price;

ar[i][3]=writer;

ar[i][4]=publish;

ar[i][5]=indate;

i++;

}

count=""+i+"";

L.setText("书库现在共有图书"+count+"本");

f.repaint();

con.close();

}catch(SQLExceptiong)

{

System.out.println("ECode"+g.getErrorCode());

System.out.println("EM"+g.getMessage());

}

}

2.5图书删除功能实现

图书删除用于删除书籍信息,管理员先以图书号查询,然后到Access数据库的表中查找相应记录,若存在则将此记录信息读出来当用户触发文本框的监视器时时在界面的文本区域中显示此记录具体的读者信息,用户单击删除按钮触发删除按钮的监视器时将此记录从表中删除。

若表中不存在相应的信息则提示用户查无此书。

主要程序代码如下:

publicvoidshowRecord(Stringql)

{

try{

Class.forName("com.mysql.jdbc.Driver");

}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!

");}

try{

Stringurl="jdbc:

mysql:

//localhost:

3306/book";//

Connectioncon=DriverManager.getConnection(url,"root","feng123");

Statementsql;

Strings="select*frombookdbwherebookname='"+ql+"'";

sql=con.createStatement();

ResultSetrs=sql.executeQuery(s);

publicvoiddeleteRecord(intindex)

{

try{

Class.forName("com.mysql.jdbc.Driver");

}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!

");}

try{

Stringurl="jdbc:

mysql:

//localhost:

3306/book";//直接使用当前类目录下的数据库文件

Connectioncon=DriverManager.getConnection(url,"root","feng123");

Statementsql;

Stringql=(String)(ar[index][1]);

Strings="deletefrombookdbwherebookname='"+ql+"'";

sql=con.createStatement();

intdel=sql.executeUpdate(s);

if(del==1)

{JOptionPane.showMessageDialog(null,"删除成功!

",

"信息",JOptionPane.YES_NO_OPTION);

}

con.close();

f.repaint();

}catch(SQLExceptiong)

{

System.out.println("ECode"+g.getErrorCode());

System.out.println("EM"+g.getMessage());

}

}

2.6图书查询功能实现

图书查询用于查询书籍信息,管理员可以通过输入图书号,然后到Access数据库的表中查找相应记录,若存在则将此记录信息读出来在界面的文本区域中显示此记录具体的图书信息,若表中不存在相应的信息则不显示图书信息。

主要程序代码如下:

publicvoidshowRecord()

{

try{

Class.forName("com.mysql.jdbc.Driver");

}catch(ClassNotFoundExceptione){System.out.println("加载驱动程序失败!

");}

try{

Stringurl="jdbc:

mysql:

//localhost:

3306/book";//

Connectioncon=DriverManager.getConnection(url,"root","feng123");

Statementsql;

Stringql=tf2.getText().trim();

Strings="select*frombookdbwherebookname='"+ql+"'";

sql=con.createStatement();

ResultSetrs=sql.executeQuery(s);

if(rs.next())

{

Stringbno=rs.getString

(1);

Stringbname=rs.getString

(2);

Stringprice=rs.getString(3);

Stringwriter=rs.getString(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1