2023年VisualFoPro程序設計實驗報告_第1頁
2023年VisualFoPro程序設計實驗報告_第2頁
2023年VisualFoPro程序設計實驗報告_第3頁
2023年VisualFoPro程序設計實驗報告_第4頁
2023年VisualFoPro程序設計實驗報告_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

VF程序設計實驗報告

圖書館管理系統(tǒng)

專業(yè):________________________

學號:_______________________

姓名:______________________

指導教師:_______________________

2023年12月31日

目錄

第一部分系統(tǒng)概述

第二部分系統(tǒng)功能模塊設計一

第三部分系統(tǒng)數(shù)據庫及表設計

第四部分系統(tǒng)菜單設計

—5

第五部分系統(tǒng)界面設計

6

第六部分系統(tǒng)相關程序代碼

13

第七部分實驗報告小結

22

第八部分參考資料一一

22

一、系統(tǒng)概述

近年來,隨著圖書館規(guī)模的不斷擴大,圖書數(shù)量相應的增長,有關圖書的各

種信息量也成倍增長,面對龐大的信息量,傳統(tǒng)的人工管理戶導致圖書管理的混

亂,人力與物力過多的浪費,圖書管理費用的增長,從而使圖書館的承擔過重,

影響整個圖書館的運作和控制管理。因此,為了充足發(fā)揮了圖書館的功效,最大

限度地為讀者服務,必須制定一套合理、有效,規(guī)范和實用的圖書館管理系統(tǒng),

對圖書資料進行集中統(tǒng)一的管理。

根據上述需要,我們建立本圖書館管理系統(tǒng)。

根據圖書、讀者和管理員三者之間的關系,本系統(tǒng)重要實現(xiàn)讀者對圖書的查

詢、個人信息的修改和管理員對讀者、圖書的管理。

本系統(tǒng)采用VF6.0作為開發(fā)工具。

二、系統(tǒng)功能模塊設計

本系統(tǒng)可以完畢一般圖書館關于圖書查詢、借閱及書庫管理的重要功能。其

中:圖書查詢模塊可以查詢所需要的圖書;讀者管理模塊中,讀者可以查看自己

的信息,對登陸密碼進行修改,管理員可以對讀者進行添加和刪除;圖書管理模

塊中,管理員可認為讀者進行圖書的借閱和歸還操作,以及對圖書的信息進行修

改,如加入新書、刪除不能使用的圖書和更新圖書的信息;報表打印模塊中,實現(xiàn)

對需要的信息進行打印輸出。系統(tǒng)結構下圖所示。

三、數(shù)據庫及表設計

經分析,圖書館管理系統(tǒng)重要涉及了學生、管理員和圖書三部分。因此需要

建立的實體就是學生、管理員和圖書三個。

根據系統(tǒng)模塊的設計,可以的到本系統(tǒng)需要建立的基本表為:讀者信息表、

管理員信息表、圖書信息表、圖書借閱信息表、圖書信息表。

數(shù)據庫的相關設計如下:

圖書館數(shù)%庫

<1I

其中,讀者信息表中證號為主索引,圖書信息表中總編號為主索引,圖書借閱

表中對總編號和證號建立普通索引。

表單設計

(1)、讀者信息表.dbf

Fr—.rg-^r-

一.

證號密碼||性別||年級||照片|備注|

>100034321汪寶強:男瞪理系;091市場營銷jGen■emo:

