數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告-圖書(shū)館管理系統(tǒng)_第1頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告-圖書(shū)館管理系統(tǒng)_第2頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告-圖書(shū)館管理系統(tǒng)_第3頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告-圖書(shū)館管理系統(tǒng)_第4頁(yè)
數(shù)據(jù)庫(kù)系統(tǒng)實(shí)驗(yàn)報(bào)告-圖書(shū)館管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

科技大學(xué)數(shù)學(xué)與計(jì)算科學(xué)學(xué)院數(shù)據(jù)庫(kù)系統(tǒng)課程設(shè)計(jì)課程設(shè)計(jì)題目:圖書(shū)館管理系統(tǒng)指導(dǎo)教師:*芳學(xué)生院系:數(shù)學(xué)學(xué)院學(xué)生班級(jí):信計(jì)*班學(xué)生:黎*文學(xué)生**:14070204**目錄一、任務(wù)書(shū)1二、相關(guān)技術(shù)與環(huán)境介紹2三、需求分析2四、概念構(gòu)造設(shè)計(jì)3五、邏輯構(gòu)造設(shè)計(jì)5六、數(shù)據(jù)庫(kù)實(shí)施66.1數(shù)據(jù)庫(kù)的建立和表空間的建立66.2數(shù)據(jù)庫(kù)用戶(hù)的建立76.3java前端編程86.3.4功能完善13七、系統(tǒng)測(cè)試方案和測(cè)試報(bào)告13八、系統(tǒng)的主要功能和使用說(shuō)明148.1功能說(shuō)明:148.2使用說(shuō)明148.3圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)平安:15九.系統(tǒng)安裝說(shuō)明159.1數(shù)據(jù)庫(kù)的安裝159.2java前端程序的安裝15十.課程設(shè)計(jì)心得1510.1實(shí)驗(yàn)心得1610.2總結(jié)16一.任務(wù)書(shū)1.題目:圖書(shū)館管理系統(tǒng)容及要求:〔1〕創(chuàng)立數(shù)據(jù)庫(kù)存儲(chǔ)信息〔2〕開(kāi)發(fā)java前端程序,使用數(shù)據(jù)庫(kù)?!?〕具有實(shí)際應(yīng)用價(jià)值3.實(shí)驗(yàn)成員分工:黎*文:主要負(fù)責(zé)物理構(gòu)造,數(shù)據(jù)庫(kù)實(shí)施,數(shù)據(jù)庫(kù)與前端的連接處理操作。*杰:主要負(fù)責(zé)系統(tǒng)界面、概念與邏輯構(gòu)造的設(shè)計(jì),并進(jìn)展維護(hù)調(diào)試。二.相關(guān)技術(shù)與環(huán)境介紹開(kāi)發(fā)工具:oracle11g,Eclipse4.5開(kāi)發(fā)語(yǔ)言:Java開(kāi)發(fā)環(huán)境:JDK1.8運(yùn)行環(huán)境:Windows10其他輔助工具:PowerDesigner165,edrawma*核心技術(shù):JOBC對(duì)數(shù)據(jù)庫(kù)的操作,java操作界面的設(shè)計(jì),各種布局方式和插件〔1〕使用JFrame控件進(jìn)展界面設(shè)計(jì)〔2〕使用靜態(tài)字段實(shí)現(xiàn)窗體間的數(shù)據(jù)傳遞〔3〕使用代碼方式向容器控件中添加控件〔4〕數(shù)據(jù)庫(kù)連接和前臺(tái)操作〔5〕數(shù)據(jù)庫(kù)和開(kāi)發(fā)工具之間的編碼轉(zhuǎn)換三.需求分析圖書(shū)館管理系統(tǒng)是一個(gè)高度集成的圖書(shū)信息處理系統(tǒng),通過(guò)將圖書(shū)館的各種功能進(jìn)展整合,從而到達(dá)顯示檢索信息,提高工作效率,降低管理本錢(qián)等目的。一個(gè)典型的圖書(shū)館管理系統(tǒng)應(yīng)該能夠管理所有的圖書(shū)種類(lèi),圖書(shū)信息以及讀者信息,還需要提供各種圖書(shū)信息的檢索查詢(xún)功能。該系統(tǒng)還需要能夠?qū)D書(shū)的借閱,歸還進(jìn)展管理,并對(duì)讀者的罰款進(jìn)展自動(dòng)計(jì)算。通過(guò)該系統(tǒng)的自動(dòng)化管理,能夠大大減少圖書(shū)館管理人員,還能減少管理人員的工作任務(wù),從而降低管理開(kāi)銷(xiāo)和本錢(qián)。一個(gè)完整的圖書(shū)館管理系統(tǒng)包括前臺(tái)和后臺(tái),前臺(tái)主要是顯示在計(jì)算機(jī)屏幕上的顯示界面,有各種指令按鈕,操作框以及文本框,后臺(tái)主要是為前臺(tái)的一些操作提供一些必要的數(shù)據(jù),也就是一個(gè)相對(duì)于系統(tǒng)比擬完整的數(shù)據(jù)庫(kù),操作員以及各類(lèi)圖書(shū)的信息,借書(shū)者的信息等等。此次的圖書(shū)館管理系統(tǒng)有如下幾個(gè)重要功能:〔1〕管理員可以方便進(jìn)展圖書(shū)管理,用戶(hù)管理,管理員管理。圖書(shū)管理包括圖書(shū)信息以及圖書(shū)分類(lèi)的添加,修改,刪除。用戶(hù)管理包括用戶(hù)信息的添加,刪除,修改。管理員管理包括管理員信息的添加,刪除,修改等?!?〕管理員可以修改自己的以及用戶(hù)密碼,修改前需先核實(shí)自己的原始密碼。〔3〕實(shí)現(xiàn)模糊查詢(xún),使用戶(hù)得到更多的相關(guān)記錄。并且考慮使用的方便性,一些經(jīng)常使用的輸入無(wú)須用戶(hù)輸入,比方進(jìn)展圖書(shū)查詢(xún)時(shí)圖書(shū)分類(lèi)只須用戶(hù)做選擇就可以。〔4〕如果出現(xiàn)超期未還的情況,能夠就做出記錄,并作出相應(yīng)處分處理。四.概念構(gòu)造設(shè)計(jì)4.1E-R圖的設(shè)計(jì)學(xué)生E-R圖:學(xué)號(hào)學(xué)號(hào)姓名借書(shū)權(quán)限姓名借書(shū)權(quán)限年齡聯(lián)系方式學(xué)生年齡聯(lián)系方式學(xué)生性別登錄密碼專(zhuān)業(yè)性別登錄密碼專(zhuān)業(yè)〔2〕管理員E-R圖:權(quán)限權(quán)限管理員管理員密碼名稱(chēng)密碼名稱(chēng)〔3〕:圖書(shū)E-R圖:名稱(chēng)名稱(chēng)購(gòu)置時(shí)間購(gòu)置時(shí)間圖書(shū)圖書(shū)是否預(yù)約作者是否預(yù)約作者書(shū)號(hào)是否借閱書(shū)號(hào)是否借閱〔4〕數(shù)據(jù)庫(kù)關(guān)系圖:管理管理M學(xué)生用戶(hù)NM學(xué)生用戶(hù)N管理員管理員管理管理N管理MNN管理MNMMMM圖書(shū)N圖書(shū)N1N管理1N管理管理1管理管理1管理11超級(jí)管理員超級(jí)管理員〔5〕系統(tǒng)邏輯圖:4.2數(shù)據(jù)庫(kù)的設(shè)計(jì)建立orcl數(shù)據(jù)庫(kù)建立LIBRARYTEST表空間在表空間中建立用戶(hù)libadmin,進(jìn)展權(quán)限的設(shè)置,為最高權(quán)限登錄libadmin用戶(hù),創(chuàng)立libstudent用戶(hù),只具有查詢(xún)的權(quán)限根據(jù)4.1中〔4〕圖建立7個(gè)表。五.邏輯構(gòu)造設(shè)計(jì)1.圖書(shū)〔BOOK〕的邏輯構(gòu)造:2.超期圖書(shū)〔ECEEDTIME〕:3.喪失圖書(shū)〔LOSERBOOK〕:4.管理員權(quán)限表〔MSANAGER〕:5.預(yù)約圖書(shū):6.借閱記錄:7.學(xué)生用戶(hù):以上為各種表的邏輯構(gòu)造。六.數(shù)據(jù)庫(kù)實(shí)施6.1數(shù)據(jù)庫(kù)的建立和表空間的建立直接在oracle數(shù)據(jù)庫(kù)OEM企業(yè)管理其中直接操作。界面化操作省略。6.2數(shù)據(jù)庫(kù)用戶(hù)的建立〔1〕//創(chuàng)立libadmin用戶(hù):connsystem/Kyq020520//登錄system超級(jí)用戶(hù)createuserlibadminidentifiedby123456defaulttablespaceLIBRARYTESTgrantcreatesession,resourcetolibadmingrantcreateuser,resourcetolibadmin〔2〕//創(chuàng)立libstudent用戶(hù)connsystem/Kyq020520//登錄libadmin用戶(hù)createuserlibstudentidentifiedby123456defaulttablespaceLIBRARYTESTgrantcreatesession,resourcetolibstudent〔3〕局部權(quán)限分配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〕初始數(shù)據(jù)的插入給出一個(gè)學(xué)生表的建立和插入代碼:createtablestudent(StuNOintprimarykey,StuNamevarchar(50),StuAgeint,StuSe*varchar(50),Classvarchar(50),Departmentvarchar(50),Telchar(11),Permittedvarchar(50),Passwordvarchar(20));insertintostudentvalues(10001,'小詩(shī)',20,'女','計(jì)算機(jī)1班','計(jì)算機(jī)系',2592921,'是','number1');insertintostudentvalues(10002,'飛',21,'女','計(jì)算機(jī)1班','計(jì)算機(jī)系',,'是','number2');insertintostudentvalues(10003,'亞',20,'男','計(jì)算機(jī)1班','計(jì)算機(jī)系',,'是','number3');insertintostudentvalues(10004,'何二',22,'男','計(jì)算機(jī)1班','計(jì)算機(jī)系',2568975,'是','number4');insertintostudentvalues(10005,'唐雨',21,'女','計(jì)算機(jī)1班','計(jì)算機(jī)系',,'是','number5');insertintostudentvalues(10006,'宋江',20,'男','計(jì)算機(jī)2班','計(jì)算機(jī)系',1234667,'是','number6');6.3java前端編程6.3.1數(shù)據(jù)庫(kù)連接類(lèi)DataBase:package.listen;importjava*.swing.*;importjava.sql.*;publicclassDataBase{ Connectioncon=null;//聲明Connection引用 Statementstat; ResultSetrs; intcount; Stringsql; publicstaticStringmessage;//聲明一個(gè)靜態(tài)成員變量 publicstaticLoginlog; publicDataBase(Stringuser,StringpassWord){ try{//加載orac的驅(qū)動(dòng)類(lèi),并創(chuàng)立數(shù)據(jù)庫(kù)連接 Class.forName("oracle.jdbc.driver.OracleDriver"); con=DriverManager.getConnection("jdbc:oracle:thin:" +":1521:orcl",user,passWord); stat=con.createStatement();//創(chuàng)立Statement對(duì)象 } catch(E*ceptione){//如果從Login類(lèi)傳的參數(shù)不對(duì),則提示出錯(cuò) JOptionPane.showMessageDialog(log,"用戶(hù)IP或端口號(hào)錯(cuò)誤?。?!"+"信息",JOptionPane.INFORMATION_MESSAGE); } } publicvoidselectDb(Stringsql){//聲明select方法 try{ rs=stat.e*ecuteQuery(sql); } catch(E*ceptionie){ie.printStackTrace();} } publicintupdateDb(Stringsql){//聲明update方法 try{ //因?yàn)閛racle數(shù)據(jù)庫(kù)的默認(rèn)編碼方式是gbk,而eclipse的默認(rèn)編碼方式也是gbk,所以不存在轉(zhuǎn)碼問(wèn)題 // sql=newString(sql.getBytes(),"ISO-8859-1");//轉(zhuǎn)碼 // 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()){ //轉(zhuǎn)化數(shù)據(jù)類(lèi)型 System.out.print(app.rs.getString("STUNO")+""); System.out.println(app.rs.getString("STUNAME")+""); } }catch(SQLE*ceptione){ //TODOAuto-generatedcatchblock e.printStackTrace() } }}6.3.2登錄界面的設(shè)計(jì)登陸窗體的界面設(shè)計(jì)我依然采用的是比擬傳統(tǒng)的方法,新建一個(gè)類(lèi)BookLoginFrame類(lèi),用來(lái)顯示登錄窗體。在該窗體中需要使用到四類(lèi)控件,分別是JLabel、JTe*tFieid、JPasswordField以及utton。其中控件JLabel是用來(lái)顯示頂部的圖片以及標(biāo)簽文本;控件JTe*tFieid用來(lái)接收用戶(hù)名輸入信息;控件JPasswordField用來(lái)接收密碼輸入信息;控件utton用來(lái)創(chuàng)立登陸和重置按鈕。定義一個(gè)Login類(lèi)。設(shè)計(jì)結(jié)果如下:6.3.3管理員操作界面在主窗體中可以顯示其他功能窗體,所以需要在該窗體中參加一個(gè)桌面窗體。通過(guò)將其他功能窗體參加到該窗體中。從而實(shí)現(xiàn)多窗體顯。同時(shí)在主窗口體中,還需要添加一個(gè)main方法,該方法為系統(tǒng)入口的方法,通過(guò)執(zhí)行該方法來(lái)執(zhí)行系統(tǒng)。這兒給出他的構(gòu)造函數(shù):管理面界面操作構(gòu)造函數(shù):publicRoot(StringmgNo){ this.mgNo=mgNo;//獲得管理員ID mg=newManager(mgNo);//創(chuàng)立管理員管理面板 this.setManager();//設(shè)置管理員權(quán)限 this.initJp();//初始化卡片布局面板 this.addTreeListener();//為樹(shù)節(jié)點(diǎn)注冊(cè)事件監(jiān)聽(tīng)器 for(inti=1;i<9;i++) {//向根節(jié)點(diǎn)添加子節(jié)點(diǎn) dtm.insertNodeInto(dmtn[i],dmtn[0],i-1); } jt.setEditable(false);//設(shè)置該樹(shù)中節(jié)點(diǎn)是可編輯的 this.add(jsplr);//將包含樹(shù)的滾動(dòng)窗口添加進(jìn)窗體 jsplr.setLeftponent(jt);//將包含樹(shù)的滾動(dòng)窗口添加進(jìn)左邊的子窗口 jp.setBounds(200,50,600,500);//為jp設(shè)置大小位置并添加進(jìn)右邊的子窗口 jsplr.setRightponent(jp);jsplr.setDividerLocation(200);//設(shè)置分隔條的初始位置jsplr.setDividerSize(4);//設(shè)置分隔條的寬度jlRoot.setFont(newFont("Courier",Font.PLAIN,30)); jlRoot.setHorizontalAlignment(JLabel.CENTER); jlRoot.setVerticalAlignment(JLabel.CENTER); //設(shè)置窗體的關(guān)閉動(dòng)作,標(biāo)題,大小,位置及可見(jiàn)性 this.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE); Imageimage=newImageIcon("ico.gif").getImage(); this.setIconImage(image); this.setTitle("圖書(shū)管理系統(tǒng)"); //設(shè)置窗體首次出現(xiàn)的大小和位置--自動(dòng)居中 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);//設(shè)置窗體出現(xiàn)在屏幕中央 this.setE*tendedState(JFrame.MA*IMIZED_BOTH);//窗體全屏 this.setVisible(true);//設(shè)置窗體可見(jiàn) jt.setShowsRootHandles(true);//設(shè)置顯示根節(jié)點(diǎn)的控制圖標(biāo)}測(cè)試后界面如下:6.3.4學(xué)生用戶(hù)界面:和管理員界面設(shè)計(jì)類(lèi)類(lèi)似,但是由于學(xué)生權(quán)限的限制,所以學(xué)生用戶(hù)局部功能不能使用,構(gòu)造方法也是類(lèi)似,簡(jiǎn)單給出構(gòu)造函數(shù)。publicStudentSystem(){ this.initJp(); jt.addTreeSelectionListener(newTreeSelectionListener(){//用部類(lèi)顯示樹(shù)的各選擇節(jié)點(diǎn) publicvoidvalueChanged(TreeSelectionEvente){ DefaultMutableTreeNodecdmtn= (DefaultMutableTreeNode)e.getPath().getLastPathponent(); NodeValue1v=(NodeValue1)cdmtn.getUserObject(); if(v.value.equals("學(xué)生用戶(hù)管理系統(tǒng)")){ cl.show(jp,"root");//顯示主界面 } if(v.value.equals("查詢(xún)圖書(shū)")){ cl.show(jp,"ts");//顯示"查詢(xún)圖書(shū)"界面 } elseif(v.value.equals("預(yù)約圖書(shū)")){ cl.show(jp,"OrderBook");//顯示"預(yù)約圖書(shū)"界面 } elseif(v.value.equals("掛失圖書(shū)")){ cl.show(jp,"GuaShi");//顯示"歸還掛失圖書(shū)"界面 } elseif(v.value.equals("退出")){//用選擇菜單提示是否退出系統(tǒng) inti=JOptionPane.showConfirmDialog(StudentSystem.this, "是否退出系統(tǒng)"","消息",JOptionPane.YES_NO_OPTION); if(i==JOptionPane.YES_OPTION){System.e*it(0);} } }}; for(inti=1;i<dmtn.length;i++){//向根節(jié)點(diǎn)添加子節(jié)點(diǎn) dtm.insertNodeInto(dmtn[i],dmtn[0],i-1); } jt.setEditable(false);//設(shè)置該樹(shù)中節(jié)點(diǎn)是不可編輯的 this.add(jsplr);//將包含樹(shù)的滾動(dòng)窗口添加進(jìn)窗體 jsplr.setLeftponent(jt);//將包含樹(shù)的滾動(dòng)窗口添加進(jìn)左邊的子窗口 //為jp設(shè)置大小位置并添加進(jìn)右邊的子窗口 jp.setBounds(200,50,300,400);jsplr.setRightponent(jp);jsplr.setDividerLocation(150);//設(shè)置分隔條的初始位置jsplr.setDividerSize(4);//設(shè)置分隔條的寬度jlRoot.setFont(newFont("Courier",Font.PLAIN,30)); jlRoot.setHorizontalAlignment(JLabel.CENTER); jlRoot.setVerticalAlignment(JLabel.CENTER); //設(shè)置窗體的關(guān)閉動(dòng)作,標(biāo)題,大小,位置及可見(jiàn)性 this.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE); //對(duì)標(biāo)題和logo圖片進(jìn)展初始化 Imageimage=newImageIcon("ico.gif").getImage(); this.setIconImage(image); this.setTitle("學(xué)生管理系統(tǒng)"); //設(shè)置窗體首次出現(xiàn)的大小和位置--自動(dòng)居中 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);//設(shè)置窗體出現(xiàn)在屏幕中央 this.setE*tendedState(JFrame.MA*IMIZED_BOTH);//窗體全屏 this.setVisible(true); jt.setShowsRootHandles(true);//設(shè)置顯示根節(jié)點(diǎn)的控制圖標(biāo)}運(yùn)行界面如下:6.4功能完善剩下還有10個(gè)類(lèi),分別實(shí)現(xiàn)上述菜單中的功能,在eclipse模塊管理器中可以看出大概構(gòu)造如下:七.系統(tǒng)測(cè)試方案和測(cè)試報(bào)告頁(yè)面測(cè)試:逐個(gè)測(cè)試每個(gè)頁(yè)面是否可以正確顯示,顯示頁(yè)面是否美觀,易懂,測(cè)試各菜單能否正常運(yùn)行。經(jīng)測(cè)試,所有界面均可以正確顯示,顯示頁(yè)面比擬美觀,易懂,各菜單均能正常運(yùn)行。功能測(cè)試:對(duì)每個(gè)菜單下的功能逐一測(cè)試,盡最大可能發(fā)現(xiàn)潛在的錯(cuò)誤。經(jīng)測(cè)試,每個(gè)菜單下的功能均能實(shí)現(xiàn),暫未發(fā)現(xiàn)其潛在的錯(cuò)誤。需求測(cè)試:根據(jù)需求分析的容,測(cè)試系統(tǒng)是否和當(dāng)初的設(shè)計(jì)一樣。經(jīng)測(cè)試,所設(shè)計(jì)的圖書(shū)館管理系統(tǒng)根本滿(mǎn)足當(dāng)初的設(shè)計(jì)需求。其他詳情見(jiàn)辯論。八.系統(tǒng)的主要功能和使用說(shuō)明8.1功能說(shuō)明:8.1.1管理員的權(quán)限〔1〕有關(guān)讀者種類(lèi)標(biāo)準(zhǔn)的制定、種類(lèi)信息的輸入、包括種類(lèi)編號(hào)、種類(lèi)名稱(chēng)、借書(shū)數(shù)量、借書(shū)期限等。〔2〕讀者有關(guān)信息的修改、查詢(xún)等?!?〕讀者根本信息的輸入,包括讀者編號(hào)、讀者、班級(jí)、院系等?!?〕讀者根本信息的查詢(xún)、修改〔5〕書(shū)籍信息的輸入,包括書(shū)籍編號(hào)、書(shū)籍名稱(chēng)、書(shū)籍所屬類(lèi)別、作者、、出版日期、在庫(kù)數(shù)、價(jià)格?!?〕借書(shū)信息包括借書(shū)證號(hào)、書(shū)籍編號(hào)、借出日期、拖欠日期、罰款種額〔7〕圖書(shū)管理書(shū)籍號(hào)、管理員編號(hào)、銷(xiāo)書(shū)數(shù)量、銷(xiāo)書(shū)日期?!?〕超級(jí)用戶(hù)可以設(shè)置其他管理員,并登記到管理員表中。8.1.2學(xué)生用戶(hù)權(quán)限:〔1〕學(xué)生能登錄學(xué)生界面。并實(shí)現(xiàn)相應(yīng)操作?!?〕查詢(xún)圖書(shū)的種類(lèi),及其各種信息,本系統(tǒng)不支持模糊查詢(xún)?!?〕預(yù)約圖書(shū),對(duì)喪失的圖書(shū)進(jìn)展掛失登記。8.2使用說(shuō)明8.2.1管理員使用流程:〔1〕點(diǎn)擊可執(zhí)行文件。登錄名為“1001〞〔默認(rèn)為超級(jí)管理員〕密碼為“1001〞。〔2〕進(jìn)入管理系統(tǒng)后即可更改超級(jí)管理員密碼。然后設(shè)置其他管理員,并授予相應(yīng)的權(quán)限。〔3〕以管理員用戶(hù)登陸能使用以下所有功能:8.2.2學(xué)生用戶(hù)使用流程:〔1〕在管理員處〔由管理者自行設(shè)置〕進(jìn)展注冊(cè)登記?!?〕在登錄界面輸入相應(yīng)注冊(cè)賬號(hào)和密碼即可登錄?!?〕以學(xué)生用戶(hù)登陸能使用以下所有功能:8.3圖書(shū)管理系統(tǒng)數(shù)據(jù)庫(kù)平安:8.3.1數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù)數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù)是系統(tǒng)正式運(yùn)行后最重要的維護(hù)工作之一。要針對(duì)不同的應(yīng)用要求制定不同的轉(zhuǎn)儲(chǔ)方案,以保證一旦發(fā)生故障能盡快將數(shù)據(jù)庫(kù)恢復(fù)到*種一致的狀態(tài),并盡可能減少對(duì)數(shù)據(jù)庫(kù)的破壞。一周進(jìn)展使用OEM對(duì)數(shù)據(jù)庫(kù)進(jìn)展備份。8.3.2數(shù)據(jù)庫(kù)的平安性和完整性。各級(jí)環(huán)境數(shù)據(jù)庫(kù)系統(tǒng)主管單位應(yīng)保證以下平安保護(hù)措施的正常執(zhí)行:〔1〕環(huán)境數(shù)據(jù)庫(kù)系統(tǒng)重要局部的冗余或備份措施?!?〕計(jì)算機(jī)病毒防治措施?!?〕網(wǎng)絡(luò)攻擊防、追蹤措施。〔4〕環(huán)境數(shù)據(jù)庫(kù)系統(tǒng)運(yùn)行和用戶(hù)操作日志記錄保存60日以上措施?!?〕記錄環(huán)境數(shù)據(jù)庫(kù)系統(tǒng)用戶(hù)網(wǎng)絡(luò)地址的措施。〔6〕環(huán)境數(shù)據(jù)庫(kù)系統(tǒng)身份登記和識(shí)別確認(rèn)措施。九.系統(tǒng)安裝說(shuō)明9.1數(shù)據(jù)庫(kù)的安裝9.1.1下載并安裝oracle數(shù)據(jù)庫(kù)?!?〕登陸oracle官網(wǎng)下載oracle11g〔2〕安裝JDK1.8〔3〕數(shù)據(jù)庫(kù)管理的安裝,并建立“ORCL〞數(shù)據(jù)庫(kù)實(shí)例。9.1.2創(chuàng)立用戶(hù)和相應(yīng)表具體容見(jiàn)模塊六9.2java前端程序的安裝翻開(kāi)給出相應(yīng)的“圖書(shū)館管理系統(tǒng).jar〞文件,即可使用系統(tǒng)。十.課程設(shè)計(jì)心得10.1實(shí)驗(yàn)心得人機(jī)交互缺乏,對(duì)錯(cuò)誤的拋出處理不當(dāng),考慮到的情況不夠全面。對(duì)于數(shù)據(jù)庫(kù)的連接僅限于本機(jī),無(wú)法實(shí)現(xiàn)聯(lián)網(wǎng)工作,所以對(duì)于軟件的可移植性不夠。雖然用文件的方式操作能夠解決這一問(wèn)題,但是對(duì)于數(shù)據(jù)處理太繁瑣。對(duì)于系統(tǒng)設(shè)計(jì)方面的問(wèn)題,一定要有方案和流程圖,不能想一步做一步,最后會(huì)導(dǎo)致問(wèn)題的處理不夠全面。應(yīng)該該有一個(gè)良好的編碼習(xí)慣,類(lèi)的定義,方法的定義,一定要有一套規(guī)則,方便檢查調(diào)試,使別人能夠輕易地看懂。套系統(tǒng)適用于比擬小型的圖書(shū)館,而且對(duì)管理員和學(xué)生的要求比擬高,需要對(duì)系統(tǒng)足夠了解之后才能正常使用。.10.2總結(jié)整個(gè)設(shè)計(jì)通過(guò)了軟件和硬件上的調(diào)試。我想這對(duì)于自己以后的學(xué)習(xí)和工作都會(huì)有很大的幫助。在這次設(shè)計(jì)中遇到了很多實(shí)際性的問(wèn)題,在實(shí)際設(shè)計(jì)中才發(fā)現(xiàn),書(shū)本上理論性的東西與在實(shí)際運(yùn)用中的還是有一定的出入的,所以有些問(wèn)題不但要深入地理解,而且要不斷地更正以前的錯(cuò)誤思維。一切問(wèn)題必須要靠自己一點(diǎn)一滴的解決,而在解決的過(guò)程當(dāng)中你會(huì)發(fā)現(xiàn)自己在飛速的提升。對(duì)于圖書(shū)館管理系統(tǒng),其程序是比擬簡(jiǎn)單的,主要是解決程序設(shè)計(jì)中的問(wèn)題,而程序設(shè)計(jì)是一個(gè)很靈活的東西,它反映了你解決問(wèn)題的邏輯思維和創(chuàng)新能力,它才是一個(gè)設(shè)計(jì)的靈魂所在。因此在整個(gè)設(shè)計(jì)過(guò)程局部時(shí)間是用在程序上面的。很多子程序是可以借鑒書(shū)本上的,但怎樣銜接各個(gè)子程序才是關(guān)鍵的問(wèn)題所在。通過(guò)這次課程設(shè)計(jì)我也發(fā)現(xiàn)了自身存在的缺乏之處,雖然感覺(jué)理論上已經(jīng)掌握,但在運(yùn)用到實(shí)踐的過(guò)程中仍有意想不到的困惑,經(jīng)過(guò)一番努力才得以解決。這也激發(fā)了我今后努力學(xué)習(xí)的興趣,我想這將對(duì)我以后的學(xué)習(xí)產(chǎn)生積極的影響。通過(guò)這次設(shè)計(jì),我懂得了學(xué)習(xí)的重要性,了解到理論知識(shí)與實(shí)踐相結(jié)合的重要意義,學(xué)會(huì)了堅(jiān)持、耐心和努力,這將為自己今后的學(xué)習(xí)和工作做出了最好的典范。更重要的是如何把自己平時(shí)所學(xué)的東西應(yīng)用到實(shí)際中。雖然自己對(duì)于這門(mén)課懂的并不多,很多根底的東西都還沒(méi)有很好的掌握,覺(jué)得很難,也沒(méi)有很有效的方法通過(guò)自身去理解,但是靠著這一個(gè)多禮拜的“學(xué)習(xí)〞,漸漸對(duì)這門(mén)課逐漸產(chǎn)生了些許的興趣,自己開(kāi)場(chǎng)主動(dòng)學(xué)習(xí)并逐步從根底慢慢開(kāi)場(chǎng)弄懂它。附錄:參考書(shū)"30天學(xué)通java工程案例開(kāi)發(fā)""oracle數(shù)據(jù)庫(kù)應(yīng)用從入門(mén)到精通"由于篇幅過(guò)多,只給出代碼例如:詳情請(qǐng)參照給出的源文件管理員頁(yè)面主類(lèi)代碼:package.listen;importjava.awt.*;importjava.awt.event.*;importjava*.swing.event.*;importjava*.swing.*;importjava*.swing.tree.*;importjava.io.*;publicclassRoote*tendsJFrame{ //創(chuàng)立節(jié)點(diǎn)數(shù)組 DefaultMutableTreeNode[]dmtn= {newDefaultMutableTreeNode(newNodeValue("圖書(shū)館管理系統(tǒng)")), newDefaultMutableTreeNode(newNodeValue("學(xué)生用戶(hù)管理")), newDefaultMutableTreeNode(newNodeValue("圖書(shū)管理")), newDefaultMutableTreeNode(newNodeValue("查詢(xún)圖書(shū)")), newDefaultMutableTreeNode(newNodeValue("借閱預(yù)約圖書(shū)")), newDefaultMutableTreeNode(newNodeValue("歸還掛失圖書(shū)")), newDefaultMutableTreeNode(newNodeValue("交納罰款")), newDefaultMutableTreeNode(newNodeValue("管理員管理")), newDefaultMutableTreeNode(newNodeValue("退出"))};DefaultTreeModeldtm=newDefaultTreeModel(dmtn[0]);//創(chuàng)立樹(shù)模型,指定根節(jié)點(diǎn)為"學(xué)生管理系統(tǒng)"JTreejt=newJTree(dtm);//創(chuàng)立包含dtm樹(shù)模型的JTree對(duì)象JScrollPanejsp=newJScrollPane(jt);//為JTree創(chuàng)立滾動(dòng)窗體privateJSplitPanejsplr=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,true);//創(chuàng)立分割窗體對(duì)象privateJPaneljp=newJPanel();//創(chuàng)立JPanel對(duì)象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);//創(chuàng)立管理員管理面板 this.setManager();//設(shè)置管理員權(quán)限 this.initJp();//初始化卡片布局面板 this.addTreeListener();//為樹(shù)節(jié)點(diǎn)注冊(cè)事件監(jiān)聽(tīng)器 for(inti=1;i<9;i++) {//向根節(jié)點(diǎn)添加子節(jié)點(diǎn) dtm.insertNodeInto(dmtn[i],dmtn[0],i-1); } jt.setEditable(false);//設(shè)置該樹(shù)中節(jié)點(diǎn)是可編輯的 this.add(jsplr);//將包含樹(shù)的滾動(dòng)窗口添加進(jìn)窗體 jsplr.setLeftponent(jt);//將包含樹(shù)的滾動(dòng)窗口添加進(jìn)左邊的子窗口 jp.setBounds(200,50,600,500);//為jp設(shè)置大小位置并添加進(jìn)右邊的子窗口 jsplr.setRightponent(jp);jsplr.setDividerLocation(200);//設(shè)置分隔條的初始位置jsplr.setDividerSize(4);//設(shè)置分隔條的寬度jlRoot.setFont(newFont("Courier",Font.PLAIN,30)); jlRoot.setHorizontalAlignment(JLabel.CENTER); jlRoot.setVerticalAlignment(JLabel.CENTER); //設(shè)置窗體的關(guān)閉動(dòng)作,標(biāo)題,大小,位置及可見(jiàn)性 this.setDefaultCloseOperation(JFrame.E*IT_ON_CLOSE); Imageimage=newImageIcon("ico.gif").getImage(); this.setIconImage(image); this.setTitle("圖書(shū)管理系統(tǒng)"); //設(shè)置窗體首次出現(xiàn)的大小和位置--自動(dòng)居中 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);//設(shè)置窗體出現(xiàn)在屏幕中央 this.setE*tendedState(JFrame.MA*IMIZED_BOTH);//窗體全屏 this.setVisible(true);//設(shè)置窗體可見(jiàn) jt.setShowsRootHandles(true);//設(shè)置顯示根節(jié)點(diǎn)的控制圖標(biāo)}publicvoidsetManager() { Stringsql="selectpermittedfrommanagerwheremgNo='"+mgNo+"'"; DataBasedb=newDataBase("libadmin","Kyq020520");//創(chuàng)立數(shù)據(jù)庫(kù)類(lèi)對(duì)象 db.selectDb(sql);//執(zhí)行查詢(xún) try { db.rs.ne*t();//結(jié)果集游標(biāo)下移 Stringstr=db.rs.getString(1).trim();//得到管理員權(quán)限 if(str.equals("0")) { mg.setFlag(false);//設(shè)置管理員權(quán)限 } } catch(E*ceptione) { e.printStackTrace(); } } publicvoidinitJp() { jp.setLayout(cl);//設(shè)置布局管理器為卡片布局 jp.add(jlRoot,"root");//添加根結(jié)點(diǎn)顯示信息 jp.add(newStudent(),"stu");//添加學(xué)生管理模塊界面 jp.add(newBookManage(),"bm");//添加圖書(shū)管理模塊界面 jp.add(newSearchBook(),"sb");//添加查找圖書(shū)管理界面 jp.add(newBorrowBook(),"bb");//添加借閱預(yù)約圖書(shū)模塊界面 jp.add(newReturnBook(),"rb");//添加歸

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論