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

下載本文檔

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

文檔簡(jiǎn)介

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

2、gt;<p>  設(shè)計(jì)起止時(shí)間:2012年05月21日至2012年06月01日</p><p><b>  目錄</b></p><p><b>  摘 要3</b></p><p><b>  一、需求分析4</b></p><p> ?。ㄒ唬?、總體功能

3、設(shè)計(jì)4</p><p> ?。ǘ?、登錄模版設(shè)計(jì)4</p><p> ?。ㄈ?、管理員模塊設(shè)計(jì)5</p><p>  (四)、讀者模塊設(shè)計(jì)9</p><p>  二、概念結(jié)構(gòu)設(shè)計(jì)11</p><p>  三、邏輯結(jié)構(gòu)設(shè)計(jì)12</p><p> ?。ㄒ唬?、讀者信息表12</

4、p><p> ?。ǘ⒐芾韱T信息表12</p><p> ?。ㄈ?、圖書信息表12</p><p>  (四)、借閱信息表13</p><p>  四、功能模塊設(shè)計(jì)14</p><p> ?。ㄒ唬⒌卿浗缑?4</p><p> ?。ǘ?、管理員模塊15</p><

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

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

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

8、>  關(guān)鍵詞:圖書管理系統(tǒng);SQL語言;MS SQL Server2000;Delphi7</p><p><b>  需求分析</b></p><p> ?。ㄒ唬?、總體功能設(shè)計(jì)</p><p>  (二)、登錄模版設(shè)計(jì)</p><p>  窗口用于用戶登錄圖書管理系統(tǒng),當(dāng)用戶輸入的用戶名和密碼不正確時(shí),則提示輸入

9、錯(cuò)誤信息,回到登入界面,當(dāng)用戶名和密碼正確時(shí),則登錄相應(yīng)的界面。如下圖所示</p><p>  (三)、管理員模塊設(shè)計(jì)</p><p><b>  3.1讀者信息處理</b></p><p><b>  讀者信息查詢</b></p><p>  學(xué)生信息查詢子模塊主要是對(duì)讀者信息的查詢。通過對(duì)證件號(hào)

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

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

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

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

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

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

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

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

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

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

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

21、t;</p><p><b>  邏輯結(jié)構(gòu)設(shè)計(jì)</b></p><p><b> ?。ㄒ唬?、讀者信息表</b></p><p>  該表為讀者的基本信息表,供讀者登錄系統(tǒng)、管理員增加、查詢、修改、注銷使用,同時(shí)在借書、還書與續(xù)借、繳納罰金時(shí)也有用到。</p><p> ?。ǘ⒐芾韱T信息表<

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

