图书馆管理系统详细有图片的插入教学文案.docx

上传人:b****6 文档编号:7422474 上传时间:2023-01-23 格式:DOCX 页数:49 大小:1.57MB
下载 相关 举报
图书馆管理系统详细有图片的插入教学文案.docx_第1页
第1页 / 共49页
图书馆管理系统详细有图片的插入教学文案.docx_第2页
第2页 / 共49页
图书馆管理系统详细有图片的插入教学文案.docx_第3页
第3页 / 共49页
图书馆管理系统详细有图片的插入教学文案.docx_第4页
第4页 / 共49页
图书馆管理系统详细有图片的插入教学文案.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

图书馆管理系统详细有图片的插入教学文案.docx

《图书馆管理系统详细有图片的插入教学文案.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统详细有图片的插入教学文案.docx(49页珍藏版)》请在冰豆网上搜索。

图书馆管理系统详细有图片的插入教学文案.docx

图书馆管理系统详细有图片的插入教学文案

 

北京联合大学

实验(实习、实训)报告

 

课程(项目)名称:

图书馆管理系统

学院:

特殊教育学院专业:

计算机应用技术

班级:

09年级学号:

2009061243109

姓名:

许华杰成绩:

 

2011年12月29日

图书馆管理系统

——09计应许华杰

系统资料室的藏书量较小,一般从几千册到几万册不等,读者人数也较少,大多数单位都没有购买了昂贵的大型管理软件,往往又很难充分应用其所有功能,从而造成经济与资源上的浪费。

因此,我利用VFP数据库管理系统软件设计一套适合资料的图书馆管理系统。

1、需求分析

需求分析是数据库设计的第一步,是整个设计的基础,准确了了解和分析用户的需求,用户包括图书管理员及读者,想要设计出功能强大的图书馆管理系统。

2、概念结构设计阶段

概念结构设计就是现实世界具体数据的首次抽象,是对用户的需求和功能的要求来完成的,因此,我采用了Xmind软件来建立图书馆管理系统概念模型的E-R图——联系模型

补,模块结构:

3、逻辑结构设计阶段

将概念结构转化为DBMS(数据库管理系统)支持的数据模型,概念结构模型可转换网状模型,层次模型,关系模型。

目前,数据库系统普通采用关系模型。

将概念设计阶段得到的概念模型转换成关系模型,如表1,2,3所示:

表1,读者信息

姓名

读者证号

借书状态

当前借量

失效日期

表2,借阅信息

读者证号

书号

还书日期

表3,图书信息

书号

书名

作者

出版社

出版日期

价格

注销

4、数据库物理设计阶段

一)、表与数据库的具体设计

1、表的设计

①读者信息表:

读者信息:

索引:

读者证号——主索引

表4,读者信息表

②借阅信息表:

借阅信息:

索引:

书号——普通索引;读者证号——普通索引

表5,借阅信息表

③图书信息表:

图书信息:

索引:

书号——主索引

表6,图书信息

④用户表:

2、数据库的设计

建立“图书馆管理系统数据库”,添加表,并建立表间的关联,如图:

3、目录设计

建立“图书馆管理系统”文件夹,在文件夹内建立form、database、images、report、menu、bak子文件夹,分别用于存放表单、数据库和表、图像、报表、菜单、备份文件。

4、读者信息管理设计

①读者查询

表单的init事件:

thisform.Label1.visible=.f.

thisform.text1.visible=.f.

thisform.text1.setfocus()

mand1.visible=.f.

thisform.grid1.readonly=.t.

选项按钮组(optiongroup1)的click事件:

docase

casethis.value=1

thisform.text1.visible=.t.

thisform.label1.visible=.t.

mand1.visible=.t.

thisform.label1.caption="请输入按读者证号查询:

"

thisform.text1.value=""

thisform.text1.setfocus()

casethis.value=2

thisform.text1.visible=.t.

thisform.label1.visible=.t.

mand1.visible=.t.

thisform.label1.caption="请输入按姓名查询:

"

casethis.value=3

thisform.text1.visible=.f.

thisform.label1.visible=.f.

mand1.visible=.f.

setfilterto

gotop

thisform.grid1.refresh

Endcase

“查看”按钮(command1)的click事件:

docase

casethisform.optiongroup1.value=1

setfilterto读者证号=alltrim(thisform.text1.value)

casethisform.optiongroup1.value=2

setfilterto姓名=alltrim(thisform.text1.value)

endcase

thisform.grid1.refresh

“查询打印”按钮(command3)的click事件:

reportformreport\读者信息.frxpreview

设计“读者信息”报表,样式如图下:

“退出”按钮(command2)的click事件:

thisform.release。

②读者信息编辑

功能要求:

图书管理员向系统数据库中录入读者信息,删除或修改读者信息。

表单界面如图下:

Form1的init事件:

thisform.text1.value=读者信息.读者证号

thisform.text2.value=读者信息.姓名

thisform.text3.value=读者信息.借书状态

thisform.text4.value=读者信息.当前借量

