




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGE2通達學院課程設計報告課程名稱:數據庫課程設計專業(yè):姓名:班級:學號:指導教師:201圖書管理系統(tǒng)一、引言圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數據的管理,現今,有很多的圖書館都是初步開始使用,甚至尚未使用計算機進行信息管理。根據調查得知,以前對圖書信息管理的主要方式是基于文本、表格等紙介質的手工處理,對于圖書借閱情況(如借書天數、超過限定借書時間的天數)的統(tǒng)計和核實等往往采用對借書卡的人工檢查進行,對借閱者的借閱權限、以及借閱天數等用人工計算、手抄進行。數據信息處理工作量大,容易出錯;由于數據繁多,容易丟失,且不易查找。總的來說,缺乏系統(tǒng),規(guī)范的信息管理手段。盡管有的圖書館有計算機,但是尚未用于信息管理,沒有發(fā)揮效力,資源閑置比較突出,這就是管理信息系統(tǒng)的開發(fā)的基本環(huán)境。基于VB圖書管理系統(tǒng)的研究現狀及發(fā)展前景目前大多數圖書館的借閱工作部分還是手工管理,工作效率很低,并且不能及時了解圖書的種類和讀者們比較需求的圖書等,不能更好的適應當前讀者的借閱要求。手工管理還存在許多弊端,由于不可避免的人為因素,造成數據的遺漏、誤報等。計算機信息化管理有著儲存量大,速度快等許多優(yōu)點,提供給我們的處理信息及時快捷,因此我們利用計算機提供給我們的信息對讀者們的借閱過程形成一整套動態(tài)的管理。二、需求分析當今時代是飛速發(fā)展的的信息時代。在各行各業(yè)中離不開信息處理,這正是計算機被廣泛應用于信息管理系統(tǒng)的原因。計算機的最大好處在于利用它能夠進行信息管理。使用計算機進行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。尤其對于復雜的信息管理,計算機能夠充分發(fā)揮它的優(yōu)越性。計算機進行信息管理與信息管理系統(tǒng)的開發(fā)密切相關,系統(tǒng)的開發(fā)是系統(tǒng)管理的前提。本系統(tǒng)就是為了管理好圖書館信息而設計的。針對各大中專院校的圖書管理現狀,設計出適合一般學校的計算機輔助圖書管理系統(tǒng)。實現對圖書基本信息、讀者基本信息進行計算機輔助管理,完成借書和還書有關信息的記錄、修改、查詢、刪除等一系列任務的計算機管理與實現。圖書管理系統(tǒng)能方便、快捷地管理圖書,將傳統(tǒng)的圖書管理方式徹底的解脫出來,提高效率,減輕工人人員以往繁忙的工作,減小出錯的概率,使讀者可以花更多的時間在選擇書和看書上。從而使人們有更多時間來獲取信息、了解信息、掌握信息。各功能模塊描述如下:1.系統(tǒng)管理系統(tǒng)管理中,能實現新的管理員的添加和現存管理員的密碼修改功能。2.圖書管理在圖書管理模塊中,主要實現對圖書類別的添加和管理,并且可以添加新的圖書。3.讀者管理實現對讀者類別的添加和管理,讀者類別可包含老師學生等等,并且各讀者類別所借閱的圖書書目和借閱時間都存在差別。對已借閱圖書的讀者的信息進行添加和管理,并且日后可根據登記的讀者編號進行查閱。4.借閱管理借閱管理包含對應讀者所借圖書的相關信息,可根據借閱編號查詢相關借閱情況,并查看時候超期借閱,并進行一定金額處罰。圖書管理系統(tǒng)圖書管理系統(tǒng)借閱管理讀者管理圖書管理系統(tǒng)管理借閱管理讀者管理圖書管理系統(tǒng)管理添加圖書類別查詢圖書信息修改圖書信息添加圖書信息修改圖書類別修改密碼添加新管理員添加圖書類別查詢圖書信息修改圖書信息添加圖書信息修改圖書類別修改密碼添加新管理員查詢借書信息管理借書信息查詢讀者信息管理讀者信息添加讀者信息管理讀者類別添加讀者類別查詢借書信息管理借書信息查詢讀者信息管理讀者信息添加讀者信息管理讀者類別添加讀者類別圖1-1圖1-1圖書管理系統(tǒng)功能模塊三、概念結構設計圖書圖書借閱讀者編號名稱作者出版日期登記日期nm編號性別單位地址姓名電話管理員借閱編號是否超期借出日期歸還日期管理q1用戶名登陸密碼類別屬于類別號類別名已借閱數量登記日期p1懲罰超期屬于讀者類別懲罰金額懲罰編號類別名稱最大借閱數最長借閱時間kh11懲罰類別圖2-1圖2-1概念結構E-R圖四、實驗設備硬件:兼容機一臺軟件:SQLServer、Oracle9i數據庫;VB、VC、Java、Delphi等高級語言開發(fā)環(huán)境:前臺開發(fā)環(huán)境:MicrosoftVisualBasic6.0后臺數據庫環(huán)境:MicrosoftSQLServer2000五、邏輯結構設計管理員(用戶名,密碼)讀者類別(類別名稱,最大借閱數,最長借閱時間)讀者信息(讀者編號,姓名,性別,單位,地址,電話,類別名稱,登記日期,已借閱數量)圖書類別(類別號,類別名)圖書信息(圖書編號,圖書名稱,類別名,作者,出版日期,登記日期)借閱信息(借閱編號,讀者編號,讀者姓名,圖書編號,圖書名稱,借出日期,歸還日期,是否超期)六、數據庫的創(chuàng)建及連接數據庫設計(DatabaseDesign)是指根據用戶的需求,在某一具體的數據庫管理系統(tǒng)上,設計數據庫的結構和建立數據庫的過程。數據庫需求分析用戶的需求具體體現在各種信息的提供、保存、更新和查詢方面,這就要求數據庫結構能滿足各種信息的輸入和輸出。收集基本數據、數據結構及數據處理的流程,組成一份詳盡的數據字典,為后面的具體設計打下基礎。通過高校圖書管理系統(tǒng)功能的分析,針對一般圖書管理系統(tǒng),總結出系統(tǒng)數據流模型如圖3-1所示:管理員管理員數據庫管理系統(tǒng)訪問訪問響應響應圖3-1頂層數據流圖1、編寫高級語言訪問數據庫的程序實驗內容及要求:了解SQLserver的安裝及使用;學會對企業(yè)管理器、查詢分析器的使用;建立一個學生表、課程表及學生選課關聯(lián)表,并用SQL語句進行相關插入、查詢、刪除等操作;主要程序如下:ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[dbo].[WorkTime]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptable[dbo].[WorkTime]GOCREATETABLE[dbo].[WorkTime]( [EmployeeID][varchar](50)COLLATEChinese_PRC_CI_ASNOTNULL, [EmployeeName][varchar](50)COLLATEChinese_PRC_CI_ASNULL, [OnWorkTime][varchar](50)COLLATEChinese_PRC_CI_ASNULL, [OffWorkTime][varchar](50)COLLATEChinese_PRC_CI_ASNULL, [LeaveWorkTime][varchar](50)COLLATEChinese_PRC_CI_ASNULL, [Describe][varchar](50)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO2、編寫高級語言訪問數據庫的程序實驗內容及要求:內容:通過odbc橋訪問數據庫。通過各數據庫的驅動程序訪問數據庫。高級語言可以是Java,c++,basace等。用高級語言實現簡單的對數據庫表的插入、修改、刪除以及查詢操作。寫出高級語言訪問數據庫的操作步驟。用高級語言實現簡單的數據庫表的插入,修改,刪除和查詢的操作界面。主要程序如下:packagemanpowersystem;*<p>Title:</p>*<p>Description:</p>*<p>Copyright:Copyright(c)2003</p>*<p>Company:</p>*@authornotattributable*@version1.0*/importjava.sql.*;importjava.util.*;publicclassDatabase{Connectionconn=null;ResultSetrs=null;Statementstmt=null;publicRecordItem[]AccessData()throwsException{Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");Stringurl="jdbc:microsoft:sqlserver://localhost:1433;"+"studentName=Manpower";conn=DriverManager.getConnection(url,"sa","");stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);StringSQL="select*fromstudentID";rs=stmt.executeQuery(SQL);RecordItem[]item=newRecordItem[100];for(intj=0;j<100;j++)item[j]=newRecordItem();inti=0;while(rs.next()&&(i<100)){item[i].SetEmployeeID(rs.getString("studentID"));item[i].SetEmployeeName(rs.getString("studentName"));item[i].SetOnWorkTime(rs.getString("studentnumber"));item[i].SetOffWorkTime(rs.getString("studentcourse"));item[i].SetDescribe(rs.getString("Describe"));i++;}RecordItem[]result=newRecordItem[i];for(intj=0;j<i;j++){result[j]=newRecordItem();result[j]=item[j];}rs.close();stmt.close();conn.close();returnresult;}publicvoidStoreData(RecordItemitem)throwsException{Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");Stringurl="jdbc:microsoft:sqlserver://localhost:1433;"+"DatabaseName=Manpower";conn=DriverManager.getConnection(url,"sa","");stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);StringSQL="select*fromWorkTimewherestudentID='"+item.GetstudentID()+"'";rs=stmt.executeQuery(SQL);七、數據庫物理設計1.管理員表Admin圖4-1Admin表2.圖書類別表book圖4-2RT表3.借閱表圖4-3RI表4.圖書類別圖4-4BC表5.讀者類型圖4-5BI表6.學院類別圖4-6LI表八、數據庫的實施1、讀者管理模塊實施:首先使用conn.ConnectionString字符串方法進行與SQL數據庫的連接,在窗體中用commmand控件,label控件和textbox控件畫出程序模型,然后建立記錄集查詢,然后用rs_addreader.Fields綁定各個textbox輸入框到數據庫。使用rs_addreader.AddNew進行數據添加,使用rs_addreader.update進行數據修改更新,使用rs_addreader.delete進行數據刪除。2、借閱管理模塊實施:使用adodc控件實現程序與SQL數據庫的連接,在窗體中用commmand控件,label控件和textbox控件畫出程序模型,然后在窗體中添加datagrid控件,將其datasource設置成adodc1,在將其中的textbox的datasource屬性也設置成adodc1,datafield設置成對應的數據項。然后用ado控件建立第二個數據連接adodc2,用來連接數據庫中的讀者信息表,實現對外表的查詢,在需要添加讀者借閱信息時,只需要添加讀者號,讀者姓名會自動出現在文本框中,具體實現方法,將讀者姓名的text2綁定到數據源adodc2,并為讀者號的text1添加一個textchange事件:Adodc2.CommandType=adCmdTextAdodc2.RecordSource="select*fromriwhereri_no='"&Text1.Text&"'"Adodc2.Refresh借閱罰款功能的實現,當單擊判斷按鈕時,自動用當前時間減去借閱時間,如果結果小于等于30,則彈出不超期提示,若結果大于30則將結果減去30再乘以0.1元,得出應繳罰款。具體判斷是否超期的按鈕代碼為:DimaAsDateDimwAsDatea=Format(Now,"YYYY-Mm-DD")w=Trim(Text5.Text)b=a-wIfb>30ThenMsgBox"借閱已超期,請繳罰款"&(b-30)*0.1&"元",vbOKOnly+vbExclamation,"警告"ElseMsgBox"借閱還未超期。",vbOKOnly+vbExclamation,"提示"EndIfEndSub九、系統(tǒng)運行結果(部分附代碼)1、管理員登錄:PrivateSubcmdCancel_Click()OK=FalseMe.HideEndSubPrivateSubcmdLogin_Click()'檢驗數據的有效性IfTrim(txtUserName.Text="")ThenMsgBox"請輸入用戶名!"txtUserName.SetFocusExitSubElseIfTrim(txtPassword="")ThenMsgBox"請輸入密碼!"txtPassword.SetFocusExitSubElseDimmyDbOperAsNewDbOperationDimrstAsADODB.RecordsetDimsqlAsString'建立連接myDbOper.DB_Connect'定義查詢語句sql="SELECT*FROMLibrarianWHEREId='"+txtUserName+"'ANDPassword='"+txtPassword+"'"Setrst=myDbOper.querySQL(sql)If(Notrst.EOF)ThenOK=TrueMe.HideFrmMain.Show0ElseMsgBox"用戶名和密碼錯誤,請重新輸入."EndIfrst.Close'關閉連接myDbOper.DB_DisConnectEndIfEndSubPrivateSubForm_Load()EndSubPrivateSubLabel2_Click()EndSubPrivateSubLabel3_Click()EndSubPrivateSubtxtUserName_Change()EndSub圖6-1主界面圖6-2借閱信息圖6-3借書界面PrivateSubcmdExit_Click()Me.HideEndSubPrivateSubcmdEnter_Click()'檢驗數據的有效性IfTrim(txtBorrId)=""ThenMsgBox"請輸入借書卡號"ExitSubEndIfDimmyDbOperAsNewDbOperationDimrstAsADODB.RecordsetDimsqlAsString'建立連接myDbOper.DB_Connect'定義查詢語句sql="SELECTb.StudentNum,,i.Institute,g.Grade,b.teleNumber,b.borrowBookNum"_+"FROMBorrowerb,Institutei,Gradeg"_+"WHEREb.InstituteID=i.InstituteIDANDb.GradeID=g.GradeID"_+"ANDBorrowerId='"+txtBorrId+"'"Setrst=myDbOper.querySQL(sql)If(Notrst.EOF)ThenWithrstlblStuNum.Caption=.Fields(0)lblName.Caption=.Fields(1)lblInstitute.Caption=.Fields(2)lblGrade.Caption=.Fields(3)lblPhone.Caption=.Fields(4)EndWithRefresh_DataList1ElseMsgBox"用戶不存在,請重新操作."EndIfrst.Close'關閉連接myDbOper.DB_DisConnectEndSubPrivateSubcmdQuery_Click()'檢驗數據的有效性IfTrim(txtBookId)=""ThenMsgBox"請輸入書刊編號"ExitSubEndIfDimmyDbOperAsNewDbOperationDimrstAsADODB.RecordsetDimsqlAsString'建立連接myDbOper.DB_Connect'定義查詢語句sql="SELECTb.BookIDas書刊編號,as名稱,b.loanas狀態(tài),"_+"t.authoras作者,t.isbsnasisbsn,t.typeas類型,b.BorrowDateas借書日期"_+"FROMBookb,TitletWHERE=ANDb.BookID='"_+Trim(txtBookId)+"'"Setrst=myDbOper.querySQL(sql)If(Notrst.EOF)ThenRefresh_DataList2(sql)ElseMsgBox"該書刊不存在,請重新操作."EndIfrst.Close'關閉連接myDbOper.DB_DisConnectEndSubPrivateSubRefresh_DataList1()DimsqlAsStringsql="SELECTbo.BookIDas書刊編號,as名稱,bo.BorrowDateas借書日期"_+"FromBorrowerb,Bookbo"_+"WHEREb.BorrowerID=bo.borrowerIDandb.BorrowerID='"_+Trim(txtBorrId)+"'"Adodc1.RecordSource=sqlAdodc1.RefreshSetDataGrid1.DataSource=Adodc1DataGrid1.ReBindEndSubPrivateSubRefresh_DataList2(sqlAsString)Adodc2.RecordSource=sqlAdodc2.RefreshSetDataGrid2.DataSource=Adodc2DataGrid2.ReBindEndSubPrivateSubcmdSubmit_Click()'檢驗數據的有效性IfTrim(txtBorrId)=""ThenMsgBox"請輸入借書卡號"ExitSubEndIfIfTrim(txtBookId)=""ThenMsgBox"請輸入書刊編號"ExitSubEndIfDimnowDateAsNewBookDateDimmyDbOperAsNewDbOperationDimrstAsADODB.RecordsetDimsqlAsStringDimupdate1_sqlAsStringDimupdate2_sqlAsString'建立連接myDbOper.DB_Connect'定義查詢語句sql="SELECTloanFROMBookWHEREBookId='"+Trim(txtBookId)+"'"Setrst=myDbOper.querySQL(sql)IfTrim(rst.Fields(0))="在庫"Then'更新數據庫表update1_sql="UPDATEBookSETloan='借出',borrowerID='"_+Trim(txtBorrId)+"',BorrowDate='"_+nowDate.getDate+"'WHEREBookID='"_+Trim(txtBookId)+"'"myDbOper.executeSQL(update1_sql)update2_sql="UPDATEBorrowerSETborrowBookNum=borrowBookNum+1WHEREBorrowerId='"_+Trim(txtBorrId)+"'"myDbOper.executeSQL(update2_sql)Refresh_DataList1MsgBox"操作成功."ElseMsgBox"該書刊已經借出,請重新操作."EndIfrst.Close'關閉連接myDbOper.DB_DisConnectEndSubPrivateSubFrame1_DragDrop(SourceAsControl,XAsSingle,YAsSingle)EndSubPrivateSublblGrade_Click()EndSub圖6-4庫存管理PrivateSubcmdDelete_Click()DimtmpBookIdAsStringDimtmpTitleNameAsStringIfAdodc1.Recordset.BOF=TrueThenMsgBox"請選擇記錄"ExitSubEndIfp=Adodc1.Recordset.AbsolutePositiontmpBookId=Trim(Adodc1.Recordset.Fields(0))tmpTitleName=Trim(Adodc1.Recordset.Fields(1))'確認刪除IfMsgBox("是否刪除當前行?",vbYesNo,"確認")=vbYesThenDimmyDbOperAsNewDbOperationDimrstAsADODB.RecordsetDimsqlAsString'建立連接myDbOper.DB_Connect'定義查詢語句sql="SELECTloanFROMBookWHEREBookId='"+Trim(tmpBookId)+"'"Setrst=myDbOper.querySQL(sql)If(Notrst.EOF)ThenIfTrim(rst.Fields(0))="在庫"Then'刪除Book表中的記錄Dimdelete_sqlAsStringdelete_sql="DELETEFROMBookWHEREBookId='"+Trim(tmpBookId)+"'"myDbOper.executeSQL(delete_sql)'修改Title表中對應的記錄Num字段Dimupdate_sqlAsStringupdate_sql="UPDATETitleSETNum=Num-1WHEREName='"_+Trim(tmpTitleName)+"'"myDbOper.executeSQL(update_sql)ElseMsgBox"目前此書刊狀態(tài)已借出,不能刪除."EndIfElseMsgBox"發(fā)生錯誤,請重新操作."EndIfRefresh_DataList(query_sql)Ifp-1>0ThenAdodc1.Recordset.Move0Adodc1.Recordset.Movep-1EndIfEndIfEndSubPrivateSubcmdEdit_Click()IfAdodc1.Recordset.BOF=TrueThenMsgBox"請選擇記錄"ExitSubEndIfp=Adodc1.Recordset.AbsolutePositionWithFrmEditTitle.lblName=Trim(Adodc1.Recordset.Fields(1)).Show1EndWithRefresh_DataList(query_sql)If
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 民航空中安全保衛(wèi)專業(yè)教學標準(高等職業(yè)教育專科)2025修訂
- 2024-2025學年河北省保定市六校聯(lián)盟高二下學期期中地理試題及答案
- 2025年中國可調節(jié)人體工學辦公椅行業(yè)市場全景分析及前景機遇研判報告
- 2025年中國絕緣材料行業(yè)市場全景分析及前景機遇研判報告
- 2025年中國家用塔式風扇行業(yè)市場全景分析及前景機遇研判報告
- 中國起重運輸設備行業(yè)市場發(fā)展現狀及前景趨勢與投資分析研究報告(2024-2030)
- 中國計算機整機行業(yè)市場調研及未來發(fā)展趨勢預測報告
- 中國多柱式散熱器行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告(2024-2030)
- 2025年中國紙張防偽行業(yè)市場運行現狀及未來發(fā)展預測報告
- 方形蚊帳項目投資可行性研究分析報告(2024-2030版)
- 2025年高考真題-物理(廣東卷) 含答案
- 2025-2030中國伊利石行業(yè)運營效益及競爭策略展望分析報告
- 江西省上饒市2022-2023學年高一下冊數學期末試卷(含答案)
- 2025春季學期國開電大本科《管理英語3》一平臺機考真題及答案(第十套)
- 湖南省2025年高考公安院校公安專業(yè)考生檔案審核表
- 地理:(網絡參考版)黑吉遼蒙2025年高考真題地理試卷含答案
- 電大:理論聯(lián)系實際談一談如何傳承發(fā)展中華秀傳統(tǒng)文化?參考答案
- 2025新修訂《全國人民代表大會和地方各級人民代表大會代表法》宣講
- 部編人教版八年級語文下冊期末各單元重點知識
- 2024-2025學年八年級下冊道德與法治期末測試模擬卷(統(tǒng)編版)(含答案)
- 宿遷市重點中學2025屆八下數學期末教學質量檢測試題含解析
評論
0/150
提交評論