圖書管理系統(tǒng)需求設(shè)計(jì)數(shù)據(jù)庫課程設(shè)計(jì)_第1頁
圖書管理系統(tǒng)需求設(shè)計(jì)數(shù)據(jù)庫課程設(shè)計(jì)_第2頁
圖書管理系統(tǒng)需求設(shè)計(jì)數(shù)據(jù)庫課程設(shè)計(jì)_第3頁
圖書管理系統(tǒng)需求設(shè)計(jì)數(shù)據(jù)庫課程設(shè)計(jì)_第4頁
圖書管理系統(tǒng)需求設(shè)計(jì)數(shù)據(jù)庫課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、用例圖:2.2功能需求:對于本系統(tǒng)需要實(shí)現(xiàn)以下基本功能。圖書管理員通過用戶登錄界面,輸入用戶名和密碼驗(yàn)證后可進(jìn)入程序進(jìn)行管理操作。圖書管理圖書錄入:添加新增圖書的基本信息。圖書下架:將已下架圖書的數(shù)量歸零。.圖書查詢:輸入圖書名或圖書號可獲得當(dāng)前圖書管該書的庫存量及該書的相關(guān)信息。讀者管理添加讀者信息:添加新增讀者的信息。讀者查詢及修改:輸入讀者姓名或借書卡號可獲得讀者的基本信息并可修改其信息。刪除讀者信息:輸入讀者姓名刪除讀者信息。借還書服務(wù)借書登記:先輸入借書卡號,檢查是否有未還圖書記錄和借書數(shù)量的檢查.若符合則添加借號,書號及借書時(shí)間等信息。借書記錄查詢及續(xù)簽:輸入借記卡號或書號可獲得其

2、相關(guān)信息并可辦理續(xù)簽手續(xù)。還書手續(xù)辦理:輸入借記卡號及書號,在借書記錄添加還書時(shí)間。借書超期超量處理:該功能在讀者還書時(shí)檢索讀者借書信息判斷是否超期,進(jìn)行相應(yīng)的懲罰。2.3系統(tǒng)功能設(shè)計(jì):通過對現(xiàn)行圖書館的業(yè)務(wù)進(jìn)行調(diào)查,明確了圖書館工作由圖書管理、讀者管理、借書服務(wù)和還書服務(wù)4部分組成。該系統(tǒng)分個(gè)主要功能塊,如下圖所示。進(jìn)入系統(tǒng)操作前,有用戶登錄和注冊功能,只有注冊過的用戶才能進(jìn)行下屬操作,未注冊的用戶必須在獲得數(shù)據(jù)庫密碼的情況下方可進(jìn)行用戶注冊,之后才能進(jìn)去管理流程。() 圖書信息管理模塊主要實(shí)現(xiàn)對圖書基本信息的錄入、查詢修改、刪除操作。錄入圖書的圖書號、圖書名、作者、出版社、出版時(shí)間、現(xiàn)有量

3、等信息,以圖書編碼為唯一關(guān)鍵字。使用查詢功能查詢出需要修改刪除的記錄,然后進(jìn)行修改刪除操作,修改時(shí)要保證圖書號的唯一性。圖書下架功能將下架圖書的基本信息刪除。() 讀者信息管理模塊實(shí)現(xiàn)讀者信息的錄入、查詢、修改和刪除操作。錄入讀者姓名、借書卡號、電話、單位、性別等信息,以借書卡號為唯一關(guān)鍵字。使用查詢功能查詢出需要修改刪除的記錄,然后進(jìn)行修改刪除操作,修改時(shí)要保證借書卡號的唯一性。圖書卡的注銷是借書卡持有者將不再在此圖書館借閱書籍,其借書卡將不能繼續(xù)使用,而被注銷,從而刪除關(guān)于此讀者的全部信息。() 借還書信息管理模塊實(shí)現(xiàn)借書、還書的手續(xù)辦理、信息查詢、續(xù)簽及借書超期處理等操作。借書手續(xù)要先輸

