《数据库概论》课程设计实验报告书.docx
- 文档编号:28382282
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:28
- 大小:289.22KB
《数据库概论》课程设计实验报告书.docx
《《数据库概论》课程设计实验报告书.docx》由会员分享,可在线阅读,更多相关《《数据库概论》课程设计实验报告书.docx(28页珍藏版)》请在冰豆网上搜索。
《数据库概论》课程设计实验报告书
《数据库系统概论》课程设计
实验报告书
图书馆管理系统
姓名
专业
班级
学号
指导教师
2014年12月15日
分数
摘要
随着信息技术的发展,计算机已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。
而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。
软件产业已成为社会信息化进程中的一个战略性产业。
在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。
不断开发适应用户需求、市场需要的新型软件产品。
尤其是在校园里,各种软件的应用无处不在,为我们的学习和生活提供了方便。
学校的图书馆不仅给我们提供看书学习的地方,还给我们提供了一套功能齐全的图书馆系统,方便我们搜索书籍、借阅图书。
本次课程设计最终目标是实现一个图书馆管理系统,使其具有一般图书管理系统所具有的功能,可以实现管理员日志、管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书添加、图书查询、图书借阅与归还等功能。
因为Java是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,所以用Java编程为我们本次程序的编写提供了方便。
通过应用添加按钮、菜单、文本框、表格、面板等组件和容器,,经过设计者合理的布局,完成了窗体的设计,并通过SQLyog_Enerprise连接到MySQL数据库后,向数据库发送SQL语句实现程序与数据库中表间的消息通信,从而实现了相应的图书馆管理系统的功能。
关键词图书馆管理系统,Java程序设计语言,MySQL数据库
目录
1绪论1
1.1概述1
1.1.1问题的提出1
1.1.2本课题的意义1
1.2开发环境与工具介绍1
1.2.1ADO.NET简介1
1.2.2xxx研究状况1
2系统需求分析与设计2
2.1用户需求分析2
2.1.1用户需求2
2.1.2系统功能需求2
2.1.3系统性能需求2
2.1.4数据分析2
2.2功能模块图及分模块功能描述2
2.2.1系统的功能模块图2
2.2.2系统功能模块简介2
2.3数据库设计2
2.3.1系统E-R图2
2.3.2数据库逻辑结构设计2
3系统实施3
3.1建立数据库3
3.2数据库连接3
3.3主要模块实施3
3.3.1登录模块的开发3
3.3.2xxxxx3
3.4系统测试3
3.4.1软件测试的对象3
3.4.2软件测试的结果3
4系统说明4
4.1开发环境4
4.2系统安装、配置与发布应用程序的步骤4
总结5
参考文献6
附录:
部分源代码7
1绪论
1.1概述
1.1.1问题的提出
大学为我们提供了自由的学习环境,使我们有更多的时间到图书馆借阅书籍,让我们可以随时掌握各方面的知识,不断提高自我、充实自我、完善自我,但由于图书馆藏书成千上万,我们很难一本一本的去查找自己感兴趣的书籍,因此我们会经常用到学校为我们提供的图书管理系统,用时间长了便对此产生了浓厚的兴趣,正好本次课程设计为我提供了很好的机会,让我亲自设计并实现了图书馆管理系统的部分功能。
1.1.2本课题的意义
2系统需求分析与设计
2.1用户需求分析
2.1.1用户需求
图书管理系统是图书馆管理工作中不可缺少的部分,对于图书馆的管理者和使用者来说都非常重要,但长期以来,人们使用传统的手工方式或性能较低的图书馆管理系统管理图书馆的日常事务,操作流程比较繁琐,效率相当低。
本系统本着一读者借书,还书快捷,方便的原则。
有着一下特点:
具有良好的系统性能,有好的用户界面。
较高的处理效率,便于使用和维护。
采用成熟技术开发,是系统具有较高的技术水平和较长的生命周期。
系统尽可能简化图书馆管理员的重复工作,提高工作效率。
简化数据查询,统计难度。
2.1.2系统功能需求
现已有的图书馆管理系统,其功能已十分强大,为了便于管理员对图书管理系统进行妥善的管理和读者的查询,图书馆管理系统提供了管理日志、管理员添加、管理员切换、读者添加、新书添加、图书修改删除、图书查询、读者修改/删除、读者查询、读者借阅信息查询等一系列功能。
2.2功能模块图及分模块功能描述
2.2.1系统的功能模块图
图书馆管理系统功能总框图,如图2-1所示。
图书馆管理系统功能总框图
2.2.2系统功能模块简介
登陆界面
此模块主要是利用jTextField、jPasswordField、jLable、jButton控件添加文本和按钮等各个参数,通过事件MouseEvent可以实现进入各个模块如管理员查询、管理员添加、管理员切换、图书添加、图书查询、借阅书籍、归还书籍、读者添加、读者修改/删除、读者查询、管理日志及退出系统的功能。
系统管理模块功能介绍
1.管理员查询
此模块可以清楚的显示出各个管理员的信息,包括用户名、密码。
管理员可以通过此模块实现的功能清楚的了解图书馆其他管理员的信息。
2.添加管理员
此模块功能是增加新管理员的登陆帐户。
在图书馆管理系统中必须有每一个管理者的帐户让其可以正常进行新图书证的办理、借阅书籍和归还书籍等系统管理。
所以在管理员功能模块中增加了管理员添加这个功能。
3.管理员的修改\删除
此模块功能是修改管理员的密码信息和删除管理员。
在图书馆管理系统中管理员可随时更改自己的信息,包括密码。
同时可以删除其他管理员,使其无法登录。
4.管理员切换
此模块的主要功能是进行管理员之间的切换,即单击管理员菜单下的管理员切换,就会退出当前管理员界面,从而出现管理员切换窗口,而另一管理员就可以在管理员切换窗口中的用户名和密码两栏中通过输入自己的用户名和密码直接进入该系统。
图书管理模块功能介绍
1.添加图书功能介绍
此模块主要的实现功能是将新来的图书输入到图书馆管理系统的书库当中,其中主要按如下信息往书库中输入,这部分的操作主要是便于书库合理的管理,有利于读者能够对新书有
一个更详细的了解。
其中包括如下信息:
新书书名、新书书号、编写作者、新书出版社、新书价格、出版日期、分类及入库数量。
2.图书的修改删除功能介绍
在图书馆管理系统中有一些图书的信息是错误的,此时就需要对此图书进行相应的修改。
查询出来所要修改的图书,在书名、书号、作者、出版社、价格、出版日期、分类及数量上做相应的修改。
而有些图书破损或是其他原因是不需要继续留在库中,那么就可以做删除的操作。
3.查询图书功能介绍
在图书馆管理系统中书籍查询是最基本的功能,读者可以根据自己的需求来查询想要借阅的书籍。
本系统是用Java应用程序和Mysql数据库一起开发的其中利用Java来编程实现功能的代码和布置运行界面。
界面是由检索项、检索词和显示文本区三个部分组成的用户根据自己的需要在检索项中选择自己所要按什么字段进行查询,其中书籍查询功能的检索项中可以按书号查询、按书名查询、按作者名查询、按出版社查询、按类别查询等基础查询。
选择检索项后用户只要在检索词中添写自己所要查询的内容并确定键确认后用户要查询的内容就可以在显示文本区中显示出来。
用户可以根据显示的信息得知自己所要借阅书籍的情况。
图书借阅模块功能介绍
1.借出图书功能介绍
此模块主要实现读者可凭有效的图书证号,借阅图书馆内未借出的图书。
通过查询该图书的全部信息(包括书号、书名、作者、出版社、价格、出版日期、分类及数量)。
输入图书证号后,选择需要借阅的图书,即可借书。
借阅成功后,将该图书证号、书号、借阅日期、应还日期、是否归还等信息插入到数据库的表中进行记录。
2.归还书籍功能介绍
此模块主要实现读者凭所要归还图书的图书证号及书名归还图书。
输入所要归还的图书证号后,可显示了该图书证持有者的全部信息(包括图书证号、读者姓名、书名、借书日期、还书日期、是否还书),供读者确认信息。
还书成功后,从数据库中删除该书的借出记录,并修改数据库中的相应信息。
读者管理模块功能介绍
1.添加读者功能介绍
此模块主要的实现功能是添加新的读者信息,即当有新的读者要看查看本图书馆中的书藉,可以通过此功能实现,当数据库中存在其新信息,即成为本图书馆的新一位读者。
其中信息分别包括图书证号、读者姓名、读者性别、读者系别、读者班级。
2.读者修改删除功能介绍
此模块主要的实现功能对有信息更新的读者进行即时修改,以随时更新读者在数据库中的信息。
本模块通过查询确定读者,可对读者信息的图书证号、读者姓名、读者性别、读者系别、读者班级。
此处实现对该功能的修改。
此模块还可以删除一些不再使用本系统的读者资料,从而达到对数据库中的清理,即清除一些不必要资料,此处可按读者姓名查询出详细信息并删除,此处实现对该功能的删除。
3.查询读者功能介绍
此模块主要可对所要了解的读者信息。
即把读者的信息从数据库调出来,显示在该窗口中的文字区域。
查询方式分别有按图书证查询、按读者姓名查询、读者班级查询、按读者系别查询,并可通过办理入相应的关键字,更加缩小查询范围。
此处可实现查询功能。
2.3数据库设计
2.3.1系统E-R图
管理员权限设计如图所示:
用户权限设计如图所示:
2.3.2数据库逻辑结构设计
3系统实施
3.1建立数据库
⒈stuff表,即管理员表,记录了用户名和密码。
⒉book表,即图书表,记录了书号、书名、作者、出版社、价格、出版时间、类别、库存数量。
⒊borrow表,即借阅表,记录了图书证号、书号、读者姓名、图书名、借阅日期、应还日期,是否归还。
⒋reader表,即读者表,记录了图书证号、读者姓名、读者性别、读者系别、读者班级。
⒌noteadmin表,即管理日志表,记录了书号、书名、图书证号、读者姓名等。
⒍user表,即用户表,记录了用户名和密码。
⒈stuff表
表中记录了可以使管理员进入该系统的用户名及密码,如表所示。
字段名称
数据类型
长度
备注
标号
整型
10
用户名
文本
50
密码
文本
50
⒉user表
表中记录了可以使用户进入该系统的用户名及密码,如表
字段名称
数据类型
长度
备注
标号
整型
10
用户名
文本
50
密码
文本
50
⒊.book表
表中记录了库内所有图书的所有资料,如表所示。
字段名称
数据类型
长度
备注
标号
整型
10
书名
文本
50
书号
文本
50
作者
文本
50
出版社
文本
50
价格
文本
50
出版日期
DATE
类别
文本
50
库存数量
整型
11
⒋.borrow表
表内记录了此时图书的借阅情况,如表所示。
字段名称
数据类型
长度
备注
标号
整型
10
图书证号
文本
50
书号
文本
50
读者姓名
文本
50
书名
文本
50
借阅日期
DATE
应还日期
DATE
是否归还
文本
50
⒌reader表
表中记录库中所有读者的相关信息,如表所示。
字段名称
数据类型
长度
备注
标号
整型
10
图书证号
文本
50
读者姓名
文本
50
读者性别
文本
50
读者系别
文本
50
书名
文本
50
图书证号
文本
50
读者姓名
文本
50
读者性别
文本
50
读者系别
文本
50
读者班级
文本
50
操作日期
DATE
是否归还
文本
50
3.2数据库连接
3.3主要模块实施
3.3.1登录模块的开发
此模块是用户进入系统的第一步,管理员和普通用户都可以在登陆界面实现登陆,分别进入管理员主界面和用户主界面对系统进行操作。
其中管理员可实现的功能包括管理员添加、管理员切换、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、借阅书籍、归还书籍、管理日志借阅超时及退出的功能。
登录界面如图示:
登录界面
程序代码如下:
privatevoidSubmit(java.awt.event.MouseEventevt){
StringloginName="";
StringloginPassWord="";
StringUserName="";
StringUserPassWord="";
if(Admin.isSelected()){
loginName=jTextField1.getText();
loginPassWord=String.valueOf(jPasswordField1.getPassword());
if(loginName.equals("")||loginPassWord.equals(""))
{javax.swing.JOptionPane.showMessageDialog(this,"用户名和密码不能为空","错误",javax.swing.JOptionPane.ERROR_MESSAGE);}
elseif(loginName.split("'").length>1||loginPassWord.split("'").length>1)
{javax.swing.JOptionPane.showMessageDialog(this,"请不要试图入侵系统","错误",javax.swing.JOptionPane.ERROR_MESSAGE);}
else{Login_checklc=newLogin_check();
try{if(lc.check(loginName,loginPassWord)){
Syss=newSys();
s.show_sys();
Login.this.dispose();}
else{javax.swing.JOptionPane.showMessageDialog(this,"用户名或密码错误","错误",javax.swing.JOptionPane.ERROR_MESSAGE);}}catch(Exceptione){e.printStackTrace();}}}
if(User.isSelected()){
UserName=jTextField1.getText();
UserPassWord=String.valueOf(jPasswordField1.getPassword());
if(UserName.equals("")||UserPassWord.equals(""))
{javax.swing.JOptionPane.showMessageDialog(this,"用户名和密码不能为空","错误",javax.swing.JOptionPane.ERROR_MESSAGE);}
elseif(UserName.split("'").length>1||UserPassWord.split("'").length>1){
javax.swing.JOptionPane.showMessageDialog(this,"请不要试图入侵系统","错误",javax.swing.JOptionPane.ERROR_MESSAGE);}
else{Login_checklc=newLogin_check();
try{if(lc.check_user(UserName,UserPassWord)){
Users=newUser();
s.User_show();
}else{javax.swing.JOptionPane.showMessageDialog(this,"用户名或密码错误","错误",javax.swing.JOptionPane.ERROR_MESSAGE);}}catch(Exceptione){e.printStackTrace();}}}
}
privatevoidclear(java.awt.event.MouseEventevt){
jTextField1.setText("");
jPasswordField1.setText("");}
privatevoidadmincc(java.awt.event.MouseEventevt){
//选择管理员:
if(Admin.isSelected()){
User.setSelected(false);}}
privatevoidChUser(java.awt.event.MouseEventevt){
//选择用户
if(User.isSelected()){
Admin.setSelected(false);
}
}
publicstaticvoidmain(Stringargs[]){
java.awt.EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
newLogin().setVisible(true);
}
});
}
publicvoidChange(){
java.awt.EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
newLogin().setVisible(true)}})}
查询管理员
此模块可以实现管理员信息的查询,包括用户名和密码。
即可以通过用户名进行特定的查询也可以直接点击查询按钮查询全部管理员的信息。
查询管理员功能,如图所示。
查询管理员界面
程序主要代码如下:
publicclassSelectAdmin{
publicSelectAdmin(){}
privateResultSetrs;
publicResultSetreturnResult(Stringname)throwsException{
GetStatementgs=newGetStatement();
Stringsql;
sql="select*fromstuff";
if(!
name.equals("")){
sql=sql+"wherelogin_namelike'%"+name+"%'";
//模糊查询使用like
}
rs=gs.return_statement().executeQuery(sql);
//需要后续处理-------------------------------
returnrs;
}
}
查询图书
在此模块中管理员和用户可以进行和精确查找。
粗略查找可以查询出所有图书的信息;而精确查找可依据相应的条件进行查询。
查询图书功能如图所示。
查询图书界面
程序代码如下:
publicclassSearchBook{
publicSearchBook(){}
privateResultSetrs;
publicResultSetreturn_book(Stringbook_author,Stringbook_isbn,Stringbook_name,Stringbook_publisher,Stringbook_type)throwsClassNotFoundException{
GetStatementgs=newGetStatement();
Stringsql;
sql="select*frombook";
Stringw="";
if(!
book_author.equals("")){
w=w+"book_author='"+book_author+"'and";
}
if(!
book_isbn.equals("")){
w=w+"book_isbn='"+book_isbn+"'and";
}
if(!
book_name.equals("")){
w=w+"book_name='"+book_name+"'and";
}
if(!
book_publisher.equals("")){
w=w+"book_publisher='"+book_publisher+"'and";
}
if(!
book_type.equals("")){
w=w+"book_type='"+book_type+"'and";
}
if(!
w.equals("")){
sql=sql+"where"+w;
sql=sql.substring(0,sql.length()-4);
}
try{
rs=gs.return_statement().executeQuery(sql);
}catch(Exceptione){
e.printStackTrace();
}
returnrs;
}}
添加图书
通过此模块像数据库中添加图书信息,图书各项信息均不能为空,按添加按钮,将文本框中输入的图书信息插入到数据库表中,并提示添加成功。
用户不具有此权限。
添加图书功能如图所示。
添加图书界面
程序代码如下:
publicclassAddBooksextendsjavax.swing.JPanel
{
publicAddBooks(){}
privateGetStatementgs;
privateStringbook_name1;
publicvoidaddBook
(Stringbook_amount,Stringbook_author,Stringbook_isbn,Stringbook_name,Stringbook_price,Stringbook_publish_date,Stringbook_publisher,Stringbook_type)
throwsClassNotFoundException,SQLException
{
gs=newGetStatement();
ResultSetrs;
Stringsql="";
sql="selectbook_namefrombookwherebook_name='"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库概论 数据库 概论 课程设计 实验 报告书