圖書(shū)管理系統(tǒng)課程設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
已閱讀1頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論