圖書管理系統(tǒng)數(shù)據(jù)庫課程設計_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  課程設計說明書(論文)</p><p>  題 目 圖書管理系統(tǒng) </p><p>  課 程 名 稱 數(shù)據(jù)庫系統(tǒng)概論 </p><p>  專 業(yè) 信息與計算科學 </p><p>  班 級 </p&

2、gt;<p>  設計起止時間:2012年05月21日至2012年06月01日</p><p><b>  目錄</b></p><p><b>  摘 要3</b></p><p><b>  一、需求分析4</b></p><p> ?。ㄒ唬⒖傮w功能

3、設計4</p><p>  (二)、登錄模版設計4</p><p>  (三)、管理員模塊設計5</p><p> ?。ㄋ模?、讀者模塊設計9</p><p>  二、概念結構設計11</p><p>  三、邏輯結構設計12</p><p>  (一)、讀者信息表12</

4、p><p>  (二)、管理員信息表12</p><p> ?。ㄈ?、圖書信息表12</p><p> ?。ㄋ模?、借閱信息表13</p><p>  四、功能模塊設計14</p><p> ?。ㄒ唬?、登錄界面14</p><p>  (二)、管理員模塊15</p><

5、;p> ?。ㄈ?、讀者模塊22</p><p><b>  五、附錄25</b></p><p><b>  摘 要</b></p><p>  二十一世紀是信息的社會,信息作為社會最主要的資源,將成為戰(zhàn)略資源引起人們廣泛的關注。如何獲取信息?圖書是我們最好的獲取信息的方式,但由于圖書館圖書收藏量大大增加,使

6、傳統(tǒng)的圖書管理員的工作日益繁重。迫使人們起用新的管理方法來管理圖書,如何把圖書管理員從繁重的工作中解脫出來呢?</p><p>  本課程設計是一個圖書信息管理系統(tǒng)的后臺數(shù)據(jù)庫的設計,首先要查閱資料對圖書領域的基本知識有一定的認識,了解用戶各個方面的需求,包括現(xiàn)有的以及將來的可能增加的需求。</p><p>  因此本人結合開入式圖書館的要求,對MS SQL Server2000數(shù)據(jù)庫管理

7、系統(tǒng)、SQL語言原理、Delphi應用程序設計,Delphi數(shù)據(jù)庫技術進行了較深入的學習和應用,按照數(shù)據(jù)庫設計的四個階段進行設計:需求分析、概念結構設計、邏輯結構設計、功能模塊設計。</p><p>  數(shù)據(jù)庫在各種信息的提供、保存、更新和查詢方面都要求滿足各種信息的輸出和輸入,符合用戶的需求。</p><p>  另外,本系統(tǒng)適用于學校圖書館圖書的管理。</p><p

8、>  關鍵詞:圖書管理系統(tǒng);SQL語言;MS SQL Server2000;Delphi7</p><p><b>  需求分析</b></p><p> ?。ㄒ唬⒖傮w功能設計</p><p> ?。ǘ?、登錄模版設計</p><p>  窗口用于用戶登錄圖書管理系統(tǒng),當用戶輸入的用戶名和密碼不正確時,則提示輸入

9、錯誤信息,回到登入界面,當用戶名和密碼正確時,則登錄相應的界面。如下圖所示</p><p> ?。ㄈ⒐芾韱T模塊設計</p><p><b>  3.1讀者信息處理</b></p><p><b>  讀者信息查詢</b></p><p>  學生信息查詢子模塊主要是對讀者信息的查詢。通過對證件號

10、,讀者姓名,系別等關鍵字的檢索,快速檢索出讀者的信息,并顯示在表格中。</p><p><b>  讀者信息修改</b></p><p>  這個模塊是針對用戶信息需要更新修改設置的模塊。比如密碼重新設置,讀者系別改變等,都需要進行信息的修改,以及時保證數(shù)據(jù)庫里的信息的最新的。讀者信息的修改,需要先數(shù)據(jù)庫中選出需要更新的讀者,然后修改其信息,最后保存到數(shù)據(jù)庫中,做完之

11、后通過打開數(shù)據(jù)庫里的信息表,驗證信息是否更新。</p><p><b>  增加讀者</b></p><p>  在新增讀者界面中通過錄入新增讀者基本信息,將這些信息插入讀者表中,即可完成新增讀者的模塊要求。</p><p><b>  注銷讀者</b></p><p>  某讀者因證件號過期或其他

