数据库系统实验报告-图书馆管理系统_第1页
数据库系统实验报告-图书馆管理系统_第2页
数据库系统实验报告-图书馆管理系统_第3页
数据库系统实验报告-图书馆管理系统_第4页
数据库系统实验报告-图书馆管理系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

科技大学数学与计算科学学院数据库系统课程设计课程设计题目:图书馆管理系统指导教师:*芳学生院系:数学学院学生班级:信计*班学生:黎*文学生**:14070204**目录一、任务书1二、相关技术与环境介绍2三、需求分析2四、概念构造设计3五、逻辑构造设计5六、数据库实施66.1数据库的建立和表空间的建立66.2数据库用户的建立76.3java前端编程86.3.4功能完善13七、系统测试方案和测试报告13八、系统的主要功能和使用说明148.1功能说明:148.2使用说明148.3图书管理系统数据库平安:15九.系统安装说明159.1数据库的安装159.2java前端程序的安装15十.课程设计心得1510.1实验心得1610.2总结16一.任务书1.题目:图书馆管理系统容及要求:〔1〕创立数据库存储信息〔2〕开发java前端程序,使用数据库。〔3〕具有实际应用价值3.实验成员分工:黎*文:主要负责物理构造,数据库实施,数据库与前端的连接处理操作。*杰:主要负责系统界面、概念与逻辑构造的设计,并进展维护调试。二.相关技术与环境介绍开发工具:oracle11g,Eclipse4.5开发语言:Java开发环境:JDK1.8运行环境:Windows10其他辅助工具:PowerDesigner165,edrawma*核心技术:JOBC对数据库的操作,java操作界面的设计,各种布局方式和插件〔1〕使用JFrame控件进展界面设计〔2〕使用静态字段实现窗体间的数据传递〔3〕使用代码方式向容器控件中添加控件〔4〕数据库连接和前台操作〔5〕数据库和开发工具之间的编码转换三.需求分析图书馆管理系统是一个高度集成的图书信息处理系统,通过将图书馆的各种功能进展整合,从而到达显示检索信息,提高工作效率,降低管理本钱等目的。一个典型的图书馆管理系统应该能够管理所有的图书种类,图书信息以及读者信息,还需要提供各种图书信息的检索查询功能。该系统还需要能够对图书的借阅,归还进展管理,并对读者的罚款进展自动计算。通过该系统的自动化管理,能够大大减少图书馆管理人员,还能减少管理人员的工作任务,从而降低管理开销和本钱。一个完整的图书馆管理系统包括前台和后台,前台主要是显示在计算机屏幕上的显示界面,有各种指令按钮,操作框以及文本框,后台主要是为前台的一些操作提供一些必要的数据,也就是一个相对于系统比拟完整的数据库,操作员以及各类图书的信息,借书者的信息等等。此次的图书馆管理系统有如下几个重要功能:〔1〕管理员可以方便进展图书管理,用户管理,管理员管理。图书管理包括图书信息以及图书分类的添加,修改,删除。用户管理包括用户信息的添加,删除,修改。管理员管理包括管理员信息的添加,删除,修改等。〔2〕管理员可以修改自己的以及用户密码,修改前需先核实自己的原始密码。〔3〕实现模糊查询,使用户得到更多的相关记录。并且考虑使用的方便性,一些经常使用的输入无须用户输入,比方进展图书查询时图书分类只须用户做选择就可以。〔4〕如果出现超期未还的情况,能够就做出记录,并作出相应处分处理。四.概念构造设计4.1E-R图的设计学生E-R图:学号学号姓名借书权限姓名借书权限年龄联系方式学生年龄联系方式学生性别登录密码专业性别登录密码专业〔2〕管理员E-R图:权限权限管理员管理员密码名称密码名称〔3〕:图书E-R图:名称名称购置时间购置时间图书图书是否预约作者是否预约作者书号是否借阅书号是否借阅〔4〕数据库关系图:管理管理M学生用户NM学生用户N管理员管理员管理管理N管理MNN管理MNMMMM图书N图书N1N管理1N管理管理1管理管理1管理11超级管理员超级管理员〔5〕系统逻辑图:4.2数据库的设计建立orcl数据库建立LIBRARYTEST表空间在表空间中建立用户libadmin,进展权限的设置,为最高权限登录libadmin用户,创立libstudent用户,只具有查询的权限根据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"WITHGRANTOPTIONGRANTINDE*ON"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,StuSe*varchar(50),Classvarchar(50),Departmentvarchar(50),Telchar(11),Permittedvarchar(50),Passwordvarchar(20));insertintostudentvalues(10001,'小诗',20,'女','计算机1班','计算机系',2592921,'是','number1');insertintostudentvalues(10002,'飞',21,'女','计算机1班','计算机系',,'是','number2');insertintostudentvalues(10003,'亚',20,'男','计算机1班','计算机系',,'是','number3');insertintostudentvalues(10004,'何二',22,'男','计算机1班','计算机系',2568975,'是','number4');insertintostudentvalues(10005,'唐雨',21,'女','计算机1班','计算机系',,'是','number5');insertintostudentvalues(10006,'宋江',20,'男','计算机2班','计算机系',1234667,'是','number6');6.3java前端编程6.3.1数据库连接类DataBase:package.listen;importjava*.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:" +":1521:orcl",user,passWord); stat=con.createStatement();//创立Statement对象 } catch(E*ceptione){//如果从Login类传的参数不对,则提示出错 JOptionPane.showMessageDialog(log,"用户IP或端口号错误!!!"+"信息",JOptionPane.INFORMATION_MESSAGE); } } publicvoidselectDb(Stringsql){//声明select方法 try{ rs=stat.e*ecuteQuery(sql); } catch(E*ceptionie){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.e*ecuteUpdate(sql); } catch(E*ceptionie){ie.printStackTrace();} returncount; } publicvoiddbClose(){//声明close方法 try{con.close(); } catch(E*ceptione){e.printStackTrace();} } publicstaticvoidmain(String[]args){ DataBaseapp=newDataBase("libadmin","Kyq020520"); try{ app.rs=app.stat.e*ecuteQuery("select*fromSTUDENT"); while(app.rs.ne*t()){ //转化数据类型 System.out.print(app.rs.getString("STUNO")+""); System.out.println(app.rs.getString("STUNAME")+""); } }catch(SQLE*ceptione){ //TODOAuto-generatedcatchblock e.printStackTrace() } }}6.3.2登录界面的设计登陆窗体的界面设计我依然采用的是比拟传统的方法,新建一个类BookLoginFrame类,用来显示登录窗体。在该窗体中需要使用到四类控件,分别是JLabel、JTe*tFieid、JPasswordField以及utton。其中控件JLabel是用来显示顶部的图片以及标签文本;控件JTe*tFieid用来接收用户名输入信息;控件JPasswordField用来接收密码输入信息;控件utton用来创立登陆和重置按钮。定义一个Login类。设计结果如下:6.3.3管理员操作界面在主窗体中可以显示其他功能窗体,所以需要在该窗体中参加一个桌面窗体。通过将其他功能窗体参加到该窗体中。从而实现多窗体显。同时在主窗口体中,还需要添加一个main方法,该方法为系统入口的方法,通过执行该方法来执行系统。这儿给出他的构造函数:管理面界面操作构造函数:publicRoot(StringmgNo){ this.mgNo=mgNo;//获得管理员ID mg=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.setLeftponent(jt);//将包含树的滚动窗口添加进左边的子窗口 jp.setBounds(200,50,600,500);//为jp设置大小位置并添加进右边的子窗口 jsplr.setRightponent(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.E*IT_ON_CLOSE); Imageimage=newImageIcon("ico.gif").getImage(); this.setIconImage(image); this.setTitle("图书管理系统"); //设置窗体首次出现的大小和位置--自动居中 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); intcenter*=screenSize.width/4; intcenterY=screenSize.height/4; intw=800;//本窗体宽度 inth=600;//本窗体高度 //this.setBounds(center*,centerY,w,h); this.setBounds(center*-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中央 this.setE*tendedState(JFrame.MA*IMIZED_BOTH);//窗体全屏 this.setVisible(true);//设置窗体可见 jt.setShowsRootHandles(true);//设置显示根节点的控制图标}测试后界面如下:6.3.4学生用户界面:和管理员界面设计类类似,但是由于学生权限的限制,所以学生用户局部功能不能使用,构造方法也是类似,简单给出构造函数。publicStudentSystem(){ this.initJp(); jt.addTreeSelectionListener(newTreeSelectionListener(){//用部类显示树的各选择节点 publicvoidvalueChanged(TreeSelectionEvente){ DefaultMutableTreeNodecdmtn= (DefaultMutableTreeNode)e.getPath().getLastPathponent(); NodeValue1v=(NodeValue1)cdmtn.getUserObject(); if(v.value.equals("学生用户管理系统")){ cl.show(jp,"root");//显示主界面 } if(v.value.equals("查询图书")){ cl.show(jp,"ts");//显示"查询图书"界面 } elseif(v.value.equals("预约图书")){ cl.show(jp,"OrderBook");//显示"预约图书"界面 } elseif(v.value.equals("挂失图书")){ cl.show(jp,"GuaShi");//显示"归还挂失图书"界面 } elseif(v.value.equals("退出")){//用选择菜单提示是否退出系统 inti=JOptionPane.showConfirmDialog(StudentSystem.this, "是否退出系统"","消息",JOptionPane.YES_NO_OPTION); if(i==JOptionPane.YES_OPTION){System.e*it(0);} } }}; for(inti=1;i<dmtn.length;i++){//向根节点添加子节点 dtm.insertNodeInto(dmtn[i],dmtn[0],i-1); } jt.setEditable(false);//设置该树中节点是不可编辑的 this.add(jsplr);//将包含树的滚动窗口添加进窗体 jsplr.setLeftponent(jt);//将包含树的滚动窗口添加进左边的子窗口 //为jp设置大小位置并添加进右边的子窗口 jp.setBounds(200,50,300,400);jsplr.setRightponent(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.E*IT_ON_CLOSE); //对标题和logo图片进展初始化 Imageimage=newImageIcon("ico.gif").getImage(); this.setIconImage(image); this.setTitle("学生管理系统"); //设置窗体首次出现的大小和位置--自动居中 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); intcenter*=screenSize.width/2;intcenterY=screenSize.height/2; intw=500;//本窗体宽度inth=400;//本窗体高度 this.setBounds(center*-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中央 this.setE*tendedState(JFrame.MA*IMIZED_BOTH);//窗体全屏 this.setVisible(true); jt.setShowsRootHandles(true);//设置显示根节点的控制图标}运行界面如下:6.4功能完善剩下还有10个类,分别实现上述菜单中的功能,在eclipse模块管理器中可以看出大概构造如下:七.系统测试方案和测试报告页面测试:逐个测试每个页面是否可以正确显示,显示页面是否美观,易懂,测试各菜单能否正常运行。经测试,所有界面均可以正确显示,显示页面比拟美观,易懂,各菜单均能正常运行。功能测试:对每个菜单下的功能逐一测试,尽最大可能发现潜在的错误。经测试,每个菜单下的功能均能实现,暂未发现其潜在的错误。需求测试:根据需求分析的容,测试系统是否和当初的设计一样。经测试,所设计的图书馆管理系统根本满足当初的设计需求。其他详情见辩论。八.系统的主要功能和使用说明8.1功能说明:8.1.1管理员的权限〔1〕有关读者种类标准的制定、种类信息的输入、包括种类编号、种类名称、借书数量、借书期限等。〔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实验心得人机交互缺乏,对错误的抛出处理不当,考虑到的情况不够全面。对于数据库的连接仅限于本机,无法实现联网工作,所以对于软件的可移植性不够。虽然用文件的方式操作能够解决这一问题,但是对于数据处理太繁琐。对于系统设计方面的问题,一定要有方案和流程图,不能想一步做一步,最后会导致问题的处理不够全面。应该该有一个良好的编码习惯,类的定义,方法的定义,一定要有一套规则,方便检查调试,使别人能够轻易地看懂。套系统适用于比拟小型的图书馆,而且对管理员和学生的要求比拟高,需要对系统足够了解之后才能正常使用。.10.2总结整个设计通过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于图书馆管理系统,其程序是比拟简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程局部时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在。通过这次课程设计我也发现了自身存在的缺乏之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的典范。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多根底的东西都还没有很好的掌握,觉得很难,也没有很有效的方法通过自身去理解,但是靠着这一个多礼拜的“学习〞,渐渐对这门课逐渐产生了些许的兴趣,自己开场主动学习并逐步从根底慢慢开场弄懂它。附录:参考书"30天学通java工程案例开发""oracle数据库应用从入门到精通"由于篇幅过多,只给出代码例如:详情请参照给出的源文件管理员页面主类代码:package.listen;importjava.awt.*;importjava.awt.event.*;importjava*.swing.event.*;importjava*.swing.*;importjava*.swing.tree.*;importjava.io.*;publicclassRoote*tendsJFrame{ //创立节点数组 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;//管理员ID CardLayoutcl=newCardLayout();//获取卡片布局管理器引用publicRoot(StringmgNo){ this.mgNo=mgNo;//获得管理员ID mg=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.setLeftponent(jt);//将包含树的滚动窗口添加进左边的子窗口 jp.setBounds(200,50,600,500);//为jp设置大小位置并添加进右边的子窗口 jsplr.setRightponent(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.E*IT_ON_CLOSE); Imageimage=newImageIcon("ico.gif").getImage(); this.setIconImage(image); this.setTitle("图书管理系统"); //设置窗体首次出现的大小和位置--自动居中 DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize(); intcenter*=screenSize.width/4; intcenterY=screenSize.height/4; intw=800;//本窗体宽度 inth=600;//本窗体高度 //this.setBounds(center*,centerY,w,h); this.setBounds(center*-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中央 this.setE*tendedState(JFrame.MA*IMIZED_BOTH);//窗体全屏 this.setVisible(true);//设置窗体可见 jt.setShowsRootHandles(true);//设置显示根节点的控制图标}publicvoidsetManager() { Stringsql="selectpermittedfrommanagerwheremgNo='"+mgNo+"'"; DataBasedb=newDataBase("libadmin","Kyq020520");//创立数据库类对象 db.selectDb(sql);//执行查询 try { db.rs.ne*t();//结果集游标下移 Stringstr=db.rs.getString(1).trim();//得到管理员权限 if(str.equals("0")) { mg.setFlag(false);//设置管理员权限 } } catch(E*ceptione) { 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");//添加归

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论