數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告---圖書(shū)館管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩23頁(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ì) 報(bào) 告</p><p>  課程名稱(chēng) 數(shù)據(jù)庫(kù)設(shè)計(jì)與管理課程設(shè)計(jì) </p><p>  課題名稱(chēng) 圖書(shū)館管理系統(tǒng) </p><p>  專(zhuān) 業(yè) </p><p>  班 級(jí) </p>

2、;<p>  學(xué) 號(hào) </p><p>  姓 名 </p><p>  指導(dǎo)教師 </p><p>  2011年 12 月 4 日</p><p>  課 程 設(shè) 計(jì) 任 務(wù) 書(shū)</p><p>  課程名稱(chēng)

3、 數(shù)據(jù)庫(kù)設(shè)計(jì)與管理課程設(shè)計(jì)</p><p>  課 題 圖書(shū)館管理系統(tǒng) </p><p>  專(zhuān)業(yè)班級(jí) </p><p>  學(xué)生姓名 </p><p>  學(xué) 號(hào)

4、 </p><p>  指導(dǎo)老師 </p><p>  審 批 </p><p>  任務(wù)書(shū)下達(dá)日期 2011 年 12 月 3 日</p><p>  任務(wù)完成日期 2011 年 12 月 17 日</p>

5、<p>  一、設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求</p><p><b>  1.設(shè)計(jì)內(nèi)容:</b></p><p><b>  圖書(shū)館管理系統(tǒng)</b></p><p><b>  系統(tǒng)功能分析</b></p><p>  圖書(shū)館管理系統(tǒng)應(yīng)具備借書(shū)、還書(shū)、圖書(shū)查詢和圖書(shū)管理(如增加

6、、修改和刪除)等基本管理功能,具體如下:</p><p> ?。?)憑借書(shū)證借書(shū)時(shí),對(duì)借書(shū)證的有效性、最大借書(shū)數(shù)和目前能借書(shū)數(shù),借書(shū)期限進(jìn)行判斷,并記錄借書(shū)信息。</p><p> ?。?)在還書(shū)時(shí),更改借書(shū)信息記錄,并檢查該書(shū)是否超期,如超期應(yīng)計(jì)算出罰款金額。</p><p>  (3)能查詢讀者基本信息和借書(shū)的歷史記錄。</p><p>

7、 ?。?)能對(duì)所有圖書(shū)按分類(lèi)查詢(如作者、書(shū)名、出版社等)。</p><p> ?。?)能對(duì)圖書(shū)進(jìn)行基本管理(如增加、修改和刪除)。</p><p> ?。?)能管理讀者的基本信息(如增加、修改和刪除)</p><p>  數(shù)據(jù)庫(kù)中表的參考結(jié)構(gòu)(注:僅供參考)</p><p><b>  表名:DZXX</b></

8、p><p>  說(shuō)明:讀者基本信息表</p><p><b>  表名:TSXX</b></p><p><b>  說(shuō)明:圖書(shū)信息表</b></p><p><b>  表名:JHJL</b></p><p><b>  說(shuō)明:借還書(shū)記錄<

9、/b></p><p><b>  表名:DZLX</b></p><p><b>  說(shuō)明:讀者類(lèi)型表</b></p><p><b>  二、進(jìn)度安排</b></p><p>  第一周:星期六 上午8:00——12:00, 下午2:00——6:00 </p

10、><p>  星期一 下午2:00——6:00</p><p>  第二周:星期三 上午8:00——12:00, </p><p>  星期五 上午8:00——12:00,下午2:00——6:00</p><p><b>  目錄</b></p><p>  1.系統(tǒng)需求分析7</p&

11、gt;<p><b>  1.1問(wèn)題描述7</b></p><p>  1.2 功能要求7</p><p><b>  2.概要設(shè)計(jì)8</b></p><p>  2.1系統(tǒng)的總體設(shè)計(jì)8</p><p>  2.2各功能的具體實(shí)現(xiàn)9</p><p> 

12、 2.3數(shù)據(jù)庫(kù)表格10</p><p><b>  3.詳細(xì)設(shè)計(jì)11</b></p><p>  3.1歡迎界面和幾個(gè)服務(wù)界面11</p><p>  3.1借還書(shū)功能的實(shí)現(xiàn)12</p><p>  3.2讀者信息管理功能的實(shí)現(xiàn)16</p><p>  4.課程設(shè)計(jì)小結(jié)22</p

13、><p><b>  5.參考文獻(xiàn)23</b></p><p><b>  8. 評(píng)分表24</b></p><p><b>  1.系統(tǒng)需求分析</b></p><p><b>  1.1問(wèn)題描述</b></p><p>  圖書(shū)

