

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)</p><p><b> 數(shù)據(jù)庫(kù)課程實(shí)驗(yàn)周</b></p><p> 2010年 6 月10日</p><p><b> 1 系統(tǒng)設(shè)計(jì) </b></p><p><b> 1.1設(shè)計(jì)目標(biāo)</b></p>
2、<p> 在學(xué)習(xí)了數(shù)據(jù)庫(kù)原理和SQL Server 2000數(shù)據(jù)庫(kù)管理系統(tǒng)后,采用Visual C++編程語(yǔ)言開(kāi)發(fā)工具,設(shè)計(jì)并實(shí)現(xiàn)圖書(shū)管理系統(tǒng)。</p><p> 本課程的目的是培養(yǎng)學(xué)生數(shù)據(jù)庫(kù)技術(shù)的綜合應(yīng)用能力,通過(guò)設(shè)計(jì)開(kāi)發(fā)一個(gè)小型的數(shù)據(jù)庫(kù)管理系統(tǒng),將原理與應(yīng)用相結(jié)合,鍛煉學(xué)生實(shí)際問(wèn)題的分析、設(shè)計(jì)與編程能力。</p><p> 1.2 開(kāi)發(fā)和運(yùn)行環(huán)境選擇</p>
3、<p> 開(kāi)發(fā)工具: 前臺(tái)開(kāi)發(fā)語(yǔ)言為Visual C++,后臺(tái)數(shù)據(jù)庫(kù)為SQL Server 2000</p><p> 運(yùn)行環(huán)境: windows 2000及更高的操作系統(tǒng) </p><p><b> 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p><b> 2.1 需求描述</b></p><
4、;p> 圖書(shū)管理系統(tǒng)程序運(yùn)行界面分為登陸界面,功能選擇系統(tǒng)主菜單界面兩個(gè)主要界面。使用時(shí)應(yīng)先知道管理員帳號(hào)和密碼,登陸進(jìn)入系統(tǒng)主菜單界面,里面包括用戶信息管理,讀者信息管理,圖書(shū)信息管理,借書(shū)還書(shū)信息管理,關(guān)于系統(tǒng)等五個(gè)菜單選項(xiàng),并其內(nèi)部功能分別對(duì)應(yīng)工具欄中的功能。其中用戶信息管理包括增加用戶、刪除用戶、修改密碼、查詢用戶和退出系統(tǒng)。讀者信息管理包括增加讀者、刪除讀者、修改讀者和查詢讀者。圖書(shū)信息管理包括添加圖書(shū)、刪除圖書(shū)、修改
5、圖書(shū)和查詢圖書(shū)。借書(shū)還書(shū)信息管理包括借書(shū)操作、還書(shū)操作、續(xù)借操作和查詢操作。</p><p> 借書(shū)還書(shū)管理子系統(tǒng)的具體功能目標(biāo)如下:</p><p> (1)借書(shū)操作:用戶借書(shū)后在借出圖書(shū)信息表中添加用戶信息及書(shū)籍信息等,并將圖書(shū)信息表中的數(shù)量減1。</p><p> (2)續(xù)借操作:當(dāng)用戶借閱圖書(shū)后,如需延長(zhǎng)借閱日期則可使用此功能續(xù)借圖書(shū)。</p&g
6、t;<p> (3)還書(shū)操作:用戶歸還書(shū)籍后在借書(shū)表中刪除借出信息,同時(shí)在圖書(shū)信息表中將對(duì)應(yīng)書(shū)籍的數(shù)量加1,便于他人借閱。并在還書(shū)表中增加借書(shū)歷史的信息。</p><p> (4)逾期罰金:歸還書(shū)籍時(shí)如果超過(guò)期限,規(guī)定超過(guò)一天罰0.1元錢(qián)。 </p><p> (5)查詢借書(shū)信息:查詢借書(shū)表中讀者已借的圖書(shū)信息。</p><p><b&g
7、t; 數(shù)據(jù)庫(kù)概念設(shè)計(jì)</b></p><p> 系統(tǒng)功能結(jié)構(gòu)圖:描述系統(tǒng)要實(shí)現(xiàn)的各個(gè)模塊的功能</p><p> 圖1 圖書(shū)管理系統(tǒng)功能結(jié)構(gòu)圖</p><p> 圖2 圖書(shū)管理系統(tǒng)總體E-R圖</p><p> 圖3 圖書(shū)信息表E-R圖</p><p> 圖書(shū)(圖書(shū)編號(hào),圖書(shū)名,價(jià)格,類別
8、名,出版社, 作者, 數(shù)量, ISBN)</p><p> 圖4 讀者信息表E-R圖</p><p> 讀者(借書(shū)證號(hào),姓名,班級(jí),學(xué)號(hào),密碼,性別,到期日期)</p><p> 圖5 管理員表E-圖</p><p> 管理員(用戶名,密碼,權(quán)限)</p><p><b> 數(shù)據(jù)庫(kù)邏輯設(shè)計(jì)<
9、;/b></p><p> 用戶信息表(users):</p><p> 表1 用戶表(users)</p><p> 讀者信息表(reader):</p><p> 表2 讀者表(reader)</p><p> 圖書(shū)信息表(book):</p><p> 表3 圖書(shū)表
10、(book)</p><p> 借書(shū)信息表(jsb):</p><p> 表4 借書(shū)表(jsb)</p><p> 還書(shū)信息表(hsb):</p><p> 表5 還書(shū)表(hsb)</p><p> 3 圖書(shū)管理系統(tǒng)(借書(shū)還書(shū)管理子系統(tǒng))詳細(xì)設(shè)計(jì)</p><p><b>
11、; 3.1登陸界面:</b></p><p><b> 圖6 登陸界面圖</b></p><p> 功能:提供用戶登錄,使用戶能操作圖書(shū)管理系統(tǒng)。</p><p><b> 代碼:</b></p><p> void CLoginDlg::OnLoginbr() //
12、登錄系統(tǒng)</p><p><b> {</b></p><p> CString str1,str2;</p><p> int suc;</p><p> if(m_uet.IsOpen())</p><p> {//打開(kāi)數(shù)據(jù)庫(kù)</p><p>
13、m_uet.Close();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> m_uet.Open();</p><p><b> }</
14、b></p><p> if(!m_uet.CanUpdate())</p><p><b> {</b></p><p> AfxMessageBox(_T("無(wú)法登錄"));</p><p><b> }</b></p><p>&l
15、t;b> else</b></p><p><b> {</b></p><p> GetDlgItemText(IDC_EDIT1,str1);//獲得編輯框中的內(nèi)容</p><p> GetDlgItemText(IDC_EDIT2,str2);</p><p> m_uet.Move
16、First();</p><p> while(!m_uet.IsEOF()){</p><p> m_uet.m_users.Replace(" ","");//去掉空格以便于比較</p><p> m_uet.m_passwd.Replace(" ","");</p&g
17、t;<p> if(m_uet.m_users==str1 && m_uet.m_passwd==str2)//判斷用戶名和密碼</p><p><b> { </b></p><p><b> suc = 1;</b></p><p><b> break;</b&
18、gt;</p><p><b> }</b></p><p><b> else</b></p><p><b> { </b></p><p> m_uet.MoveNext();</p><p><b> }</b>&
19、lt;/p><p><b> }</b></p><p> if(suc==1)</p><p><b> {</b></p><p> OnOK();//用戶名和密碼正確,登錄系統(tǒng)</p><p><b> }</b></p>
20、<p><b> else</b></p><p><b> {</b></p><p> MessageBox("用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入!");</p><p><b> }</b></p><p><b>
21、}</b></p><p> m_uet.Close();</p><p><b> }</b></p><p> void CLoginDlg::OnCancel() //退出系統(tǒng)</p><p><b> {</b></p><p> ExitP
22、rocess(1);</p><p><b> }</b></p><p><b> 3.2主菜單界面:</b></p><p> 圖7 主菜單界面圖</p><p> 功能:主菜單界面包含圖書(shū)管理系統(tǒng)的所有功能,具體如下:</p><p> 1)用戶管理模塊:
23、添加用戶,刪除用戶,修改密碼,查詢用戶信息。</p><p> 2)讀者管理模塊: 添加讀者,刪除讀者,修改讀者信息,查詢讀者信息。</p><p> 3)圖書(shū)管理模塊: 添加圖書(shū),刪除圖書(shū),修改圖書(shū)信息,查詢圖書(shū)信息。</p><p> 4)借書(shū)和還書(shū)操作模塊:借書(shū)操作,還書(shū)操作,續(xù)借操作,查詢借書(shū)信息。</p><p> 借書(shū)還書(shū)
24、子系統(tǒng)界面、功能及實(shí)現(xiàn)代碼如下:</p><p><b> 借書(shū)操作:</b></p><p><b> 借書(shū)操作界面:</b></p><p> 圖8 借書(shū)操作界面圖</p><p> 借書(shū)操作功能:用戶借書(shū)后在借出圖書(shū)信息表中添加用戶信息及書(shū)籍信息等,并將圖書(shū)信息表中對(duì)應(yīng)圖書(shū)的數(shù)量減1
25、。</p><p><b> 借書(shū)操作代碼:</b></p><p> void CLibraryView::OnBorrowsys() //響應(yīng)借書(shū)操作模態(tài)對(duì)話框</p><p><b> {</b></p><p> CBorrowDlg bordlg;</p><
26、p> bordlg.DoModal();</p><p><b> }</b></p><p> void CBorrowDlg::OnBorrow() //借書(shū)操作</p><p><b> {</b></p><p> CTime time=CTime::GetCurrentT
27、ime();//獲得系統(tǒng)當(dāng)前時(shí)間</p><p> int m=0,suc=0,success=0;//定義變量</p><p> CString str;</p><p> if(m_jet.IsOpen()){//打開(kāi)數(shù)據(jù)庫(kù)</p><p> m_jet.Close();</p><p><b
28、> }</b></p><p><b> else{</b></p><p> m_jet.Open();</p><p><b> }</b></p><p> if(!m_jet.CanUpdate()){</p><p> AfxMessa
29、geBox(_T("不能完成借書(shū)功能!"));</p><p><b> }</b></p><p><b> else{</b></p><p> m_jet.MoveLast();//將記錄移到最后</p><p> m_jet.AddNew();//增
30、加新紀(jì)錄</p><p> UpdateData(TRUE);//更新數(shù)據(jù)庫(kù)記錄</p><p> m_jet.m_reader_code = m_borrow1;</p><p> m_jet.m_book_code = m_borrow2;</p><p> str=m_jet.m_book_code;</p>
31、<p> m_jet.m_borrow_date =time;</p><p> if(time.GetMonth()==2){</p><p><b> m=28;</b></p><p><b> }</b></p><p> else if(time.GetMonth()
32、==4||time.GetMonth()==6||time.GetMonth()==9||time.GetMonth()==11){</p><p><b> m=30;</b></p><p><b> }</b></p><p><b> else{</b></p><p
33、><b> m=31;</b></p><p><b> }</b></p><p> CTimeSpan tmsp(m,0,0,0);</p><p> time = time+tmsp;</p><p> m_jet.m_return_date = time;</p>
34、<p> UpdateData(FALSE);</p><p> m_jet.Update();</p><p> m_jet.Close();</p><p><b> }</b></p><p> if(m_jbet.IsOpen()){//打開(kāi)數(shù)據(jù)庫(kù)</p><p&g
35、t; m_jbet.Close();</p><p><b> }</b></p><p><b> else{</b></p><p> m_jbet.Open();</p><p><b> }</b></p><p> if(!m_jb
36、et.CanUpdate()){</p><p> AfxMessageBox(_T("不能完成借書(shū)功能!"));</p><p><b> }</b></p><p><b> else{</b></p><p> m_jbet.MoveFirst();</p
37、><p> while (!m_jbet.IsEOF()) {//判斷是否到達(dá)最后一條記錄</p><p> m_jbet.m_book_code.Replace(" ","");</p><p> if(m_jbet.m_book_code!=str){//找到當(dāng)前借出圖書(shū)的信息</p><p&
38、gt; m_jbet.MoveNext();</p><p><b> }</b></p><p><b> else{</b></p><p> success=1;</p><p><b> suc=1;</b></p><p><b
39、> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(success==1)</p><p><b> {</b></p><p> m_jbet.E
40、dit();</p><p> m_jbet.m_num=m_jbet.m_num-1;//將當(dāng)前圖書(shū)數(shù)量減1</p><p> m_jbet.Update();</p><p> m_jbet.Close();//關(guān)閉數(shù)據(jù)庫(kù)</p><p><b> }</b></p><p>
41、;<b> }</b></p><p> if(suc==1)</p><p><b> {</b></p><p> MessageBox("借書(shū)成功!");</p><p><b> }</b></p><p>&
42、lt;b> else</b></p><p><b> {</b></p><p> MessageBox("借書(shū)失敗!");</p><p><b> }</b></p><p> m_pbt->Invalidate();//重繪窗口<
43、;/p><p><b> }</b></p><p><b> 還書(shū)操作:</b></p><p><b> 還書(shū)操作界面:</b></p><p> 圖9 還書(shū)操作界面圖</p><p> 還書(shū)操作功能:用戶歸還書(shū)籍后在借書(shū)表中刪除借出信息,同
44、時(shí)在圖書(shū)信息表中將對(duì)應(yīng)書(shū)籍的數(shù)量加1,便于他人借閱,若所借圖書(shū)超出限制歸還的期限應(yīng)繳納罰款金額,并在還書(shū)表中增加借書(shū)歷史信息。</p><p><b> 還書(shū)操作代碼:</b></p><p> void CLibraryView::OnReturnsys() //響應(yīng)還書(shū)操作模態(tài)對(duì)話框</p><p><b> {<
45、/b></p><p> CReturnDlg retdlg;</p><p> retdlg.DoModal();</p><p><b> }</b></p><p> void CReturnDlg::OnReturn() //還書(shū)操作</p><p><b>
46、{</b></p><p> CString edit1,edit2,str,str1,str2,str3;//定義變量</p><p><b> CTime t1;</b></p><p> int suc=0,success=0;</p><p> if(m_jret.IsOpen())
47、//打開(kāi)數(shù)據(jù)庫(kù)借書(shū)表</p><p> m_jret.Close();</p><p> m_jret.Open();</p><p> if (!m_jret.CanUpdate())</p><p><b> {</b></p><p> AfxMessageBox(_T("
48、;無(wú)法完成還書(shū)功能!"));</p><p><b> }</b></p><p> if(m_ret.IsOpen())//打開(kāi)數(shù)據(jù)庫(kù)還書(shū)表</p><p> m_ret.Close();</p><p> m_ret.Open();</p><p> if(!m_re
49、t.CanUpdate())</p><p><b> {</b></p><p> AfxMessageBox(_T("無(wú)法完成還書(shū)功能!"));</p><p><b> }</b></p><p> CTime time=CTime::GetCurrentTime(
50、);//獲得系統(tǒng)當(dāng)前時(shí)間</p><p> UpdateData();</p><p> GetDlgItemText(IDC_EDIT2,edit1);//獲得編輯框中的內(nèi)容</p><p> GetDlgItemText(IDC_EDIT3,edit2);</p><p> m_jret.MoveFirst();</
51、p><p> while(!m_jret.IsEOF())//判斷是否到最后一條記錄</p><p><b> {</b></p><p> m_jret.m_reader_code.Replace(" ","");//合并空格</p><p> m_jret.m_boo
52、k_code.Replace(" ","");</p><p> if(m_jret.m_reader_code==edit1 && m_jret.m_book_code==edit2){//比較</p><p> t1=m_jret.m_return_date;</p><p><b> s
53、uc=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p> m_jret.MoveNext();//下移一條表中記錄</p><
54、;p><b> }</b></p><p> if(suc==1)</p><p><b> {</b></p><p> m_ret.MoveLast();</p><p> m_ret.AddNew();//在還書(shū)表中增加借書(shū)歷史記錄</p><p>
55、; m_ret.m_reader_code = m_return1;</p><p> m_ret.m_book_code = m_return2;</p><p> str=m_ret.m_book_code;</p><p> m_ret.m_return_date=time;</p><p> str1=m_ret.m_ret
56、urn_date.Format(_T("%Y-%m-%d %H:%M:%S"));//時(shí)間類型轉(zhuǎn)換為字符串類型</p><p> SetDlgItemText(IDC_EDIT4,str1);</p><p> m_ret.m_limite_date = t1;</p><p> str2=m_ret.m_limite_date.Forma
57、t(_T("%Y-%m-%d %H:%M:%S"));</p><p> SetDlgItemText(IDC_EDIT5,str2);</p><p> CTime begin=m_ret.m_return_date;</p><p> CTime end=m_ret.m_limite_date;</p><p>
58、 int y1=begin.GetYear();//獲得年</p><p> int y2=end.GetYear();</p><p> int m1=begin.GetMonth();//獲得月</p><p> int m2=end.GetMonth();</p><p> int d1=begin.GetDay();
59、//獲得日</p><p> int d2=end.GetDay();</p><p> int num=(y2*365+m2*30+d2*1)-(y1*365+m1*30+d1*1);</p><p> float mon;</p><p> mon=num*0.1-3;//計(jì)算罰金</p><p>
60、 m_ret.m_punish=mon;</p><p> str3.Format("%f",m_ret.m_punish);</p><p> SetDlgItemText(IDC_EDIT6,str3);</p><p> m_ret.Update();</p><p> MessageBox("還書(shū)
61、成功!");</p><p> m_ret.Close();//關(guān)閉數(shù)據(jù)庫(kù)還書(shū)表</p><p> m_jret.MoveFirst();</p><p> while(!m_jret.IsEOF())</p><p><b> {</b></p><p> m_jret.
62、m_reader_code.Replace(" ","");</p><p> m_jret.m_book_code.Replace(" ","");</p><p> if(m_jret.m_reader_code==edit1 && m_jret.m_book_code==edit2)&
63、lt;/p><p><b> {</b></p><p> m_jret.Delete();//刪除借書(shū)表中的信息</p><p><b> break;</b></p><p><b> }</b></p><p><b> else
64、</b></p><p> m_jret.MoveNext();</p><p><b> }</b></p><p> m_jret.Close();//關(guān)閉借書(shū)表</p><p><b> }</b></p><p><b> else
65、</b></p><p><b> {</b></p><p> MessageBox("歸還失敗!");</p><p><b> }</b></p><p> if(m_bret.IsOpen())//打開(kāi)圖書(shū)表</p><p>
66、;<b> {</b></p><p> m_bret.Close();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> m_
67、bret.Open();</p><p><b> }</b></p><p> if(!m_bret.CanUpdate())</p><p><b> {</b></p><p> AfxMessageBox(_T("不能完成借書(shū)功能!"));</p>
68、<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> m_bret.MoveFirst();</p><p> while (!m_bret.IsEOF()) {</p&g
69、t;<p> m_bret.m_book_code.Replace(" ","");</p><p> if(m_bret.m_book_code!=str)</p><p><b> {</b></p><p> m_bret.MoveNext();</p><
70、p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> success=1;</p><p><b> break;</b></p><p>&l
71、t;b> }</b></p><p><b> }</b></p><p> if(success==1)</p><p><b> {</b></p><p> m_bret.Edit();</p><p> m_bret.m_num=m_b
72、ret.m_num+1;//圖書(shū)表中對(duì)應(yīng)圖書(shū)數(shù)量加1</p><p> m_bret.Update();</p><p> m_bret.Close();//關(guān)閉圖書(shū)表</p><p><b> }</b></p><p><b> }</b></p><p&g
73、t; m_prt->Invalidate();</p><p><b> }</b></p><p><b> 續(xù)借操作:</b></p><p><b> 續(xù)借操作界面:</b></p><p> 圖10 續(xù)借操作界面圖</p><p
74、> 續(xù)借操作功能:當(dāng)用戶借閱圖書(shū)后,如需延長(zhǎng)借閱日期則可使用此功能續(xù)借圖書(shū)。</p><p><b> 續(xù)借操作代碼:</b></p><p> void CLibraryView::OnReborrowbook() //響應(yīng)續(xù)借操作模態(tài)對(duì)話框</p><p><b> {</b></p>&
75、lt;p> CReborrowDlg reborrowdlg;</p><p> reborrowdlg.DoModal();</p><p><b> }</b></p><p> void CReborrowDlg::OnReborrow() //續(xù)借操作</p><p><b> {&l
76、t;/b></p><p> CString edit1,edit2;//定義變量</p><p> CTime time;</p><p><b> int m;</b></p><p><b> BOOL suc;</b></p><p> if(m_
77、rbet.IsOpen())//打開(kāi)數(shù)據(jù)庫(kù)借書(shū)表</p><p> m_rbet.Close();</p><p> m_rbet.Open();</p><p> if (!m_rbet.CanUpdate())</p><p><b> {</b></p><p> AfxMes
78、sageBox(_T("無(wú)法修改數(shù)據(jù)庫(kù)記錄"));</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> GetDlgItemText(IDC_EDIT1,edit1
79、);//獲得編輯框的內(nèi)容</p><p> GetDlgItemText(IDC_EDIT2,edit2);</p><p> m_rbet.MoveFirst();</p><p> while(!m_rbet.IsEOF()){</p><p> m_rbet.m_reader_code.Replace(" "
80、;,"");//合并空格</p><p> m_rbet.m_book_code.Replace(" ","");</p><p> if(m_rbet.m_reader_code != edit1 && m_rbet.m_book_code!=edit2)</p><p><b
81、> {</b></p><p> m_rbet.MoveNext();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>&l
82、t;b> suc=true;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(suc)</b></p>
83、;<p><b> {</b></p><p> m_rbet.Edit();</p><p> time=m_rbet.m_return_date;</p><p> if(time.GetMonth()==2)</p><p><b> m=28;</b></p
84、><p><b> else</b></p><p> if(time.GetMonth()==4||time.GetMonth()==6||time.GetMonth()==9||time.GetMonth()==11)</p><p><b> m=30;</b></p><p><b&
85、gt; else</b></p><p><b> m=31;</b></p><p> CTimeSpan tmsp(m,0,0,0);</p><p> time = time+tmsp;</p><p> m_rbet.m_return_date = time;//續(xù)借一個(gè)月</p&g
86、t;<p> m_rbet.Update();</p><p><b> }</b></p><p><b> else</b></p><p> MessageBox("無(wú)此圖書(shū)或?qū)W號(hào),請(qǐng)重新輸入!");</p><p> m_rbet.Close();
87、</p><p> MessageBox("續(xù)借成功!");</p><p> m_prbt->Invalidate(); //重繪窗口</p><p><b> }</b></p><p><b> }</b></p><p><
88、b> 查詢操作:</b></p><p><b> 查詢操作界面:</b></p><p> 圖11 查詢操作界面圖</p><p> 查詢操作功能:查詢借書(shū)表中讀者已借的圖書(shū)信息。</p><p><b> 查詢操作代碼:</b></p><p&
89、gt; void CLibraryView::OnChecksys() </p><p><b> {</b></p><p> CcheckDlg chedlg;</p><p> Chedlg.DoModal();</p><p><b> }</b></p><p
90、> void CCheckDlg::OnCheck() //查詢讀者借書(shū)信息</p><p><b> {</b></p><p> CString edit1,str1,str2;//定義變量</p><p> int suc=0;</p><p> if(m_cet.IsOpen())</
91、p><p> {//打開(kāi)數(shù)據(jù)庫(kù)借書(shū)表</p><p> m_cet.Close();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p&g
92、t; m_cet.Open();</p><p><b> }</b></p><p> if (!m_cet.CanUpdate())</p><p><b> {</b></p><p> AfxMessageBox(_T("無(wú)法查詢數(shù)據(jù)庫(kù)記錄"));</p&
93、gt;<p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> GetDlgItemText(IDC_EDIT5,edit1);//獲得編輯框中的內(nèi)容</p><p> m_cet
94、.MoveFirst();</p><p> while(!m_cet.IsEOF()){</p><p> m_cet.m_reader_code.Replace(" ","");//合并空格</p><p> if(m_cet.m_reader_code != edit1)//比較借書(shū)證號(hào)是否匹配</p
95、><p><b> {</b></p><p> m_cet.MoveNext();</p><p><b> }</b></p><p><b> Else</b></p><p><b> {</b></p
96、><p><b> suc=1;</b></p><p> break;</p><p><b> }</b></p><p><b> }</b></p><p> if(suc==1)</p><p> {
97、//若匹配則返回借書(shū)信息</p><p> SetDlgItemText(IDC_EDIT1,m_cet.m_reader_code);</p><p> SetDlgItemText(IDC_EDIT2,m_cet.m_book_code);</p><p> str1=m_cet.m_borrow_date.Format(_T("%Y-%m-%d
98、 %H:%M:%S")); </p><p> SetDlgItemText(IDC_EDIT3,str1);</p><p> str2=m_cet.m_return_date.Format(_T("%Y-%m-%d %H:%M:%S")); </p><p> SetDlgItemText(IDC_EDIT4,str2);&
99、lt;/p><p> UpdateData();</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> MessageBox("此同學(xué)未借書(shū)或無(wú)此學(xué)號(hào),請(qǐng)
100、重新輸入!");</p><p><b> }</b></p><p> m_cet.Close();//關(guān)閉數(shù)據(jù)庫(kù)借書(shū)表</p><p> m_pct->Invalidate(); //重繪窗口</p><p><b> }</b></p><p
101、><b> }</b></p><p><b> 關(guān)于系統(tǒng):</b></p><p><b> 關(guān)于系統(tǒng)界面:</b></p><p> 圖12 關(guān)于系統(tǒng)界面圖</p><p> 關(guān)于系統(tǒng)的功能:介紹開(kāi)發(fā)環(huán)境和運(yùn)行環(huán)境。</p><p>
102、;<b> 關(guān)于系統(tǒng)的代碼:</b></p><p> void CLibraryView::OnHelpdlg() </p><p><b> {</b></p><p> CIntroDlg introdlg;</p><p> introdlg.DoModal();</p>
103、;<p><b> }</b></p><p><b> 4 系統(tǒng)測(cè)試</b></p><p> 4.1借書(shū)操作測(cè)試:</p><p> 測(cè)試方法:輸入一讀者表中存在的借書(shū)證號(hào)和一圖書(shū)表中存在的圖書(shū)編號(hào)點(diǎn)擊借書(shū)進(jìn)行測(cè)試,若提示借書(shū)成功信息,且借書(shū)表中對(duì)應(yīng)的添加了一條新紀(jì)錄,同時(shí)圖書(shū)表對(duì)應(yīng)圖書(shū)編號(hào)的圖
104、書(shū)數(shù)量減1,若以上兩條均已實(shí)現(xiàn),則證明借書(shū)操作正確,否則借書(shū)操作不正確。</p><p> 測(cè)試數(shù)據(jù):以借書(shū)證號(hào):00001,圖書(shū)編號(hào):55555為例,測(cè)試結(jié)果如下:</p><p> 圖13 借書(shū)操作測(cè)試界面圖</p><p> 經(jīng)查看表,執(zhí)行借書(shū)操作前,圖書(shū)表中圖書(shū)編號(hào)為55555的圖書(shū)數(shù)量為4,執(zhí)行借書(shū)操作后此編號(hào)的圖書(shū)數(shù)量為3,且借書(shū)表中對(duì)應(yīng)增加了一
105、條信息。</p><p> 測(cè)試結(jié)論:經(jīng)反復(fù)測(cè)試由測(cè)試數(shù)據(jù)可知:借書(shū)操作功能已經(jīng)實(shí)現(xiàn)。</p><p> 4.2還書(shū)操作測(cè)試:</p><p> 測(cè)試方法:輸入一借書(shū)表中的借書(shū)證號(hào)和對(duì)應(yīng)的圖書(shū)編號(hào)點(diǎn)擊還書(shū)進(jìn)行測(cè)試,若提示還書(shū)成功信息,且查詢還書(shū)表中對(duì)應(yīng)的添加了一條新紀(jì)錄,同時(shí)圖書(shū)表對(duì)應(yīng)圖書(shū)編號(hào)的圖書(shū)數(shù)量是否加1,并且借書(shū)表中對(duì)應(yīng)此條信息已經(jīng)刪除,若以上三條均已
106、實(shí)現(xiàn),則證明還書(shū)操作正確,否則還書(shū)操作不正確。</p><p> 測(cè)試數(shù)據(jù):以借書(shū)證號(hào):00001,圖書(shū)編號(hào):55555為例,測(cè)試結(jié)果如下:</p><p> 圖14 還書(shū)操作測(cè)試界面圖</p><p> 經(jīng)查看表,執(zhí)行還書(shū)操作前,圖書(shū)表中圖書(shū)編號(hào)為55555的圖書(shū)數(shù)量為3,執(zhí)行借書(shū)操作后此編號(hào)的圖書(shū)數(shù)量為4,且借書(shū)表中對(duì)應(yīng)以上借書(shū)證號(hào)和圖書(shū)編號(hào)的信息已經(jīng)刪
107、除,同時(shí)在還書(shū)表中增加了一條對(duì)應(yīng)的信息。</p><p> 測(cè)試結(jié)論:經(jīng)反復(fù)測(cè)試由測(cè)試數(shù)據(jù)可知:還書(shū)操作功能已經(jīng)實(shí)現(xiàn)。</p><p> 4.3續(xù)借操作測(cè)試:</p><p> 測(cè)試方法:輸入一借書(shū)表中的借書(shū)證號(hào)和對(duì)應(yīng)的圖書(shū)編號(hào)點(diǎn)擊續(xù)借進(jìn)行測(cè)試,若提示續(xù)借成功信息,并且借書(shū)表中的應(yīng)還日期增加了一個(gè)月。則證明續(xù)借操作正確,否則不正確。</p>&l
108、t;p> 測(cè)試數(shù)據(jù):以借書(shū)證號(hào):11111,圖書(shū)編號(hào):11111為例,測(cè)試結(jié)果如下:</p><p> 圖15 還書(shū)操作測(cè)試界面圖</p><p> 經(jīng)查看表,執(zhí)行續(xù)借操作前應(yīng)還日期為2010-5-22,執(zhí)行還書(shū)操作后應(yīng)還日期為2010-6-22</p><p> 測(cè)試結(jié)論:經(jīng)反復(fù)測(cè)試由測(cè)試數(shù)據(jù)可知:續(xù)借操作功能已經(jīng)實(shí)現(xiàn)。</p>&l
109、t;p> 4.4查詢操作測(cè)試:</p><p> 測(cè)試方法:輸入一借書(shū)表中的借書(shū)證號(hào)點(diǎn)擊查詢進(jìn)行測(cè)試,若在查詢系統(tǒng)的編輯框中成功顯示查詢到的信息,或提示“無(wú)此借書(shū)證號(hào), 請(qǐng)重新輸入”,則證明還書(shū)操作正確,否則還書(shū)操作不正確。</p><p> 測(cè)試數(shù)據(jù):以借書(shū)證號(hào):00001為例,測(cè)試結(jié)果如下:</p><p> 圖16 續(xù)借操作測(cè)試界面圖</
110、p><p> 查詢系統(tǒng)的編輯框中成功顯示查詢到的信息,且按上一條下一條能查看其他信息。</p><p> 測(cè)試結(jié)論:經(jīng)反復(fù)測(cè)試由測(cè)試數(shù)據(jù)可知:查詢操作功能已經(jīng)實(shí)現(xiàn)。</p><p><b> 5 個(gè)人體會(huì)</b></p><p> 學(xué)校為了提高我們的實(shí)踐能力,讓我們學(xué)以致用,能靈活運(yùn)用所學(xué)的知識(shí)進(jìn)行編程實(shí)現(xiàn)一些小
111、的程序,特安排我們進(jìn)行為期兩周的數(shù)據(jù)庫(kù)的課程設(shè)計(jì),并安排了指導(dǎo)老師幫助輔導(dǎo),讓我們?cè)谝?guī)范化、嚴(yán)謹(jǐn)化、實(shí)用化上面有了很大進(jìn)展。</p><p> 通過(guò)本次數(shù)據(jù)庫(kù)課程設(shè)計(jì),我掌握了用Visual C++作為前臺(tái)語(yǔ)言對(duì)數(shù)據(jù)庫(kù)的操作方法,例如:增加數(shù)據(jù)庫(kù)記錄的AddNew()方法,刪除數(shù)據(jù)庫(kù)記錄的Delete()方法以及修改數(shù)據(jù)庫(kù)記錄的Edit()方法等。明白了定義一些變量或?qū)ο髸r(shí)一定要注意它是否包含這個(gè)類的頭文件。若
112、未包含則一定要手工將頭文件包含進(jìn)來(lái)。例如:在類CBorrewDlg中定義變量CLibraryView* m_pbt;時(shí)一定要在這個(gè)類中增加頭文件#include "LibraryView.h",否則將會(huì)出現(xiàn)錯(cuò)誤。知道了視圖類和文檔類相關(guān)聯(lián)的方法。同時(shí)經(jīng)過(guò)學(xué)習(xí)知道了很多控件的使用方法。</p><p> 在此次圖書(shū)管理系統(tǒng)的開(kāi)發(fā)過(guò)程中,也遇到了許多的問(wèn)題比如:數(shù)據(jù)庫(kù)連接錯(cuò)誤,對(duì)象方法名搞不清,
113、控件其屬性理解不到位,但經(jīng)過(guò)認(rèn)真思考并在老師和同學(xué)的幫助下順利完成了本次設(shè)計(jì),這次設(shè)計(jì)我從中學(xué)到了很多東西。</p><p> 總之,在通過(guò)真正動(dòng)手之后,我Visual C++語(yǔ)言設(shè)計(jì)和有關(guān)它的操作方面都獲益匪淺,但離真正的系統(tǒng)開(kāi)發(fā)軟件設(shè)計(jì)還是很有差別的,需要我們不斷學(xué)習(xí)新的知識(shí)擴(kuò)充自己才能做好這一工作。</p><p> 學(xué)無(wú)止境,我們現(xiàn)在了解的東西還很少,更別說(shuō)很好的掌握自己的專業(yè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- oracle課程設(shè)計(jì)說(shuō)明書(shū)--圖書(shū)管理系統(tǒng)
- 圖書(shū)管理系統(tǒng)概要設(shè)計(jì)說(shuō)明書(shū)
- 圖書(shū)管理系統(tǒng)概要設(shè)計(jì)說(shuō)明書(shū)
- 圖書(shū)管理系統(tǒng)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)
- 圖書(shū)管理系統(tǒng)界面設(shè)計(jì)說(shuō)明書(shū)
- 圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- 圖書(shū)銷售管理系統(tǒng)-java課程設(shè)計(jì)說(shuō)明書(shū)
- 《圖書(shū)管理系統(tǒng)》課程設(shè)計(jì)
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì)
- 課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- vfp圖書(shū)館管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)
- 課程設(shè)計(jì)報(bào)告書(shū)--圖書(shū)管理管理系統(tǒng)
- 課程設(shè)計(jì)---課程設(shè)計(jì)圖書(shū)管理系統(tǒng)
- c課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)課程設(shè)計(jì)
- 圖書(shū)管理系統(tǒng)課程設(shè)計(jì) (2)
- java課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論