23、息表</b></p><p>  該表為圖書的借閱信息表,供讀者與管理員查詢借閱信息時(shí)使用,在借書與還書時(shí)對(duì)該表進(jìn)行更新。</p><p><b>  功能模塊設(shè)計(jì)</b></p><p><b> ?。ㄒ唬⒌卿浗缑?lt;/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('用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入!','

26、;提示',mb_ok);</p><p>  else if RadioButton3.Checked=true //選擇讀者登錄</p><p>  then begin</p><p>  ADOQuery1.SQL.Add('select * from 讀者信息表 where 證件號(hào)=: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;,'錯(cuò)誤操作',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('用戶名或密碼錯(cuò)誤,請(qǐng)重新輸入!','提示',mb_ok); </p><p><b>  (二)、管理員模塊</b></p><p><b>  讀者查詢</b></p>&l

30、t;p>  sqlstr:=' where (1=1)'; //查詢條件選擇</p><p>  if edit1.Text<>'' then sqlstr:=sqlstr+' and (證件號(hào) 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('無查詢結(jié)果!

34、','提示',mb_ok);</p><p><b>  讀者信息修改</b></p><p>  可通過在讀者查找后雙擊表格進(jìn)入修改界面,或者通過選擇進(jìn)入。</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('信息不完整!','錯(cuò)誤操作',mb_ok);</p><p>  else if edit8.Text<>DBEdit3.Text then //判斷修改密碼是否一致</p><p>  application.MessageBox('密碼不匹

37、配,請(qǐng)重新輸入!','警告',mb_ok);</p><p>  if messagedlg('確定修改信息?',mtinformation,[mbYes,mbNo],0)=mryes</p><p>  ADOQuery1.Edit;//進(jìn)行信息修改</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 證件號(hào)=: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('信息不完整!','錯(cuò)誤操作',mb_ok);</p><p>  else if h<>k then //判斷密碼是否匹配</p

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

43、!','注意!',mb_ok);</p><p>  else if datetimepicker2.DateTime<datetimepicker1.DateTime then//失效時(shí)間要大于生效時(shí)間</p><p>  application.MessageBox('失效時(shí)間要大于生效時(shí)間!','注意!',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 讀者信息表(證件號(hào),姓名,性別,系別,類型,

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

46、gt;</p><p>  sqlstr1:=' where (1=1)'; //查詢條件選擇</p><p>  if edit3.Text<>'' then sqlstr1:=sqlstr1+' and (圖書編號(hào) 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('無查詢結(jié)果!','提示',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('信息不完整!','錯(cuò)誤操作',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 圖書編號(hào)=: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、'信息不完整!','錯(cuò)誤操作',mb_ok); </p><p><b>  else</b></p><p>  if ADOQuery1.Eof=false then //判斷編號(hào)是否重復(fù)</p><p>  showmessage('該圖書編號(hào)已存在,請(qǐng)重新填寫!');

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

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

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

60、;  if edit10.Text<>'' then sqlstr2:=sqlstr2+' and (圖書編號(hào) 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、結(jié)果!','提示',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 (證件號(hào) 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//判斷讀者是否有欠費(fèi)</p><p>  application.MessageBox('您有欠費(fèi),暫不能借書!','警告',mb_ok);</p><p><b>  else</b><

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

69、sqlstr3:=sqlstr3+' and (圖書編號(hào) 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('該書已全部借出,請(qǐng)借閱其他書籍!','提示',mb_ok); </p><p><b>  else</b></p><p>  if messagedlg('確定借書?',mtinformation,[mbYes,mbNo],0)=mryes//借書事件</p>

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

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 圖書編號(hào)='''+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 圖書編號(hào)='''+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 證件號(hào)='''+DBEdit12.text+'''');</p><p><b>  //查詢還書讀者</b></p><p>  i:=adoquery1.Fields[9].AsInteger;//i為讀者借閱量</p><p> 

78、 adoquery3.SQL.Add('select * from 圖書信息表 where 圖書編號(hào)='''+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 圖書編號(hào)='''+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 圖書編號(hào)='''+DBEdit14.text+'''');</p><p>  adoquery3.Parameters.ParamByName('y').Value:=boolean(true);</p><p>  ADOQuery1.SQL.Add('update 讀者信息表

82、 set 現(xiàn)借閱數(shù)=:z where 證件號(hào)='''+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>  個(gè)人信息</b></p><p><b>  圖書查詢</b></p><p>  sqlstr1:=' where (1

84、=1)'; //查詢條件</p><p>  if edit3.Text<>'' then sqlstr1:=sqlstr1+' and (圖書編號(hào) 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('無查詢結(jié)果!','提示',mb_ok);</p><p><b>  信

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

90、 edit1.Text<>trim(adoquery1.Fields[8].AsString) then //檢查原密碼</p><p>  application.MessageBox('原密碼輸入錯(cuò)誤!','提示',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 證件號(hào)=: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 //判斷讀者是否欠費(fèi)</p><p>  application.MessageBox('您有欠費(fèi),暫不能借書!','提示',mb_ok);</p><p><b>  else</b></p

96、><p>  if adoquery3.Fields[7].AsBoolean=boolean(false) then //判斷圖書是否已經(jīng)續(xù)借</p><p>  application.MessageBox('您已經(jīng)續(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 讀者編號(hào)='''+dbtext1.Caption+''

98、;'');</p><p>  adoquery3.SQL.Add('update 借閱信息表 set 可否續(xù)借=:b where 讀者編號(hào)='''+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 應(yīng)還時(shí)間=:a where 讀者編號(hào)='''+dbtext1.Caption+'''');</p><p>  if adoquery1.Fields[5].As

100、Integer=1 then //續(xù)借后延長(zhǎng)應(yīng)還時(shí)間</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 欠費(fèi)情況=:a where 證件號(hào)='''+form3.DBText1.Caption+'''');</p><p>

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論