14、館管理系統(tǒng)應(yīng)具備借書(shū)、還書(shū)、圖書(shū)查詢和圖書(shū)管理(如增加、修改和刪除)等基本管理功能。</p><p><b>  1.2 功能要求</b></p><p> ?。?)憑借書(shū)證借書(shū)時(shí),對(duì)借書(shū)證的有效性、最大借書(shū)數(shù)和目前能借書(shū)數(shù),借書(shū)期限進(jìn)行判斷,并記錄借書(shū)信息。</p><p> ?。?)在還書(shū)時(shí),更改借書(shū)信息記錄,并檢查該書(shū)是否超期,如超期應(yīng)計(jì)

15、算出罰款金額。</p><p> ?。?)能查詢讀者基本信息和借書(shū)的歷史記錄。</p><p> ?。?)能對(duì)所有圖書(shū)按分類(lèi)查詢(如作者、書(shū)名、出版社等)。</p><p>  (5)能對(duì)圖書(shū)進(jìn)行基本管理(如增加、修改和刪除)。</p><p> ?。?)能管理讀者的基本信息(如增加、修改和刪除)</p><p>&l

16、t;b>  2.概要設(shè)計(jì)</b></p><p>  2.1系統(tǒng)的總體設(shè)計(jì)</p><p>  圖2.1系統(tǒng)的總體設(shè)計(jì)</p><p>  2.2各功能的具體實(shí)現(xiàn)</p><p>  (1)讀者基本信息功能</p><p>  圖2.2讀者基本信息功能</p><p><

17、b>  (2)借還書(shū)功能</b></p><p><b>  圖2.3借還書(shū)功能</b></p><p><b>  2.3數(shù)據(jù)庫(kù)表格</b></p><p>  (1)讀者基本信息表(dzxx)</p><p>  (2)圖書(shū)信息表(TSXX)</p><p&

18、gt;  (3)借還書(shū)記錄(JHJL)</p><p><b>  3.詳細(xì)設(shè)計(jì)</b></p><p>  3.1歡迎界面和幾個(gè)服務(wù)界面</p><p>  圖3-1主界面與幾個(gè)服務(wù)界面</p><p>  3.1借還書(shū)功能的實(shí)現(xiàn)</p><p>  “確認(rèn)”按鈕的clicked事件代碼(實(shí)現(xiàn)借

19、、還書(shū)功能,可向讀者信息加入借書(shū)數(shù)量,向借書(shū)記錄加入借、還書(shū)記錄,并在還書(shū)時(shí)提示處罰金額)</p><p>  int i,j,f,t,s,d</p><p><b>  double q</b></p><p><b>  long o</b></p><p>  datetime shijian

20、,jieshuri</p><p><b>  long m</b></p><p><b>  char lxh</b></p><p>  shijian= datetime(today())</p><p>  bh=nr_1.text</p><p>  tsbh=n

21、r_2.text</p><p>  if bh='' or tsbh='' then</p><p>  messagebox("提示信息","輸入錯(cuò)誤,請(qǐng)重新輸入")</p><p><b>  return</b></p><p><b&

22、gt;  end if</b></p><p>  select yjss,lxh</p><p>  into :i,:lxh</p><p><b>  from DZxX</b></p><p>  where BH=:bh;</p><p>  select zdjss<

23、/p><p><b>  into :s</b></p><p><b>  from DZlX</b></p><p>  where lxh=:lxh;</p><p><b>  d=s+(-1)</b></p><p>  if a=1 and i&

24、lt;d then</p><p>  update DZXX set</p><p>  yjss=yjss+1</p><p>  where BH=:bh;</p><p>  messagebox("提示信息","借書(shū)成功")</p><p>  select max

25、(id) </p><p><b>  into :m</b></p><p>  from jhjl;</p><p>  insert into jhjl(id,DZBH,TSBH,JSRQ)</p><p>  values(:m+1,:nr_1.text,:nr_2.text,:shijian);</p

26、><p>  elseif a=1 and i=d then</p><p>  update DZXX set</p><p>  yjss=yjss+1,</p><p><b>  yxx='無(wú)效'</b></p><p>  where BH=:bh;</p>

27、<p>  messagebox("提示信息","借書(shū)成功")</p><p>  select max(id) </p><p><b>  into :m</b></p><p>  from jhjl;</p><p>  insert into jhjl(

28、id,DZBH,TSBH,JSRQ) </p><p>  values(:m+1,:nr_1.text,:nr_2.text,:shijian);</p><p>  elseif a=1 and i>=s then </p><p>  messagebox("提示信息","已借最大書(shū)數(shù)目,不可繼續(xù)借書(shū)??!")<

