1、一、 需求分析需求分析是数据库设计的第一步,是整个设计的基础,准确了了解和分析用户的需求,用户包括图书管理员及读者,想要设计出功能强大的图书馆管理系统。 二、 概念结构设计阶段概念结构设计就是现实世界具体数据的首次抽象,是对用户的需求和功能的要求来完成的,因此,我采用了Xmind软件来建立图书馆管理系统概念模型的E-R 图联系模型补,模块结构:三、 逻辑结构设计阶段将概念结构转化为DBMS(数据库管理系统)支持的数据模型,概念结构模型可转换网状模型,层次模型,关系模型。目前,数据库系统普通采用关系模型。将概念设计阶段得到的概念模型转换成关系模型,如表1,2,3 所示: 表1,读者信息姓名读者证
2、号借书状态当前借量失效日期 表2,借阅信息书号还书日期 表3,图书信息书名作者出版社出版日期价格注销四、 数据库物理设计阶段一)、表与数据库的具体设计1、表的设计读者信息表:读者信息:索引:读者证号主索引 表4,读者信息表借阅信息表:借阅信息:书号普通索引;读者证号普通索引 表5,借阅信息表图书信息表:图书信息:书号主索引 表6,图书信息用户表:2、 数据库的设计建立“图书馆管理系统数据库”,添加表,并建立表间的关联,如图:3、 目录设计建立“图书馆管理系统”文件夹,在文件夹内建立form、database、images、report、menu、bak子文件夹,分别用于存放表单、数据库和表、图
3、像、报表、菜单、备份文件。4、 读者信息管理设计读者查询 表单的init事件:thisform.Label1.visible=.f.thisform.text1.visible=.f.thisform.text1.setfocus()mand1.visible=.f.thisform.grid1.readonly=.t.选项按钮组(optiongroup1)的click事件:do case case this.value=1 thisform.text1.visible=.t. thisform.label1.visible=.t. mand1.visible=.t. thisform.lab
4、el1.caption=请输入按读者证号查询: thisform.text1.value= thisform.text1.setfocus() case this.value=2请输入按姓名查询: case this.value=3 thisform.text1.visible=.f. thisform.label1.visible=.f. mand1.visible=.f. set filter to go top thisform.grid1.refreshEndcase“查看”按钮(command1)的click事件:case thisform.optiongroup1.value=1
5、set filter to 读者证号=alltrim(thisform.text1.value)case thisform.optiongroup1.value=2 set filter to 姓名=alltrim(thisform.text1.value)endcasethisform.grid1.refresh“查询打印”按钮(command3)的click事件:report form report读者信息.frx preview设计“读者信息”报表,样式如图下:“退出”按钮(command2)的click事件:thisform.release。读者信息编辑功能要求:图书管理员向系统数据库
6、中录入读者信息,删除或修改读者信息。表单界面如图下:Form1的init事件:thisform.text1.value=读者信息.读者证号thisform.text2.value=读者信息.姓名thisform.text3.value=读者信息.借书状态thisform.text4.value=读者信息.当前借量thisform.text5.value=读者信息.失效日期第一个按钮组包括第一个,上一个,下一个,最后一个,它们的代码和“用户管理”的代码是一样。第二个按钮组里有四个,分别是添加,修改,删除,退出。“添加”按钮(command1)的click事件:if alltrim(mand1.c
7、aption)=添加mand1.caption=保存mand2.caption=取消mand3.enabled=.f.mand1.enabled=.t.mand2.enabled=.t.store to thisform.text1.value,thisform.text2.value,thisform.text3.value,thisform.text4.value,thisform.text5.value thisform.text1.setfocuselse修改mand3.enabled=.t.a1=alltrim(thisform.text1.value)a2=alltrim(this
8、form.text2.value)a3=alltrim(thisform.text3.value)a4=alltrim(thisform.text4.value)a5=alltrim(thisform.text5.value)select * from 读者信息 where 读者证号=a1 order by 读者证号 into cursor tt1if reccount()=0insert into 读者信息 values(a1,a2,a3,a4,a5)messagebox(数据保存完毕!,48,操作成功!)nAnswer=messagebox(信息已修改,确定要保存吗?,4+32,重要提示c
9、ase nAnswer=6update 读者信息 set 读者证号=a1,姓名=a2,借书状态=a3,当前借量=a4,失效日期=a5 where 读者证号=a1endifselect 读者信息thisform.init“修改”按钮的代码和“用户管理”的代码一样if alltrim(mand2.caption)=“删除”按钮(command3)的click事件:j1=recno()确定要删除吗?if nAnswer=6delete from 读者信息 where 读者证号=a1use database读者信息 exclusivepackif j1=reccount()go j1go bottom删除完毕thisform.refresh“退出”按钮(command4)的click事件:读者统计根据按选择的统计类别,对读者信息进行分类统计。如图下:此图片里有一个选项按钮组(optiongroup1)里有两个按钮,分别是借书状态和全部显示。按钮组里的”借书状态“按钮(option1)的click事件:thisform.grid1.recordsourcetype=4thisform.grid1.recordsource
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1