VF课程设计 - 图文

更新时间:2024-02-27 02:47:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2010--2011学年第 二 学期 物电 学院期末考试卷

《数据库应用软件》

学号: 200972020117 姓名: 李扬 班级: 2009级电子(1)班

成绩: 评语:

装 (考试题目及要求)

本考试要求学生运用数据库应用软件所学的知识根据自身的能力设计一个数据信息管理系统,并实现相应的功能。

订 线

图书馆管理系统

一. 系统需求分析

1. 系统的功能需求

这是为某一大学制作的图书馆管理系统,经过调查,图书馆管理人员最希望该系统解决的问题有: (1)

图书馆的图书借阅归还与图书销售的有机统一。一方面为读者建立一个合理使用图书的途径,另一方面使工作人员全面的掌握哪些读者借阅了什么书,购买了哪些书。

(2)

编制图书登记单,哪些书什么时候购进,什么时候借出,什么时候销售,销售的单价多少都应该有一个统一的规划,方面快捷的疏通图书问题。

(3)

提供读书查找,读者服务功能,方便读者投其所好地选择喜爱的书籍,尽量做到直观,简洁,方便, 实用。

2. 系统数据关系图

系统所涉及的实体及其关联比较简单,主要的实体有读者及图书两个,它们通过读者的借阅,图书的销售活动而发生关联。 期间涉及读者的系统进入,密码的修改及注册,系统概述介绍了本系统的主要功能,经过规划,可以建立二者的逻辑模型如下图所示:

西北师范大学 图书信息管理系统 图书信息 管理系统 图书销售系统管理 读者信息系统管理 记修改信息 图书服务系统管理 系统运行维护管理 注系退册统出记 录 信 息 修 改 销售销售查询 查询销售 借 阅还 回 录信息 修概系改述 统 密码 信 记息 录 二. 系统设计分析

1. 功能设计

本系统是西北师范大学图书馆管理系统,包含了对图书信息管理,图书销售管理,读者信息管理,读者借阅管理,系统维护管理等几方面的内容。含有以下功能:可以修改,输入查询与图书有关的内容,能够打印,查阅图书的借阅信息,并且通过密码设置对系统进行保护与维护等。具体包含以下几个方面的内容:

● 图书信息管理:图书信息记录管理和修改图书信息管理。 ● 图书销售管理:销售记录增删及信息查询操作管理。

● 读者信息管理:录入读者信息及修改读者信息管理。 ● 图书服务管理:借阅归还图书及图书查询管理。 ● 系统运行维护管理:用户注册变换密码及系统概述管理。 2. 系统的具体设计 (1) 用户登陆界面

登录界面如下图所示。用户在使用本系统前,要输入正确的用户名及密码,方可进入“图书信息管理系统”进行下一步操作。如果密码错误或者不填写,系统会自动提示。 (注:本系统用户名及密码为:888及888)

(2)系统的主界面

系统主界面如下图所示。通过登录验证后,用户可以进入主界面窗体,通过点击主窗体各个菜单,用户可以方便地使用“图书信息管理系统”中的各项功能。在各项功能使用

完毕后,点击“退出系统”命令菜单,系统会自动退出。

(3)图书信息系统管理

本界面命令下包含两方面的内容:记录图书信息和修改图书信息。

记录图书信息需要将图书的各项指标(如名字,出版社,书号,定价,作者等)进行一次详细的记录,之后单击确定完成。单击重填所有空格将置空,方便用户重新输入。

修改图书记录信息将所有图书从第一条到最后一条详细规划,若果发现中间有需要改正的地方,单击修改重新录入即可。每一条记录都有计划,会显示是第几本图书。本界面的两条运行结果如下图所示:

(4)图书销售系统管理

本界面命令下包含两方面的内容:销售图书记录和销

售图书查询。

销售图书记录将图书的各项信息列出,显示销售时的价格,打折的大小,并且可以打印销售清单方便图书管理员及用户进行查询。

销售图书查询采用列表的形式将图书进行归类,方便读者观看,并且可以做出销售记录打印预览。

本界面的两条命令运行结果如下图所示:

(5)读者信息系统管理