29、;/p><p>  update DZXX set</p><p><b>  yxx='無(wú)效'</b></p><p>  where BH=:bh;</p><p>  elseif a=2 then</p><p>  select jsrq</p><p&

30、gt;  into :jieshuri</p><p>  from jhjl</p><p>  where DZBH=:nr_1.text and TSBH=:nr_2.text;</p><p>  select zdjsq,cqcf</p><p>  into :t,:q</p><p><b>

31、  from DZlX</b></p><p>  where lxh=:lxh;</p><p>  o=DaysAfter(date(shijian),date(jieshuri))</p><p>  MessageBox('提示信息','請(qǐng)交罰款:'+string(o)+'元')</p>

32、<p>  MessageBox('提示信息','請(qǐng)交罰款:'+string(q)+'元')</p><p>  if o<t then</p><p>  if MessageBox('提示信息','請(qǐng)交罰款:'+string(o* q)+'元',Question! ,OK

33、Cancel! , 1 ) = 1 then//選擇確定</p><p><b>  f=1</b></p><p>  else//選擇取消</p><p><b>  f=2</b></p><p><b>  end if</b></p><p>

34、;  if f=1 then</p><p>  update DZXX set</p><p>  yjss=yjss-1,</p><p><b>  yxx='有效'</b></p><p>  where BH=:bh;</p><p>  messagebox("

35、;提示信息","還書(shū)成功")</p><p>  update jhjl set</p><p>  HSRQ=:shijian,</p><p><b>  CQTS=:o,</b></p><p>  CFJE=:o*:q</p><p>  where DZBH

36、=:nr_1.text and TSBH=:nr_2.text; </p><p><b>  else</b></p><p><b>  return</b></p><p><b>  end if</b></p><p><b>  else</b>

37、;</p><p>  update DZXX set</p><p>  yjss=yjss-1,</p><p><b>  yxx='有效'</b></p><p>  where BH=:bh;</p><p>  messagebox("提示信息",&

38、quot;還書(shū)成功")</p><p>  update jhjl set</p><p>  HSRQ=:shijian,</p><p><b>  CQTS=0,</b></p><p><b>  CFJE=0</b></p><p>  where DZB

39、H=:nr_1.text and TSBH=:nr_2.text; </p><p><b>  end if</b></p><p><b>  end if</b></p><p>  3.2讀者信息管理功能的實(shí)現(xiàn)</p><p><b> ?。?)添加</b></p

40、><p> ?。╳_tj)圖4.5</p><p><b>  前一條的代碼:</b></p><p>  integer row_current</p><p>  row_current=dw_1.ScrollPriorRow()</p><p>  if row_current=1 then&

41、lt;/p><p>  MessageBox("警告","以是最前一條")</p><p><b>  end if</b></p><p><b>  后一條的代碼:</b></p><p>  integer row_current</p>&l

