当前位置:首页> 管理系统> VF图书管理系统设计与实现

VF图书管理系统设计与实现

VF图书管理系统设计文档与源代码存放于同一项目目录,项目文件为library.pjx。系统基于Visual FoxPro 9.0 SP2开发,运行于Windows 10环境,采用本地数据库library.dbc,其中包含三张数据表。图书表books结构为isbn字符型20,书名C(60),作者C(30),出版社C(40),出版日期D,价格N(8,2),库存量I,分类号C(10)。读者表readers结构为reader_id字符型10,姓名C(20),性别C(2),部门C(30),电话C(15),办证日期D。借阅表borrow结构为borrow_id整型自增,reader_id C(10),isbn C(20),借书日期D,应还日期D,实还日期D,续借次数I,状态C(4),默认状态为在借。每张表的主索引表达式分别为isbn、reader_id和borrow_id,借阅表另为reader_id和isbn建立普通索引。

设计文档分为需求分析、概要设计、详细设计和测试报告。需求分析明确了系统角色为图书管理员和读者,管理员可进行图书档案维护、读者登记与注销、借书还书、罚款计算和报表打印,读者可查询图书和个人借阅历史。概要设计将系统划分为五个功能模块,主控表单通过菜单调用各子表单。详细设计实体关系模型显示books和readers之间存在多对多借阅关系,通过borrow表关联。

源代码中主程序main.prg包含环境设置和事件循环,关键代码为CLOSE ALL,SET DEFAULT TO FULLPATH(JUSTPATH(SYS(16))),OPEN DATABASE library,DO mainmenu.mpr,READ EVENTS。主菜单有图书管理、读者管理、借阅管理、统计报表和退出。图书管理表单使用表格控件显示数据,recordsource属性指向books表,录入窗口使用表单页框分页显示基本信息。查询按钮的Click事件使用SQL语句,例如SELECT * FROM books WHERE 书名 LIKE ''%''+ALLTRIM(THISFORM.txtKeyword.VALUE)+''%'',执行结果存入临时表cQuery,并刷新表格数据源。

借书功能实现时检查读者状态和图书库存,使用事务处理。事务开始命令为BEGIN TRANSACTION,先向borrow表插入一条记录,再对books表执行UPDATE books SET 库存量=库存量-1 WHERE isbn=m.isbn,库存量大于零时执行,操作成功后END TRANSACTION,失败则ROLLBACK。还书功能计算逾期天数,罚款按每日0.2元计算,实还日期为空表示未归还。还书时输入读者号和图书isbn,自动回填借书日期和应还日期,并显示罚款金额。

源代码量统计,prg文件共12个,scx表单文件9个,frx报表文件4个,菜单文件1个。报表文件包括图书清单、读者清单、逾期未还名单和借阅统计,图书清单报表按分类号分组打印,记录源来自SQL查询。

测试过程使用真实数据,从学校图书馆导入中文图书目录500条,读者数据200条,对照借阅记录生成测试。功能测试用例共86项,通过82项,未通过项集中在界面对齐和字段长度溢出,经调整代码后全部通过。性能测试中在普通机械硬盘上批量查询1000条记录平均

满贯体育 满贯体育 九游体育 满贯体育 九游体育 满贯体育 满贯体育 满贯体育 满贯体育 九游体育