12、原因需要注銷,則首先通過關鍵字查找到某讀者,確認該讀者后進行注銷操作,并更新到數(shù)據(jù)庫中,將該讀者保存的信息刪除即達到本模塊需求。</p><p><b>  3.2圖書信息處理</b></p><p><b>  圖書查詢</b></p><p>  圖書信息查詢子模塊主要是對圖書信息的查詢。該模塊通過對證件號,讀者姓名,

13、系別等關鍵字的檢索,快速檢索出讀者的信息,并顯示在表格中。</p><p><b>  圖書信息修改</b></p><p>  這個模塊是針對圖書信息需要更新修改設置的模塊。圖書信息的修改,需要先從數(shù)據(jù)庫中選出需要更新的圖書,然后修改其信息,最后保存到數(shù)據(jù)庫中,做完之后通過打開數(shù)據(jù)庫里的信息表,驗證信息是否更新。</p><p><b&

14、gt;  增加圖書</b></p><p>  在新增圖書界面中通過錄入新增圖書基本信息,將這些信息插入圖書表中,即可完成新增圖書的模塊要求。</p><p><b>  注銷圖書</b></p><p>  該模塊主要是針對圖書注銷業(yè)務,通過管理員對圖書注銷,注銷圖書后,將進行更新數(shù)據(jù)庫的操作。</p><p&

15、gt;<b>  3.3借閱信息處理</b></p><p><b>  借書事務。</b></p><p>  該模塊主要是處理讀者借書業(yè)務,在圖書館管理人員選擇讀者和圖書信息的時候,系統(tǒng)會根據(jù)讀者和圖書表對該其進行查詢,系統(tǒng)根據(jù)欠費情況對該讀者的欠款情況進行查詢,如果有欠款、讀者借書量達到最大或者圖書已全部借出,則給出提示,否則接受借書,更新

16、借閱表,在顯示器上面顯示借書成功。</p><p><b>  還書事務。</b></p><p>  該模塊主要是處理讀者還書業(yè)務,在圖書館管理人員輸入要還的圖書和讀者字段時,系統(tǒng)會在借閱目錄中查找該圖書信息,選中某條借閱信息后,處理還書,對借閱目錄,學生文件中的該學生已借書數(shù),圖書目錄借閱量進行更新。</p><p><b>  

17、借閱查詢</b></p><p>  該模塊為主要針對圖書借閱信息的查詢,通過輸入讀者證件號、姓名,圖書編號、名稱進行檢索信息,從借閱目錄中檢索出恰當?shù)男畔⑤斎腼@示。 </p><p> ?。ㄋ模?、讀者模塊設計</p><p><b>  讀者信息修改</b></p><p>  該模塊是正對讀者個人信息進行

18、修改,將修改的結果返回數(shù)據(jù)庫,而其中主要是對讀者系統(tǒng)登錄密碼的修改,其過程需要先輸入登錄的原始密碼,再輸入新密碼,最后確認密碼結束,如果其中有信息輸入錯誤,則會跳出提示窗口。告知其提示信息。</p><p><b>  圖書查詢</b></p><p>  該模塊的設計與管理員對圖書的查詢操作一致,不再重復。</p><p><b>

19、  借閱信息查詢</b></p><p>  該模塊與管理員的查詢類似,只是減少了讀者信息的查詢,不再重復。</p><p><b>  繳納罰金</b></p><p>  該模塊可供讀者對自己所欠罰金進行繳納,確認繳納后,只需更新讀者目錄中的欠費情況即可。</p><p><b>  讀者續(xù)借操

20、作</b></p><p>  主要是根據(jù)得到讀者借閱信息,獲取需要續(xù)借的圖書,根據(jù)得到的圖書,在續(xù)借過程需要進行判斷。進行續(xù)借操作的讀者是否已經續(xù)借過或者欠費。如果是,彈出提示信息,說明讀者不能進行續(xù)借操作。</p><p><b>  概念結構設計</b></p><p><b>  總體E-R圖如下:</b&g

21、t;</p><p><b>  邏輯結構設計</b></p><p><b> ?。ㄒ唬?、讀者信息表</b></p><p>  該表為讀者的基本信息表,供讀者登錄系統(tǒng)、管理員增加、查詢、修改、注銷使用,同時在借書、還書與續(xù)借、繳納罰金時也有用到。</p><p>  (二)、管理員信息表<