42、t;p>  integer row_count</p><p>  row_current=dw_1.ScrollNextRow()</p><p>  row_count=dw_1.RowCount()</p><p>  if row_current=row_count then</p><p>  MessageBox(&quo

43、t;警告","以是最后一條")</p><p><b>  end if</b></p><p><b>  添加的代碼:</b></p><p>  dw_1.object.datawindow.readonly = "no"</p><p>  

44、long g_RowNumber</p><p>  g_RowNumber=dw_1.InsertRow(0)</p><p>  dw_1.ScrollToRow(g_RowNumber)</p><p>  dw_1.Setrow(g_RowNumber)</p><p>  dw_1.Setfocus()</p><

45、;p><b>  保存的代碼:</b></p><p>  if update(dw_1,true,false)=1 then</p><p>  dw_1.resetupdate()</p><p><b>  commit;</b></p><p>  messagebox("錯(cuò)

46、誤!!!","數(shù)據(jù)保存成功")</p><p><b>  else</b></p><p><b>  rollback;</b></p><p>  messagebox("錯(cuò)誤!!!","數(shù)據(jù)保存失敗")</p><p>&

47、lt;b>  end if</b></p><p><b>  退出的代碼:</b></p><p>  int MCount</p><p>  int UPdateOrNot</p><p>  MCount=w_tj.dw_1.ModifiedCount()</p><p>

48、;  if MCount=0 then</p><p>  close(w_tj);</p><p>  elseif MCount>0 then</p><p>  UPdateOrNot=messagebox("保存修改","您修改了數(shù)據(jù)窗口中的數(shù)據(jù),現(xiàn)在是否保存?",Question!,YesNoCancel!)&

49、lt;/p><p>  if UPdateOrNot=1 then</p><p>  if update(w_tj.dw_1,true,false)=1 then</p><p>  w_tj.dw_1.resetupdate()</p><p><b>  commit;</b></p><p>

50、<b>  else</b></p><p><b>  rollback;</b></p><p>  messagebox("錯(cuò)誤!!!","數(shù)據(jù)保存失敗")</p><p><b>  end if</b></p><p>  cl

51、ose(w_tj)</p><p>  elseif UPdateOrNot=2 then</p><p><b>  rollback;</b></p><p>  close(w_tj)</p><p><b>  end if</b></p><p><b>

52、  end if</b></p><p><b>  (2)查詢</b></p><p>  dw_1.settransobject(sqlca)</p><p>  dw_1.retrieve()</p><p>  dw_1.object.datawindow.readonly = "yes&q

53、uot;</p><p> ?。╳_cx)圖4.6</p><p><b>  查詢的代碼:</b></p><p>  string oldsql,newsql</p><p>  int total_row</p><p>  if sle_1.text="" then&l

54、t;/p><p>  MessageBox("注意","請(qǐng)輸入內(nèi)容!")</p><p><b>  else</b></p><p>  oldsql=dw_1.getsqlselect()</p><p>  /*choose case ddlb_1.text</p>

55、<p>  case "讀者編號(hào)"</p><p>  newsql=oldsql+" where BH="+"'"+sle_1.text+"'"</p><p><b>  case "姓名"</b></p><p>

56、;  newsql=oldsql+" where XM="+"'"+sle_1.text+"'"</p><p><b>  case "班級(jí)"</b></p><p>  newsql=oldsql+" where BJ="+"'&q

57、uot;+sle_1.text+"'"</p><p><b>  case "系別"</b></p><p>  newsql=oldsql+" where XB="+"'"+sle_1.text+"'"</p><p>

58、;  end choose*/</p><p>  newsql=oldsql+" where 編號(hào)="+"'"+sle_1.text+"'"</p><p>  dw_1.setsqlselect(newsql)</p><p>  dw_1.retrieve()</p>&

59、lt;p>  dw_1.setsqlselect(oldsql)</p><p>  total_row=dw_1.rowcount()</p><p>  if total_row=0 then</p><p>  MessageBox("注意","沒(méi)有符合條件的內(nèi)容")</p><p><

60、;b>  end if</b></p><p><b>  end if</b></p><p><b>  退出的代碼:</b></p><p>  close(w_cx)</p><p><b> ?。?)修改</b></p><p&g

61、t;  dw_1.settransobject(sqlca)</p><p>  dw_1.retrieve()</p><p>  dw_1.object.datawindow.readonly = "yes"</p><p>  (w_xg)圖4.7</p><p><b>  修改的代碼:</b>

62、;</p><p>  string oldsql,newsql</p><p>  int total_row</p><p>  dw_1.object.datawindow.readonly = "NO"</p><p>  dw_1.Object.類(lèi)型.Protect=1 </p><p>

63、  if sle_1.text="" then</p><p>  MessageBox("注意","請(qǐng)輸入內(nèi)容!")</p><p><b>  else</b></p><p>  oldsql=dw_1.getsqlselect()</p><p>  n

64、ewsql=oldsql+" where 編號(hào)="+"'"+sle_1.text+"'"</p><p>  dw_1.setsqlselect(newsql)</p><p>  dw_1.retrieve()</p><p>  dw_1.setsqlselect(oldsql)<

65、/p><p>  total_row=dw_1.rowcount()</p><p>  if total_row=0 then</p><p>  MessageBox("注意","沒(méi)有符合條件的內(nèi)容")</p><p><b>  end if</b></p><

66、;p><b>  end if</b></p><p><b>  刪除的代碼:</b></p><p>  long current_row</p><p>  if sle_1.text="" then</p><p>  MessageBox("注意&quo

67、t;,"請(qǐng)輸入內(nèi)容!")</p><p><b>  else</b></p><p>  current_row=dw_1.getrow()</p><p>  deleterow(dw_1,current_row)</p><p><b>  end if</b></p

68、><p><b>  保存的代碼:</b></p><p>  if update(dw_1,true,false)=1 then</p><p>  dw_1.resetupdate()</p><p><b>  commit;</b></p><p>  messagebo