本界面命令下包含两方面的内容:记录读者信息和修改读者信息。

记录读者信息简称为读者登记表,它将读者的姓名,年龄,家庭住址,电话等一一详细记录,方便图书馆管理员进行查询。填写完成后,单击确定即可记载。如果输入中有错误,可以单击重填进行新一轮修改。

修改读者信息是读者对自己的信息不满意时所用的界面,它可以显示从第一个读者到最后一个读者的所有信息。使用时,只需用户单击修改字样,查找到自己的信息重新填写即可。

本界面的两条命令运行结果如下图所示:

(6)图书服务系统管理

本界面命令下包含两方面的内容:图书的查询与销售和图书的借阅与还回。

图书的查询与销售界面将图书的有关借阅信息(如借阅日期,预约日期,读者编号,归还情况,是否延期等)用表格的形式表现出来,读者可以从第一条记录到最后一条记录逐一进行查找。

图书的借阅与还回是对用户个人的统计信息,它包含了查询,归还按钮进行查找,输入读者编号后可以对用户的各项借阅信息进行观看,同时也方便图书管理员管理。

本界面的两条命令运行结果如下图所示:

(7)系统运行维护管理

本界面命令下包含四方面的内容:用户注册系统,用户密码修改,系统概述和退出系统。

用户注册系统是对新用户进行管理的命令,如果用户想加入此图书馆,需要进行注册,注册时输入用户名,密码及确认密码后单击确定即可。

用户密码修改是用户对自己的密码不满意时提出修改的命令,在运行时需要输入原密码,新密码及确认新密码后单击确定即可修改成功。下一次进入系统是用的就是新密码。

系统概述是制作者对本系统的一个统一全面的规划,告诉用户本系统的功能及其运行条件等。

退出系统是用户在使用完本系统后的命令,单击此命令时,系统会自动退出所有界面,完成用户的一次登录。

本界面的四条命令运行结果如下图所示:

(8)打印报表数据:在系统中需要打印的是图书销售记录统计,打印出来的报表如下图所示。

3. 系统的一些主要运用代码 (1) 系统登录事件代码

“确定”代码: select(thisform.dataenvironment.cursor1.alias)

LOCATE FOR 用户名=ALLTRIM(thisform.text1.value) =ALLTRIM(THISFORM.text2.VALUE) IF FOUND()