thisform.text5.value=读者信息.失效日期

第一个按钮组包括第一个,上一个,下一个,最后一个,它们的代码和“用户管理”的代码是一样。

第二个按钮组里有四个,分别是添加,修改,删除,退出。

“添加”按钮(command1)的click事件:

ifalltrim(mand1.caption)='添加'

mand1.caption='保存'

mand2.caption='取消'

mand3.enabled=.f.

mand1.enabled=.t.

mand2.enabled=.t.

store''tothisform.text1.value,thisform.text2.value,thisform.text3.value,thisform.text4.value,thisform.text5.value

thisform.text1.setfocus

else

mand1.caption='添加'

mand2.caption='修改'

mand3.enabled=.t.

a1=alltrim(thisform.text1.value)

a2=alltrim(thisform.text2.value)

a3=alltrim(thisform.text3.value)

a4=alltrim(thisform.text4.value)

a5=alltrim(thisform.text5.value)

select*from读者信息where读者证号==a1orderby读者证号intocursortt1

ifreccount()=0

insertinto读者信息values(a1,a2,a3,a4,a5)

messagebox('数据保存完毕!

',48,'操作成功!

')

else

nAnswer=messagebox('信息已修改,确定要保存吗?

',4+32,"重要提示")

docase

casenAnswer=6

update读者信息set读者证号=a1,姓名=a2,借书状态=a3,当前借量=a4,失效日期=a5where读者证号==a1

messagebox('数据保存完毕!

',48,'操作成功!

')

endcase

endif

select读者信息

thisform.init

endif

“修改”按钮的代码和“用户管理”的代码一样

ifalltrim(mand2.caption)='修改'

mand1.caption='保存'

mand2.caption='取消'

mand3.enabled=.f.

thisform.text1.setfocus

else

mand1.caption='添加'

mand2.caption='修改'

mand3.enabled=.t.

thisform.init

endif

“删除”按钮(command3)的click事件:

j1=recno()

a1=alltrim(thisform.text1.value)

nAnswer=messagebox('确定要删除吗?

',4+32,"重要提示")

ifnAnswer=6

deletefrom读者信息where读者证号==a1

usedatabase\读者信息exclusive

pack

ifj1<=reccount()

goj1

else

gobottom

endif

thisform.init

messagebox('删除完毕',48,'操作成功!

')

thisform.refresh

endif

“退出”按钮(command4)的click事件:

thisform.release。

③读者统计

功能要求:

根据按选择的统计类别,对读者信息进行分类统计。

如图下:

此图片里有一个选项按钮组(optiongroup1)里有两个按钮,分别是借书状态和全部显示。

按钮组里的”借书状态“按钮(option1)的click事件:

thisform.grid1.recordsourcetype=4

thisform.grid1.recordsource="sele借书状态,count(*)as人数from读者信息groupby借书状态intocursp1"

按钮组里的”全部显示“按钮(option2)的click事件:

thisform.grid1.recordsourcetype=4

thisform.grid1.recordsource="sele*from读者信息intocursp2"

还有”退出“按钮(command1)的click事件:

thisform.release

5、图书信息管理设计

①图书查询:

功能要求:

从系统中检查出相关图书,实现图书的快速检索,查询,表单界面如图下:

Form1的load事件:

publica

a=0

Optingroup1的init事件:

this.value=0

Ojption1的click事件:

a=1

Option2的click事件:

a=2

Command1的click事件:

closeall

usedatabase\图书信息

bh=trim(thisform.text1.value)

docase

casea=1

browseforat(bh,书名)<>0

casea=2

browseforat(bh,作者)<>0

endcase

Use

Command2的click事件:

thisform.release

②图书编辑:

功能要求:

图书管理人员向系统数据库中录入新图书和删除已丢失的图书。

表单界面如图下:

Form1的init事件:

thisform.text1.value=图书信息.书号

thisform.text2.value=图书信息.书名

thisform.text3.value=图书信息.作者

thisform.text4.value=图书信息.出版社

thisform.text5.value=图书信息.出版日期

thisform.text6.value=图书信息.价格

第一个按钮组包括第一个,上一个,下一个,最后一个,它们的代码和“用户管理”的代码是一样。

第二个按钮组里有四个,分别是添加,修改,删除,退出。

“添加”按钮(command1)的click事件:

ifalltrim(mand1.caption)='添加'

mand1.caption='保存'

mand2.caption='取消'

mand3.enabled=.f.

mand1.enabled=.t.

mand2.enabled=.t.

store''tothisform.text1.value,thisform.text2.value,thisform.text3.value,thisform.text4.value,thisform.text5.value,thisform.text6.value

thisform.text1.setfocus

else

mand1.caption='添加'

mand2.caption='修改'

mand3.enabled=.t.

a1=alltrim(thisform.text1.value)

a2=alltrim(thisform.text2.value)

a3=alltrim(thisform.text3.value)

a4=alltrim(thisform.text4.value)

a5=alltrim(thisform.text5.value)

a6=alltrim(thisform.text6.value)

select*from图书信息where书号==a1orderby书号intocursortt1

ifreccount()=0

insertinto图书信息values(a1,a2,a3,a4,a5,a6)

messagebox('数据保存完毕!

',48,'操作成功!

')

else

nAnswer=messagebox('信息已修改,确定要保存吗?

',4+32,"重要提示")

docase

casenAnswer=6

update图书信息set书号=a1,书名=a2,作者=a3,出版社=a4,出版日期=a5where书号==a1

messagebox('数据保存完毕!

',48,'操作成功!

')

endcase

endif

select图书信息

thisform.init

endif

“修改”按钮的代码和“用户管理”的代码一样

ifalltrim(mand2.caption)='修改'

mand1.caption='保存'

mand2.caption='取消'

mand3.enabled=.f.

thisform.text1.setfocus

else

mand1.caption='添加'

mand2.caption='修改'

mand3.enabled=.t.

thisform.init

endif

“删除”按钮(command3)的click事件:

j1=recno()

a1=alltrim(thisform.text1.value)

nAnswer=messagebox('确定要删除吗?

',4+32,"重要提示")

ifnAnswer=6

deletefrom图书信息where书号==a1

usedatabase\图书信息exclusive

pack

ifj1<=reccount()

goj1

else

gobottom

endif

thisform.init

messagebox('删除完毕',48,'操作成功!

')

thisform.refresh

Endif

“删除”按钮(command3)的click事件:

j1=recno()

a1=alltrim(thisform.text1.value)

nAnswer=messagebox('确定要删除吗?

',4+32,"重要提示")

ifnAnswer=6

deletefrom图书信息where书号==a1

usedatabase\图书信息exclusive

pack

ifj1<=reccount()

goj1

else

gobottom

endif

thisform.init

messagebox('删除完毕',48,'操作成功!

')

thisform.refresh

endif

“退出”按钮(command4)的click事件:

thisform.release。

③图书统计:

功能要求,对图书信息来按分类进行统计,如图下:

选项按钮组的“读者情况”(option1)的click事件:

thisform.grid1.recordsourcetype=4

thisform.grid1.recordsource="select读者信息.读者证号,姓名,count(*)as借书数量from读者信息,借阅信息where读者信息.读者证号=借阅信息.读者证号groupby借阅信息.读者证号orderby借阅信息.读者证号intocursg1"

“出版社”按钮(option2)的click事件:

thisform.grid1.recordsourcetype=4

thisform.grid1.recordsource="select出版社,count(*)as数量from图书信息groupby出版社intocursg2"

“显示图书信息”按钮(option3)的click事件:

thisform.grid1.recordsourcetype=4

thisform.grid1.recordsource="select借阅信息.读者证号,读者信息.姓名,图书信息.书名,读者信息.当前借量from借阅信息,读者信息,图书信息where读者信息.读者证号=借阅信息.读者证号and图书信息.书号=借阅信息.书号orderby读者信息.读者证号intocursg3"

“退出”按钮(command1)的click事件:

thisform.release。

6、图书服务设计

①图书归还:

功能要求:

图书管理人员能够方便的实现删除图书等记。

表单界面如图下:

“还书”按钮的click事件:

zh=trim(thisform.text1.value)

tm=trim(thisform.text2.value)

iflen(zh)>2

usedatabase\读者信息

locateforalltrim(读者证号)==zh

iffound()

num=当前借量-1

replace当前借量withnum

usedatabase\借阅信息

locateforalltrim(读者证号)==zhandalltrim(书号)==tm

iffound()

deleforalltrim(读者证号)==zhandalltrim(书号)==tm

pack

use

messagebox("还书成功!

")

else

messagebox("图书号输入错误,请重新输入!

")

thisform.text2.setfocus

return

endif

else

messagebox("读者证号错误,请重新输入!

")

thisform.text1.setfocus

return

endif

endif

②图书借阅:

功能要求:

图书管理人员能够方便的实现图书借出登记。

表单界面如图下:

“借阅”按钮的click事件:

zh=trim(thisform.text1.value)

sh=trim(thisform.text2.value)

usedatabase\读者信息

iffound()

locateforalltrim(读者证号)==zh

ifreccount()=0

insertintodatabase\借阅信息values(zh,sh,date()+30)

messagebox("借阅成功!

")

return

else

messagebox("当前借量必须小于5")

return

endif

else

messagebox("借阅失败,请查看借书证号是否合法!

")

return

Endif

7、系统帮助功能

①用户管理设计:

Form1的init事件:

thisform.text1.value=用户表.用户名称

thisform.text2.value=用户表.用户密码

thisform.list1.value=用户表.用户权限

第一个命令按钮组(commandgroup2)里有四个,分别是第一个,上一个,下一个,最后一个。

按钮组里的“第一个”按钮(command1)的click事件:

gotop

mand1.enabled=.f.

mand2.enabled=.f.

mand3.enabled=.t.

mand4.enabled=.t.

thisform.init

Thisform.refresh

按钮组里的“上一个”按钮(command2)的click事件:

skip-1

thisform.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1