22、/p><p>  該表供管理員登錄使用,同時修改管理員密碼時有更新操作。</p><p><b> ?。ㄈ?、圖書信息表</b></p><p>  該表為圖書的基本信息表,供讀者與管理員查詢操作,同時管理員還有權限進行增加、修改、注銷,同時在借書、還書與續(xù)借時也有更新。</p><p><b> ?。ㄋ模?、借閱信

23、息表</b></p><p>  該表為圖書的借閱信息表,供讀者與管理員查詢借閱信息時使用,在借書與還書時對該表進行更新。</p><p><b>  功能模塊設計</b></p><p><b> ?。ㄒ唬?、登錄界面</b></p><p>  if RadioButton1.Chec

24、ked=true //選擇管理員登錄</p><p>  ADOQuery1.SQL.Add('select * from 管理員信息表 where 管理員=:b');</p><p>  ADOQuery1.Parameters.ParamByName('b').Value:=edit1.Text;</p><p>

25、;  if trim(ADOQuery1.Fields[1].AsString)=edit2.Text //判斷密碼正確與否</p><p>  form2.show;</p><p><b>  else</b></p><p>  application.MessageBox('用戶名或密碼錯誤,請重新輸入!','

26、;提示',mb_ok);</p><p>  else if RadioButton3.Checked=true //選擇讀者登錄</p><p>  then begin</p><p>  ADOQuery1.SQL.Add('select * from 讀者信息表 where 證件號=:a');</p><

27、;p>  ADOQuery1.Parameters.ParamByName('a').Value:=edit1.Text;</p><p>  if ADOQuery1.Fields[7].Value<datetostr(date) //判斷有效期是否超期</p><p>  application.MessageBox('您的證件有效期已過!&

28、#39;,'錯誤操作',mb_ok)</p><p><b>  else</b></p><p>  if trim(ADOQuery1.Fields[8].AsString)=edit2.Text //判斷密碼正確與否</p><p>  form3.Show; </p><p><b>

29、  else</b></p><p>  application.MessageBox('用戶名或密碼錯誤,請重新輸入!','提示',mb_ok); </p><p><b> ?。ǘ⒐芾韱T模塊</b></p><p><b>  讀者查詢</b></p>&l

30、t;p>  sqlstr:=' where (1=1)'; //查詢條件選擇</p><p>  if edit1.Text<>'' then sqlstr:=sqlstr+' and (證件號 like''%'+edit1.Text+'%'')';</p><p>

31、;  if edit2.Text<>'' then sqlstr:=sqlstr+' and (姓名 like''%'+edit2.Text+'%'')';</p><p>  if combobox2.Text<>'' then sqlstr:=sqlstr+' and (系別 lik

32、e''%'+combobox2.Text+'%'')';</p><p>  if combobox1.Text<>'' then sqlstr:=sqlstr+' and (類型 like''%'+combobox1.Text+'%'')';</p>

33、<p>  ADOQuery1.SQL.Add('select * from 讀者信息表');</p><p>  ADOQuery1.SQL.Add(sqlstr);</p><p>  if ADOQuery1.RecordCount=0 then</p><p>  application.MessageBox('無查詢結果!

34、','提示',mb_ok);</p><p><b>  讀者信息修改</b></p><p>  可通過在讀者查找后雙擊表格進入修改界面,或者通過選擇進入。</p><p>  if(DBEdit1.Text='')or(DBEdit2.Text='')or(DBComboBox1.Te

35、xt='')or(DBComboBox2.Text='')or(DBComboBox3.Text='')or(DBComboBox4.Text='')or(DBEdit3.Text='')or(DBEdit4.Text='')or(DBEdit5.Text='') //判斷信息是否完整&l

36、t;/p><p>  application.MessageBox('信息不完整!','錯誤操作',mb_ok);</p><p>  else if edit8.Text<>DBEdit3.Text then //判斷修改密碼是否一致</p><p>  application.MessageBox('密碼不匹

37、配,請重新輸入!','警告',mb_ok);</p><p>  if messagedlg('確定修改信息?',mtinformation,[mbYes,mbNo],0)=mryes</p><p>  ADOQuery1.Edit;//進行信息修改</p><p>  ADOQuery1.Post;</p

