数据库课程设计-图书管理系统湖南科技大学数学与计算科学学院数据库系统课程设计课程设计题目:图书馆管理系统指导教师:刘*芳学生院系:数学学院学生班级:信计*班学生姓名:黎*文学生学号:14070204**目录1一、任务书2二、相关技术与环境介绍2三、需求分析3四、概念结构设计5五、逻辑结构设计6六、数据库实施66.1数据库的建立和表空间的建立76.2数据库用户的建立86.3java前端编程136.3.4功能完善13七、系统测试
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
和测试
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
14八、系统的主要功能和使用说明148.1功能说明:148.2使用说明158.3图书管理系统数据库安全:15九.系统安装说明159.1数据库的安装159.2java前端程序的安装15十.课程设计心得1610.1实验心得1610.2总结一.任务书1.题目:图书馆管理系统2.内容及要求:(1)创建数据库存储信息(2)开发java前端程序,使用数据库。(3)具有实际应用价值3.实验成员分工:黎*文:主要负责物理结构,数据库实施,数据库与前端的连接处理操作。沈*杰:主要负责系统界面、概念与逻辑结构的设计,并进行维护调试。二.相关技术与环境介绍开发工具:oracle11g,Eclipse4.5开发语言:Java开发环境:JDK1.8运行环境:Windows10其他辅助工具:PowerDesigner165,edrawmax核心技术:JOBC对数据库的操作,java操作界面的设计,各种布局方式和插件(1)使用JFrame控件进行界面设计(2)使用静态字段实现窗体间的数据传递(3)使用代码方式向容器控件中添加控件(4)数据库连接和前台操作(5)数据库和开发工具之间的编码转换三.需求分析图书馆管理系统是一个高度集成的图书信息处理系统,通过将图书馆的各种功能进行整合,从而达到显示检索信息,提高工作效率,降低管理成本等目的。一个典型的图书馆管理系统应该能够管理所有的图书种类,图书信息以及读者信息,还需要提供各种图书信息的检索查询功能。该系统还需要能够对图书的借阅,归还进行管理,并对读者的罚款进行自动计算。通过该系统的自动化管理,能够大大减少图书馆管理人员,还能减少管理人员的工作任务,从而降低管理开销和成本。 一个完整的图书馆管理系统包括前台和后台,前台主要是显示在计算机屏幕上的显示界面,有各种指令按钮,操作框以及文本框,后台主要是为前台的一些操作提供一些必要的数据,也就是一个相对于系统比较完整的数据库,操作员以及各类图书的信息,借书者的信息等等。 此次的图书馆管理系统有如下几个重要功能: (1)管理员可以方便进行图书管理,用户管理,管理员管理。图书管理包括图书信息以及图书分类的添加,修改,删除。用户管理包括用户信息的添加,删除,修改。管理员管理包括管理员信息的添加,删除,修改等。 (2)管理员可以修改自己的以及用户密码,修改前需先核实自己的原始密码。 (3)实现模糊查询,使用户得到更多的相关记录。并且考虑使用的方便性,一些经常使用的输入无须用户输入,比如进行图书查询时图书分类只须用户做选择就可以。 (4)如果出现超期未还的情况,能够就做出记录,并作出相应处罚处理。四.概念结构设计4.1E-R图的设计(1)学生E-R图:(2)管理员E-R图:(3):图书E-R图:(4)数据库关系图:(5)系统逻辑图:4.2数据库的设计(1)建立orcl数据库(2)建立LIBRARYTEST表空间(3)在表空间中建立用户libadmin,进行权限的设置,为最高权限(4)登录libadmin用户,创建libstudent用户,只具有查询的权限(5)根据4.1中(4)图建立7个表。五.逻辑结构设计1.图书(BOOK)的逻辑结构:2.超期图书(ECEEDTIME):3.丢失图书(LOSERBOOK):4.管理员权限表(MSANAGER):5.预约图书:6.借阅记录:7.学生用户:以上为各种表的逻辑结构。六.数据库实施6.1数据库的建立和表空间的建立直接在oracle数据库OEM企业管理其中直接操作。界面化操作省略。6.2数据库用户的建立(1)//创建libadmin用户:connsystem/Kyq020520//登录system超级用户createuserlibadminidentifiedby123456defaulttablespaceLIBRARYTESTgrantcreatesession,resourcetolibadmingrantcreateuser,resourcetolibadmin(2)//创建libstudent用户connsystem/Kyq020520//登录libadmin用户createuserlibstudentidentifiedby123456defaulttablespaceLIBRARYTESTgrantcreatesession,resourcetolibstudent(3)部分权限分配GRANTALTERON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTIONGRANTDELETEON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTIONGRANTINDEXON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTIONGRANTINSERTON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTIONGRANTREFERENCESON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTIONGRANTSELECTON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTIONGRANTUPDATEON"LIBRARYTEST"."BOOK"TO"LIBADMIN"WITHGRANTOPTION(4)初始数据的插入给出一个学生表的建立和插入代码:createtablestudent(StuNOintprimarykey,StuNamevarchar(50),StuAgeint,StuSexvarchar(50),Classvarchar(50),Departmentvarchar(50),Telchar(11),Permittedvarchar(50),Passwordvarchar(20));insertintostudentvalues(10001,'陈小诗',20,'女','计算机1班','计算机系',2592921,'是','number1');insertintostudentvalues(10002,'李飞',21,'女','计算机1班','计算机系',13730120123,'是','number2');insertintostudentvalues(10003,'孙亚',20,'男','计算机1班','计算机系',13633654578,'是','number3');insertintostudentvalues(10004,'何二',22,'男','计算机1班','计算机系',2568975,'是','number4');insertintostudentvalues(10005,'唐雨',21,'女','计算机1班','计算机系',13936968956,'是','number5');insertintostudentvalues(10006,'宋江',20,'男','计算机2班','计算机系',1234667,'是','number6');6.3java前端编程6.3.1数据库连接类DataBase:packagecom.listen;importjavax.swing.*;importjava.sql.*;publicclassDataBase{Connectioncon=null;//声明Connection引用Statementstat;ResultSetrs;intcount;Stringsql;publicstaticStringmessage;//声明一个静态成员变量publicstaticLoginlog;publicDataBase(Stringuser,StringpassWord){try{//加载orac的驱动类,并创建数据库连接Class.forName("oracle.jdbc.driver.OracleDriver");con=DriverManager.getConnection("jdbc:oracle:thin:"+"@127.0.0.1:1521:orcl",user,passWord);stat=con.createStatement();//创建Statement对象}catch(Exceptione){//如果从Login类传的参数不对,则提示出错JOptionPane.showMessageDialog(log,"用户IP或端口号错误!!!"+"信息",JOptionPane.INFORMATION_MESSAGE);}}publicvoidselectDb(Stringsql){//声明select方法try{rs=stat.executeQuery(sql);}catch(Exceptionie){ie.printStackTrace();}}publicintupdateDb(Stringsql){//声明update方法try{//因为oracle数据库的默认编码方式是gbk,而eclipse的默认编码方式也是gbk,所以不存在转码问题//sql=newString(sql.getBytes(),"ISO-8859-1");//转码//sql=newString(sql.getBytes(),"UTF-8");count=stat.executeUpdate(sql);}catch(Exceptionie){ie.printStackTrace();}returncount;}publicvoiddbClose(){//声明close方法try{con.close();}catch(Exceptione){e.printStackTrace();}}publicstaticvoidmain(String[]args){DataBaseapp=newDataBase("libadmin","Kyq020520");try{app.rs=app.stat.executeQuery("select*fromSTUDENT");while(app.rs.next()){//转化数据类型System.out.print(app.rs.getString("STUNO")+"");System.out.println(app.rs.getString("STUNAME")+"");}}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace()}}}6.3.2登录界面的设计登陆窗体的界面设计我依然采用的是比较传统的方法,新建一个类BookLoginFrame类,用来显示登录窗体。在该窗体中需要使用到四类控件,分别是JLabel、JTextFieid、JPasswordField以及JButton。其中控件JLabel是用来显示顶部的图片以及标签文本;控件JTextFieid用来接收用户名输入信息;控件JPasswordField用来接收密码输入信息;控件JButton用来创建登陆和重置按钮。定义一个Login类。设计结果如下:6.3.3管理员操作界面在主窗体中可以显示其他功能窗体,所以需要在该窗体中加入一个桌面窗体。通过将其他功能窗体加入到该窗体中。从而实现多窗体显。同时在主窗口体中,还需要添加一个main方法,该方法为系统入口的方法,通过执行该方法来执行系统。这儿给出他的构造函数:管理面界面操作构造函数:publicRoot(StringmgNo){this.mgNo=mgNo;//获得管理员IDmg=newManager(mgNo);//创建管理员管理面板this.setManager();//设置管理员权限this.initJp();//初始化卡片布局面板this.addTreeListener();//为树节点注册事件监听器for(inti=1;i<9;i++){//向根节点添加子节点dtm.insertNodeInto(dmtn[i],dmtn[0],i-1);}jt.setEditable(false);//设置该树中节点是可编辑的this.add(jsplr);//将包含树的滚动窗口添加进窗体jsplr.setLeftComponent(jt);//将包含树的滚动窗口添加进左边的子窗口jp.setBounds(200,50,600,500);//为jp设置大小位置并添加进右边的子窗口jsplr.setRightComponent(jp);jsplr.setDividerLocation(200);//设置分隔条的初始位置jsplr.setDividerSize(4);//设置分隔条的宽度jlRoot.setFont(newFont("Courier",Font.PLAIN,30));jlRoot.setHorizontalAlignment(JLabel.CENTER);jlRoot.setVerticalAlignment(JLabel.CENTER);//设置窗体的关闭动作,标题,大小,位置及可见性this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Imageimage=newImageIcon("ico.gif").getImage();this.setIconImage(image);this.setTitle("图书管理系统");//设置窗体首次出现的大小和位置--自动居中DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();intcenterX=screenSize.width/4;intcenterY=screenSize.height/4;intw=800;//本窗体宽度inth=600;//本窗体高度//this.setBounds(centerX,centerY,w,h);this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中央this.setExtendedState(JFrame.MAXIMIZED_BOTH);//窗体全屏this.setVisible(true);//设置窗体可见jt.setShowsRootHandles(true);//设置显示根节点的控制图标}测试后界面如下:6.3.4学生用户界面:和管理员界面设计类类似,但是由于学生权限的限制,所以学生用户部分功能不能使用,构造方法也是类似,简单给出构造函数。publicStudentSystem(){this.initJp();jt.addTreeSelectionListener(newTreeSelectionListener(){//用内部类显示树的各选择节点publicvoidvalueChanged(TreeSelectionEvente){DefaultMutableTreeNodecdmtn=(DefaultMutableTreeNode)e.getPath().getLastPathComponent();NodeValue1cnv=(NodeValue1)cdmtn.getUserObject();if(cnv.value.equals("学生用户管理系统")){cl.show(jp,"root");//显示主界面}if(cnv.value.equals("查询图书")){cl.show(jp,"ts");//显示"查询图书"界面}elseif(cnv.value.equals("预约图书")){cl.show(jp,"OrderBook");//显示"预约图书"界面}elseif(cnv.value.equals("挂失图书")){cl.show(jp,"GuaShi");//显示"归还挂失图书"界面}elseif(cnv.value.equals("退出")){//用选择菜单提示是否退出系统inti=JOptionPane.showConfirmDialog(StudentSystem.this,"是否退出系统?","消息",JOptionPane.YES_NO_OPTION);if(i==JOptionPane.YES_OPTION){System.exit(0);}}}};for(inti=1;i<dmtn.length;i++){//向根节点添加子节点dtm.insertNodeInto(dmtn[i],dmtn[0],i-1);}jt.setEditable(false);//设置该树中节点是不可编辑的this.add(jsplr);//将包含树的滚动窗口添加进窗体jsplr.setLeftComponent(jt);//将包含树的滚动窗口添加进左边的子窗口//为jp设置大小位置并添加进右边的子窗口jp.setBounds(200,50,300,400);jsplr.setRightComponent(jp);jsplr.setDividerLocation(150);//设置分隔条的初始位置jsplr.setDividerSize(4);//设置分隔条的宽度jlRoot.setFont(newFont("Courier",Font.PLAIN,30));jlRoot.setHorizontalAlignment(JLabel.CENTER);jlRoot.setVerticalAlignment(JLabel.CENTER);//设置窗体的关闭动作,标题,大小,位置及可见性this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//对标题和logo图片进行初始化Imageimage=newImageIcon("ico.gif").getImage();this.setIconImage(image);this.setTitle("学生管理系统");//设置窗体首次出现的大小和位置--自动居中DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();intcenterX=screenSize.width/2;intcenterY=screenSize.height/2;intw=500;//本窗体宽度inth=400;//本窗体高度this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中央this.setExtendedState(JFrame.MAXIMIZED_BOTH);//窗体全屏this.setVisible(true);jt.setShowsRootHandles(true);//设置显示根节点的控制图标}运行界面如下:6.4功能完善剩下还有10个类,分别实现上述菜单中的功能,在eclipse模块管理器中可以看出大概结构如下:七.系统测试方案和测试报告页面测试:逐个测试每个页面是否可以正确显示,显示页面是否美观,易懂,测试各菜单能否正常运行。 经测试,所有界面均可以正确显示,显示页面比较美观,易懂,各菜单均能正常运行。 功能测试:对每个菜单下的功能逐一测试,尽最大可能发现潜在的错误。 经测试,每个菜单下的功能均能实现,暂未发现其潜在的错误。 需求测试:根据需求分析的内容,测试系统是否和当初的设计一样。 经测试,所设计的图书馆管理系统基本满足当初的设计需求。其他详情见答辩。八.系统的主要功能和使用说明8.1功能说明:8.1.1管理员的权限 (1)有关读者种类
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的制定、种类信息的输入、包括种类编号、种类名称、借书数量、借书期限等。 (2)读者有关信息的修改、查询等。 (3)读者基本信息的输入,包括读者编号、读者姓名、班级、院系等。 (4)读者基本信息的查询、修改 (5)书籍信息的输入,包括书籍编号、书籍名称、书籍所属类别、作者、出版社、出版日期、在库数、价格 。(6)借书信息包括借书证号、书籍编号、借出日期、拖欠日期、罚款种额 (7)图书管理 书籍号、管理员编号、销书数量、销书日期。(8)超级用户可以设置其他管理员,并登记到管理员表中。8.1.2学生用户权限:(1)学生能登录学生界面。并实现相应操作。(2)查询图书的种类,及其各种信息,本系统不支持模糊查询。(3)预约图书,对丢失的图书进行挂失登记。8.2使用说明8.2.1管理员使用
流程
快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计
:(1)点击可执行文件。登录名为“1001”(默认为超级管理员)密码为“1001”。(2)进入管理系统后即可更改超级管理员密码。然后设置其他管理员,并授予相应的权限。(3)以管理员用户登陆能使用以下所有功能:8.2.2学生用户使用流程:(1)在管理员处(由管理者自行设置)进行注册登记。(2)在登录界面输入相应注册账号和密码即可登录。(3)以学生用户登陆能使用以下所有功能:8.3图书管理系统数据库安全:8.3.1数据库的转储和恢复数据库的转储和恢复是系统正式运行后最重要的维护工作之一。要针对不同的应用要求制定不同的转储
计划
项目进度计划表范例计划下载计划下载计划下载课程教学计划下载
,以保证一旦发生故障能尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏。一周进行使用OEM对数据库进行备份。8.3.2数据库的安全性和完整性。各级环境数据库系统主管单位应保证以下安全保护措施的正常执行:(1)环境数据库系统重要部分的冗余或备份措施。(2)计算机病毒防治措施。(3)网络攻击防范、追踪措施。(4)环境数据库系统运行和用户操作日志记录保存60日以上措施。(5)记录环境数据库系统用户网络地址的措施。(6)环境数据库系统身份登记和识别确认措施。九.系统安装说明9.1数据库的安装9.1.1下载并安装oracle数据库。(1)登陆oracle官网下载oracle11g(2)安装JDK1.8(3)数据库管理的安装,并建立“ORCL”数据库实例。9.1.2创建用户和相应表具体内容见模块六9.2java前端程序的安装打开给出相应的“图书馆管理系统.jar”文件,即可使用系统。十.课程设计心得10.1实验心得1.人机交互缺乏,对错误的抛出处理不当,考虑到的情况不够全面。2.对于数据库的连接仅限于本机,无法实现联网工作,所以对于软件的可移植性不够。虽然用文件的方式操作能够解决这一问题,但是对于数据处理太繁琐。3.对于系统设计方面的问题,一定要有计划和流程图,不能想一步做一步,最后会导致问题的处理不够全面。4.应该该有一个良好的编码习惯,类的定义,方法的定义,一定要有一套规则,方便检查调试,使别人能够轻易地看懂。5.套系统适用于比较小型的图书馆,而且对管理员和学生的要求比较高,需要对系统足够了解之后才能正常使用。.10.2总结整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于图书馆管理系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法通过自身去理解,但是靠着这一个多礼拜的“学习”,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。附录:参考书《30天学通java项目案例开发》《oracle数据库应用从入门到精通》由于篇幅过多,只给出代码示例:详情请参照给出的源文件管理员页面主类代码:packagecom.listen;importjava.awt.*;importjava.awt.event.*;importjavax.swing.event.*;importjavax.swing.*;importjavax.swing.tree.*;importjava.io.*;publicclassRootextendsJFrame{//创建节点数组DefaultMutableTreeNode[]dmtn={newDefaultMutableTreeNode(newNodeValue("图书馆管理系统")),newDefaultMutableTreeNode(newNodeValue("学生用户管理")),newDefaultMutableTreeNode(newNodeValue("图书管理")),newDefaultMutableTreeNode(newNodeValue("查询图书")),newDefaultMutableTreeNode(newNodeValue("借阅预约图书")),newDefaultMutableTreeNode(newNodeValue("归还挂失图书")),newDefaultMutableTreeNode(newNodeValue("交纳罚款")),newDefaultMutableTreeNode(newNodeValue("管理员管理")),newDefaultMutableTreeNode(newNodeValue("退出"))};DefaultTreeModeldtm=newDefaultTreeModel(dmtn[0]);//创建树模型,指定根节点为"学生管理系统"JTreejt=newJTree(dtm);//创建包含dtm树模型的JTree对象JScrollPanejsp=newJScrollPane(jt);//为JTree创建滚动窗体privateJSplitPanejsplr=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true);//创建分割窗体对象privateJPaneljp=newJPanel();//创建JPanel对象Imageimage=newImageIcon("tsgl.jpg").getImage();ImageIconii=newImageIcon(image);privateJLabeljlRoot=newJLabel(ii);privateManagermg;//登陆管理员名StringmgNo;//管理员IDCardLayoutcl=newCardLayout();//获取卡片布局管理器引用publicRoot(StringmgNo){this.mgNo=mgNo;//获得管理员IDmg=newManager(mgNo);//创建管理员管理面板this.setManager();//设置管理员权限this.initJp();//初始化卡片布局面板this.addTreeListener();//为树节点注册事件监听器for(inti=1;i<9;i++){//向根节点添加子节点dtm.insertNodeInto(dmtn[i],dmtn[0],i-1);}jt.setEditable(false);//设置该树中节点是可编辑的this.add(jsplr);//将包含树的滚动窗口添加进窗体jsplr.setLeftComponent(jt);//将包含树的滚动窗口添加进左边的子窗口jp.setBounds(200,50,600,500);//为jp设置大小位置并添加进右边的子窗口jsplr.setRightComponent(jp);jsplr.setDividerLocation(200);//设置分隔条的初始位置jsplr.setDividerSize(4);//设置分隔条的宽度jlRoot.setFont(newFont("Courier",Font.PLAIN,30));jlRoot.setHorizontalAlignment(JLabel.CENTER);jlRoot.setVerticalAlignment(JLabel.CENTER);//设置窗体的关闭动作,标题,大小,位置及可见性this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Imageimage=newImageIcon("ico.gif").getImage();this.setIconImage(image);this.setTitle("图书管理系统");//设置窗体首次出现的大小和位置--自动居中DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();intcenterX=screenSize.width/4;intcenterY=screenSize.height/4;intw=800;//本窗体宽度inth=600;//本窗体高度//this.setBounds(centerX,centerY,w,h);this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中央this.setExtendedState(JFrame.MAXIMIZED_BOTH);//窗体全屏this.setVisible(true);//设置窗体可见jt.setShowsRootHandles(true);//设置显示根节点的控制图标}publicvoidsetManager(){Stringsql="selectpermittedfrommanagerwheremgNo='"+mgNo+"'";DataBasedb=newDataBase("libadmin","Kyq020520");//创建数据库类对象db.selectDb(sql);//执行查询try{db.rs.next();//结果集游标下移Stringstr=db.rs.getString(1).trim();//得到管理员权限if(str.equals("0")){mg.setFlag(false);//设置管理员权限}}catch(Exceptione){e.printStackTrace();}}publicvoidinitJp(){jp.setLayout(cl);//设置布局管理器为卡片布局jp.add(jlRoot,"root");//添加根结点显示信息jp.add(newStudent(),"stu");//添加学生管理模块界面jp.add(newBookManage(),"bm");//添加图书管理模块界面jp.add(newSearchBook(),"sb");//添加查找图书管理界面jp.add(newBorrowBook(),"bb");//添加借阅预约图书模块界面jp.add(newReturnBook(),"rb");//添加归还挂失图书界面jp.add(this.mg,"Manager");//添加管理员管理模块界面jp.add(newExceedTime(),"et");//添加罚款处理界面}publicvoidaddTreeListener(){jt.addTreeSelectionListener(newTreeSelectionListener(){publicvoidvalueChanged(TreeSelectionEvente){DefaultMutableTreeNodecdmtn=//得到选中的节点对象(DefaultMutableTreeNode)e.getPath().getLastPathComponent();NodeValuecnv=(NodeValue)cdmtn.getUserObject();//得到自定义节点对象if(cnv.value.equals("图书馆管理系统")){//显示根结点信息cl.show(jp,"root");}if(cnv.value.equals("学生用户管理")){//显示学生用户管理界面cl.show(jp,"stu");}elseif(cnv.value.equals("图书管理")){//显示图书管理界面cl.show(jp,"bm");}if(cnv.value.equals("查询图书")){//显示查询图书界面cl.show(jp,"sb");}elseif(cnv.value.equals("借阅预约图书")){//显示借阅预约图书界面cl.show(jp,"bb");}elseif(cnv.value.equals("归还挂失图书")){//显示归还挂失图书界面cl.show(jp,"rb");}elseif(cnv.value.equals("交纳罚款")){//显示缴纳罚款界面cl.show(jp,"et");}elseif(cnv.value.equals("管理员管理")){//显示管理员管理界面cl.show(jp,"Manager");}elseif(cnv.value.equals("退出")){//显示退出界面inti=JOptionPane.showConfirmDialog(Root.this,"是否退出系统?","消息",JOptionPane.YES_NO_OPTION);if(i==JOptionPane.YES_OPTION){//退出系统System.exit(0);}}}});}publicstaticvoidmain(Stringargs[]){newRoot("1001");}}classNodeValue{Stringvalue;//自定义节点对象字符属性publicNodeValue(Stringvalue){//构造器this.value=value;}publicStringgetValue(){//value的Get方法returnthis.value;}@OverridepublicStringtoString(){//重写toString方法returnvalue;}}学号姓名借书权限年龄联系方式学生性别登录密码专业权限管理员密码名称名称出版社购买时间图书是否预约作者书号是否借阅管理M学生用户N管理员管理N管理MNMM图书N1N管理管理1管理1超级管理员1