图书管理系统数据库课程设计实验报告.docx

上传人:李司机 文档编号:6662622 上传时间:2023-12-10 格式:DOCX 页数:55 大小:136.23KB
返回 下载 相关 举报
图书管理系统数据库课程设计实验报告.docx_第1页
第1页 / 共55页
图书管理系统数据库课程设计实验报告.docx_第2页
第2页 / 共55页
图书管理系统数据库课程设计实验报告.docx_第3页
第3页 / 共55页
图书管理系统数据库课程设计实验报告.docx_第4页
第4页 / 共55页
图书管理系统数据库课程设计实验报告.docx_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《图书管理系统数据库课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统数据库课程设计实验报告.docx(55页珍藏版)》请在三一办公上搜索。

1、数据库课程设计实验报告摘要随着人类社会的不断进步,科学技术有了长足的开展,尤其是在当今中国知识经济时代,知识大爆炸带来了全球图书企业的飞速开展,这些书籍为科技的开展做出了巨大的奉献。人类短短的几十年创造了大量的书籍资源,但是图书数量之多,也使得其管理起来非常的繁琐,随着信息时代的到来,图书的信息化管理使得问题得以解决,图书馆管理系统的出现就显得水到渠成了。本系统主要上可以分为两大模块:图书馆管理员模块和读者登录模块,并在这两大模块下分成多个子模块。图书的使用对象是借阅者,例如学生,教师,管理员;而管理者同时也是图书馆的管理者。因此根据这些信息,本系统的主要功能就是:实现图书馆图书信息的管理和维

2、护,如用户信息管理,管理员信息管理,图书浏览,书架管理信息,图书馆规那么维护,新书入库,整理图书,修改图书信息和进行查询等;以及系统的图书信息查询,图书的借出和归还等功能图书信息管理系统能够为用户提供充足的信息和快捷的查询手段.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、本钱低等。目录:第一章:需求分析1,学生用户端2,教师用户端第二章:总体设计1,系统分析2,可行性分析3,系统目标4,系统功能设计5,构建开发环境第三章:数据库设计1,数据库分析2,工程E-R图3,数据库表的设计第四章:程序模块设计1,用户登录模块2,数据库操纵框架3,登录界面实现4,管理端界面的设计5,查

3、询图书界面模块6,借阅预约图书功能模块7,归还挂失图书功能8,图书超期处理模块9,学生用户管理模块10管理员管理模块11,超级管理员功能开发第五章:主要模块界面第六章:程序源代码第七章:参考文献1,需求分析当决定要开发一个信息系统时,首先要对信息系统的需求进行分析,需求分析要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其他系统元素的接口细节,定义软件的其他有效性需求。抽象出当前系统的逻辑模型。在理解当前系统怎么做的根底上,抽取其做什么的本质,从而从当前系统的物理模型抽象出当前系统的逻辑模型。在物理模型中有许多物理因素,随着分析工作的深入,有些非本质的物理因素就成为不必要的负担

4、,因而需要对物理模型进行分析,区分出本质的物理因素就成为不必要的负担,因而需要对物理模型进行分析,区分出本质的和非本质的困素,去掉那些非本质的困素即可获得反映系统本质的逻辑模型。管理员登录过程:当管理员在登录页面输入正确的用户名和密码后,通过客户端和效劳器的双重校验,并且检测数据库中的对应的用户名和密码是否正确,如果是正确的,那么表示管理员登录成功并进入管理员操作页面学生用户端:查询图书,学生用户可以进行简单的查询和高级查询,预约图书,当要借的的书不在馆时,可以提前预约。挂失图书,图书丧失要挂失,可以在学生用户端实现。管理员端:学生用户管理,实现学生用户信息的修改,删减,添加,查询。图书管理,

5、包括对图书的增加,删减,查询等。管理员管理:操作者包括超级管理员和普通管理员,超级管理员可以对普通管理员进行删减,查询等操作,而普通管理员只有修改自己密码的权限。借阅管理:主要是学生借阅管理,归还图书和缴纳罚款的管理。2,总体设计系统不但要满足客户提出的要求,同时也要考虑其性能。因此,在工程开发之前,首先要进行需求分析和可行性研究,这就是进行工程开发的根底。利用MVC设计模式,模块间实现高内聚,低耦合。界面设计美观大方,操作简单。功能完善,结构清晰。能够快速的进行图书馆信息,图书馆参数,书架,管理员等信息等系统的设置。能够快速、准确的进行读者类型管理的相关功能,如读者类型增加、修改、删除。能够