38、><p>  application.MessageBox('您已修改該讀者的信息','操作提示',mb_ok);</p><p><b>  增加讀者</b></p><p>  h,k:string;</p><p>  with ADOQuery1 do</p><p

39、>  SQL.Clear;</p><p>  SQL.Add('select * from 讀者信息表 where 證件號=:a');</p><p>  parameters.ParamByName('a').Value:=trim(edit1.Text);</p><p>  h:=edit3.Text;</p>

40、;<p>  k:=edit4.Text;</p><p>  if (edit1.Text='')or(edit2.Text='')or(edit3.Text='')or(edit4.Text='')or(combobox1.Text='')or(combobox2.Text='')or(combobo

41、x3.Text='')or(combobox4.Text='') //判斷信息是否完整</p><p>  application.MessageBox('信息不完整!','錯誤操作',mb_ok);</p><p>  else if h<>k then //判斷密碼是否匹配</p

42、><p>  application.MessageBox('密碼不匹配!','錯誤操作',mb_ok);</p><p>  else if ADOQuery1.Eof=false then //判斷證件號是否重復</p><p>  application.MessageBox('該證件號已經存在,請重新填寫

43、!','注意!',mb_ok);</p><p>  else if datetimepicker2.DateTime<datetimepicker1.DateTime then//失效時間要大于生效時間</p><p>  application.MessageBox('失效時間要大于生效時間!','注意!',mb_ok);&

44、lt;/p><p><b>  else</b></p><p>  if messagedlg('確定錄入?',mtinformation,[mbYes,mbNo],0)=mryes //增加讀者</p><p>  ADOQuery1.SQL.Add('insert into 讀者信息表(證件號,姓名,性別,系別,類型,

45、等級,生效時間,失效時間,密碼,現(xiàn)借閱數(shù),最大借閱數(shù),是否過期,欠費情況)values(:1,:2,:3,:4,:5,:6,:7,:8,:9,0,:10,0,0)');</p><p>  application.MessageBox('數(shù)據(jù)已錄入,請查看!','完成提示',mb_ok);</p><p><b>  圖書查詢</b&

46、gt;</p><p>  sqlstr1:=' where (1=1)'; //查詢條件選擇</p><p>  if edit3.Text<>'' then sqlstr1:=sqlstr1+' and (圖書編號 like''%'+edit3.Text+'%'')'

47、;</p><p>  if edit4.Text<>'' then sqlstr1:=sqlstr1+' and (圖書名稱 like''%'+edit4.Text+'%'')';</p><p>  if edit5.Text<>'' then sqlstr1:=sq

48、lstr1+' and (作者 like''%'+edit5.Text+'%'')';</p><p>  if edit6.Text<>'' then sqlstr1:=sqlstr1+' and (出版社 like''%'+edit6.Text+'%'')'

49、;;</p><p>  if edit7.Text<>'' then sqlstr1:=sqlstr1+' and (ISBN like''%'+edit7.Text+'%'')';</p><p>  ADOQuery3.SQL.Add('select * from 圖書信息表'

50、);</p><p>  ADOQuery3.SQL.Add(sqlstr1);</p><p>  if ADOQuery3.RecordCount=0 then</p><p>  application.MessageBox('無查詢結果!','提示',mb_ok);</p><p><b> 

51、 圖書信息修改</b></p><p>  if DBGrid1.SelectedIndex>=0 then</p><p>  if (DBEdit6.Text='')or(DBEdit7.Text='')or(DBEdit8.Text='')or(DBEdit9.Text='')or(DBEdit10.T

52、ext='')or(DBEdit11.Text='') then//判斷信息是否完整</p><p>  application.MessageBox('信息不完整!','錯誤操作',mb_ok);</p><p><b>  else</b></p><p>  if me

53、ssagedlg('確定修改信息?',mtinformation,[mbYes,mbNo],0)=mryes</p><p>  ADOQuery3.Edit;//修改信息</p><p>  ADOQuery3.Post;</p><p>  application.MessageBox('您已修改該圖書的信息','

54、操作提示',mb_ok);</p><p><b>  增加圖書</b></p><p>  with ADOQuery1 do </p><p>  SQL.Add('select * from 圖書信息表 where 圖書編號=:a');</p><p>  parameters.ParamB

55、yName('a').Value:=edit1.Text; </p><p>  if (edit1.Text='')or(edit2.Text='')or(edit3.Text='')or(edit5.Text='') //判斷信息是否完整</p><p>  application.MessageBox(