69、x("","數(shù)據(jù)保存成功")</p><p><b>  else</b></p><p><b>  rollback;</b></p><p>  messagebox("錯(cuò)誤!!!","數(shù)據(jù)保存失敗")</p><p&

70、gt;<b>  end if</b></p><p><b>  退出的代碼:</b></p><p>  int MCount</p><p>  int UPdateOrNot</p><p>  MCount=w_xg.dw_1.ModifiedCount()</p><

71、p>  if MCount=0 then</p><p>  close(w_xg);</p><p>  elseif MCount>0 then</p><p>  UPdateOrNot=messagebox("保存修改","您修改了數(shù)據(jù)窗口中的數(shù)據(jù),現(xiàn)在是否保存?",Question!,YesNoCance

72、l!)</p><p>  if UPdateOrNot=1 then</p><p>  if update(w_xg.dw_1,true,false)=1 then</p><p>  w_xg.dw_1.resetupdate()</p><p><b>  commit;</b></p><p

73、><b>  else</b></p><p><b>  rollback;</b></p><p>  messagebox("錯(cuò)誤!!!","數(shù)據(jù)保存失敗")</p><p><b>  end if</b></p><p>

74、  close(w_xg)</p><p>  elseif UPdateOrNot=2 then</p><p><b>  rollback;</b></p><p>  close(w_xg)</p><p><b>  end if</b></p><p><b

75、>  end if</b></p><p><b>  4.課程設(shè)計(jì)小結(jié)</b></p><p>  在設(shè)計(jì)過(guò)程中首先要對(duì)PowerBuilder編程環(huán)境和編程方法有一個(gè)全面的了解。首先掌握PowerBuilder數(shù)據(jù)庫(kù)的建立和連接,其中要特別注意的是配置ODBC數(shù)據(jù)源和配置PB Profile。在配置是要注意所默認(rèn)的數(shù)據(jù)庫(kù),本次設(shè)計(jì)中默認(rèn)數(shù)據(jù)庫(kù)為t

76、ushuguan。其次,要熟悉窗口的選擇扭、組合框、多行編程框等常用控件的基本使用方法和編程方法。經(jīng)過(guò)一個(gè)多月的努力,課程設(shè)計(jì)基本完成了。在整個(gè)課程設(shè)計(jì)的實(shí)踐中,我學(xué)到很多有用的知識(shí),也積累了不少寶貴的開(kāi)發(fā)經(jīng)驗(yàn)。比如用ADO操作數(shù)據(jù)庫(kù),SQL語(yǔ)句的應(yīng)用等。本設(shè)計(jì)通過(guò)自己的努力,基本滿足了圖書(shū)管理的基本需要,實(shí)現(xiàn)了用戶使用的方便以及管理員管理的方便,在界面上力求做到簡(jiǎn)單實(shí)用,在操作方面盡量做到滿足用戶使用的習(xí)慣,但由于自己的水平有限和時(shí)間

77、的不足,在很多方面還不完善,有些功能沒(méi)有在全局上把握好,比如一些功能函數(shù)可以在一個(gè)文件中定義,具體頁(yè)面需要用到再直接引用,SQL語(yǔ)句的執(zhí)行效果也存在效率不高的問(wèn)題,關(guān)于圖書(shū)管理的所有操作集中在一個(gè)頁(yè)面實(shí)現(xiàn),出現(xiàn)了一些混淆,程序更改,測(cè)試時(shí)很不好等。在今后的學(xué)習(xí)當(dāng)中將繼續(xù)完善此系統(tǒng),使其功能更加強(qiáng)大,滿足用戶的</p><p><b>  5.參考文獻(xiàn)</b></p><p

78、>  [1] 王珊 薩師煊. 數(shù)據(jù)庫(kù)系統(tǒng)概論(第四版).北京:高等教育出版社.</p><p>  [2] 求是科技. ASP數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)與工程實(shí)踐[M] .北京:人民郵電出版社.</p><p>  [3] 劉意成.SQL實(shí)戰(zhàn)演練[M] .北京:西安電子科技大學(xué)出版社.</p><p>  [4] 周緒.SQL Server 2000中文版入門(mén)與提高[M]

79、 .北京:清華大學(xué)出版社.</p><p>  [5] 李存斌.數(shù)據(jù)庫(kù)應(yīng)用技術(shù)[M] .北京:中國(guó)水利水電出版社.</p><p>  [6] 羅運(yùn)模. SQL Server 2000數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用與開(kāi)發(fā)[M] .北京:人民郵電出版社.</p><p><b>  8. 評(píng)分表</b></p><p>  計(jì)算機(jī)與通信學(xué)院

溫馨提示

  • 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)論