6、快速、准确的进行读者档案管理的相关功能,如读者档案的详细信息的查看,读者档案的增加、修改、查询。能够快速、准确的进行图书类型管理的相关功能,如图书类型的增加、修改、删除。能够快速、准确的进行图书档案管理的相关功能,如图书档案的详细信息的查看,图书档案的增加、修改、删除。能够快速、准确的进行图书借阅的相关功能,如图书借阅,图书借阅查询,图书归还,图书续借等。能够快速准确的进行系统的相关功能查询,如图书借阅查询、图书到期查询、图书档案查询等。能够快速、准确的进行管理员的相关功能,如管理员的增加、修改管理员密码、删除管理员。能够快速、准确的进行管理员或者读者的登录。能够快速、准确的让读者进行读者功能

7、模块的浏览。3,可行性研究可行性分析是对工程的可行程度进行分析,以便管理层对资金以及技术的投入进行决策,包括技术可行性,经济可行性,营运可行性。对于本工程而言,图书是人类获取知识最重要的途径,随着读者的日益增加,对图书的管理要求也增大很多,从图书馆的需求以及现有的技术等方面研究该图书管理系统的可行性。当前该图书馆的管理比拟粗放,还有大局部需要手工操作,对信息的维护不仅费用高而且工作量大,而且信息的平安性很难得到保障,学校支出了适量的资金进行本系统的开发。使用本系统后大局部工作将实现自动化,图书馆只需花费很少的人力和物力进行系统的维护即可.根据上述分析,公司为此工程结构清晰,功能合理,而且使用J

8、AVASE技术能够进行开发,并实现客户的需求的全部功能,由于这是一个中小型系统,客户要求的开发时间完全充裕,利润与开发本钱也比拟高,这可在一定程度上提高了公司的效益,因此决定开发此工程。系统功能结构本系统包括学生端和管理员端,有借阅图书,预约图书,查询图书,挂失图书,超期交纳罚款等功能模块,结构如下:3,数据库设计数据库作为系统的根底,首先要保证其设计的合理性,在使用应用系统的时候,拥有设计合理的数据库往往可以起到事半功倍的效果,在系统的维护,功能拓展时,这一优点尤其得到很好的表达。系统包含的实体主要有:图书、学生、管理员等,下面将分别介绍各实体及实体间的E-R图。通过其E-R图读者可以更好地

9、理解各实体的属性关系。下面就以学生实体为例,来进行介绍,学生E-R图如下图管理员管理员E-R图数据库表的设计主要有学生信息表和管理员信息表还有图书信息表为例字段名称数据类型字段大小是否主键是否为空说明STUNOIntN/A是否学号StuNameVarchar50否是姓名StuAgeIntN/A否是年龄StuSexVarchar50否是性别ClassVarchar50否是班级DepartmentVarchar50否是院系TelChar11否是PermittedVarchar50怨是借阅许可PasswordVarchar20否是密码学生用户信息表字段名称数据类型字段大小是否主键是否为空说明mgNo

10、IntN/A是否管理员IDPermittedVarchar50否否管理员权限PasswordVarchar50否否管理员密码管理员信息表字段名称数据类型字段大小是否主键是否为空说明BookNo是否图书IDBookName否是图书名称Auther杳是图书作者Publishment否是出版社ButTime否是购进日期Borrowed否是是否借阅Ordered否是是否预约图书根NK信息表字段咎称数据类型字段大小是否主键是否为空说明BookNointN/A是Vr心STUNOvarchar50否空学号BorrorTimevarchar50否是借阅时间ReturnTimevarchar50否是归还时间Bo

11、rrowedvarchar50否是是否借阅Orderedvarchar50怨是是否预约借阅图T9信息字段名称数据类型字段大小是否主键是否为空说明StuNOIntN/a是否学号BookNOIntN/A否是书号BookNameVarchar50否是书名DeIayTimevarchar50否是超期天数超期图书信息表字段名称数据类型字段大小是否主键是否为空说明BookNOIntN/A是否书号StuNamevarchar50否是学生姓名Classvarchar50否是班级BookNamevarchar50否是书名StuNOIntN/A否是学生IDAuthervarchar50否是作者预约图书表如上字段名

12、称数据类型字段大小是否主键是否为空说明LBNOIntN/A是否挂失书号BookNOIntN/A否是书号BookNameVarchar50I1是StuNOintM/A否是学生ID第四章:程序模块设计1,用户登录模块设计用户登录界面的主要功能是验证登录者的身份和权限,只有学生用户或管理员才能登录与之对应的管理系统。在登录界面,通过对各项登录条件的验证,就可以确认用户的使用权限。下面将介绍登陆模块的具体开发。登录界面开发国登录用户IPlocalhost端口号用户名学生登录管理员登录界面构造器的实现管理员登录模块需要对管理员登录是输入的用户名和密码进行检验,当管理员输入用户名和密码后,系统需要对输入的

