1、20092010学年第二学期课程设计任务书设计名称:管理信息系统课程设计班级:07交通运输地点:K1-CAD3一、课程设计目的管理信息系统课程的学习,不仅需要理论上的深入探讨,而且需要通过实践上机,自己开发一个管理信息系统,才能真正理解书本知识,牢固掌握课堂教学内容。因此,本课程设计的目的就是要通过一个实际的管理信息系统的分析设计和开发,提高学生应用所学知识分析问题,解决问题和实际动手的能力,更加熟练地掌握管理信息系统开发的基本方法和工作步骤,对管理信息系统开发实践有进一步体会。要求: (1) 严格按照课程设计规定时间上机,不得无故缺席和调换; (2) 独立完成课程设计的所有工作,保质保量做完
2、任务书规定的分析、设计任务; (3) 课程设计期间,在规定的上机时间外必须广泛查阅参考书籍,编写好各种程序,以充分利用有限的上机时间。二、课程设计内容(含技术指标)课题一:库房信息管理系统的设计。库房管理既是日常处理业务,也是物资管理的基础工作。因此,做好库房信息管理工作意义重大。要求完成如下功能:(1)能输入入库单、出库单,在输入过程中,能自动显示其名称、规格、单价,并自动计算金额,有出错提示。(2)屏幕可显示物品明细台帐。(3)能输出物品的超储或欠储报警。(4)能显示目前的库存情况。课题二:学校选课系统设计随着学校的学生越来越多、开设的课程越来越丰富和多元化的情况下,考虑建立一个方便、快速
3、、公平和符合学分制管理制度的选课平台和应用系统就显得至关重要了。学生选课管理系统,在学生选课的规范管理、科学统计和快速查询方面具有较大的实用意义。它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。要求完成如下功能:(1)学生可以选修规定范围内的课程,查看已修学分总数,还可以修改个人信息。(2)教师可以根据统计的人数挑选一定数量的学生,也可以直接在网上公布成绩,让学生直接在网上查询成绩。(3)管理员可以指定每门课程的任课教师,修改课程信息,增加、修改、删除学生信息。通过对学生选课管理系统工作内容和相关数据流程分析,根据学生选课管理系统的需要,就可以设计出能满足用户需求的各种实
4、体,以及它们之间的关系。由此得到数据库所支持的数据模型,即数据库的逻辑结构,具体情况如下: 1学生信息表:姓名、学号、院系、班级、性别、所选课程、备注等。2教师信息表:包括教师姓名、教师代码、性别、年龄、职称等。 3课程信息:课程名、课程代码、教学内容、任务与目的、考试方法、要求等。 4课程表:包括课程名称、课程编号、任课教师、课程学分、上课时间。 5成绩单列表:包括学生姓名、学号、院系、班级、课程、任课教师、成绩。课题三:图书馆管理系统的设计图书馆的借还书活动频繁,工作人员工作量大,设计一套管理系统对学校图书图书进行管理。要求实现如下功能:(1) 新书入库管理(2) 旧书出库管理(3) 借阅
5、证管理(4) 借书管理(5) 还书管理课题四:人力资源管理系统的设计“人力资源管理系统”为人力资源管理部门提供一个全面的信息管理系统,通过系统可以比较容易地获得所需的关于组织体系、薪酬福利成本、人力资源状况等静态数据,也可以方便地获得各种变动信息来进行趋势预测。在企业内实现信息依据权限的共享,人力资源管理的日常业务在信息系统的协助下变得高效、快捷。要求实现如下功能:(1) 员工调入、调出管理;(2) 员工基本信息管理;(3) 员工薪酬管理;课题五:学生成绩管理系统的设计根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对成绩的各项管理操作。要求实现如下功能:(1) 能对成绩进行录入
6、和修改;(2) 能计算每个学生的平均成绩以及各门功课的平均成绩;(3) 能根据学生的学号来查询该学生的成绩;(4) 能删除该学生的记录;(5) 能根据每个学生的平均成绩来他们进行排序。三、进度安排本次课程设计共2周时间,具体进度安排如下:1. 布置任务、准备参考资料(1.0工作日)2. 管理信息系统总体规划 (0.5工作日)3. 管理信息系统的系统分析 (1.0工作日)4. 管理信息系统的系统设计 (2.5工作日)5. 程序设计 (1.0工作日)6. 系统调试与运行(1.0工作日)7. 撰写设计报告(2.0工作日)8. 答辩与总结(1.0工作日)四、基本要求课程设计完成后,各学生应根据选题情况
7、提交课程设计结束提交课程设计说明书和软件一份;其中说明书应包含如下内容:(1)述系统设计开发流程;(2)画出处理的数据流程图;(3)画出系统的E-R图;(4)汇总系统设计内容,并形成设计报告。软件应能正常运行并实现所有功能。车辆与交通系 2010年6月15目录概述第一章 系统分析31.1 用户需求分析31.2 项目开发的可行性分析51.3 功能分析图61.4 用户要求分析71.5 组织结构和业务流程分析71.6 数据流程分析81.7 数据字典10第二章 系统设计142.1 系统功能结构设计142.2 系统配置方案142.3 代码设计142.4 设计创建数据库152.5 创建系统主程序182.7
8、 创建系统主表单,并进行代码设计19第三章 总结与展望32概 述(1)开发背景二十一世纪是信息高度交流与发展的时代,面计算机系统则在信息时代扮演着极为重要的角色,随着计算机的不断发展,计算机以渗透到各个领域,图书馆也不例外,图书馆的计算机化以不容迟缓。图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。作者针对图书馆手工管理的现状,经过详细系统的调查,阐明了图书管理系统的需求和功能,为图书馆管理信息系统的开发打下坚实基础。(2)项目目标图书馆作为一种信
9、息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理。现今,有很多的图书馆尚未使用计算机进行信息管理。图书馆若采取手工方式对图书资料和图书借阅情况进行人工管理,由于资料繁多,手工处理的工作量大,整体管理效率低下,也不方便读者对图书资料的查阅。为了提高日常的图书管理效率,必须开发满足大多数中小型的图书管理要求的图书管理系统。文章针对通常的图书管理流程,深入分析了图书管理系统的需求和功能,为图书管理系统程序开发提供了现实理论基础。第一章 系统分析1.1 用户需求分析图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅者、图书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图
10、书馆所存的图书、个人借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书报表给借阅者查看确认;图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护及系统状态的查看、维护并生成催还图书报表。图书借阅者可直接查看图书馆图书情况,如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。一般情况下,图书借阅者只应该查询和维护本人的借书情况和个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保
11、护了图书借阅者的个人隐私。图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录,并打印生成相应的报表给用户查看和确认。图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息。 建立目标系统的逻辑模型。分析目标系统与当前系统逻辑上的差别,
12、明确目标系统到底要“做什么”,从而从当前系统的逻辑模型导出目标系统的逻辑模型。在对上述流程进行分析后,我们对新的图书处理流程进行整理,图书馆操作过程如下: (1)书籍信息管理书籍信息的输入,包括书籍编号、书籍名称、书籍类别、书籍作者、出版社等。 书籍信息的删除,包括书籍编号、书籍名称、书籍类别、书籍作者、出版社。 (2)读者信息管理读者基本信息的输入、修改、查询,包括读者编号、读者姓名、读者种类、读者性别、地址、读者状况等。 读者借书信息的输出,包括读者编号、读者姓名、读者种类、读者性别、地址、读者状况等。 读者还书信息的输入,包括读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。
13、 (3)借阅证管理A.借书证办理 本馆只为本校师生员工办理借书证。 新生:每年新生入学后,待本馆受到学生工作处新生名册即开始办理学生借书证。 教职工:可凭教职工所在单位证明及本人证件,自行到图书馆办理借书证。B.借书证管理 借书证仅限本人使用,不得转借他人或委托他人使用。如发现使用他人借书证,本馆有关工作人员有权扣留该借书证,并按“违章用证”或“偷窃、盗用他人借书证”规定予以处罚。如由于转借他人使用发生的责任事故,均收借书证本人负责。 借书证应妥善保管、倍加爱护、不得涂改、不得损坏。如属人为损坏或污染严重,影响计算机规范管理时,原证作废。读者应办理补证手续。补证费用由读者承担。读者遗失借书证若
14、不挂失,他人利用拾得的借书证盗取本馆文献,由遗失借书证的读者承担全部责任。 本校读者离校(学生毕业、转学、退学,教职工调离本校等),本馆办理借书证注销手续:注销前读者应还清所借的全部文献。C.补办借书证 读者借书证若遗失或因污损严重无法使用而被作废,必需到本馆补办借书证。遗失借书证的读者在发现借书证遗失时,应首先到本馆办公室办理挂失手绣,同时还清所借书刊,不能还清的一律由读者本人按“遗失图书”管理规定负责赔偿。借书证挂失后本馆应尽快补办新证;被作废的借书证从确认之日其即注销无效,有关读者应自觉停止使用,并立即自觉补办新证。读者若继续使用被作废的借书证,一旦发现,本馆将按章加重处罚。 补办借书证
15、需出示本人有效证件,缴纳补证费用及工本费。(4)借书过程读者从架上选到所需图书后,将图书和借书卡交管理人员,管理人员用码阅读器将图书信息读入处理系统。系统根据读者条码从读者文件和借阅文件中找到相应记录;根据图书上的编号从图书文件中找到相应记录。系统在借阅文件表中增加一条记录,记入读者码、图书条码、借阅日期等内容。 (5)还书过程 还书时读者只要将书交给管理人员,管理员将书上的图书条码读入系统,系统从借阅文件上找到相应记录,填上还书日期后写入借阅历史文件,并从借阅文件上删去相应记录,同时系统对借还书日期进行计算并判断是否超期,若不超期则结束过程,若超期则计算出超期天数、罚款数。为了对图书管理系统
16、做完整的描述,还需要对上面得到的逻辑模型做一些补充首先采用图形的方式描述图书管理系统的用户界面,这样做的目的是保证整个系统的用户界面的一致性,同时也有国助于后续的开发人员更好地理解系统需要实现的功能其次,说明图书管理系统的一些特珠性能要求。如借书、还书服务花费的时间一次不得大于分钟等。1.2 项目开发的可行性分析 可行性分析是在进行初步调查后所进行的对系统开发必要性和可能性的研究,所以也称为可行性研究。利用信息技术来解决解决图书馆面对日益增长的读者增加图书流通量的问题,提高运作效率与服务质量等已是当务之急。 图书馆的图书管理工作是否能用信息技术来解决,是否有必要用计算机来支持相关的管理,实施管
17、理信息系统的成本及所能达到的效果怎样,以下从技术、经济、社会三个方面来对系统的可行性进行相关的叙述: (1)技术可行性 技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。这一特点非常适合计算机特点,通过网络internet技术,发挥计算机的信息传输速度快、准确度高的优势。计算机硬件和软件技术的飞速发展,为系统的建设提供了技术条件。 (2)经济可行性 作为图书馆这样的商业性质较小的场所,其经济成分比重相对较少,主要是支出的费用:其中包
18、括设备购置费、软件开发费用、管理和维护费、人员工资和培训费等。由于各个图书馆实行统一操作,系统共享,其设备购置,人员工资,维护费用相对较少,前期的资金投入主要集中于购置图书上。建立信息中心,可将来自各方面的信息集中管理,提高图书管理的计划性和预见性,快速地反馈市场信息。 (3)社会可行性 社会可行性有时也称为操作可行性,主要论证新系统在企业或机构开发和运行的可能性以及运行后可能一起的对企业或机构的影响,即组织内外是否具备接受和使用新系统的条件。在当前信息技术飞速发展的大环境下,计算机技术和软件技术的更新是图书馆完全有可能也有能力采用这样先进的管理技术。结论:本项目具有方便快捷等优势,投资回报利
19、益大,使得图书馆管理实现电子化,符合社会信息化发展需要,技术,经济,社会方面都是可行的,可以开发本系统。 1.3 功能分析图 根据系统调查阶段的数据资料,并依据用户的要求,确定该图书馆的基本功能和工作过程。 根据响应的功能要求,我们绘制系统的功能分析图如图所示:图1-1 系统的功能分析图1.4 用户要求分析图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。需要对读者资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,有利于提高管理效率。作者针对图书馆手工管理的现状,经过详细系统的调查,阐明了图书管理系统的需求和功能,为图书馆管理信
20、息系统的开发打下坚实基础。借书过程:读者从架上选到所需图书后,将图书和借书卡交管理人员,管理人员用码阅读器将图书和借书卡上的读者条码2码读入处理系统。系统根据读者条码从读者文件和借阅文件中找到相应记录;根据图书上的条码从图书文件中找到相应记录,读者如果有如下列情况之一将不予办理借书手续。读者所借阅图书已超过该读者容许的最多借书数目。该读者记录中有止借标志。该读者还有已超过归还日期而仍未归还的图书。该图书暂停外借。若读者符合所有借书条件时,予以借出。系统在借阅文件中增加一条记录,记入读者码、图书条码、借阅日期等内容。还书过程:还书时读者只要将书交给管理人员,管理员将书上的图书条码读入系统,系统从
21、借阅文件上找到相应记录,填上还书日期后写入借阅历史文件,并从借阅文件上删去相应记录,同时系统对借还书日期进行计算并判断是否超期,若不超期则结束过程,若超期则计算出超期天数、罚款数、并打印罚款通知书,记入罚款文件。同时在读者记录上作止借标记。当读者交来罚款收据后,系统根据读者条码查罚款文件,将相应记录写入罚款历史文件,并从罚款文件只删除该记录,同时去掉读者文件中的止借标记。为了对图书管理系统做完整的描述,还需要对上面得到的逻辑模型做一些补充首先采用图形的方式描述图书管理系统的用户界面,这样做的目的是保证整个系统的用户界面的一致性,同时也有国助于后续的开发人员更好地理解系统需要实现的功能其次,说明
22、图书管理系统的一些特珠性能要求。如借书、还书服务花费的时间一次不得大于分钟等。1.5 组织结构和业务流程分析为了对系统有一个全貌性的了解,首先要对系统的内部人员结构、组织及用户情况有所了解。图书馆系统的组织结构图如下:馆长财务室办公室采编室技术支持室期刊阅览室电子阅览室图书借阅室学术论文报告厅图1-2 组织结构图系统的业务是系统要达到的业务目标,业务流程分析是系统分析中的基础环节。图书馆里信息系统得业务流程如图所示:读者注册登记表图书目录借书证图书馆管理员借阅管理员采编室入库单读者登记表借阅记录表图书登记表采购员图1-3 业务流程图图书管理员编制图书采购计划,由采购员负责新书的采购工作。采购图
23、书入库后,交由采编室编目,粘贴标签,产生图书目录。图书交由图书借阅室上架,供读者借阅。1.6 数据流程分析数据流程图是全面描述信息系统逻辑模型的工具,它抽象概括地把信息系统中各种业务处理过程联系起来。以下是图书馆管理信息系统的数据流程图。(1) 零层数据流程图 图书馆管理信息系统图书馆 管理人员读者 读者信息管理书籍归还 图书采编信息读者读书借还管理 书籍借阅 库存图书证订查询借阅情况统计图1-4 图书馆总体数据流程图(2)一层数据流程图图1-5 图书馆书籍数据流程图图1-6 图书馆借还书过程数据流程图图1-7 图书征订系统流程图1.7 数据字典数据字典是对数据流程中的数据项、数据流、数据存储
24、、加工处理逻辑等组成部分的严格定义,下面是本系统的数据字典(由于篇幅原因,在此仅给出部分)。(1)数据项分析 数据项名称:学号 简述:学生的唯一编号 别名: 数据类型:字符型 长度:10 取值范围:0000000000-9999999999 取值说明:第1位为校区代码,2-3位为入学年份,4-5为院系代码.(2)数据流分析数据流编号:D01数据流名称:图书编目信息 简述:图书编目信息数据流来源:图书购买后,由图书馆采编人员编码整理后,输入计算机.数据流去向: 图书表.图书采编信息将采编数据存入数据库数据流组成: 书名+索书号+作者+出版社+内容简介+关键词+条码+字数+页数+出版日期数据流量:
25、 30本/日高峰流量: 100本/日数据流编号: D02数据流名称: 图书借阅单 简述: 图书借阅单数据流来源: 用户填写图书借阅单交给图书馆管理人员,图书馆管理人员审核后,输入计算机.数据流去向:P2-11检查读者身份数据流组成: 借书日期+索书号+读者账号+库室数据流量:500本/日高峰流量: 1500本/日数据流编号: D03数据流名称: 填写借阅记录 简述: 填入借阅表的借书记录数据流来源: P2-13检查合格的借阅图书信息录入到借阅表中数据流去向: 借阅表数据流组成: 借书日期+索书号+读者账号+库室+还书日期数据流量: 500人/日高峰流量: 1500人/日数据流编号: D04数据
26、流名称: 借阅图书数量 简述: 修改图书库中图书数量数据流来源: P2-13修改图书典藏模块中图书数量数据流去向: 图书表数据流组成: 索书号+借阅数量数据流量: 500本/日高峰流量: 1500本/日数据流编号: D05数据流名称: 图书征订信息 简述: 读者征订图书时写的信息数据流来源: 用户填写图书征订信息,要求征订图书数据流去向: P4-11预定信息输入数据流组成: 作者+出版社+出版日期+数量+征订日期数据流量: 20次/日高峰流量: 50次/日数据流编号: D06数据流名称: 填写图书征订信息 简述: 征订图书填写借阅表数据流来源: 用户填写图书征订信息,要求征订图书数据流去向:
27、借阅表数据流组成: 作者+出版社+出版日期+数量+征订日期数据流量: 20次/日高峰流量: 50次/日数据流编号: D07数据流名称: 还书记录 简述: 还书记录数据流来源: 图书管理人员数据流去向: P2-14图书归还处理数据流组成: 索书号+借阅数量数据流量: 100笔/日高峰流量: 200笔/日数据流编号: D08数据流名称: 填写归还记录 简述: 在图书借阅模块中填写归还记录数据流来源: P2-14图书归还处理数据流去向: 借阅表数据流组成: 索书号+借阅数量+状态数据流量: 100笔/日高峰流量: 200笔/日数据流编号: D09数据流名称: 归还修改在库书量 简述: 还书时修改图书
28、库中的在库数量数据流来源: P2-14图书归还处理数据流去向: 图书表数据流组成: 索书号+借阅数量数据流量: 100笔/日第二章 系统设计2.1 系统功能结构设计 管理信息系统处理的合理选择,就是一个处理过程的设计问题,选择处理方式实际上时根据系统的任务、目标和环境条件,合理地选择信息活动的形态及其方法。 程序流程图又称程序框图,表示方法简单,是用来描述程序执行的逻辑过程。他把程序执行的步骤归纳为:处理、判断、输入、输出、起始和终结等几个基本功能,并用不同的记号加以表示,从而描述程序的执行过程。 信息管理系统的程序流程图元素如下所示:图2-1 程序流程图元素2.2 系统配置方案 根据开发期计
29、算机的性价比和本系统的实际需要,选择ACER计算机和Visual Fox Pro数据库管理系统。 2.3 代码设计为了和工作人员以往的图书管理方式相一致,物资信息编码以数字表示。根据行业标准,所有图书分为6大类(两位字母),每大类又分为若干号码(三位数字)。分类如表2-1所示:表2-1 图书分类代码表分类编号分类编号艺术YS文学WX经济JJ汽车QC管理GL英语YY哲学ZX例如:YY001 代表英语类为001的图书。001表示书名此外,为了使数据录入、图书信息管理、图书信息查询、统计的方便快速,我们还根据需要对图书的去向和来源进行了统计用信息编码。2.4 设计创建数据库 (1)设计数据库本系统实
30、现了系统登录功能 , 而系统登录需要账号和密码 , 这就需要 创建一个“系统帐号”(Accounts) 数据表 , 用来存储系统登录用的账号和密码。本系统要实现图书资料和学生资料的管理 , 所以需要创建 “学生信息” (Student)数据表和“图书信息 ”(Book) 数据表。 “学生信息 ”(Student) 数据表中包含了学生的“系别”信息 , 在本系统中为了简化系别的管理 , 另外创建了一个“系别”(Xibie)数据表用来存储系别的信息 , 在“学生信息”(Student) 数据表中只存储系别的编号。 由于系统要实现读者借还书功能、还要实现读者借还书记录的查看 ,所以还需创建一个“读者
31、借书记录 ”(JyRec) 数据表来保存读者的借阅记录。 (2) 创建数据库“图书借阅管理系统”作为一个完整的数据库管理系统 , 在创建阶段利用项目管理器可以更好组织管理各种格式的文件 , 因此首先需要创建一个项目 , 然后在项目管理器创建其他格式的文件。 在 VFP 主窗口中选择“文件”菜单下“新建”子菜单 , 在打开的“新建”对话框的“文件类型“区域中选中”项目”,然后单击右侧的”新建文件”按钮,打开”创建“对话框中的”项目文件“文本框中输入项目名称 , 在此输入 Tushu”,单击“保存”按钮即创建了一个项目。 在项目管理器的“数据”选项卡中选中“数据库”单击右侧的“新建”按钮,在弹出的
32、“新建数据库”对话框中单击“新建数据库”, 在弹出的“创建”对话框的“数据库名”文本框中输入数据库的名称 , 在此输入“Tushu”作为数据库名 , 单击“保存“按钮即创建了一个空的数据库。 在项目管理器的“数据”选项卡中打开刚才创建的“Tushu”数据库的目录树,选中“数据表”,单击右侧的“新建”按钮即可开始数据表的创建。 本系统中要用到的数据表的字段的属性设置分别设置如下:表2-2“系统帐号”(Accounts)数据表字段属性设置字段名数据类型说明帐号字符型字段宽度10索引字段,不能为空密码字符型字段宽度10姓名字符型字段宽度10创建“系统账号”(Accounts) 数据表后向数据库中添加
33、一条记录作为系统的默认帐号。“学生信息”(Student) 数据表各字段的属性设置如表 3-1 所示。图2-2 学生E-R图表2-3“学生信息”(Student)数据表字段属性设置字段名数据类型说明学号字符型字段宽度6,主索引字段,输入掩码为“999999”姓名字符型字段宽度10性别字符型字段宽度2系别字符型字段宽度4,为普通索引班级字符型字段宽度10地址字符型字段宽度30表2-4 “图书信息”(Tushu)数据表字段属性设置字段名数据类型说明图书编号字符型字段宽度6,主索引字段,输入掩码为“AA9999”图书类别字符型字段宽度10图书名称字符型字段宽度40图书作者字符型字段宽度20出版社字符
34、型字段宽度40图书价格货币型字段宽度8借阅次数数值型字段宽度4,默认值0是否借出逻辑型字段宽度1,默认值“.F.”对“图书信息”(Book)数据表的字段属性设置需要说明的是“借阅次数”和“是否借出”字段的默认值一定要设置,因为对于新添加的图书,其一定是没有被借出的,而且其借阅次数一定是0,所以在表单中向数据表添加记录时,这两个字段应该是不需要添加的,可以由默认值生成。 图2-3 图书E-R图表2-5 “读者借书记录”数据表字段属性设置字段名数据类型说明姓名字符型字段宽度8,普通索引字段,输入掩码为“999999”号码字符型字段宽度6,普通索引字段,输入掩码为“9999”图书编号字符型字段宽度6
35、,普通索引字段,输入掩码为“AA999”图书名称字符型字段宽度20, 图2-4 图书馆总体E-R图数据表之间的关系,将在具体表单的数据环境中设置。2.5 创建系统主程序 VFP 应用程序系统需要创建一个主程序来驱动各个表单 , 在项目管理器的“代码”选项卡中选中“程序”, 单击“新建”按钮 , 即可打开程序编辑窗口本系统中需要创建一个程序main.prg, 用来设置系统的工作环境 , 并驱动其他的程序和表单。将一个文件设为项目主文件的方法是在项目管理器中选中该文件 , 然后在右键快捷菜单中选择“设为主文件”子菜单或者选择“项目”菜单下“设为主文件”子菜单即可。一个文件设为项目的主文件后 , 该
36、文件的将以粗体显示。main.prg程序的代码为:(见附表)2.6 创建系统常用类按钮 系统主表单中“学生资料”和“书籍资料”页框控件中都需要用到“移动记录工具栏”和“命令按钮工具栏”, 这两个命令按钮工具栏如果在表单中分别创建会使工作变得繁琐,可以采用创建工具栏类 , 然后在表单中用实例化的方式来简化工作。(1)创建“移动记录工具栏”类“移动记录工具栏”类基于“CommandGroup”基类,存储于“AdminButton”可视类库中,命名为“MoveRecord”。“移动记录工具栏”类包括“首记录”、“上一个”、“下一个”和“末记录”4个按钮,在表单中可以利用这 4 个按钮定位数据表中的记
37、录指针。创建好的 移动记录工具栏 类效果如下图所示。图2-5 移动记录工具栏(2)创建“命令按钮工具栏”类“命令按钮工具栏”类中包含“增加”(CmdAdd)、“修改”(Cmdmod)、“删除”(Cmddel)、“查询”(CmdSer)、 “保存”(CmdSave)、“退出”(CmdExit)6个按钮。由于“命令按钮工具栏”类中的按钮在不同的表单中的作用不同,所以不必在类中添加控钮的代码,可以采用在表单中将类实例化后再添加代码的方式。设置“命令按钮工具栏”类及其控件的属性如表6所示。2.7 创建系统主表单,并进行代码设计 (1)创建系统登陆界面创建系统登陆界面主要包括用户名(2008)和密码(1
38、23)。图2-6 系统登陆界面(2)创建系统主表单 系统主表单的功能系统主表单在提供系统界面的同时还包含一个含有四个页框的页框控件,系统利用这四个页框控件来管理“新生入库管理数据表、“旧书出库管理数据表”、“借阅证管理数据表”和“借还书管理数据表”中的数据,利用这四个页框可以对这两张数据表中的数据进行查看、添加、修改、删除、查询等操作。 创建系统主表单界面在“表单设计器”中创建一个表单作为系统主表单,命名为“主菜单”。创建好的表单效果中有两个页框,其中“学生资料”页面效果如下图所示:图2-7 系统主菜单设置好系统主表单属性后向表单中添加两个页框控件,将页框控件的第一个页面作为“学生资料”(St
39、uPage)页面,使页框控件处于编辑状态,然后从数据环境中将要在“学生资料”页面中显示的字段拖放到表单中,并将“性别”字段生成的文本框控件删除,再添加一个选项按钮组控件来显示该字段的数据,将“系别”字段生成的文本框控件删除,再添加一个组合框控件来显示该字段的数据,另外将“系别信息”(Xibie)数据表中的“名称”字段添加到“学生资料”页面中。在向页面中添加控件时一定要注意使页框处于可编辑状态,即页框外一个蓝色的虚框,如果只是选择了页框控件,则此时向表单中添加控件只是向表单中添加控件,其在表单结构中的位置是与页框控件平行的。页框的两个页面中的另一个页框用来作为“书籍资料”(BookPage) 页
40、面,从表单的数据环境中将需要在“书籍资料”(BookPage) 页面中显示宇段拖放到页面中,并添加到页面中的控件进行一些调整,包括将“是否借出”字段生成的控件删除,添加一个标签控件,再根据该字段的值显示图书的状态。添加表单代码为了方便描述,只表述表单中部分代码,系统主表单中的部分代码如下所示:A“新书入库管理”页框“添加”命令:xx=messagebox (确认添加本书信息?,1+32+0,信息提示) thisform.refreshuse 图书信息数据表if 图书信息数据表.图书编号=(thisform.pageframe1.page1.text2.value)xx=messagebox(温
41、馨提示:本书信息添加重复!,0+48,提示)elseinsert into 图书信息数据表(图书名称,图书编号,图书类别,图书作者,出版社,图书价格) ;values(thisform.pageframe1.page1.text1.value,thisform.pageframe1.page1.text2.value,thisform.pageframe1.page1.text3.value,thisform.pageframe1.page1.text4.value,thisform.pageframe1.page1.text5.value,thisform.pageframe1.page1.
42、text8.value)endif“清除”命令:thisform.PAGEFRAME1.PAGE1.TEXT1.value=thisform.PAGEFRAME1.PAGE1.TEXT2.value=thisform.PAGEFRAME1.PAGE1.TEXT3.value=thisform.PAGEFRAME1.PAGE1.TEXT4.value=thisform.PAGEFRAME1.PAGE1.TEXT5.value=thisform.PAGEFRAME1.PAGE1.TEXT8.value=“打开最近添加”命令:use 图书信息数据表go bottomskip -3do form 入库
43、图书表B“旧书出库管理”页框“删除”命令use 图书信息数据表delete from 图书信息数据表 where thisform.pageframe1.page2.text2.value=图书编号PACKdo form 出库图书表“ 上一条”命令IF!BOF()SKIP -1THISFORM.REFRESHENDIF“下一条”命令IF!EOF()SKIP 1THISFORM.REFRESHENDIFC.“借阅证管理”页框“借阅证注册”命令do form 借阅证注册表“借阅证注册”命令do form 借阅证注册表D.“借还书管理” 页框“借书”命令 if thisform.optiongrou
44、p1.option1.value=1 use 教师信息数据表 insert into 读者借还书记录表; values (alltrim(thisform.text2.value),alltrim(thisform.text1.value),alltrim(thisform.text3.value),alltrim(thisform.text3.value) messagebox(教师借书成功!) do form 读者借还书记录表 else use 学生信息数据表 insert into 读者借还书记录表;Values (alltrim(thisform.text2.value),alltrim(thisform.text1.value),alltrim(thisform.text3.value),alltrim(thisform.text3.value) messagebox(学生借书成功!) d