首页 毕业设计-图书馆借阅系统—论文

毕业设计-图书馆借阅系统—论文

举报
开通vip

毕业设计-图书馆借阅系统—论文毕业设计-图书馆借阅系统—论文 图书馆借阅系统的 设计与实现 学 院: 计算机学院 姓 名: 学 号: 指 导 教 师: 目录 前 言 ....................................................... 3 【摘 要】 ..................................................... 3 第一章 系统设计 ................................................. 4 1...

毕业设计-图书馆借阅系统—论文
毕业设计-图书馆借阅系统— 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 图书馆借阅系统的 设计与实现 学 院: 计算机学院 姓 名: 学 号: 指 导 教 师: 目录 前 言 ....................................................... 3 【摘 要】 ..................................................... 3 第一章 系统设计 ................................................. 4 1.1系统目标设计 .............................................................................................. 5 1.2开发设计思想 .............................................................................................. 5 1.3开发和运行环境选择................................................................................... 5 1.4系统功能分析 .............................................................................................. 5 1.5系统功能模块设计 ...................................................................................... 6 第二章 数据库设计 ............................................... 7 2.1数据库需求分析 .......................................................................................... 8 2.2数据库逻辑结构设计................................................................................... 9 第三章 数据库结构的实现 ......................................... 9 第四章 各个功能模块的创建 ...................................... 13 4.1系统主界面的设计 .................................................................................... 13 4.2系统用户管理模块的设计 ......................................................................... 14 4.3读者种类管理模块的设计 ......................................................................... 14 4.4读者信息管理模块的设计 ......................................................................... 16 4.5书籍种类信息模块的设计 ......................................................................... 17 4.6书籍信息管理模块的设计 ......................................................................... 17 4.7借阅信息管理模块的设计 ......................................................................... 17 4.8帮助文档的设计 ........................................................................................ 21 第五章 开发中的难点和解决技巧 .................................. 22 5.1添加和修改删除 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 ................................................................................. 22 .2、编程的技巧 ............................................................................................. 23 5 第六章 系统的编译 .............................................. 26 第七章 运行结果 ................................................ 27 总 结 ......................................................... 29 参考文献 ....................................................... 30 前 言 图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。因此需要对其信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。 我们将建立一个图书馆管理信息系统。因为Visual FoxPro6.0具有强大的数据库管理功能,所以选定Visual FoxPro6.0实现图书馆管理信息系统中的各项功能。 【摘 要】 图书管理系统是一些单位不可缺少的部分,书籍是人类不可缺少的精神食粮,尤其对一些学校来说,尤其重要。所以图书管理系统应该能够为用户提供充足的信息和快捷的查询手段。但传统人工管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 图书馆管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建和维护及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强.数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。 本文针对目前中小图书管理实际,从系统的开发背景、需求分析、设计原则及开发过程等方面进行了全面的阐述,采用Visual Frxpro6.0和ACCESS 2000等软件为开发工具,阐述了中小型图书管理软件中所应具有的功能及其设计与实现。 本系统分用户登录、图书查询、借还图书,系统管理等四大功能模块。其中图书查询功能分为模糊查询、直接查询、多条件查询;系统管理则包括读者管理、图书分类管理、图书管理、逾期未还图书管理、管理员权限帐户管理等。其中多条件查询、模糊查询,图书分类管理,是本系统开发与设计中的难点。 关键字:图书借阅系统 ;信息管理系统 ; 设计与开发 第一章系统设计 ?1.1系统目标设计 通过一个图书馆管理信息系统,使图书馆的信息管理工作系统化、规范化、自动化,从而达到提高图书馆管理效率的目的。 ?1.2开发设计思想 本系统的开发设计思想: (系统应符合图书馆信息管理的规定,满足图书馆日常管理的工作需要,并达到操作过程中的直观、方便、实用、安全等要求; (系统采用模块化程序设计 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护; (系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。 ?1.3开发和运行环境选择 开发工具:Visual FoxPro6.0。 运行环境:Windows 9x、Windows NT或WindowsXP ? 1.4系统功能分析 (有关读者种类 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的制定、种类信息的输入,包括种类编号、种类名称、借书数量、借书期限、有效期限、备注等。 (读者种类信息的修改、查询等。 (读者基本信息的输入,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、电子邮件地址、办证日期、备注等。 (读者基本信息的查询、修改,包括读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、电子邮件地址、办证日期、备注等等。 (书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称、关键词、 备注信息等。 (书籍类别信息的查询、修改,包括类别编号、类别名称、关键词、备注信息等。 (书籍信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页书、关键词、登记日期、备注信息等。 (书籍信息的查询、修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页书、关键词、登记日期、备注信息等。 (借书信息的输入,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、备注信息等。 (借书信息的查询、修改,包括借书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、备注信息等。 (还书信息的输入,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期、备注信息等。 (还书信息的查询和修改,包括还书信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期、备注信息等。 ?1.5系统功能模块设计 在系统功能分析的基础上,考虑Visual FoxPro6.0程序编制的特点,得到如图 1.1所示的系统功能模块图。 图1.1系统功能模块图 第二章、数据库设计 设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。数据库设计一般包括如下几个步骤: (数据库需要分析。 (数据库逻辑结构设计。 ?2.1数据库需求分析 用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。 仔细分析调查有关图书馆管理信息需求的基础上,将得到如图2-1所示的本系统所处理的数据流程。 图2-1图书馆管理信息系统数据流程图 针对一般图书馆管理信息系统的需求,通过对图书馆管理工作过程的内容和数据流程分析,设计如下面所示的数据项和数据结构: (读者种类信息,包括的数据项有:种类编号、种类名称、借书数量、借书期限、有效期限、备注等。 (读者信息,包括的数据项有:读者编号、读者姓名、读者种类、读者性别、工作单位、家庭住址、电话号码、电子邮件地址、办证日期、备注等。 (书籍类别信息,包括的数据项有:类别编号、类别名称、关键词、备注信息 等。 (书籍信息,包括的数据项有:书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、书籍页数、关键词、登记日期、备注信息等。 (借阅信息,包括的数据项有:借阅信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期、备注信息等。 有了这些数据结构、数据项和数据流程,就能进行数据库设计。 ?2.2数据库逻辑结构设计 现在需要将数据库概念结构转化为Visual FoxPro数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。 图书馆管理信息系统数据库中各个表格的设计结果如下面表格所示。每个表格表示在数据库中的一个表。 图2-2为信息表。 第三章、数据库结构的实现 首先建立建立一个“图书馆管理信息系统”的项目,以便管理本系统中所有数据,打开的“图书馆信息管理系统”项目后,用鼠标选中数据库,单击右侧的“新建” 按钮,在弹出的对话框中将该数据库文件存储为c:\图书馆管理信息系绷图书馆管理.dbca. 在弹出的数据库设计器中为数据库添加数据表(表的内容见表6-1至表6-5)。下面以图3-1为例来介绍表的建立过程。 图3-1 信息表 选择“新建表”,在弹出的对话框中将表存储为c:\图书馆管理信息系统、读者信息种类(在弹出的如图3-2的表设计器中填写表的内容。 图3-2设计表的内容 由于在以后编写的程序中对数据库数据的操作通常是引用表的字段,因此在设计字段名时要挑选容易理解的名称。 字段设置完成后为表输入数据,如不想现在输入,可以以后再输入。 Visual FoxPro6.0也提供了菜单的实现方法,以建立一个类似于Windows风格的操作界面。就利用菜单选项制作如图 3-3所示的界面。 图3-3系统主界面 打开“图书馆信息管理系统”项目后,在项目管理器中展开“其他”文件夹,如图3-4所示。在菜单中选择“新建”按钮,在弹出的对话框中将该数据库文件存储为。C:,图书馆管理信息系绑系统菜单。 图3-4创建系统菜单 然后选择“插入”按钮,在左侧填入菜单第一项的名称,将“结果”设为“子菜单”,再单击“创建”按钮(2)弹出无数据的表,在Visual FoxPro的主窗口中选择“表”,选择“追加新记录” 后,就可以在表中输入数据了,如图6-7所示。不过这种方法只能一次输入一条记录,要输入第二条记录时,需再次选择追加新记录。如果有一个已有数据的表,可以使用“使用追加记录”将这个有数据的表追加到当前表中,不过执行时要求这两个表的结构完全相同。 第四章各个功能模块的创建 在图书馆管理信息系统的项目管理器中进行操作的所有表单的“桌面”属性全部设为“.T.一真”。 ?4.1系统主界面的设计 这一模块的主要功能是作为系统主界面为进入本系统不同功能界面选择提供一个接口再次添加菜单项,名称为“修改密码”,结果设为“过程”,再单击“创 建”按钮。 ,将程序的资源路径设为当前程序所在文件夹 screen.windowstate=2 screen.width=625 screen.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 from FoxPro”。(2)read events表示现在系统初始化完毕,等待下一个 事件的发生。Visual FoxPro6.0以事件为驱动,最后以clear events结束。(3)在“系统菜单”的二级菜单“退出”里,创建代码“clear event". 保存菜单。保存“主程序.prg”后,继续在“代码”文件夹下面,鼠标选中“主程序.prg”, 右键单击,在出现的菜单中选择“设置为主文件”,这样就把“主程序.Prg”设置成为主文件,由它调用其他的功能模块。 ? 4.2系统用户管理模块的设计 系统用户管理模块主要实现: (用户登录。 (添加用户。 (修改用户密码。 这个功能模块和系统模块的功能一样。需要值得注意的是,当完成了表单和程序的设计后,应当在其功能菜单内添加相应的过程,使得菜单能正确调用表单。图4-1显示了用户登录的界面运行结果。 图4-1用户登录界面 ? 4.3读者种类管理模块的设计 图书馆需要管理不同种类的读者,并且不同读者享受的服务不同。读者种类管理模块主要实现如下功能: (添加读者种类。 (修改读者种类。 (删除读者种类。 在前面已经详细介绍了关于如何定制具有标准查询并修改功能的表单, 其实Visual FoxPro6.0本身也具有生成具有上述功能表单的功能。下面是如何通过表单向导完成读者种类管理表单的设计,设计的最终结果将如图4-2所示。 图4-2读者种类信息表 首先在项目管理器的文档视图下单击“新建”按钮,然后选择“表单向导”. 在接下来的向导中,“数据库和表”选择“图书馆管理”以及“读者种类信息表”,这是 前面定义好的数据库和表。由于设备入库需要显示所有的字段,因此将可用字段全部移至选定字段。在表单样式中,选择“阴影式”以及“文本按钮”。左上角的窗口提供了表单样式的预览功能,图片按钮和文本按钮的区别在于显示的时候是以图片来表达功能还是用文字来表示, 实现功能的函数没有区别。而不用的表单样式的区别在于选用不用风格的文本框和标签。选择“上一步”按钮可以跳回上一步对表单中所要显示的字段进行修改。设置好表单样式后,单击“下一步”按钮。单击“下一步”后,向导进行到步骤3一排序次序。选择“种类编 索引,并选择升序排列。最后预览表单,核对每项的设置,完成表单向号”为 导,如图4-3所示。值得注意的是,在结束表单向导前,可选择“保存表单以备将来使用”,“保存并运行表单”,或者“保存表单并用表单设计器修改表单”。由于Visual FoxPro6.0向导生成的表单只具有普遍性,对于当前设计的读者种类管理信息表还需要一定的改变,所以我们选择“保存表单并用表设计器修改表单”, 单击“完成”按钮。 图4-3根据表单向导生成的表单 表单向导生成的表单中的按钮都是继承自标准的按钮类,并集合成一个ButtonSet类型。如果要修改内部按钮的属性,可以通过表单属性的下拉列表选中所用的按钮,进而修改其属性。 通过对读者种类管理表单的设计。可以看见Visual FoxPro6.0提供的强大的向导功能。读者可以通过“工具”菜单下的“向导”选项,选择不同的向导。 ?4(4读者信息管理模块的设计 读者信息管理模块主要实现如下功能: (添加读者信息。 (修改读者信息。 (删除读者信息。 (查询读者信息。 读者信息管理模块设计是采用表单向导生成的。 ?4.5书籍种类信息模块的设计 书籍类别管理模块主要实现如下功能: (添加书籍类别。 (修改书籍类别。 (删除订房信息。 书籍信息管理模块设计也同样采用表单向导生成的。 ?4(6书籍信息管理模块的设计 书籍信息管理模块主要实现如下功能: (添加书籍信息。 (修改书籍信息。 (删除书籍信息。 (查询书籍信息。 ?4(7借阅信息管理模块的设计 1( 借书信息管理模块主要实现如下功能: (添加借书信息。 (修改借书信息。 (删除借书信息。 (查询借书信息。 2( 还书信息管理模块主要实现如下功能: (添加还书信息。 (浏览,修改借书信息模块设计 该表单主要完成浏览所有借阅信息,同时也允许管理员修改借阅信息的功能, 所以要利用一个表格控件来实现,并将其ReadOnly属性设为“.T.一真”,表单 界面如图4-4所示。 图4-4浏览借阅信息表运行结果 新建空表单,命名为“浏览借书信息’,,为其添加数据环境借阅信息表后保存。根据表6-7在表单中加入相应控件并更改其属性。 保存修改后的表单就完成了对表单的设计工作。 *Visual FoxPro6.0在删除数据库中的记录时往往是先做上己删除的标签。 ,而如果需要彻底删除记录,则还需要执行一条Pack命令。 重新运行借阅信息表,达到刷新的效果。 3.添加还书信息模块设计 主要功能为添加还书信息,由于借阅编号即是借阅信息的主键,因此通过选择借阅编号就可以得到其他借阅信息,按照需求设计添加还书信息表单如图4-5所示: 图4-5添加还书信息的界面 新建空表单,命名为“添加还书信息”,为其添加数据环境借阅信息表后保存。根据表6-8在表单中加入相应控件并更改其属性。 表6-8“添加还书信息表”控件的主要属性 下面为表单填写事件代码: 在Combol的Init事件中添加代码,以显示所袒借图书。 this.clear local aCountries,cCountry dimension aCountries[1], select distinct借阅编号from借阅信息表into array aCountries for each n i.cCountry in aCountries if !empty(m.cCountry) this.additem(m.cCountry)一 endif endfor 在Combo l的InteractiveChange事件中添加代码,以显示图书相关信息: thisform.读者编号.caption=result(1) thisform.书籍名称.caption=result(2) thisform.书籍编号.caption=result(3) thisform.读者姓名.Caption--result(4) thisform.出借日期.caption=dtoc(result(5)) thisform.还书日期.caption=dtoc(result(6)) thisform.备注信息.Caption--result(7) 在Connnandl的Click事件中添加代码,完成还书功能: delete from借阅信息表where借阅编号=thisform.Combo l.value pack thisformselease 在Command2的Click事件中添加代码,完成取消功能: thisformselease -6所示。 现在就完成了对还书信早的添加功能如4 图4-6选择借阅编号后的界面 通过借阅信息管理模块的设计,可以看到数据流都是在借阅信息表中完成,无论是添加借书信息、修改删除借书信息以及添加还书信息管理都是对借阅信息表的操作。这样可以达到对数据库进行完整性约束的目的。而所有的图书和读者信息又都是通过读者信息表和书籍信息表得到的,使得数据库中各个表之间完成了关联,达到了数据库的一致性。 通过对添加对还书日期的限制,如果当前时间超过了还书时间,则应当显示图书过期信息。因此就应该在Commandl中加入判断条件的代码。最后在系统菜单中添加借阅信息管理的功能。 ?4.8帮助文档的设计. 图4-7帮助界面 为帮助表单添加Click事件代码: thisform.release 五章、开发中的难点和解决技巧 5.1添加和修改删除记录 在建立数据表时,所输入的数据记录不会是永久不变的,随着时间的推移,新的数据记录需要添加,不需要的记录应当删除。 为了在一张表中加入数据记录,可以按照以下的步骤: (1)从“显示”下拉菜单中选择“追加方式”命令。在“浏览窗口”中的最后一行记录后将增加一新记录,但各字段中的值都为“空”值。 (2)在“浏览窗口”中输入新的记录。 同前面建立表后输入数据记录那样,将新的数据记录附加在此表后,如果可以 需要,还可同时在各字段中分别输入新的值。 但操作发生在“浏览“方式下的“浏览窗口”中。此时只能追加一行数据记录。 若要追加一行以上的记录,可以在追加一行数据记录后,从“显示”下拉菜单中选择“编辑”命令,进入“编辑”方式后进行操作。或者在每编辑完一行后,按“Ctrl,Y”继续添加记录。 这样就完成了对记录编辑和添加的操作,接下来是如何删除表中的记录。对于己经存在于表中的记录,可以在任何一个时候移出并且删除它们,但删除任何一行记录都需要分两步进行处理: (1)单击将要删除的记录。 操作仅对所要删除的记录行作上一个标记。单击该行记录左端的“标记 框”,把它填充为黑色即可,这时该记录还不会被删除,仅是为删除建立了一个标记而已。 可以将多行记录都做上此标记,然后通过下一步操作将所有做标记的记录删除。若要取消删除标记,单击它即可。 (2)从“表”下拉菜单中选择“彻底删除”命令,并在“确认”对话框中单击“是”按钮。若真的要删除记录,就可以执行“彻底删除”命令。此命令将删除所有在“浏览窗口”中作上删除标记的记录,并重新构造表中的记录。 这种删除是不可恢复的,所以要慎重。假如误删除了某些记录,只能重新录入。 5(2、编程的技巧 1(复制 在一个软件中会有许多代码是重复,可以不用重复地录入,而使用菜单中的 “粘贴”等命令来复制重复的内容。与此同时表单中的控件也是能复“复制” 制的,而且可以一次复制多个控件。比如在制做图书馆管理信息的借书表单时,设计好第一个(编号的)标签和文本框,接着做姓名的标签和文本框时,就可以采用复制的办法。 用鼠标同时选择编号的标签和文本框,方法是用鼠标画一框将以上两个控件框住,框住 每个控件的一部分也可以,这样我们可以看到每个控件四周都有6个黑点,表示它们都被选择了。然后与复制文字一样,调用菜单上的“复制”命令或工具栏上相应按钮,然后再用鼠标按“粘贴”,就会出现两个同样的控件,用鼠标把它们移到适当的位置(可以一起移),再将caption、controls,e以及大小等属性做相应改动即可。控件的n,属性在粘贴时已自动做了改动,比如原来的文本框叫textl,复制出来的文本框会自动叫textZ(再复制就会叫text3),在一个表单中是不允许出现两个同名的控件,系统会自动遵守这一点,故我们可以不用去修改n,了。 另外在复制控件时不光属性会被复制,其中的事件代码也会被复制。可以把一个表单中的控件复制到另一个或更多的表单中。比如很多时候退出或取消按钮都是一样的,其中的click事件中都是“thisform.release”语句,通过复制就可以把份个表单中的按钮复制到另一个表单中,有时可能会需要改一下caption或在click事件中加减一两条语句。还有向上移动记录和向下移动记录的按钮,其中的事件程序也都差不多,也可以复制,然后将不同的地方修改一下。 但是复制粘贴后的控件往往就会被复制在鼠标停留的地方。这样就应影响了整个表单的外观,这时应当通过鼠标粗调控件的位置,或者通过键盘上的方向键细调控件的位置。 2(缩格及空行 标准的程序编写具备良好的风格。合理恰当的缩格和空行都会使程序结构清晰 易懂。 Visual FoxPro6.0中有很多语句是成对的,比如if和endif, do while和enddo,为了把成对语句之间的语句和之外的语句区别开来以利于程序的阅读和理解,有经验的程序员往往都是把成对语句之间的语句往里缩。 此外,一个良好的程序还应当有良好的注释,即使是程序的功能很简明,往往也会用空行分开,以表示此功能已经实现‘这就是粼7所说的空行。这就有点像写文章分段,一段相对完整的意思做为一段,编程时也把一段相对完整功能的程序做为一段,一段完了可以空上一行,也是便于程序的阅读。 3.在程序中插入对象名称 在编写面向对象的程序时,经常要引用一个对象的名称,而且要用这个对象的全名,比如thisform.textl o如果控件数目过多,就很难记住表单中每个控件的名字。所以在编程的时候应注意给主要的控件的。,属性赋值,这里再介绍一种方法可以看到所有该表单中的控件名,方便编码人员查找、在要插入一个对象引用名称的位置上单击鼠标右键,在弹出的菜单中选择“对象列表”在出现的对象列表中选择所要的对象,单击插入之后插入的名称会以大写字母开头。 4(精确调整对象位置 在编程序时可以发现当移动一个控件时它是跳着走的,而且是按照表单上的虚线格跳,这主要是为了我们的控件都能对整齐。但有时候如果不需要对整齐,而要做一些小小的调整,即不按格跳,就可以采取以下的步骤。 选择菜单上的“格式”,再选择其中的“对齐格线”。将其左边的钩去掉,然后再移动控件的时候,将会发现控件可以移动自如。如要恢复原来的状态,再把钩加上。 5(为文件写说明 在开发一个较大的软件时,在项目管理器中会有很多的文件,当文件多到一定数目的时候,可能都搞不清这些文件的功能是什么,为了防止这一点,应该为每个文件写上说明方便随时了解每个文件的作用。 具体方法如下: 用鼠标右键单击一个文件名,在弹出的菜单中选择编辑说明,在出规的表单中写入该文件的说明文字,单击“确定”按钮。之后当用鼠标选中这个文件时,相应 的说明就会显示在项目管理器的底部。事实证明,这样可以大大减少修改文件的时( 6(重命名文件 在编软件时免不了有时要改文件名,方法是在项目管理器中用鼠标右键单击一个文件名,在弹出的菜单中选择“重命名”,在弹出的对话框中重新输入新的文件名。 7.修改数据表时调整字段位置 当我们需要调整数据表中的字段位置,可在表设计器中很方便地移动。进入表设计器, 用鼠标按住字段移动钮,然后上下移动到所需的位置即可。 8.调用表格中各列的位置 在表格生成器中移动,用鼠标按住选定字段中的字段移动钮上下移动,与上面移动数据表的字段一样。在表单中移动,在属性窗口中选择表格的任一列,然后在表格上抓住要移动列的表头左右移动到所需位置即可。在程序运行时移动,直接抓住要移动列的表头左右移动到所需位置。 9.设置控件的tabindex位置 一般说来,进入一个表单后,希望光标停在第一个输入位置,按回车则光标依次向后跳,但是有时可能会发现,光标不依这个顺序走,这是因为在设计和创建这些控件时没有按照所需的顺序,也就是在表单上先创建的控件,光标就先到。下面就如何更改光标在每次回车后的顺序。设置控件的tabindex属性可以改变这个顺序,但直接改变tabindex属性很麻烦(Visual FoxPro6.0提供了很方便的改变方法0用鼠标按下表单设计器工具栏上的按钮攀,每个控件的tabindex顺序即会标示出来,如图6-45所示,如果顺序不对,用鼠标按顺序将所有控件点一遍就行了,点完后在表单空白地方按一下,tabindex显示消失。 10.改程序前应先改系统分析 当要对程序做功能上的修改(不是修改语句中的错误),应先看看系统分析,因为一个程序的各个部分是有着千丝万缕的联系的,当改了一个地方,可能导致另一个地方出问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,所以我们应先对系统分析修改,并平衡各方面关系,觉得系统分析上没有逻辑上的冲突和错误后,再按照新的系统分析去修改程序。这样修改永远都可以保持有一个清晰的思路,而不会把程序改来改去,到最后自己都不 知道改成什么样了,如果这时需要别人来帮忙修改更是不可想象。 11.删除项目管理器中的文件 如果不想要项目管理器中的某个文件,可用“移去”按钮将这个文件从项目管理器中移出去。当调用移去功能时,系统会问是移去还是删除,移去一个文件并没有从磁盘上将其真正删除,如要真正删除,则应选择“删除”。当然移去后的文件可用其它方式删除,但千万不要用其它方式删除一个在项目管理器中存在的文件,这样会造成项目管理器打开出错。一旦出现这种情况,在打开项目管理器时会出现提示找不到某个文件,这时选择“忽略”,然后进入项目管理器,再将这个文件移去,这时不要用删除,因为这个文件己不存在,删除则又会出错。 第六章、系统的编译 1设立主文件 用主图标(以黑体的文件表示)标记的文件是客户在启动.app或者是(e职时被调用的文件。它可以是一个表单。菜单李程序,建议使用程序作为主文件。 2构造主文件, 如果主文件是一个程序,它将调用应用程序框架中的各个功能组件。然后由这些组件调用应用程序的其余部分。(( 如果要建立一个简单的主程序,可以按下列步骤进行。 (1)现设置应用环境界面。 (2)确定初始用户界面。 (3)建立事件循环。 (4)恢复环境,退出应用程序。 为了避免无限循环,必须在READ EVENTS命令之前安排CLEAR EVENTS命令。可以在主菜单或主表单中添加一个退出”项,该项发出CLEAR EVENTS命令。 第七章、运行结果 图书馆管理信息系统各模块运行结果如图7-1到图7-6所示,以下所列为几个重要的. 图7-1读者种类信息界面 图7-2书籍类别信息界面 图7一3书籍信息界面 图7一4添加借书信息界面 图7一5修改借阅信息 图7一6添加还书信息 总 结 一个完整的图书馆管理信息系统到此就制作完成了。通过这次毕业设计,使我受到了一次用专业知识、专业技能分析和解决问题的全面系统的锻炼。使我在综合知识的选用方面,在应用软件开发的基本思想、方法方面,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步。为日后成为合格的应用型人才打下良好的基础。这次在指导老师的帮助下,在同学的帮助下,基本上完成了设计任务,在软件的设计方面也有了一定的提高,熟练掌握了Visual Foxpro命令和编程技巧,为今后走上工作岗位打下了专业基础。 在这次的毕业设计中,让我深深地体现到进行软件开发不是一件简单的事情,它需要设计者具有全面的专业知识、缜密的思维、严谨的工作态度以及较高的分析问题、解决问题的能力,而我在很多方面还有欠缺。最后,我要衷心感谢老师在我的设计过程中给予我的极大帮助,使我能够及时、顺利地完成此次的毕业设计。同时,也要感谢我的老师和同学们在本系统的设计过程中给予我的支持和帮助。 致谢 经过几个月的毕业设计,在老师的帮助下使我从中受到了很大的教育,在最后感谢我的导师李竹老师,他严谨细致,一丝不苟的作风一直是我学习中的榜样,他循循善诱的教导和不拘一格的思路给予我很多的启迪。还要感谢同组的同学门对我的帮助和指点,没有他们的帮助和提供资料,这次的毕业设计不会这么顺利的完成。在毕业设计即将完成之际,请老师和同学们接受我诚挚的谢意。 参考文献 1. 数据库基础与应用 电大教材 2(王汝涌管理信息系统中国财政经济 2001.7 3(张海藩软件工程 清华大学出版社 2001.6 4(刘瑞新VFP程序设计教程 机械工业出版社 2002.3 5(毛一心VFP0应用 人民邮电出版社 2003.3 6(萨师煊、王珊《数据库系统概论(第二版)》高等教育出版社 2001.4 7(数据库系统原理教程 清华大学出版社 作者 王珊 陈红 部分源代码: set directory to curdir() _screen.windowstate=2 _screen.width=625 _screen.height=550 _screen.autocenter=.T. push menu _msysmenu do 系统菜单.mpr do form 用户登录 on shutdown quit read events pop menu _msysmenu insert into 借阅信息表(借阅编号,读者编号,书籍名称,书籍编号,读者姓名, 出借日期,还书日期,备注信息); values (thisform.借阅编号1.value,thisform.读者编号 1.value,thisform.书籍名称1.value,thisform.书籍编号1.value,thisform. 读者姓名1.value,thisform.出借日期1.value,thisform.还书日期1.value,thisform.备注信息1.value) delete from 借阅信息表 where 借阅编号=thisform.Combo1.value pack thisform.release use 借阅信息表 again insert into 借阅信息表(借阅编号,读者编号,书籍名称,书籍编号,读者姓名,出借日期,还书日期,备注信息); values (thisform.借阅编号1.value,thisform.读者编号1.value,thisform.书籍名称1.value,thisform.书籍编号1.value,thisform. 读者姓名1.value,ctod(thisform.出借日期1.value),ctod(thisform.还书日期1.value),thisform.备注信息1.value) thisform.release use 系统用户表 cname=alltrim(thisform.用户名.value) ppassword=alltrim(thisform.用户密码.value) set order to 用户名称 seek cname if (系统用户表.用户密码)=ppassword thisform.release use endif LPARAMETERS nRow, nCol 在Combol的Init事件中添加代码 this.clear local aCountries,cCountry dimension aCountries[1], select distinct借阅编号from借阅信息表into array aCountries for each n i.cCountry in aCountries if !empty(m.cCountry) this.additem(m.cCountry)一 endif endfor 在Combo l的InteractiveChange事件中添加代码,以显示图书相关信息: thisform.读者编号.caption=result(1) thisform.书籍名称.caption=result(2) thisform.书籍编号.caption=result(3) thisform.读者姓名.Caption--result(4) thisform.出借日期.caption=dtoc(result(5)) thisform.还书日期.caption=dtoc(result(6)) thisform.备注信息.Caption--result(7) 在Connnandl的Click事件中添加代码,完成还书功能: delete from借阅信息表where借阅编号=thisform.Combo l.value pack thisformselease 在Command2的Click事件中添加代码,完成取消功能: thisformselease 帮助表单添加Click事件代码: thisform.release ************************************************** *-- Form: 帮助.scx) *-- 父类: form *-- 基类: form * DEFINE CLASS form1 AS form Height = 271 Width = 453 DoCreate = .T. AutoCenter = .T. Caption = "帮助" Name = "Form1" ADD OBJECT image1 AS image WITH ; Picture = "d:\my documents\my pictures\739_img4.jpg", ; Height = 768, ; Left = -60, ; Top = -12, ; Width = 1024, ; ColorSource = 4, ; Name = "Image1" ADD OBJECT label1 AS label WITH ; AutoSize = .T., ; FontName = "华文彩云", ; FontSize = 18, ; BackStyle = 0, ; Caption = "图 书 馆 信 息 管 理 系 统", ; Height = 26, ; Left = 68, ; Top = 89, ; Width = 266, ; ForeColor = RGB(255,255,255), ; Name = "Label1" ADD OBJECT label2 AS label WITH ; FontName = "华文彩云", ; FontSize = 18, ; BackStyle = 0, ; Caption = "版权所有", ; Height = 25, ; Left = 300, ; Top = 192, ; Width = 97, ; ForeColor = RGB(255,255,255), ; BackColor = RGB(255,255,255), ; Name = "Label2" ADD OBJECT label3 AS label WITH ; BorderStyle = 1, ; Caption = " elh.biz", ; Height = 17, ; Left = 396, ; Top = 240, ; Width = 48, ; ForeColor = RGB(0,128,255), ; Name = "Label3" PROCEDURE image1.Click thisform.release ENDPROC ENDDEFINE * *-- 结束定义: form1 PUBLIC oform1 SET CLASSLIB TO d:\program files\microsoft visual studio\vfp98\wizards\wizembss.vcx ADDITIVE SET CLASSLIB TO d:\program files\microsoft visual studio\vfp98\wizards\wizbtns.vcx ADDITIVE oform1=NEWOBJECT("form1") oform1.Show RETURN ************************************************** 读者信息管理表.scx) *-- 父类: embossedform (d:\program files\microsoft visual studio\vfp98\wizards\wizembss.vcx) *-- 基类: form * DEFINE CLASS form1 AS embossedform ScaleMode = 3 Height = 440 Width = 426 ScrollBars = 3 DoCreate = .T. Caption = "读者信息表" Closable = .T. WindowType = 0 Name = "form1" layoutsty.Shape1.Name = "Shape1" layoutsty.Shape2.Name = "Shape2" layoutsty.Shape3.Name = "Shape3" layoutsty.Shape4.Name = "Shape4" layoutsty.Left = 4004 layoutsty.Visible = .F. layoutsty.Name = "layoutsty" Label1.Caption = "读者信息表" Label1.Width = 147 Label1.Name = "Label1" Shape1.Width = 400 Shape1.Name = "Shape1" Shape2.Width = 400 Shape2.Name = "Shape2" Shape3.Top = 348 Shape3.Left = 7 Shape3.Width = 400 Shape3.Name = "Shape3" Shape4.Top = 349 Shape4.Left = 8 Shape4.Width = 400 Shape4.Name = "Shape4" ADD OBJECT lbl读者编号1 AS embossedlabel WITH ; Caption = "读者编号:", ; Left = 10, ; Top = 61, ; Visible = .T., ; Width = 75, ; Name = "LBL读者编号1" ADD OBJECT 读者编号1 AS embossedfield WITH ; ControlSource = "读者信息表.读者编号", ; Format = "", ; InputMask = "XXXXXXXXXX", ; Left = 105, ; ReadOnly = .F., ; Top = 57, ; Visible = .T., ; Width = 90, ; Name = "读者编号1" ADD OBJECT lbl读者姓名1 AS embossedlabel WITH ; Caption = "读者姓名:", ; Left = 10, ; Top = 85, ; Visible = .T., ; Width = 75, ; Name = "LBL读者姓名1" ADD OBJECT 读者姓名1 AS embossedfield WITH ; ControlSource = "读者信息表.读者姓名", ; Format = "", ; InputMask = "XXXXXXXXXX", ; Left = 105, ; ReadOnly = .F., ; Top = 81, ; Visible = .T., ; Width = 90, ; Name = "读者姓名1" ADD OBJECT lbl读者性别1 AS embossedlabel WITH ; Caption = "读者性别:", ; Left = 10, ; Top = 109, ; Visible = .T., ; Width = 75, ; Name = "LBL读者性别1" ADD OBJECT 读者性别1 AS embossedfield WITH ; ControlSource = "读者信息表.读者性别", ; Format = "", ; Height = 22, ; InputMask = "XXX", ; Left = 105, ; ReadOnly = .F., ; Top = 105, ; Visible = .T., ; Width = 39, ; Name = "读者性别1" ADD OBJECT lbl读者种类1 AS embossedlabel WITH ; Caption = "读者种类:", ; Left = 10, ; Top = 133, ; Visible = .T., ; Width = 75, ; Name = "LBL读者种类1" ADD OBJECT 读者种类1 AS embossedfield WITH ; ControlSource = "读者信息表.读者种类", ; Format = "", ; InputMask = "XXXXXXXXXX", ; Left = 105, ; ReadOnly = .F., ; Top = 129, ; Visible = .T., ; Width = 90, ; Name = "读者种类1" ADD OBJECT lbl工作单位1 AS embossedlabel WITH ; Caption = "工作单位:", ; Left = 10, ; Top = 157, ; Visible = .T., ; Width = 75, ; Name = "LBL工作单位1" ADD OBJECT 工作单位1 AS embossedfield WITH ; ControlSource = "读者信息表.工作单位", ; Format = "", ; InputMask = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", ; Left = 105, ; ReadOnly = .F., ; Top = 153, ; Visible = .T., ; Width = 290, ; Name = "工作单位1" ADD OBJECT lbl家庭住址1 AS embossedlabel WITH ; Caption = "家庭住址:", ; Left = 10, ; Top = 181, ; Visible = .T., ; Width = 75, ; Name = "LBL家庭住址1" ADD OBJECT 家庭住址1 AS embossedfield WITH ; ControlSource = "读者信息表.家庭住址", ; Format = "", ; InputMask = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", ; Left = 105, ; ReadOnly = .F., ; Top = 177, ; Visible = .T., ; Width = 290, ; Name = "家庭住址1" ADD OBJECT lbl电话号码1 AS embossedlabel WITH ; Caption = "电话号码:", ; Left = 10, ; Top = 205, ; Visible = .T., ; Width = 75, ; Name = "LBL电话号码1" ADD OBJECT 电话号码1 AS embossedfield WITH ; ControlSource = "读者信息表.电话号码", ; Format = "", ; InputMask = "XXXXXXXXXX", ; Left = 105, ; ReadOnly = .F., ; Top = 201, ; Visible = .T., ; Width = 90, ; Name = "电话号码1" ADD OBJECT lbl电子邮件地址1 AS embossedlabel WITH ; Caption = "电子邮件地址:", ; Left = 10, ; Top = 229, ; Visible = .T., ; Width = 75, ; Name = "LBL电子邮件地址1" ADD OBJECT 电子邮件地址1 AS embossedfield WITH ; ControlSource = "读者信息表.电子邮件地址", ; Format = "", ; InputMask = "XXXXXXXXXXXXXXXXXXXX", ; Left = 105, ; ReadOnly = .F., ; Top = 225, ; Visible = .T., ; Width = 150, ; Name = "电子邮件地址1" ADD OBJECT lbl登记日期1 AS embossedlabel WITH ; Caption = "登记日期:", ; Left = 10, ; Top = 253, ; Visible = .T., ; Width = 75, ; Name = "LBL登记日期1" ADD OBJECT 登记日期1 AS embossedfield WITH ; Alignment = 3, ; ControlSource = "读者信息表.登记日期", ; Format = "", ; InputMask = "", ; Left = 105, ; ReadOnly = .F., ; Top = 249, ; Visible = .T., ; Width = 62, ; Name = "登记日期1" ADD OBJECT lbl备注1 AS embossedlabel WITH ; Caption = "备注:", ; Left = 10, ; Top = 277, ; Visible = .T., ; Width = 75, ; Name = "LBL备注1" ADD OBJECT 备注1 AS embossedfield WITH ; ControlSource = "读者信息表.备注", ; Format = "", ; Height = 63, ; InputMask = "XXXXXXXXXXXXXXXXXXXX", ; Left = 105, ; ReadOnly = .F., ; Top = 273, ; Visible = .T., ; Width = 150, ; Name = "备注1" ADD OBJECT buttonset1 AS txtbtns WITH ; Top = 373, ; Left = 53, ; Width = 320, ; Height = 53, ; Visible = .T., ; oldtalk = "OFF", ; viewkey = (""), ; parentkey = "", ; viewtype = 3, ; gridalias = "", ; topfile = .T., ; endfile = .T., ; addmode = .F., ; nworkarea = 3, ; oldsetdelete = "OFF", ; oldreprocess = 0, ; oldmultilocks = "ON", ; oldsetfields = "OFF", ; previewmode = .F., ; previewinit = .F., ; usedataenv = .F., ; editmode = .F., ; gridref = "", ; oldbuffering = 1, ; Name = "BUTTONSET1", ; cmdPrev.Enabled = .T., ; cmdPrev.Name = "cmdPrev", ; cmdNext.Enabled = .T., ; cmdNext.Name = "cmdNext", ; cmdTop.Enabled = .T., ; cmdTop.Name = "cmdTop", ; cmdEnd.Enabled = .T., ; cmdEnd.Name = "cmdEnd", ; cmdFind.Top = 24, ; cmdFind.Left = 0, ; cmdFind.Height = 24, ; cmdFind.Width = 60, ; cmdFind.Enabled = .T., ; cmdFind.Name = "cmdFind", ; cmdPrint.Top = 24, ; cmdPrint.Left = 60, ; cmdPrint.Width = 60, ; cmdPrint.Enabled = .T., ; cmdPrint.Name = "cmdPrint", ; cmdExit.Top = 24, ; cmdExit.Left = 252, ; cmdExit.Width = 60, ; cmdExit.Enabled = .T., ; cmdExit.Name = "cmdExit", ; cmdAdd.Top = 24, ; cmdAdd.Left = 120, ; cmdAdd.Width = 60, ; cmdAdd.Caption = "添加(\
本文档为【毕业设计-图书馆借阅系统—论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_219945
暂无简介~
格式:doc
大小:562KB
软件:Word
页数:0
分类:工学
上传时间:2017-10-15
浏览量:27