13、参数与数据库中的所存储的参数进行比照,当用户名和密码相对应且都正确时能能够成功登录到管理员的操作首页1.oginJsp是管理员的登录界面,主要功能是将管理员输入的用户名和密码提交到manager.action进行处理而且能够进行简单的客户端校验。Manageraction是对用户提交的用户名和密码进行效劳器端的校验。当用户提交了数据后,manager.action将调用managerdao中的CheCk()检测用户提交的数据是否匹配数据库中的数据,各代码如下所1.oginJsp代码如下:packagewyf.hl;importjavax.swing.*;importjava.awt.*;imp

14、ortjava.awt.event.*;importjavax.swing.table.*;importjavax.swing.event.*;importjava.sql.*;importjava.util.*;importjava.util.Date;publicclassLoginextendsJFrameimplementsActionListenerfprivateJPaneIjp=newJPanel();创立JPaneI对象privateJLabeljlArray=创立标签组newJLabe1(”用户IP),newJLabel(”端口号),newJLabe1(用户名),newJLa

15、bel(”密码),newJLabel(n);privateJButtonjbArray=/创立按钮数组newJBUttcIn(学生登录),newJBUtton(清空),newJBUtton(管理员登录);privateJTextFieldjtxtArray=创立文本框newJTeXtFieId(IoCalhoSt),newJTextFld(,3306),newJTextField(r10001;privateJPasswordFieIdjpassword=newJPasswordField(;创立密码框Stringsql;DataBasedb;publicLogin(jp.setLayout(

16、null);设置JPaneI的布局管理器for(inti=0;i4;i+)对标签与按钮控件循环处理jlArrayi.setBounds(30,20+i*50,80,25);/设置标签与按钮的大小和位置jp.add(jlArraYi);将标签和按钮添加进JPaneI容器中for(inti=0;i3;i+)设置按钮的大小位置并为其添加事件监听器jbArrayi.setBounds(10+i*120,230,100,25);jp.add(jbArrayi);jbArrayi.addActioListener(this);for(inti=0;i/sql=newString(sql.getBytes(

17、)jISO-8859-1);26rs=stat.executeQuery(sql);27.28,catch(Exceptionie)ie.printStackTrace();29,30,publicintupdateDb(Stringsql)声明UPdate方法31,try32,sql=newString(sql);转码33,Count=Stat.eecuteUpdate(sql);34,35,catch(Exceptionie)ie.printStackTrace();36,returncount;37,38,publicvoiddbClose()声明CloSe方法39,trycon.clo

18、se()j40,catch(Exceptione)e.printStackTrace();41,42,这段代码主要实现了加载MYSQL的JDBC驱动。并且创立了数据库连接和STATEMENT对象3,管理端界面的实现模块管理端界面的实现,窗体左边是一个树状列表控件,右边是一个卡片布局的面板,实现代码如下:packagewyf.hxl;importjava.awt.*;importjava.awt.event.*;importjavax.swing.event.*;importjavax.swing.*;importjavax.swing.tree.*;importjava.io.*;public

19、classRootextendsJFrame创立节点数组DefauItMutabIeTreeNodendmtn=newDefaultMutableTreeNode(newNOdeValUe(图书馆管理系统),newDefauItMutabIeTreeNodefnewNodeValUe(学生用户管理),newDefaultMutableTreeNode(newNOdeVallle(“图书管理),newDefaultMutableTreeNode(newNOdeVallle(查询图书),newDefauItMutabIeTreeNodefnewNOdeValUe(借阅预约图书),newDefauI

20、tMutabIeTreeNodefnewNodeValUe(归还挂失图书),newDefaultMutableTreeNode(newNOdeValUe(交纳罚款),newDefauItMutableTreeNode(newNOdeValUe(管理员管理”),newDefaultMutableTreeNode(newNOdeValUe(退出);DefauItTreeModeIdtm=newDefaUltTreeModel(dmtnO);创立树模型,指定根节点为学生管理系统JTreejt=newJTree(dtm);创立包含dtm树模型的JTree对象JScroIIPanejsp=newJSCr

21、olIPane(jt);为JTree创立滚动窗体privateJSpIitPanejsp卜=newJSplitPane(JSplitPane.HORIZONTAL-SPLIT,true);创立分割窗体对象privateJPaneIjp=newJPanel();创立JPanel对象Imageimage=newlmagelcon(,tsgl.jpg,).getlmage();Imageiconii=newlmagelcon(image);privateJLabeIjlRoot=newJLabel(ii);privateManagermg;登陆管理员名StringmgNo;管理员IDCardLayo

22、utcl=newCardLayOUt();获取卡片布局管理器引用publicRoot(StringmgNo)this.mgNo=mgNo;获得管理员IDmg=newManager(mgNo);创立管理员管理面板this.setManager();设置管理员权限this.initlp();初始化卡片布局面板this.addTreeListener();为树节点注册事件监听器for(inti=l;i9;i+)向根节点添加子节点dtmJnsertNodelto(dmtnil,dmtn0J-l);jt.setEditable(fals叱设置该树中节点是可编辑的this.add(jsplr);将包含树的

23、滚动窗口添加进窗体jsplr.setLeftComponent(jt);将包含树的滚动窗口添加进左边的子窗口jpsetBounds(200,50,600,500);为jp设置大小位置并添加进右边的子窗口jsplr.setRightComponent(jp);jsplr.setDividerLocation(200);设置分隔条的初始位置jsplr.SetDividerSize;设置分隔条的宽度jlRoot.setFont(newFont(Courier,Font.PLAIN,30);jlRoot.setHorizontalAlignment(JLabel.CENTER);jlRoot.setV

24、erticalAlignment(JLabel.CENTER);设置窗体的关闭动作,标题,大小,位置及可见性this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Imageimage=newImagelCon(ico.gifn).getlmage();this.setlconlmage(image);this.setTitle(,图书管理系统“);设置窗体首次出现的大小和位置-自动居中DimensionScreenSize=Tbolkit.getDefaultToolkit().getScreenSize();intcenter=screenS

25、ize.width2;intCenterY=ScreenSize.height/2;itw=500;本窗体宽度i11th=400;本窗体高度this.5etBounds(centerX-w2center-h/2-100,w,h);设置窗体出现在屏幕中央this.SetExtendedStateUFrame.MAXIMIZED-BOTH);窗体全屏this.setVisible(true);设置窗体订见jt.5etShowsRootHandles(true);设置显示根节点的控制图标publicvoidsetManager()Stringsql=selectpermittedfrommanage

26、rwheremgNo=,+mgNo+;DataBasedb=newDataBaSe();/创立数据库类对象db.selectDb(sql);执行查询trydb.rs.next();/结果集游标下移StringStr=db.rs.getString.trim();得到管理员权限ifstr.equals(,O)mg.setFlag(false;设置管理员权限catch(Exceptione)e.printStackTrace();)publicvoidinitJp()jp.setLay。Ut(C1);设置布局管理器为卡片布局jp.add(jlRoot,root,添加根结点显示信息jp.add(ne

27、wStUdent(),stu);添加学生管理模块界面jp.add(newBookManage(),bm);添加图书管理模块界面jp.add(newSearChBoOkOJab);/添加查找图书管理界面jp.add(newBolTOWBOok()Jbb);添加借阅预约图书模块界面jp.add(newRetUrnBOokoJrb);添加归还挂失图书界面jp.add(this.mg,Manager);添加管理员管理模块界面jp.add(newEXCeedTime(),et);添加罚款处理界面publicvoidaddTreeListener)jt.addTreeSelectonListener(ne

28、wTreeSeIectionListenerOpublicvoidValUeChanged(TreeSeIeCtionEVente)DefauItMutabIeTreeNodeCdmtn=得到选中的节点对象(DefaultMutableTreeNode)e.getPath().getLastPathComponentO;NocIeVaIueCnV=(NodeValUe)Cdmtn.getUSerobjeCt();/得到自定义节点对象if(cnv.value.equals(图书馆管理系统)显示根结点信息cl.show(jproot);if(cnv.value.equals(学生用户管理)显示学生

29、用户管理界面cl.show(jp,stur,);elseif(cnv.value.equals(图书管理)显示图书管理界面cl.show(jp,bm);ifcnv.value.equals(查询图书)显示查询图书界面cl.show(jpsb);elseif(cnv.value.equals(借阅预约图书)显示借阅预约图书界面cl.show(jp,bb);elseif(cnv.value.equals(归还挂失图书)显示归还挂失图书界面cl.show(jp,rb);else1立11VV2山e.641121$(交纳罚款)显小缴纳罚款界面cl.show(j,et);elseif(cnv.value.equals(管理员管理)显示管理员管理界面cl.show(jpIVlanager;elseif(cnv.value.equals(退出)显示退出界面inti=JOptionPane.showConfirmDialog(Root.this,是否退出系统?,消息,JOptionPane.YES-NoOPTION);if。=JoPtionPane.YESJDPTloN)退出系统System.exit(O);;publicstaticvoidmain(Stringargs)newROot(wyf);classNodeVaIu

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号