56、'信息不完整!','錯誤操作',mb_ok); </p><p><b>  else</b></p><p>  if ADOQuery1.Eof=false then //判斷編號是否重復</p><p>  showmessage('該圖書編號已存在,請重新填寫!');

57、</p><p><b>  else</b></p><p>  if messagedlg('確定錄入?',mtinformation,[mbYes,mbNo],0)=mryes //增加圖書</p><p>  ADOQuery1.SQL.Add('insert into 圖書信息表(圖書編號,圖書名稱,作者,出

58、版社,出版日期,ISBN,館藏量,借閱量,借閱狀態(tài))values(:1,:2,:3,:4,:5,:6,:7,0,1)'); </p><p>  application.MessageBox('數(shù)據(jù)已錄入,請查看!','完成提示',mb_ok);</p><p><b>  借閱信息查詢</b></p><p

59、>  sqlstr2:=' where (1=1)'; //判斷查詢條件</p><p>  if edit9.Text<>'' then sqlstr2:=sqlstr2+' and (讀者編號 like''%'+edit9.Text+'%'')';</p><p>

60、;  if edit10.Text<>'' then sqlstr2:=sqlstr2+' and (圖書編號 like''%'+edit10.Text+'%'')';</p><p>  if edit11.Text<>'' then sqlstr2:=sqlstr2+' and (讀

61、者姓名 like''%'+edit11.Text+'%'')';</p><p>  if edit12.Text<>'' then sqlstr2:=sqlstr2+' and (圖書名稱 like''%'+edit12.Text+'%'')';</p>

62、<p>  ADOQuery5.SQL.Add('select * from 借閱信息表');</p><p>  ADOQuery5.SQL.Add(sqlstr2);</p><p>  if ADOQuery5.RecordCount=0 then</p><p>  application.MessageBox('無查詢

63、結果!','提示',mb_ok);</p><p><b>  借書事件</b></p><p>  if DBText1.Caption='' then //判斷是否選中圖書</p><p>  application.MessageBox('您沒有選中要借圖書!',

64、'提示',mb_ok);</p><p><b>  else</b></p><p>  if DBText7.Caption='' then //判斷是否選擇讀者</p><p>  application.MessageBox('您沒有選中要借閱讀者!','提示&

65、#39;,mb_ok);</p><p><b>  else</b></p><p>  sqlstr2:=sqlstr2+' and (證件號 like ''%'+dbtext7.Caption+'%'')'; //查詢條件</p><p>  adoquery1.SQL.A

66、dd('select * from 讀者信息表');</p><p>  adoquery1.SQL.Add(sqlstr2);</p><p>  i:=adoquery1.Fields[9].AsInteger;//i為讀者借閱量</p><p>  j:=adoquery1.Fields[10].AsInteger;//j為讀者最大借閱

67、量</p><p>  if adoquery1.Fields[12].AsFloat>0 then//判斷讀者是否有欠費</p><p>  application.MessageBox('您有欠費,暫不能借書!','警告',mb_ok);</p><p><b>  else</b><

68、/p><p>  if i=j then//判斷讀者借閱數(shù)是否達到最大</p><p>  application.MessageBox('您的借書量已達到最大量,請先還書再借!','警告',mb_ok);</p><p><b>  else</b></p><p>  

69、sqlstr3:=sqlstr3+' and (圖書編號 like ''%'+dbtext3.Caption+'%'')'; //查詢條件</p><p>  adoquery3.SQL.Add('select * from 圖書信息表');</p><p>  adoquery3.SQL.Add(sqlst

70、r3);</p><p>  k:=adoquery3.Fields[6].AsInteger;//k為圖書借閱量</p><p>  l:=adoquery3.Fields[7].AsInteger;//l為圖書館藏量</p><p>  if k=l then//判斷圖書是否還有剩余</p><p>  appl

71、ication.MessageBox('該書已全部借出,請借閱其他書籍!','提示',mb_ok); </p><p><b>  else</b></p><p>  if messagedlg('確定借書?',mtinformation,[mbYes,mbNo],0)=mryes//借書事件</p>