=messagebox(\登录成功!\ DO form 主界面 thisform.release ELSE

MESSAGEBOX(\密码错误,请重新输入\图书信息管理系统\THISFORM.text1.VALUE=\THISFORM.text2.VALUE=\THISFORM.text1.SETFOCUS endif

and

“Timer”代码:if thisform.label3.left<-220

thisform.label3.left=thisform.width

thisform.label3.left=thisform.label3.left-20 else

thisform.label3.left=thisform.label3.left-20 endif

(2) 记录图书信息事件代码:

use booksinfo

if allt(thisform.text1.value)=\

messagebox(\请输入完整的必要信息!\提示\ thisform.text1.setfocus else

if allt(thisform.text2.value)=\

messagebox(\请输入完整的必要信息!\提示\ thisform.text2.setfocus else

if allt(thisform.text3.value)=\

messagebox(\请输入完整的必要信息!\提示\ thisform.text3.setfocus else

if allt(thisform.text4.value)=\

messagebox(\请输入完整的必要信息!\提示\ thisform.text4.setfocus else

if allt(thisform.text5.value)=\

messagebox(\请输入完整的必要信息!\提示\ thisform.text5.setfocus else

if allt(thisform.text6.value)=\

messagebox(\请输入完整的必要信息!\提示\ thisform.text6.setfocus else

if allt(thisform.text7.value)=\

messagebox(\请输入完整的必要信息!\提示\ thisform.text7.setfocus else append blank

repl 书号 with allt(thisform.text1.value) repl 编号 with allt(thisform.text2.value) repl 书名 with allt(thisform.text3.value) repl 作者 with allt(thisform.text4.value) repl 出版社 with allt(thisform.text5.value) repl 定价 with allt(thisform.text6.value) repl 册数 with allt(thisform.text7.value) repl 备注 with allt(thisform.edit1.value) thisform.command2.click endif endif endif endif endif endif endif

(3) 个人借阅及归还图书事件代码:

if allt(thisform.text1.value)=\

messagebox(\请输入读者编号!\提示\ thisform.text1.setfocus else

sele readerinfo

locate for 读者编号=allt(thisform.text1.value) if eof()

messagebox(\编号错误,请重新输入!\提示\ thisform.text1.value thisform.text1.setfocus else

thisform.label7.caption=allt(thisform.text1.value) thisform.label6.caption=allt(姓名)

sele 书号,借阅日期,归还日期 from leadinfo into cursor leadls; where allt(读者编号)=allt(thisform.text1.value);

.and.(allt(借阅情况)=\借阅\借阅情况)=\已还\ thisform.grid1.init endif endif

(4) 个人查询图书事件代码: “第一条”: if allt(thisform.text1.value)=\

sele booksinfo else

sele booksls endif go top

thisform.init

thisform.command4.enabled=.t. thisform.command6.enabled=.t.

“最后一条”: if allt(thisform.text1.value)=\

sele booksinfo else

sele booksls endif

go bottom thisform.init

thisform.command3.enabled=.t. thisform.command5.enabled=.t.

“上一条”: if allt(thisform.text1.value)=\

sele booksinfo else

sele booksls endif skip -1 if bof()

this.enabled=.f.

thisform.command3.enabled=.f.

messagebox(\已经到第一条记录了!\提示\ go top endif

thisform.init

thisform.command4.enabled=.t. thisform.command6.enabled=.t.

“下一条”: if allt(thisform.text1.value)=\

sele booksinfo else

sele booksls endif skip 1 if eof()

this.enabled=.f.

thisform.command4.enabled=.f.

messagebox(\已经到最后一条记录了!\提示\ go bottom endif

thisform.init

thisform.command3.enabled=.t. thisform.command5.enabled=.t.

(5) 图书销售统计查询事件代码: “打印预览”: report form xsqd.frx to preview in screen

thisform.refresh

(6) 用户修改密码事件代码: “确认”: SET EXACT ON

*--进入数据检查

SELECT passwordinfo

LOCATE FOR ALLTRIM(用户名)=ALLTRIM(THISFORM.text1.Value); .AND.ALLTRIM(密码)=ALLTRIM(THISFORM.text2.Value) IF .NOT. FOUND() MESSAGEBOX(\原密码错误,请重新输入\图书信息管理系统\ THISFORM.text2.SetFocus RETURN ENDIF

*--如果\密码\栏为空 IF EMPTY(ALLTRIM(THISFORM.text3.Value)) EMPTY(ALLTRIM(THISFORM.text4.VALUE)) MESSAGEBOX(\密码不能为空\图书信息管理系统\ THISFORM.text3.SetFocus RETURN ENDIF *--如果两次密码不一致

IF ALLTRIM(THISFORM.text3.Value) <> ALLTRIM(THISFORM.text4.VALUE) MESSAGEBOX(\密码与确认密码不一致\图书信息管理系统\

.AND.

THISFORM.text3.SetFocus RETURN ENDIF

*--获取表单中各数据项的值

sName=ALLTRIM(THISFORM.text1.Value) sPass=ALLTRIM(THISFORM.text3.Value) *--确定对话框

YN=MESSAGEBOX(\确定保存\图书信息管理系统\*--如果确认 IF YN=6 *--作改密码 UPDATE passwordinfo SET 密码=sPass WHERE 用户名=sName MESSAGEBOX(\密码修改成功\图书信息管理系统\ THISFORM.RELEASE ENDIF

三. 参考书籍与资料

1.《Visual FoxPro 应用与开发案例教程》 张建主编 2.《Visual FoxPro 课程设计实用教程》 王明主编 3.《Visual FoxPro 数据库程序设计教程》 康贤主编

四.实验运行与总结

经过测试,系统的Exe文件可以运行,但有些许表单的Command按键不起作用,报表打印缓慢且会覆盖在表单后面,总体来说,运行还算良好。

=

本文来源:https://www.bwwdw.com/article/91la.html

Top