100001123;梁朝偉:男:數(shù)學系衿8[計算數(shù)學henjmemj

100002321:孫燕姿:女:信息系;08:計算機技術;Genjmemo?

100018123浮冰冰汝造媒系另8:新聞,Gen.emo!

100011132:陳道明;男;文學系;08:古文學pen>emoj

100006256醐明:男有育系汨8;籃球&nkernel

100028666;徐靜蕾:女:管理系論9:旅游管理jGen

ii!i;i|i

_一.L__L.J____L.J______!

iii:iJj5

ij:iiI

IiIi1iI

i1ii!?::二

FI

讀者信息表結構設計

字段名類型寬度索引

證號字符型6主索引

密碼字符型6

姓名字符型8

專業(yè)字符型10

性別字符型2

年級字符型2

院系字符型8

照片通用性30

備注備注型4

(2)管理員信息表.dbf

證號密碼

0103111

0102333

0101222

1

管理員信息表設計

字段名類型寬度索引

證號字符型4

密碼字符型6

(3)、圖書信息表.dbf

總編號

?445501TP3/12數(shù)據庫導論J.C.DATE科學出版社18.90可惜

445502TP3/12征服英語口語張翔世界圖書出版社17.90可借

L445503TP3/12美國15年沈寧中國經濟出版社17.90借出

332211TP5/10精逋VFP6.0笑然電子工業(yè)出版社22.00可惜

112266TP3/12F0XBASE+張海電子工業(yè)出版社23.60借出

225544TS7/21高等教育劉云彭高等教育出版社19.00借出

114455TR9/12線性代數(shù)孫冬春北京大學出版社20.80可借

113388TR7/90大學英語暢紅清華大學出版社12.50可惜

11£

圖書信息表設計

字段名類型寬度索引

總編號字符型6主索引

分類名字符型6

書名字符型12

作者字符型8

出版社字符型20

狀態(tài)字符型4

照片通用型4

(4)、圖書借閱信息表.dbf

L--J-1

證號總^號借出時間

10000144550312/10/10

10003411226611/21/10

10001822554412/27/10

11后

圖書借閱信息表設計

字段名類型寬度索引

總編號字符型6普通索引

證號字符型6普通索引

借出日期日期型8

四、系統(tǒng)菜單設計

依據上述系統(tǒng)功能模塊的設計,可以得到圖書館主界面菜單:重要涉及圖書

查詢、讀者管理、圖書管理、報表打印和退出。其中,圖書查詢執(zhí)行命doform圖

書查詢.sex;退出執(zhí)行命令_vfp.activeform,release;讀者管理和圖

書管理包含子菜單;此外,報表打印的相關設計未能實現(xiàn)。相關設計如下圖:

讀者管理菜單重要包含讀者信息查看、登陸密碼修改、讀者增添刪除三個子

菜單。其中,讀者信息查看執(zhí)行命令doform讀者信息.sex;登陸密碼修改

執(zhí)行命令doform密碼修改.sex;讀者增添刪除執(zhí)行命令doform讀者增

刪.SCXo

相關設計結果如下圖:

圖書管理菜單包含圖書借閱、圖書歸還、圖書信息修改三個子菜單。其中,

圖書歸還執(zhí)行命令doform圖書借閱.scx;圖書歸還執(zhí)行命令doform

圖書歸還.scx;圖書信息修改執(zhí)行命令doform圖書信息修改.sex。相關

設計結果如下圖:

五、系統(tǒng)界面設計

(1)登陸界面設計

用戶通過登陸界面進行登陸,選擇自己的用戶類型,輸入證號和密碼,假如輸

入的信息與所連接的表中的數(shù)據相符,則進入圖書館的主界面,否則提醒錯誤,直

到輸入對的信息方能進入系統(tǒng)。

用戶委陸

(2)系統(tǒng)主界面設計

當用戶登陸證號和密碼通過驗證后,進入圖書管理系統(tǒng)的主界面,該界面由

一表單及菜單組成。其中,表單上的“歡迎使用圖書館管理系統(tǒng)!”是歷來左移動

的動畫,以增強界面的和諧感。此外,用戶可通過菜單上的各種操作對圖書進行管

理。圖書館管理系統(tǒng)的主界面如下:

(3)圖書查詢界面設計

用戶可以選擇查詢條件,根據書名、作者、主題詞、出版社、總編號其中的

一種方式對圖書進行查詢,查詢的結果顯示在下邊一個表格中。

總編號分類名書名作者出版社狀態(tài)上

445501TP3/12數(shù)據庫導論J.C.DATE科學出版社可惜

445502TP3/12征服英語口語張翔世界圖書出版可借

445503TP3/12美國15年沈寧中國經濟出版借出

332211TP5/10精通VFP6.0笑然電子工業(yè)出版可借

112266TP3/12F0XBASE+張海電子工業(yè)出版借出

225544TS7/21高等教育劉云彭高等教育出版借出

111TRQ/12北西■十堂山指

(4)讀者信息查看界面設計

管理員可以再次查看讀者的信息,點擊CommandGroup組中的各個圖標

可以查看任意一個讀者的信息。

(5)讀者密碼修改界面設計

讀者可以在此修改自己的密碼,修改后的新密碼同時在讀者信息表中對相

應密碼進行更新。

(6)讀者增添刪除界面設計

管理員可以在此添加和刪除用戶,添加和刪除的用戶信息同時在讀者信息

表中進行更新。

(7)圖書借閱界面設計

管理員對讀者需要借閱的圖書進行借閱操作,輸入圖書總編號及讀者的證

號完畢圖書的借閱流程。將此借閱的信息保存到圖書借閱信息表中。

(8)圖書歸還界面設計

管理員對讀者需要需要歸還的圖書進行歸還操作,輸入要歸還的圖書編號及

讀者證號,在圖書借閱信息中進行查找并刪除,完畢圖書歸還的操作。

圖書歸還

總編號:

讀者證號:

歸還返回

(9)圖書信息修改界面設計

本界面使用了一個PageCount為3的頁框,重要完畢圖書的添加、刪除及

信息更新的功能。下圖中,管理員可以對圖書進行登記,新書信息將添加到圖書

信息表中,讀者可查閱到。

在本界面中,管理員可以對需要刪除的圖書從圖書信息表中刪除,輸入要刪除

的圖書的總編號,系統(tǒng)進行查找,若找到則刪除,找不到則提醒錯誤。

在本界面中,管理員可以通過輸入圖書的總編號,查找到需要更新的圖書,進

入圖書更新界面中。

當系統(tǒng)找到相應的圖書編號時,進入如下界面。在此,管理員可以更改圖書

的各種信息。

六、程序代碼

1、登陸界面

(1)登陸按鈕click事件代碼:

ifalltrim(thisform.containerl.textl.value)==zz,/

messagebox(〃請輸入用戶名!〃)

return

endif

ifal1trim(thisform.container1.text2.va1ue)==〃

messagebox(〃請輸入密碼!")

return

endif

a=thisform.containerl.optiongroup1.value

ifa=l

use讀者信息

locateforal1trim(證號)=al1trim(thisform.containerl.t

ext1.value)

iffound()

ifa11trim(密碼)=a11trim(thisform.containe

rl.text2.va1ue)

messagebox(〃登錄成功”,64,〃身份驗證通過〃)

doform圖書館主界面,scx

re1easethisform

else

messagebox(〃密碼輸入錯誤!〃,16,〃錯誤提醒〃)

endif

e1se

messagebox(〃讀者號不存在!〃,16,〃錯誤提醒”)

endif

else

use管理員

1ocateforal1trim(證號)=alltrim(thisform.container

1.textl.value)

iffound()

ifa1ltrim(密碼)=a11trim(thisform.containerl.text2.

value)

messagebox(〃登錄成功!〃,64,〃身份驗證通過〃)

doform圖書館主界面.sex

releasethisform

else

inessagebox("密碼輸入錯誤!",16,"錯誤提醒”)

endif

e1se

messagebox(〃用戶名不存在!”,16,〃錯誤提醒〃)

endif

endif

(2)退出按鈕click事件代碼:

answer=messagebox(〃你決定退出系統(tǒng)嗎?〃,4,”提醒〃)

docase

caseanswer=6

thisform.re1ease

caseanswer=7

messagebox(〃請輸入用戶名和密碼”,0,〃提醒〃)

endcase

2、系統(tǒng)主界面

(1)表單的int事件代碼:

do圖書館主界面.MPRwiththis,.T.

THISFORM.Timer1.Enabled=.T.

(2)timel的time事件代碼:

IFthisform.Labell.Left+thisform.label1.width>0

thisform.Labell.Left=THIS.Parent.Labe11.Left-10

ELSE

thisform.Labell.Left=thisform.Width

ENDIF

3、圖書查詢界面

(1)查詢按鈕的click事件代碼:

OPENDATABASE圖書館數(shù)據庫.dbcSHARED

thisform.grid1.recordsource二〃〃

m=allt(thisform.textl.value)

n=thisform.optiongroup1.va1ue

docase

casen=l

select*from圖書信息where書名intocursortemp

thisform.gridl.recordsource=z/temp〃

casen=2

selectfrom圖書信息wherealltrim(作者)=minto

cursortemp

thisform.gridl.recordsource=,,temp〃

casen=3

select*from圖書信息wherealltrim(書名)1ike〃%〃+m+〃%"i

ntocursortemp

thisform.gridl.recordsource=Htemp〃

casen=4

se1ect*from圖書信息whereal1trim(出版社)=mintoc

ursortemp

thisform.gridl.recordsource=//temp〃

casen=5

select*from圖書信息wherea1Itrim(總編號)==mintocurs

ortemp

thisform.gridl.recordsource=z/temp”

endcase

thisform.refresh

(2)返回按鈕的click事件代碼:thisform,release

4、讀者信息查看界面

Commandgroup組的c1ick事件代碼:

n=this.va1ue

docase

casen=1

0gotop

thisform.commandgroupl.buttons(1).enab1ed=.f.

othisform.commandgroup1.buttons(2).enabled=.f.

thisform.commandgroup1.buttons(3).enab1ed=.t.

thisform.commandgroupl.buttons(4).enab1ed=.t.

casen=2?

oskip-1

?ifbof0

3gotop

thisform.commandgroup1.buttons(1).enabled=.f.

thisform.commandgroup1.buttons(2).enab1ed=.f.

<>endif

othisform.commandgroupl.buttons(3).enabled=.t.

^thisform.commandgroupl.buttons(4).enabled=.t.

casen=3

skip1

ifeof()

匕gobottom

。thisform,commandgroup1.buttons(3).enabled=.f.

thisform.commandgroup1.buttons(4).enabled=?f.

oendif

thisform,commandgroup1.buttons(1).enabled=.t.

othisform.commandgroup1.buttons(2).enabled=.t.

casen=4

gobottom

thisform.commandgroupl.buttons(4).enabled=.f.

hisform.commandgroup1.buttons(3).enabled=.f.

othisform.commandgroupl.buttons(1).enab1ed=?t.

thisform.commandgroupl.buttons(2).enabled=.t.

casen=5

thisform.release

endcase

thisform.refresh

5、密碼修改界面:

(1)修改按鈕的click事件密碼:

a=thisform.text4.value

b=thisform.textl.value

c=thisform.text2.va1ue

d=thisform.text3.value

ifalltrim(a)==〃"

messagebox(〃請輸入賬號!〃)

thisform.text4.setfocus

return

endif

ifa1Itrim(b)==,,/,

messagebox(〃請輸入密碼!〃)

thisform.text1.setfocus

return

endif

ifa11trim(c)==〃"

messagebox(〃請輸入新密碼!〃)

thisform.text2.setfocus

return

endif

ifalitrim(d)=="”

messagebox("請再次輸入新密碼!〃)

thisform.text3.setfocus

return

endif

use讀者信息

1ocatefora11trim(證號)==a1Itrim(a)

iffound()

ifalltrim(密碼)二二alltrim(b)

ifc==d

e=messagebox(〃擬定要修改嗎?〃,32+1+0,"提醒〃)

ife=l

replace密碼withcforalltrim(證號)=al1t

rim(a)

messagebox(〃密碼修改成功!”)

endif

else

messagebox(〃確認密碼不對的!請重新輸入!〃)

thisform.text2.value=〃〃

thisform.text3.va1ue="〃

thisform.text2.setfocus

endif

e1se

messagebox(〃密碼輸入錯誤!請重新輸入密碼!〃,16,”錯誤提醒〃)

thisform.textl.value=〃〃

thisform.text2.value=〃〃

thisform,text3.va1ue二〃〃

thisform.text1.setfocus

endif

else

messagebox(〃證號不存在!〃,16,〃錯誤提醒")

thisform.text1.value二〃〃

thisform.text2.value=〃〃

thisform.text3.value="〃

thisform.text4.value二〃〃

endif

(2)返回按鈕的click事件代碼:releasethisform

6、讀者增刪界面

(1)command1按鈕的c1ick事件代碼:

opendatabase圖書館數(shù)據庫.dbcshared

a=allt(thisform.textl.value)

b=a11t(thisform.text2.value)

ifa==

messagebox(〃證號不能為空!〃,0,”提醒〃)

thisform.tex11.setfocus

return

endif

ifb=〃〃

messagebox(〃密碼不能為空!”,0,〃提醒〃)

thisform.text2.setfocus

return

endif

use讀者信息

1ocatefor證號二a

iffound()

messagebox。該用戶已經存在!〃,0,〃提醒〃)

thisform.text1.value=〃〃

thisform.text2.value=〃〃

thisform.text1.setfocus

else

insertinto讀者信息(證號,密碼)va1ues(a,b)

thisform.textl.value二〃〃

thisform.text2.value="〃

messagebox(〃恭喜你注冊成功!”,0,〃提醒〃)

thisform.text1.setfocus

endif

use

(2)command2的cliek事件代碼:

opendatabase圖書館數(shù)據庫.dbeshared

a=a11t(thisform.text3.value)

ifa==

messagebox(〃證號不能為空!〃,0,〃提醒〃)

return

endif

use讀者信息

locatefor證號二a

iffound()

b=messagebox(〃擬定要刪除該用戶嗎?1,〃提醒〃)

ifb=1

odelete

gpack

thisform.text3.value=〃”

omessagebox("刪除成功!“,0,"提醒”)

8thisform.text3.setfocus

endif

else

messagebox(〃沒有該用戶!請重新輸入!〃,0,〃提醒〃)

thisform.text3.value=〃〃

thisform.text3.setfocus

endif

use

(3)command3的click事件代碼:thisform.release

7、圖書借閱界面

(1)借出按鈕的click事件代碼:

OPENDATABASE圖書館數(shù)據庫.dbeSHARED

a=al1t(thisform.text1.value)

b=alit(thisform.text2.value)

c=date()

use圖書借閱信息

locatefor總編號二a

iffound()

insertinto借書信息va1ues(a,b,c)

messagebox(〃借書成功!〃,0,H提醒〃)

else

answer二messagebox("沒有該書!是否繼續(xù)?",1,〃提醒〃)

ifanswer=l

thisform.textl.value二〃〃

thisform.text2.value=〃〃

else

thisform.re1ease

endif

endif

use

closedatabase

(2)返回按鈕的click事件代碼:releasethisform

8、圖書歸還界面

(1)歸還按鈕的click事件代碼:

OPENDATABASE圖書館數(shù)據庫.dbcSHARED

a=a11t(thisform.text1.value)

b=allt(thisform.text2.value)

use圖書借閱信息

locatefor總編號=aand證號二b

iffound()

delete

answer=messagebox(〃確認是否還書?〃,1,〃提醒〃)

ifanswer=1

pack

thisform.textl.value二〃〃

thisform.text2.value=n”

else

recal1

endif

else

messagebox。你輸入的信息不對,請確認后重新輸入!〃,0,〃提醒〃)

endif

closedatabase

(2)返回按鈕的click事件代碼:releasethisform

9、圖書信息修改界面

(1)pagel中的commandl按鈕的click事件代碼:

opendatabase圖書館數(shù)據庫.dbcshared

zbh=a1It(thisform.pageframe1.page1.textl.value)

f1m=allt(thisform.pageframe1.pagel.text2.value)

sm=a11t(thisform.pageframe1.page1.text3.value)

zz=a11t(thisform,pageframel.page1.text4.va1ue)

cbs=allt(thisform.pageframel.pagel.text5.value)

dj=val(allt(thisform.pageframe1.pagel.text6.value))

zt=allt(thisform.pageframe1.pagel.text7.va1ue)

use圖書信息

answer=messagebox(〃確認添加新書嗎?",1,〃提醒")

ifanswer=l

insertinto圖書信息va1ues(zbh,f1m,sm,zz,cbs,dj,zt)

messagebox(〃添加成功!〃,0,〃提醒”)

else

thisform.pageframel.pagel.text1.value="〃

thisform,pageframel.page1.text2.value="〃

thisform.pageframel.pagel.text3.value二〃"

thisform.pageframe1.pagel.text4.value二〃”

thisform.pageframel.pagel.text5.value=,,/,

thisform.pageframe1.pagel.text6.value="”

thisform.pageframel.pagel.text7.va1ue二〃”

endif

use

closedatabase

(2)page1中的command2按鈕的c1ick事件代碼:

releasethisform

(3)page2中的command1按鈕的click事件代碼:

opendatabase圖書館數(shù)據庫.dbcshared

zbh=allt(thisform.pageframe1.page2.textl.value)

use圖書信息

locatefor書名=zbh

iffound()

answer=messagebox(〃擬定要刪除該書嗎?”,1,〃提醒〃)

ifanswer=l

。delete

pack

thisform.pageframel.page1.textl.value="〃

messagebox(H刪除成功!”,0,〃提醒〃)

endif

else

messagebox(〃沒有此書!請檢查重新輸入!”,0,〃提醒〃)

thisform,pageframe1.pagel.textl.value="”

endif

use

closedatabase

(4)page2中的command2按鈕的c1ick事件代碼:

releasethisform

(5)page3中的commandl按鈕的click事件代碼:

opendatabase圖書館數(shù)據庫.dbcshared

zbh=a11t(thisform.pageframe1.page3.text1.value)

use圖書信息

locatefor總編號=zbh

iffound()

DOFORM圖書信息更新.sex

thisform.release

else

messagebox("沒有該書!請檢查重新輸入!",0,"提醒")

thisform.pageframel.page1.textl.value="〃

endif

use

closedatabase

(6)page3中的command2按鈕的click事件代碼:

releasethisform

10、圖書信息更新界面

(1)command1的c1ick事件代碼:

opendatabase圖書館數(shù)據庫.dbeshared

zbh_new=a1It(

溫馨提示

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

評論

0/150

提交評論