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

下載本文檔

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

文檔簡介

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

溫馨提示

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

最新文檔

評論

0/150

提交評論