4、入借書卡號,檢查是否有未還圖書記錄和借書數(shù)量的檢查.若符合則添加借書卡號,書號及借書時(shí)間等信息。借書記錄查詢及續(xù)簽:輸入借記卡號可獲得其相關(guān)信息并可辦理續(xù)簽手續(xù)。還書手續(xù):輸入借記卡號,刪除此借書記錄,并將還回的圖書記錄到未借出類別中。3、代碼設(shè)計(jì):-錄入(圖書)CString strSql;CString dateTime=publishTime.Format(_T("%Y-%m-%d");strSql.Format("INSERT INTO Book_info(Book_id,Book_name,Writer,Publish,PublishTime,Intro

5、duction,Book_count) VALUES('%s','%s','%s','%s','%s','%s',%s)",book_id,book_name,writer,publish,dateTime,introduction,book_count);-查詢及修改(圖書)-圖書信息查詢CString sqlstr;sqlstr.Format("SELECT Card_id,Book_id,Lendtime,expectBacktime FROM Borrow_card WH

6、ERE Book_id='%s'",book_id_Bo);m_pRecordset.CreateInstance("ADODB.Recordset"); /為Recordset對象創(chuàng)建實(shí)例_bstr_t strCmd=(_bstr_t)sqlstr;m_pRecordset=m_pConnection->Execute(strCmd,&RecordsAffected,ADODB:adCmdText);_variant_t vCard_id,vBook_id,vLendtime,vexpectBacktime;trywhile(!m_

7、pRecordset->adoEOF)vCard_id=m_pRecordset->GetCollect(_variant_t(long)0);vCard_id=m_pRecordset->GetCollect("Card_id");vBook_id=m_pRecordset->GetCollect("Book_id");vLendtime=m_pRecordset->GetCollect("Lendtime");vexpectBacktime=m_pRecordset->GetCollect(&q

8、uot;expectBacktime")CString strtemp;if(vCard_id.vt!=VT_NULL)strtemp+=" "strtemp+=(LPCTSTR)(_bstr_t)vCard_id;if(vBook_id.vt!=VT_NULL)strtemp+=" "strtemp+=(LPCTSTR)(_bstr_t)vBook_id;if(vLendtime.vt!=VT_NULL)strtemp+=" "strtemp+=(LPCTSTR)(_bstr_t)vLendtime;if(vexpectB

9、acktime.vt!=VT_NULL)strtemp+=" "strtemp+=(LPCTSTR)(_bstr_t)vexpectBacktime;list_Bo.AddString(strtemp);list_Bo.AddString("n");m_pRecordset->MoveNext();catch(_com_error &e)AfxMessageBox(e.Description();-圖書信息修改CString sqlstr;sqlstr.Format("UPDATE Borrow_card SET expectBa

10、cktime=expectBacktime+15 WHERE Book_id='%s'",book_id_X);_bstr_t strCmd=(_bstr_t)sqlstr;m_pConnection->Execute(strCmd,&RecordsAffected,ADODB:adCmdText);-刪除(圖書)CString sqlstr;if(!D_bookname.IsEmpty()sqlstr.Format("UPDATE Book_info SET Book_count=0 WHERE Book_name='%s'

11、",D_bookname);elsesqlstr.Format("UPDATE Book_info SET Book_count=0 WHERE Book_id='%s' ",D_bookid);_bstr_t strCmd=(_bstr_t)sqlstr;m_pConnection->Execute(strCmd,&RecordsAffected,ADODB:adCmdText);-續(xù)簽:CString sqlstr;sqlstr.Format("UPDATE Borrow_card SET expectBacktime=

12、expectBacktime+15 WHERE Book_id='%s'",book_id_X);_bstr_t strCmd=(_bstr_t)sqlstr;m_pConnection->Execute(strCmd,&RecordsAffected,ADODB:adCmdText);-還書手續(xù)辦理:tryCString strSql;CString dateTime;dateTime=back_time_B.Format(_T("%Y-%m-%d");strSql.Format("UPDATE Borrow_card S

13、ET Backtime='%s' WHERE Book_id='%s' AND Card_id='%s'",dateTime,book_id_B,card_id_B);_bstr_t strCmd=(_bstr_t)strSql;m_pConnection->Execute(strCmd,&RecordsAffected,ADODB:adCmdText);catch(_com_error &e)AfxMessageBox(e.Description(); tryCString sqlstr;sqlstr.Forma

14、t("UPDATE Book_info SET Book_count=Book_count+1 WHERE Book_id='%s'",book_id_B);_bstr_t strCmd=(_bstr_t)sqlstr;m_pConnection->Execute(strCmd,&RecordsAffected,ADODB:adCmdText);catch(_com_error &e)AfxMessageBox(e.Description(); /圖書超期檢測trym_pRecordset.CreateInstance("AD

15、ODB.Recordset"); /為Recordset對象創(chuàng)建實(shí)例COleDateTime now;now=COleDateTime:GetCurrentTime();CString sqlStr;sqlStr.Format("SELECT * FROM Borrow_card WHERE Card_id='%s' AND Book_id='%s' AND Backtime is NOT NULL AND expectBacktime<Backtime",card_id_B,book_id_B);_bstr_t strCmd

16、=(_bstr_t)sqlStr;m_pRecordset=m_pConnection->Execute(strCmd,&RecordsAffected,ADODB:adCmdText); catch(_com_error &e)AfxMessageBox(e.Description();/圖書超期處理tryint days(0),tempDays(0);COleDateTime backDay,expectBackday;COleDateTimeSpan timeSpan;_variant_t vBackDays,vExpectBackDays;while(!m_pRe

17、cordset->adoEOF)vBackDays=m_pRecordset->GetCollect(_variant_t(long)3);vExpectBackDays=m_pRecordset->GetCollect(_variant_t(long)4);backDay.ParseDateTime(LPCTSTR)(_bstr_t)vBackDays);expectBackday.ParseDateTime(LPCTSTR)(_bstr_t)vExpectBackDays);timeSpan=expectBackday-backDay;tempDays=timeSpan.

18、GetDays();CString mesStr; float tempYuan=tempDays*0.1;mesStr.Format("借書卡號:%s,借書:%s,超期%d天應(yīng)繳罰款%.2f元",card_id_B,book_id_B,tempDays,tempYuan);AfxMessageBox(mesStr);days+=tempDays;m_pRecordset->MoveNext();catch(_com_error &e)AfxMessageBox(e.Description(); /還書后刪除借書記錄tryCString strSql;CStr

19、ing dateTime;dateTime=back_time_B.Format(_T("%Y-%m-%d");strSql.Format("DELETE FROM Borrow_card WHERE Book_id='%s'AND Card_id='%s'",book_id_B,card_id_B);_bstr_t strCmd=(_bstr_t)strSql;m_pConnection->Execute(strCmd,&RecordsAffected,ADODB:adCmdText);catch(_com

20、_error &e)AfxMessageBox(e.Description();4、數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計(jì)借書記錄查詢及續(xù)簽根據(jù)上面的設(shè)計(jì)規(guī)劃出的實(shí)體有:圖書實(shí)體、讀者實(shí)體、借還書實(shí)體。它們之間的關(guān)系如下圖。 借出時(shí)間 圖書名 借書卡號 圖書號 作者 姓名 性別圖書 借還書 讀者 單位 現(xiàn)有量 出版時(shí)間 電話號碼 內(nèi)容簡介 出版社 歸還時(shí)間5、數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)現(xiàn)在需要將上面的數(shù)據(jù)庫概念結(jié)構(gòu)轉(zhuǎn)化為SQL Server 2000數(shù)據(jù)庫系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型,也就是數(shù)據(jù)庫的邏輯結(jié)構(gòu)。在上面的實(shí)體及實(shí)體之間的基礎(chǔ)上,形成數(shù)據(jù)庫中的表及各個(gè)表之間的關(guān)系。圖書管理系統(tǒng)數(shù)據(jù)庫中各個(gè)表格的設(shè)計(jì)如下面幾

21、個(gè)表所示。每個(gè)表表示數(shù)據(jù)庫中的一個(gè)數(shù)據(jù)表。圖書信息表(Book_info)KEY序號字段號字段含義字段類型字段長度小數(shù)位允許空1Book_id書號Varchar14NOT NULL2Book_name書名Varchar30NOT NULL3Writer作者Varchar20NULL4Publish出版社Varchar20NULL5PublishTime出版時(shí)間DatetimeNULL6Introduction內(nèi)容簡介TEXT500NULL7Book_count圖書數(shù)量INTEGERNOT NULL借書卡信息表(Reader_info)KEY序號字段號字段含義字段類型字段長度小數(shù)位允許空1Car

22、d_id借書卡號Varchar8NOT NULL2Name姓名Varchar30NULL3Sex性別Varchar2NULL4Unit單位Varchar20NULL5Email電子郵件Varchar20NULL6Phone電話Varchar15NULL借書登記卡信息(BorrowCard_info)序號字段號字段含義字段類型字段長度小數(shù)位允許空1Card_id借書卡號Varchar8NOT NULL2Book_id書號Varchar14NOT NULL3Lendtime借出時(shí)間DatetimeNULL4Backtime歸還時(shí)間DatetimeNULL5Expect_BackTime預(yù)期歸還時(shí)間

23、DatetimeNOT NULL6、數(shù)據(jù)庫及基本表結(jié)構(gòu)定義-圖書信息表CREATE TABLE Book_info(Book_id Varchar(14) PRIMARY KEY,Book_name Varchar(30) NOT NULL,Writer Varchar(20),Publish Varchar(20),PublishTime DATETIME,Introduction TEXT,Book_count INTEGER NOT NULL) -讀者信息表CREATE TABLE Reader_info (Card_id Varchar(8) PRIMARY KEY,Name VARC

24、HAR(8) NOT NULL,Writer Varchar(8),Sex VARCHAR(2) ,Unit VARCHAR(20),Email VARCHAR(64),Phone VARCHAR(20)-借書信息表CREATE TABLE Borrow_card (Card_id VARCHAR(8) NOT NULL,Book_id VARCHAR(14) NOT NULL,Lendtime DATETIME,expectBacktime DATETIME,Backtime DATETIME,PRIMARY KEY(Book_id,Card_id), FOREIGN KEY(Book_id

25、) REFERENCES Book_info(Book_id) ON DELETE CASCADE ON UPDATE CASCADE,FOREIGN KEY(Card_id) REFERENCES Reader_info(Card_id) ON DELETE CASCADE ON UPDATE CASCADE) 7、系統(tǒng)總體設(shè)計(jì)在編寫這個(gè)程序的時(shí)候,我們使用了OFFICE辦公軟件中的重要組件access創(chuàng)建數(shù)據(jù)庫,visual studio2005的環(huán)境中編寫了這個(gè)程序。在為期10天的數(shù)據(jù)庫課程設(shè)計(jì)中,我們先對整個(gè)程序做了主題構(gòu)思,確立各個(gè)模塊,逐一完成他們,從而完成整個(gè)程序。圖書管理員可以實(shí)現(xiàn)圖書錄入、查詢、下架,借書記錄添加、查詢、修改以及還書等操作。完成主體構(gòu)思以后我們正式開始制作這個(gè)程序。我們把數(shù)據(jù)庫命名為BOOK(即圖書管理系統(tǒng)),制作了三張數(shù)據(jù)表,在制作界面的時(shí)候我們盡量考慮到界面美觀,在這方面基本沒有遇到問題,然而在書寫代碼的時(shí)候卻出現(xiàn)了很多的問題。8、總結(jié)軟件特點(diǎn):使用時(shí)用戶必須先登錄才可進(jìn)行操作,未注冊的用戶必須先注冊。操作時(shí)用戶通過對話框按鍵來完成所需求的功能遇到問題:1)數(shù)據(jù)庫創(chuàng)建好圖書信息表,讀者信息表及借書信息表后,在程序中添加創(chuàng)用戶表時(shí),數(shù)據(jù)庫中不會(huì)創(chuàng)建這個(gè)表。2)創(chuàng)建了用戶表后在對其進(jìn)行修改和添加時(shí),總是提示語法錯(cuò)誤。 解決方法:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論