72、<p>  adoquery5.SQL.Add('insert into 借閱信息表(圖書名稱,圖書編號,讀者姓名,讀者編號,借出時間,應還時間,是否超期,可否續(xù)借)values(:3,:4,:5,:6,:7,:8,0,1)');</p><p>  adoquery1.SQL.Add('update 讀者信息表 set 現(xiàn)借閱數(shù)=:a where 證件號=''&

73、#39;+adoquery1.fields[0].asstring+'''');</p><p>  adoquery1.Parameters.ParamByName('a').Value:=i+1; //借書后讀者借閱量+1</p><p>  adoquery3.SQL.Add('update 圖書信息表 set 借閱量=:

74、b where 圖書編號='''+adoquery3.Fields[0].asstring+'''');</p><p>  adoquery3.Parameters.ParamByName('b').Value:=k+1; //借書后圖書借閱量+1</p><p>  if k=l then</p>

75、<p>  adoquery3.SQL.Add('update 圖書信息表 set 借閱狀態(tài)=:c where 圖書編號='''+adoquery3.Fields[0].asstring+'''');//判斷圖書的借閱狀態(tài)</p><p>  adoquery3.Parameters.ParamByName('c&

76、#39;).Value:=boolean(false);</p><p><b>  還書事件</b></p><p>  if messagedlg('您確定還書嗎?',mtinformation,[mbyes,mbno],0)=mryes then</p><p>  adoquery1.SQL.Add('selec

77、t * from 讀者信息表 where 證件號='''+DBEdit12.text+'''');</p><p><b>  //查詢還書讀者</b></p><p>  i:=adoquery1.Fields[9].AsInteger;//i為讀者借閱量</p><p> 

78、 adoquery3.SQL.Add('select * from 圖書信息表 where 圖書編號='''+DBEdit14.text+'''');</p><p><b>  //查詢需還圖書</b></p><p>  j:=adoquery3.Fields[6].AsInteger;/

79、/j為圖書借閱量</p><p>  ADOQuery5.Delete;//歸還圖書</p><p>  ADOQuery3.SQL.Add('update 圖書信息表 set 借閱量=:x where 圖書編號='''+DBEdit14.text+'''');</p><p>  ad

80、oquery3.Parameters.ParamByName('x').Value:=j-1;//還書后借閱量-1</p><p>  if adoquery3.Fields[8].AsBoolean=boolean(false) then//還書后判斷圖書的借閱狀態(tài)</p><p>  adoquery3.SQL.Add('update 圖書信息表 set

81、 借閱狀態(tài)=:y where 圖書編號='''+DBEdit14.text+'''');</p><p>  adoquery3.Parameters.ParamByName('y').Value:=boolean(true);</p><p>  ADOQuery1.SQL.Add('update 讀者信息表

82、 set 現(xiàn)借閱數(shù)=:z where 證件號='''+DBEdit12.text+'''');</p><p>  adoquery1.Parameters.ParamByName('z').Value:=i-1;//還書后讀者借閱數(shù)-1</p><p>  application.MessageBox('

83、還書成功!','提示',mb_ok);</p><p><b> ?。ㄈ?、讀者模塊</b></p><p><b>  個人信息</b></p><p><b>  圖書查詢</b></p><p>  sqlstr1:=' where (1

84、=1)'; //查詢條件</p><p>  if edit3.Text<>'' then sqlstr1:=sqlstr1+' and (圖書編號 like''%'+edit3.Text+'%'')';</p><p>  if edit4.Text<>'

85、;' then sqlstr1:=sqlstr1+' and (圖書名稱 like''%'+edit4.Text+'%'')';</p><p>  if edit5.Text<>'' then sqlstr1:=sqlstr1+' and (作者 like''%'+edit5.Te

86、xt+'%'')';</p><p>  if edit6.Text<>'' then sqlstr1:=sqlstr1+' and (出版社 like''%'+edit6.Text+'%'')';</p><p>  if edit7.Text<>

87、9;' then sqlstr1:=sqlstr1+' and (ISBN like''%'+edit7.Text+'%'')';</p><p>  ADOQuery2.SQL.Add('select * from 圖書信息表');</p><p>  ADOQuery2.SQL.Add(sqlstr

88、1);</p><p>  if ADOQuery2.RecordCount=0 then</p><p><b>  begin</b></p><p>  application.MessageBox('無查詢結果!','提示',mb_ok);</p><p><b>  信

89、息修改</b></p><p>  if edit1.Text='' then</p><p>  application.MessageBox('請輸入原密碼!','提示',mb_ok);</p><p><b>  else</b></p><p>  if

90、 edit1.Text<>trim(adoquery1.Fields[8].AsString) then //檢查原密碼</p><p>  application.MessageBox('原密碼輸入錯誤!','提示',mb_ok);</p><p><b>  else</b></p><p> 

91、 if edit8.Text<>edit2.Text then//檢查密碼是否匹配</p><p>  application.MessageBox('密碼不匹配!','提示',mb_ok);</p><p><b>  else</b></p><p>  if messagedlg('

92、確定修改信息?',mtinformation,[mbYes,mbNo],0)=mryes //修改密碼</p><p>  adoquery1.SQL.Add('update 讀者信息表 set 密碼=:d where 證件號=:c');</p><p>  adoquery1.Parameters.ParamByName('d').Value

93、:=edit2.Text;</p><p>  adoquery1.Parameters.ParamByName('c').Value:=form1.Edit1.Text;</p><p>  application.MessageBox('您已修改該讀者的信息','操作提示',mb_ok);</p><p><

94、b>  續(xù)借圖書</b></p><p>  if dbtext14.Caption='' then //選中續(xù)借書籍</p><p>  application.MessageBox('您沒有選中需要續(xù)借書籍','提示',mb_ok);</p><p><b>  else</b

95、></p><p>  if adoquery1.Fields[12].AsFloat>0 then //判斷讀者是否欠費</p><p>  application.MessageBox('您有欠費,暫不能借書!','提示',mb_ok);</p><p><b>  else</b></p

96、><p>  if adoquery3.Fields[7].AsBoolean=boolean(false) then //判斷圖書是否已經續(xù)借</p><p>  application.MessageBox('您已經續(xù)借一次,不能再次續(xù)借!','提示',mb_ok);</p><p><b>  else</b>

97、;</p><p>  if messagedlg('確定續(xù)借?',mtinformation,[mbyes,mbno],0)=mryes then //續(xù)借圖書</p><p>  adoquery3.SQL.Add('select * from 借閱信息表 where 讀者編號='''+dbtext1.Caption+''

98、;'');</p><p>  adoquery3.SQL.Add('update 借閱信息表 set 可否續(xù)借=:b where 讀者編號='''+dbtext1.Caption+'''');</p><p>  adoquery3.Parameters.ParamByName('b').Va

99、lue:=boolean(false); //續(xù)借后續(xù)借狀態(tài)為false</p><p>  adoquery3.SQL.Add('update 借閱信息表 set 應還時間=:a where 讀者編號='''+dbtext1.Caption+'''');</p><p>  if adoquery1.Fields[5].As

100、Integer=1 then //續(xù)借后延長應還時間</p><p>  adoquery3.Parameters.ParamByName('a').Value:=incmonth(date,1);</p><p>  if adoquery1.Fields[5].AsInteger=2 then</p><p>  adoquery3.

101、Parameters.ParamByName('a').Value:=incmonth(date,3);</p><p>  application.MessageBox('續(xù)借成功!','提示',mb_ok);</p><p><b>  繳納罰金</b></p><p>  if messag

102、edlg('確定繳納罰金?',mtinformation,[mbYes,mbNo],0)=mryes</p><p>  adoquery1.SQL.Add('update 讀者信息表 set 欠費情況=:a where 證件號='''+form3.DBText1.Caption+'''');</p><p>

103、  adoquery1.Parameters.ParamByName('a').Value:=0; //繳納罰金,更新讀者表</p><p>  application.MessageBox('繳費成功!','提示',mb_ok);</p><p><b>  附錄</b></p><p> 

104、 由于超期情況與欠費情況需要每天進行更新,因此在SQL中新建一個作業(yè)定期執(zhí)行下列語句:</p><p>  UPDATE 讀者信息表</p><p>  SET 欠費情況=r.欠費情況</p><p>  FROM (SELECT SUM(DATEDIFF(day,應還時間,GETDATE()))*0.1 </p><p>  AS 欠費情況

105、,讀者編號</p><p>  FROM 借閱信息表</p><p>  WHERE 應還時間<GETDATE()</p><p>  GROUP BY 讀者編號)</p><p>  AS r INNER JOIN 讀者信息表</p><p>  AS b ON r.讀者編號=b.證件號</p>

溫馨提示

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

評論

0/150

提交評論