1、 毕业 设 计设计题目: 图书管理系统 学 院: 成人教育学院 专 业: 计算机科学与技术 年 级: 2009 学生姓名: 杨洋 学 号: 09318641011 指导教师: 赵晓侠 日 期: 2010.12.1 教 务 处 制目录摘要关键字1 系统设计1.1 系统目标设计1.2 开发设计思想1.3 开发和运行环境选择1.4 系统功能分析1.5 系统功能模块设计2 数据库设计21 数据库需求分析22 数据库逻辑结构设计3 数据库结构的实现4 各个功能模块的创建6:41 系统主界面的设计42 系统用户管理模块的设计6143 读者种类管理模块的设计44 读者信息管理模块的设计6:4 书籍种类信息模
2、块的设计46 书籍信息管理模块的设计47 借阅信息管理模块的设计6:48 帮助文档的设计5 开发中的难点和解决技巧51 在 Visual FoxPro 0 中添加和修改删除记录52 在 Visual FoxPro 0 中编程的技巧6 系统的编译和发行1 设置主文件2 构造主文件3 在app 和exe 文件中包含和排除文件7 运行结果8 总结9 参考文献摘要图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。我们将以一个图书馆管理信息系统为例子,来讲
3、述如何建立一个图书馆管理信息系统。因为 Visual FoxPro6.0 具有强大的数据库管理功能,我们选定 Visual FoxPro6.0 实现图书馆管理信息系统中的各项功能。1 系统设计1.1 系统目标设计通过一个图书馆管理信息系统,使图书馆的信息管理工作系统化、规范化、自动化,从而达到提高企业人事管理效率的目的。1.2 开发设计思想本系统的开发设计思想:系统应符合图书馆信息管理的规定,满足图书馆日常管理的工作需要,并达到操作过程中的直观、方便、实用、安全等要求;系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护;系统应具备数据库维护功能
4、,及时根据用户需求进行数据的添加、删除、修改、备份等操作。1.3 开发和运行环境选择开发工具:Visual FoxPro6.0。运行环境:Windows 9x、Windows NT 或 Windows 2000。1.4 系统功能分析有关读者种类标准的制定、种类信息的输入,包括种类编号、种类名称、借书数量、借书期限、有效期限、备注等。读者种类信息的修改、查询等。读者基本信息的输入,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、电子邮件地址、办证日期、备注等。读者基本信息的查询、修改,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、电子邮件地址
5、、办证日期、备注等等。书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称、关键词、备注信息等。书籍类别信息的查询、修改,包括类别编号、类别名称、关键词、备注信息等。书籍信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页书、关键词、登记日期、备注信息等。书籍信息的查询、修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页书、关键词、登记日期、备注信息等。借书信息的输入,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、备注信息等。借书信息的查询、修改,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借
6、书日期、备注信息等。还书信息的输入,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期、备注信息等。还书信息的查询和修改,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期、备注信息等。1.5 系统功能模块设计在系统功能分析的基础上,考虑 Visual FoxPro6.0 程序编制的特点,得到如图 6-1 所示的系统功能模块图。图 6-1 系统功能模块图2 数据库设计设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤:数据库需要分析。数据库逻辑结构设计。2.1 数据库需求分析用
7、户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。仔细分析调查有关图书馆管理信息需求的基础上,将得到如图 6-2 所示的本系统所处理的数据流程。图 6-2 图书馆管理信息系统数据流程图针对一般图书馆管理信息系统的需求,通过对图书馆管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:读者种类信息,包括的数据项有:种类编号、种类名称、借书数量、借书期限、有效期限、备注等。读者信息,包括的数据项有:读者编号、读者姓名、读者种类、读者性别、工作
8、单位、家庭住址、电话号码、电子邮件地址、办证日期、备注等。书籍类别信息,包括的数据项有:类别编号、类别名称、关键词、备注信息等。书籍信息,包括的数据项有:书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页数、关键词、登记日期、备注信息等。借阅信息,包括的数据项有:借阅信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期、备注信息等。有了上面的数据结构、数据项和数据流程,我们就能进行下面的数据库设计。2.2 数据库逻辑结构设计现在需要将上面的数据库概念结构转化为 Visual FoxPro 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。图书馆管理信息系
9、统数据库中各个表格的设计结果如下面表格所示。每个表格表示在数据库中的一个表。表 6-1 为读者基本信息表。3 数据库结构的实现首先建立建立一个“图书馆管理信息系统”的项目,以便管理本系统中所有数据,打开的“图书馆信息管理系统”项目后,用鼠标选中数据库,单击右侧的“新建” 按钮,在弹出的对话框中将该数据库文件存储为 c:图书馆管理信息系绷图书馆管理.dbca.在弹出的如图 6-4 所示的数据库设计器中单击鼠标右键,选择“新建表”,为数据库添加数据表(表的内容见表 6-1 至表 6-5) 。下面以表 6-1 为例来介绍表的建立过程。图 6-4 新建数据表选择“新建表” ,在弹出的对话框中将表存储为
10、 c:图书馆管理信息系统、读者信息种类曲 f.在弹出的如图 6-5 所示的表设计器中填写表的内容。图 6-5 设计表的内容请读者将其与表 6-l 比较,可以发现表的字段名就是列名。由于在以后编写的程序中对数据库数据的操作通常是引用表的字段,因此读者在设计字段名时要挑选容易理解的名称。字段设置完成后,单击“确定”按钮后为表输入数据,如不想现在输入,可以先“取消” , 以后再输入。具体方法如下:(1)如图 6-6 所示,选中要输入数据的表,单击“浏览”按钮。Visual FoxPro6.0 也提供了菜单的实现方法,以建立一个类似于Windows 风格的操作界面。下面就利用菜单选项制作如图6-8 所
11、示的界面。图 6-8 系统主界面打开“图书馆信息管理系统”项目后,在项目管理器中展开“其他”文件夹,如图 6-9 所示。用鼠标选中菜单,单击右侧的“新建”按钮,在弹出的对话框中将该数据库文件存储为。C:图书馆管理信息系绑系统菜单。图 6-9 创建系统菜单然后单击右侧的“插入”按钮,在左侧填入菜单第一项的名称,将“结果”设为“子菜单” ,再单击“创建”按钮,如图 6-10 所示。图 6-6 为表输入数据(2)弹出无数据的表,在 Visual FoxPro 的主窗口中选择“表” ,选择“追加新记录” 后,就可以在表中输入数据了,如图 6-7 所示。不过这种方法只能一次输入一条记录,要输入第二条记录
12、时,需再次选择追加新记录。如果有一个已有数据的表,可以使用“使用追加记录”将这个有数据的表追加到当前表中,不过执行该操作要求这两个表的结构完全相同。图 6-7 追加新记录4 各个功能模块的创建下面的操作均在图书馆管理信息系统的项目管理器中进行,以下所有表单的“桌面”属性全部设为“.T.一真” 。4.1 系统主界面的设计这一模块的主要功能是作为系统主界面为进入本系统不同功能界面选择提供一个接口, 像上面介绍的一样再次添加菜单项,名称为“修改密码” ,结果设为“过程” ,再单击“创 建”按钮。将程序的资源路径设为当前程序所在文件夹screen.windowstate=2screen.width=6
13、25screen.height=550设定原始窗口大小。-screen. autocenter=.T.将窗口定义在屏幕中间显示push menu rnsysmenu保存原来的系统菜单do 系统菜单.mpr执行系统菜单do form 用户登录运行登录界面on shutdown quit这行代码的作用是为窗口提供关闭功能read events等待事件pop menu msysmenu还原系统菜单注:(1)如果不添加 on shutdown quit 这段代码,则当关闭有可能出现“Can not Exit fromFoxPro”。 (2)read events 表示现在系统初始化完毕,等待下一个事件
14、的发生。Visual FoxPro6.0以事件为驱动,最后以 clear events 结束。(3)在“系统菜单”的二级菜单“退出”里,创建代码“clear event“.保存菜单。保存“主程序.prg”后,继续在“代码”文件夹下面,鼠标选中“主程序.prg” ,右键单击,在出现的菜单中选择“设置为主文件” ,如图 6-14 所示。图 6-14 设置主程序这样就把“主程序.Prg”设置成为主文件,由它调用其他的功能模块。4.2 系统用户管理模块的设计系统用户管理模块主要实现:用户登录。添加用户。修改用户密码。这个功能模块和第 1 章的一样,这里就不再详细介绍了。需要值得注意的是,当完成了表单和
15、程序的设计后,应当在其功能菜单内添加相应的过程,使得菜单能正确调用表单。图 6-15 显示了用户登录的界面运行结果,该模块的其他功能希望读者自行完成。图 6-15 用户登录界面4.3 读者种类管理模块的设计图书馆需要管理不同种类的读者,并且不同读者享受的服务不同。读者种类管理模块主要实现如下功能:添加读者种类。修改读者种类。删除读者种类。在前面的几章的例子中已经详细介绍了关于如何定制具有标准查询并修改功能的表单, 其实 Visual FoxPro6.0 本身也具有生成具有上述功能表单的功能。下面就介绍如何通过表单向导完成读者种类管理表单的设计,设计的最终结果将如图 6-16 所示。图 6-16
16、 读者种类信息表首先在项目管理器的文档视图下单击“新建”按钮,然后选择“表单向导”. 在接下来的向导中, “数据库和表”选择“ 图书馆管理”以及“读者种类信息表” ,这是 前面定义好的数据库和表。由于设备入库需要显示所有的字段,因此我们将可用字段全部移 至选定字段。在表单样式中,选择“阴影式”以及“文本按钮” 。左上角的窗口提供了表单样式的预览功能,图片按钮和文本按钮的区别在于显示的时候是以图片来表达功能还是用文字来表示, 实现功能的函数没有区别。而不用的表单样式的区别在于选用不用风格的文本框和标签。选择“上一步”按钮可以跳回上一步对表单中所要显示的字段进行修改。设置好表单样式后,单击“下一步
17、”按钮。单击“下一步”后,向导进行到步骤 3 一排序次序。选择“种类编号”为 索引,并选择升序排列。最后预览表单,核对每项的设置,完成表单向导,如图 6-23 所示。值得注意的是,在结束表单向导前,可选择“保存表单以备将来使用” , “保存并运行表单” ,或者“保存表单并用表单设计器修改表单” 。由于 Visual FoxPro6.0 向导生成的表单只具有普遍性,对于当前设计的读者种类管理信息表还需要一定的改变,所以我们选择“保存表单并用表设计器修改表单”,单击“完成”按钮。图 6-24 根据表单向导生成的表单需要提醒读者,表单向导生成的表单中的按钮都是继承自标准的按钮类,并集合成一个 But
18、tonSet 类型。如果要修改内部按钮的属性,可以通过表单属性的下拉列表选中所用的按钮,进而修改其属性。以上就结束了读者种类管理表单的设计。可以看见 Visual FoxPro6.0提供的强大的向导功能。读者可以通过“工具”菜单下的“向导”选项,选择不同的向导。这里就不一一介绍各个向导的步骤了,同时也可以参阅Visual FoxPro6.0 自带的帮助文件。644 读者信息管理模块的设计读者信息管理模块主要实现如下功能:添加读者信息。修改读者信息。删除读者信息。查询读者信息。由于读者信息管理模块设计也同样采用表单向导生成,这里就不再叙述详细步骤了。最后运行的界面如图 6 一 27 所示。6:4
19、5 书籍种类信息模块的设计书籍类别管理模块主要实现如下功能:添加书籍类别。修改书籍类别。删除订房信息。由于读者信息管理模块设计也同样采用表单向导生成,这里就不再叙述详细步骤了。646 书籍信息管理模块的设计书籍信息管理模块主要实现如下功能:添加书籍信息。修改书籍信息。删除书籍信息。查询书籍信息。由于读者信息管理模块设计也同样采用表单向导生成,这里就不再叙述详细步骤了。647 借阅信息管理模块的设计借书信息管理模块主要实现如下功能:添加借书信息。修改借书信息。删除借书信息。查询借书信息。还书信息管理模块主要实现如下功能:添加还书信息。浏览修改借书信息模块设计该表单主要完成浏览所有借阅信息,同时也
20、允许管理员修改借阅信息的功能,所以我们利用一个表格控件来实现,并将其 ReadOnly 属性设为“.T.一真” ,表单界面如图 6-33 所示。图 6-33 浏览借阅信息表运行结果新建空表单,命名为“浏览借书信息 , ,为其添加数据环境借阅信息表后保存。根据表 6-7 在表单中加入相应控件并更改其属性。保存修改后的表单就完成了对表单的设计工作。下面为该表单 Load 事件的代码:pack*Visual FoxPro6.0 在删除数据库中的记录时往往是先做上己删除的标签。而如果需要彻底删除记录,则还需要执行一条 Pack 命令。本按钮就是执行这个功能重新运行借阅信息表,达到刷新的效果。3.添加还
21、书信息模块设计主要功能为添加还书信息,由于借阅编号即是借阅信息的主键,因此通过选择借阅编号就可以得到其他借阅信息,按照需求设计添加还书信息表单如图 6-35 所示:新建空表单,命名为“添加还书信息” ,为其添加数据环境借阅信息表后保存。根据表 6-8 在表单中加入相应控件并更改其属性。图 6-35 添加还书信息的界面表“添加还书信息表”控件的主要属性下面为表单填写事件代码:在 Combol 的 Init 事件中添加代码,以显示所袒借图书。this.clearlocal aCountries,cCountrydimension aCountries1select distinct 借阅编号 fr
22、om 借阅信息表 into array aCountriesfor each n i.cCountry in aCountriesif !empty(m.cCountry)this.additem(m.cCountry)一endifendfor在 Combo l 的 InteractiveChange 事件中添加代码,以显示图书相关信息:thisform.读者编号.caption=result(1) thisform.书籍名称.caption=result(2)thisform.书籍编号.caption=result(3)thisform.读者姓名.Caption-result(4)thisf
23、orm.出借日期.caption=dtoc(result(5)thisform.还书日期.caption=dtoc(result(6)thisform.备注信息.Caption-result(7)在 Connnandl 的 Click 事件中添加代码,完成还书功能:delete from 借阅信息表 where 借阅编号=thisform.Combo l.valuepackthisformselease在 Command2 的 Click 事件中添加代码,完成取消功能:thisformselease现在就完成了对还书信早的添加功能如 6-36 所示。图 6-36 选择借阅编号后的界面通过借阅信
24、息管理模块的设计,可以看到数据流都是在借阅信息表中完成,无论是添加借书信息、修改删除借书信息以及添加还书信息管理都是对借阅信息表的操作。这样可以达到对数据库进行完整性约束的目的。而所有的图书和作者又都是通过读者信息表和书籍信息表得到的,使得数据库中各个表之间完成了关联,达到了数据库的一致性。哈华读者可以通过以上的学习添加对还书日期的限制,如果当前时间超过了还书时间,则应当显示图书过期信息。因此就应该在 Commandl 中加入判断条件的代码。这里就留给读者自行完成,最后在系统菜单中添加借阅信息管理的功能。4.8 帮助文档的设计.图 6-37 帮助界面为帮助表单添加 Click 事件代码:thi
25、sform.release5 开发中的难点和解决技巧5.1 在 Visual FoxPro6.0 中添加和修改删除记录在建立数据表时,所输入的数据记录不会是永久不变的,随着时间的推移,新的数据记录需要添加,不需要的记录应当删除。为了在一张表中加入数据记录,可以按照以下的步骤:(1)从“显示”下拉菜单中选择“追加方式”命令。在“浏览窗口”中的最后一行记录后将增加一新记录,但各字段中的值都为“空”值。(2)在“浏览窗口”中输入新的记录。操作时,可以如同前面建立表后输入数据记录那样,将新的数据记录附加在此表后,如果需要,还可同时在各字段中分别输入新的值。注:上面的操作发生在“浏览“方式下的“浏览窗口
26、”中。此时只能追加一行数据记录。若要追加一行以上的记录,可以在追加一行数据记录后,从“显示”下拉菜单中选择“编辑”命令,进入“编辑”方式后进行操作。或者在每编辑完一行后,按“CtrlY”继续添加记录。以上就完成了对记录编辑和添加的操作,接下来介绍如何删除表中的记录。对于己经存在于表中的记录,可以在任何一个时候移出并且删除它们,但删除任何一行记录都需要分两步进行处理:(1)单击将要删除的记录。这一步操作仅对所要删除的记录行作上一个标记。单击处是位于该行记录左端的“标记 框” ,把它填充为黑色即可,这时,该记录还不会被删除,仅是为删除建立了一个标记而已。可以将多行记录都做上此标记,然后通过下一步操
27、作将所有做标记的记录删除。若要取消删除标记,单击它即可。(2)从“表”下拉菜单中选择“彻底删除”命令,并在“确认”对话框中单击“是”按钮。若真的要删除记录,就可以执行“彻底删除”命令。此命令将删除所有在“浏览窗口”中作上删除标记的记录,并重新构造表中的记录。需要注意:这种删除是不可恢复的,所以要慎重。假如误删除了某些记录,只能重新录入。52 在 Visual FOxPro 60 中编程的技巧1复制在一个软件中会有许多代码是重复,我们可以不用重复地录入,而使用菜单中的“复制” “粘贴”等命令来复制重复的内容。与此同时,表单中的控件也是能复制的,而且可以一次复制多个控件。比如在制做图书馆管理信息的
28、借书表单时,设计好第一个(编号的)标签和文本框,接着做姓名的标签和文本框时,就可以采用复制的办法。用鼠标同时选择编号的标签和文本框,方法是用鼠标画一框将以上两个控件框住,框住 每个控件的一部分也可以,这样我们可以看到每个控件四周都有 6 个黑点,表示它们都被选择了。然后与复制文字一样,调用菜单上的“复制”命令或工具栏上相应按钮,然后再用鼠标按“粘贴” ,就会出现两个同样的控件,用鼠标把它们移到适当的位置(可以一起移) ,再将caption、controlse 以及大小等属性做相应改动即可。注意:控件的 n属性在粘贴时已自动做了改动,比如原来的文本框叫textl,复制出来的文本框会自动叫 tex
29、tZ(再复制就会叫 text3) ,在一个表单中是不允许出现两个同名的控件,系统会自动遵守这一点,故我们可以不用去修改 n了。当然也可以根据程序开发的需要,把它改为一个有实际含义的名称。另外在复制控件时不光属性会被复制,其中的事件代码也会被复制。可以把一个表单中的控件复制到另一个或更多的表单中。比如很多时候退出或取消按钮都是一样的,其中的 click 事件中都是“thisform.release”语句,通过复制就可以把份个表单中的按钮复制到另一个表单中,有时可能会需要改一下 caption 或在 click 事件中加减一两条语句。还有向上移动记录和向下移动记录的按钮,其中的事件程序也都差不多,
30、也可以复制,然后将不同的地方修改一下。但是复制粘贴后的控件往往就会被复制在鼠标停留的地方。这样就应影响了整个表单的外观,这时应当通过鼠标粗调控件的位置,或者通过键盘上的方向键细调控件的位置。2缩格及空行标准的程序编写具备良好的风格。合理恰当的缩格和空行都会使程序结构清晰易懂。Visual FoxPro6.0 中有很多语句是成对的,比如 if 和 endif, do while 和 enddo,为了把成对语句之间的语句和之外的语句区别开来以利于程序的阅读和理解,有经验的程序员往往都是把成对语句之间的语句往里缩。此外,一个良好的程序还应当有良好的注释,即使是程序的功能很简明,往往也会用空行分开,以
31、表示此功能已经实现这就是粼 7 所说的空行。这就有点像写文章分段,一段相对完整的意思做为一段,编程时也把一段相对完整功能的程序做为一段,一段完了可以空上一行,也是便于程序的阅读。3.在程序中插入对象名称在编写面向对象的程序时,经常要引用一个对象的名称,而且要用这个对象的全名,比如 thisform.textl o 如果控件数目过多,就很难记住表单中每个控件的名字。所以在编程的时候应注意给主要的控件的。属性赋值,这里再介绍一种方法可以看到所有该表单中的控件名,方便编码人员查找、在要插入一个对象引用名称的位置上单击鼠标右键,在弹出的菜单中选择“对象列表”在出现的对象列表中选择所要的对象,单击插入之
32、后插入的名称会以大写字母开头。4精确调整对象位置在编程序时可以发现当移动一个控件时它是跳着走的,而且是按照表单上的虚线格跳,这主要是为了我们的控件都能对整齐。但有时候如果不需要对整齐,而要做一些小小的调整,即不按格跳,就可以采取以下的步骤。选择菜单上的“格式” ,再选择其中的“对齐格线” 。将其左边的钩去掉,然后再移动控件的时候,将会发现控件可以移动自如。如要恢复原来的状态,再把钩加上。5为文件写说明在开发一个较大的软件时,在项目管理器中会有很多的文件,当文件多到一定数目的时候,可能都搞不清这些文件的功能是什么,为了防止这一点,应该为每个文件写上说明方便随时了解每个文件的作用。具体方法如下:用
33、鼠标右键单击一个文件名,在弹出的菜单中选择编辑说明,在出规的表单中写入该文件的说明文字,单击“确定”按钮。之后当用鼠标选中这个文件时,相应的说明就会显示在项目管理器的底部。事实证明,这样可以大大减少修改文件的时重命名文件在编软件时免不了有时要改文件名,方法是在项目管理器中用鼠标右键单击一个文件名,在弹出的菜单中选择“重命名” ,在弹出的对话框中重新输入新的文件名。7.修改数据表时调整字段位置当我们需要调整数据表中的字段位置,可在表设计器中很方便地移动。进入表设计器, 用鼠标按住字段移动钮,然后上下移动到所需的位置即可。8.调用表格中各列的位置在表格生成器中移动,用鼠标按住选定字段中的字段移动钮
34、上下移动,与上面移动数据表的字段一样。在表单中移动,在属性窗口中选择表格的任一列,然后在表格上抓住要移动列的表头左右移动到所需位置即可。在程序运行时移动,直接抓住要移动列的表头左右移动到所需位置。9.设置控件的 tabindex 位置一般说来,进入一个表单后,希望光标停在第一个输入位置,按回车则光标依次向后跳,但是有时可能会发现,光标不依这个顺序走,这是因为在设计和创建这些控件时没有按照所需的顺序,也就是在表单上先创建的控件,光标就先到。下面就如何更改光标在每次回车后的顺序。设置控件的 tabindex 属性可以改变这个顺序,但直接改变 tabindex 属性很麻烦Visual FoxPro6
35、.0 提供了很方便的改变方法 0 用鼠标按下表单设计器工具栏上的按钮攀,每个控件的 tabindex 顺序即会标示出来,如图 6-45 所示,如果顺序不对,用鼠标按顺序将所有控件点一遍就行了,点完后在表单空白地方按一下,tabindex 显示消失。10.改程序前应先改系统分析当要对程序做功能上的修改(不是修改语句中的错误) ,应先看看系统分析,因为一个程序的各个部分是有着千丝万缕的联系的,当改了一个地方,可能导致另一个地方出问题,所以我们应先对系统分析修改,并平衡各方面关系,觉得系统分析上没有逻辑上的冲突和错误后,再按照新的系统分析去修改程序。这样修改永远都可以保持有一个清晰的思路,而不会把程
36、序改来改去,到最后自己都不知道改成什么样了,如果这时需要别人来帮忙修改更是不可想象。 11.删除项目管理器中的文件如果不想要项目管理器中的某个文件,可用“移去”按钮将这个文件从项目管理器中移出去。当调用移去功能时,系统会问是移去还是删除,移去一个文件并没有从磁盘上将其真正删除,如要真正删除,则应选择“删除” 。当然移去后的文件可用其它方式删除,但千万不要用其它方式删除一个在项目管理器中存在的文件,这样会造成项目管理器打开出错。一旦出现这种情况,在打开项目管理器时会出现提示找不到某个文件,这时选择“忽略” ,然后进入项目管理器,再将这个文件移去,这时不要用删除,因为这个文件己不存在,删除则又会出
37、错。6 系统的编译和发行1 设里主文件用主图标(以黑体的文件表示)标记的文件是客户在启动.app 或者是e 职时被调用的文件。它可以是一个表单。菜单李程序,建议使用程序作为主文件。2 构造主文件,如果主文件是一个程序,它将调用应用程序框架中的各个功能组件。然后由这些组件调用应用程序的其余部分。 如果要建立一个简单的主程序,可以按下列步骤进行。(1)现设置应用环境界面。(2)确定初始用户界面。(3)建立事件循环。(4)恢复环境,退出应用程序。为了避免无限循环,必须在 READ EVENTS 命令之前安排 CLEAR EVENTS命令。可以在主菜单或主表单中添加一个呵退出”项,该项发出 CLEAR
38、 EVENTS 命令。3 在.app 和.exe 文件中包含和排除文件.如果在发布的应用程序中不想再更改这些文件,可把它们放在项目中并设置为“包含” 。那么这些文件变成只读的,不能修改。如果想修改这些文件,把它们放到项目中并设置为“排除” ,然后作为独立文件随着应用程序一起发布。在默认情况下,Visual FoxPro 在嵌放的过程中排除了数据库、表格称为.ff 的“库文件和.app 文件。建议用户除了一些特定的表格,最好不要包含这类文件:数据库和表格需要变化和添加,而如果编译后包含自:exe 或者是-app 文件中,由于这两个文件被创建后都是静态的,所以被包含的文件也是静态的和只读的。把数据
39、库和表格包含在这些文件中很明显会带来问题。由于这些文件不能被包含在文件.app 和.exe 中,所以要在发布一个应用程序之前为这些文件做好准备。若要排除可修改的文件,首先在项目管理器中,选择可修改的文件,然后从“项目”菜单中选择“排除”命令。在一个文件被排除后,则在文件的左方加入一个排除符号。7 运行结果图书馆管理信息系统各模块运行结果如图 6-46 到图 6-53 所示,以下所列为几个重要的.图 6-46 读者种类信息界面图 6-47 书籍类别信息界面图 6 一 49 书籍信息界面图 6 一 50 添加借书信息界面图 6 一 51 修改借阅信息图 6 一 52 添加还书信息总 结一个完整的图
40、书馆管理信息系统到此就制作完成了。通过这次毕业设计,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。为日后成为合格的应用型人才打下良好的基础。这次在指导老师的帮助下,在同学的帮助下,基本上完成了设计任务,在软件的设计方面也有了一定的提高,熟练掌握了VISUAL FOXPRO 命令和编程技巧,为今后走上工作岗位打下了专业基础。 在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的
41、分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。同时,也要感谢我的老师和同学们及实习企业在本系统的设计过程中给予我的支持和帮助。参考文献1. 李加福Visual FoxPro6.0清华大学出版社1999.62. 何磊等Visual FoxPro 6.0 开发实例清华大学出版社1999.53. 王晶莹等Visual FoxPro 数据库开发实例解析机械工业出版社2003.94. 张琦等Visual FoxPro 面向对象编程指南清华大学出版社1999.35. 白永军Visual FoxPro 程序开发项目案例清华大学出版社2004.5