目录
1 引言
1.1 编写目的
1.2 项目背景
1.3 定义
1.4 参考资料
任务概述
1.5 目标
1.6 运行环境
1.7 需求概述
1.8 条件与限制
2 总体设计
2.1 处理流程
2.2 总体结构和模块外部设计
2.3 功能分配
3 接口设计
3.1 外部接口
3.2 内部接口
4 数据结构设计
4.1 逻辑结构设计
4.2 物理结构设计
4.3 数据结构与程序的关系
5 运行设计
5.1 运行模块的组合
5.2 运行控制
5.3 运行时间
6 出错处理设计
6.1 出错输出信息
6.2 出错处理对策
7 安全保密设计
8 维护设计
可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解。
经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。明确开发风险及其所带来的经济效益。
本报告经审核后,交软件经理审查。
开发软件名称:图书馆书籍借阅系统。
项目任务提出者:<>福建师范大学图书馆。
项目开发者:<>余艳琛、王婉明、郑国雄、蔡江雄、王怡。
用户:福建师范大学图书馆。
实现软件单位:<>数计院06计本师范三明治工作室
项目与其他软件,系统的关系:
本项目采用客户机/服务器原理,客户端的程序是建立在Windows XP 系统上以
asp为开发软件的应用程序,服务器端采用Windows XP 为操作系统的工作站,是
采用Access的为开发软件的数据库服务程序。
•Access:数据库管理软件
•Windows 2000/2003/XP:运行环境
•asp :软件开发语言
《软件工程》,齐治昌、谭庆平、宁洪,高等教育出版社
《asp程序设计》
《数据库原理》 王珊 萨师煊 高等教育出版社
任务概述
通过该系统的实施,将图书馆管理等方面通过系统来实施,其中包括对学生借还读书信息,员工信息,以及读书信息等等,使得图书馆借还等管理业务和查询业务运转周期缩短20%以上,来提高学校图书馆运转效率。
数据库管理系统软件:Access
运行平台:Windows XP/Windows 2000/Windows 2003.
分辨率:最佳效果1024x768像素
按照需求分析文档中的规格要求,使用条形码扫描器进书、借书、还书,使得信息传递准确、流畅。同时,系统最大限度地实现易安装,易维护性,易操作性,运行稳定,安全可靠。
建议软件寿命:1 年。
经费来源:数计院
硬件条件:服务器运维部工作站,终端为pc 机。
运行环境:Windows XP
数据库:Access
投入运行最迟时间:2009/08/04
顶层数据流图:
第0层图:
第一层图:
(1):登陆子系统
(2):管理子系统
(3)查询子系统
第二层图:
(1):入库管理
(2)处理学生借书
(3):处理学生还书
(4):处理图书注销
(5)处理学生信息查询
(6)处理图书信息查询
针对图书馆管理系统,可以分为两大模块,一个小模块:分别为管理子系统,查询子系统两大模块;基础信息管理小模块;
在管理子系统中:
1):新书购入处理模块只要是针对采购员在根据计划在外采购新书之后的处理,所以当采购员采购到新书后,系统根据原先计划采购的新书进行核查,如果符合计划预定,则将新书入库;否则退货;该模块主要是处理购入的新书是否符合要求;
2):处理学生借书模块:
该模块主要是处理学生借书业务,在图书馆管理人员输入学生信息的时候,系统会根据学生文件对该学生进行查询,看看是否存在该学生,如果不存在,则系统给出警告信息:该学生不存在;如果存在该学生,则系统根据罚款单对该学生的欠款情况进行查询,如果欠款超过一定金额,则借书失败,否则接受借书,更新借书文件,在显示器上面显示借书成功;
3):处理学生还书模块:
该模块主要是处理学生还书业务,在图书馆管理人员输入要还的图书字段时,系统会在借书文件中查找该图书信息,之后对借书文件,学生文件中的该学生已借书数,图书目录文件进行更新;然后在借书文件中提取学生数据,根据图书的还书日期和借出日期对学生的欠款金额进行计算,如果没有超期,则欠款金额在原来的基础上加0;之后将结果显示出来;
4):处理图书注销模块:
该模块主要是针对图书注销业务;
在查询子系统中:
有两个查询内容:
- 学生信息查询:学生信息查询子模块主要是对学生信息的查询;
- 图书信息查询:图书信息查询子模块主要是对图书信息的查询;
这些模块,是针对学生或者图书馆管理人员这两个不同的对象,查询子系统主要是让用户了解信息,所以不需要进行用户密码登陆,直接可以进行查询,而管理模块是涉及到图书馆内部的重要信息管理方面,所以必须要设置用户密码登陆和权限等等,以保数据的安全性和系统的安全性;
- 用户接口:
采用窗口化,菜单式进行设计,在操作时响应热键。
- 硬件接口:
一卡通,扫描仪器
- 软件接口
//通过JDBC对MYSQL数据库的连接
通过面向对象语言设计类,在public类中实现调用;类间实现严格封装;
一:学生文件表(Student):
序号 | 字段 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
1 | XSID | 学生编号 | Int | 10 | 1 | √ | 自动编号 | |||
2 | Name | 姓名 | nvarchar | 10 | ||||||
3 | Sex | 性别 | nvarchar | 2 | √ | |||||
4 | ZJH | 证件号码 | nvarchar | 25 | √ | |||||
5 | LXDH | 联系电话 | nvarchar | 40 | √ | |||||
6 | DJRQ | 登记日期 | datetime | 8 | √ | |||||
7 | YXQZ | 有效期至 | datetime | 8 | √ | |||||
8 | YJSS | 已借书数 | smallint | 2 | √ | |||||
9 | RuleID | 学生规则ID | int | 10 | ||||||
10 | ZT | 是否挂失 | nvarchar | 2 | √ |
二:图书目录文件(Book)
序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
1 | 图书编号 | Int | 10 | 1 | √ | 自动编号 | |||
2 | 条形码 | nvarchar | 20 | ||||||
3 | 书名 | nvarchar | 200 | ||||||
4 | 图书类型 | Nvarchar | 50 | √ | |||||
5 | 作者 | Nvarchar | 20 | √ | |||||
6 | 译者 | Nvarchar | 20 | √ | |||||
7 | ISBN | Nvarchar | 20 | ||||||
8 | 出版社 | Nvarchar | 30 | √ | |||||
9 | 价格 | Money | 8 | √ | |||||
10 | 书架名称 | Nvarchar | 20 | √ | |||||
11 | 现存量 | Smallint | 2 | √ | |||||
12 | 库存总量 | Smallint | 2 | √ | |||||
13 | 入库时间 | Datatime | 8 | √ | |||||
14 | 操作员 | Nvarchar | 10 | √ | |||||
15 | 简介 | Nvarchar | 200 | √ | |||||
16 | 借出次数 | Smallint | 2 | √ | |||||
17 | 是否注销 | Nvarchar | 2 | √ | |||||
18 | 图书状态 | nvarchar | 50 | √ |
三:借书文件表(JSWJB)
序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 外键 | 说明 |
1 | 借阅编号 | Int | 10 | 1 | √ | 自动编号 | ||||
2 | 图书编号 | Int | 10 | √ | ||||||
3 | 学生编号 | Int | 10 | √ | ||||||
4 | 借阅时间 | Datatime | 8 | √ | ||||||
5 | 到期时间 | Datatime | 8 | √ | ||||||
6 | 续借次数 | Smallint | 2 | √ | ||||||
7 | 操作员 | Nvarchar | 10 | √ | ||||||
8 | 状态 | navarchar | 50 | √ |
四:罚款单表(Publish)
序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 外键 | 说明 |
1 | 借阅编号 | Int | 10 | 1 | √ | 自动编号 | ||||
2 | 图书编号 | Int | 10 | √ | ||||||
3 | 学生编号 | Int | 10 | √ | ||||||
4 | 应罚金额 | Smallint | 3 | √ | ||||||
5 | 实收金额 | Smallint | 3 | √ | ||||||
6 | 状态 | Nvarchar | 1 | √ | ||||||
7 | 备注 | Nvarchar | 200 | √ |
五:入库表(RK)
序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 外键 | 说明 |
1 | 书号 | Nvarchar | 30 | 1 | √ | 自动编号 | ||||
2 | 条形码 | Nvarchar | 20 | √ | ||||||
3 | 书名 | Nvarchar | 200 | √ | ||||||
4 | 作者 | Nvarchar | 20 | √ | ||||||
5 | 出版社 | Nvarchar | 30 | √ | ||||||
6 | 版次 | Nvarchar | 50 | √ | ||||||
7 | 图书类别 | Nvarchar | 20 | √ | ||||||
8 | 存放位置 | Nvarchar | 20 | √ | ||||||
9 | 单价 | Money | 8 | √ | ||||||
10 | 入库数量 | Smallint | 2 | √ | ||||||
11 | 金额 | Money | 8 | √ | ||||||
12 | 经手人 | Nvarchar | 10 | √ | ||||||
13 | 票号 | Nvarchar | 30 | √ | ||||||
14 | 操作员 | Nvarchar | 10 | √ | ||||||
15 | 日期 | Datatime | 8 | √ |
六:管理员表(Admin)
序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
1 | 管理员ID | Int | 10 | √ | |||||
2 | 管理员密码 | Char | 15 | ||||||
3 | 权限 | Nvarchar | 16 |
七,学生规则表(Rule)
序号 | 字段含义 | 字段名称 | 类型 | 长度 | 是否为主键 | 是否为空 |
1 | 规则ID | RuleId | int | 10 | PK | |
2 | 规则名称 | GZMC | nvarchar | 50 | ||
3 | 可借阅天数 | KJYSJ | Int | 2 | ||
4 | 续借天数 | KXJSJ | Int | 2 | ||
5 | 最大续借次数 | KXJCS | Int | 2 | ||
6 | 预约保留天数 | KYYSJ | Int | 2 |
一:学生文件表(Student):
序号 | 字段 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
1 | XSID | 学生编号 | Int | 10 | 1 | √ | 自动编号 | |||
2 | Name | 姓名 | nvarchar | 10 | ||||||
3 | Sex | 性别 | nvarchar | 2 | √ | |||||
4 | ZJH | 证件号码 | nvarchar | 25 | √ | |||||
5 | LXDH | 联系电话 | nvarchar | 40 | √ | |||||
6 | DJRQ | 登记日期 | datetime | 8 | √ | |||||
7 | YXQZ | 有效期至 | datetime | 8 | √ | |||||
8 | YJSS | 已借书数 | smallint | 2 | √ | |||||
9 | RuleID | 学生规则ID | int | 10 | ||||||
10 | ZT | 是否挂失 | nvarchar | 2 | √ |
二:图书目录文件(Book)
序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
1 | BookID | Int | 10 | 1 | √ | 自动编号 | |||
2 | TXM | nvarchar | 20 | ||||||
3 | Bookname | nvarchar | 200 | ||||||
4 | TSLX | Nvarchar | 50 | √ | |||||
5 | Author | Nvarchar | 20 | √ | |||||
6 | Translater | Nvarchar | 20 | √ | |||||
7 | ISBN | Nvarchar | 20 | ||||||
8 | XBS | Nvarchar | 30 | √ | |||||
9 | JG | Money | 8 | √ | |||||
10 | SJMC | Nvarchar | 20 | √ | |||||
11 | XCL | Smallint | 2 | √ | |||||
12 | KCZL | Smallint | 2 | √ | |||||
13 | RKSJ | Datatime | 8 | √ | |||||
14 | CZY | Nvarchar | 10 | √ | |||||
15 | JJ | Nvarchar | 200 | √ | |||||
16 | JCCS | Smallint | 2 | √ | |||||
17 | SFZX | Nvarchar | 2 | √ | |||||
18 | TSZT | nvarchar | 50 | √ |
三:借书文件表(JSWJB)
序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 外键 | 说明 |
1 | JYID | Int | 10 | 1 | √ | 自动编号 | ||||
2 | BookID | Int | 10 | √ | ||||||
3 | StuID | Int | 10 | √ | ||||||
4 | JYSJ | Datatime | 8 | √ | ||||||
5 | DQSJ | Datatime | 8 | √ | ||||||
6 | XJCS | Smallint | 2 | √ | ||||||
7 | CZY | Nvarchar | 10 | √ | ||||||
8 | ZT | navarchar | 50 | √ |
四:罚款单表(Publish)
序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 外键 | 说明 |
1 | JYID | Int | 10 | 1 | √ | 自动编号 | ||||
2 | BookID | Int | 10 | √ | ||||||
3 | StuID | Int | 10 | √ | ||||||
4 | YFJE | Smallint | 3 | √ | ||||||
5 | SSJE | Smallint | 3 | √ | ||||||
6 | ZT | Nvarchar | 1 | √ | ||||||
7 | BZ | Nvarchar | 200 | √ |
五:入库表(RK)
序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 外键 | 说明 |
1 | BookID | Nvarchar | 30 | 1 | √ | 自动编号 | ||||
2 | TXM | Nvarchar | 20 | √ | ||||||
3 | Bookname | Nvarchar | 200 | √ | ||||||
4 | Author | Nvarchar | 20 | √ | ||||||
5 | CBS | Nvarchar | 30 | √ | ||||||
6 | BC | Nvarchar | 50 | √ | ||||||
7 | TSLB | Nvarchar | 20 | √ | ||||||
8 | CFWZ | Nvarchar | 20 | √ | ||||||
9 | DJ | Money | 8 | √ | ||||||
10 | RKSL | Smallint | 2 | √ | ||||||
11 | JE | Money | 8 | √ | ||||||
12 | JSR | Nvarchar | 10 | √ | ||||||
13 | NoteID | Nvarchar | 30 | √ | ||||||
14 | CZY | Nvarchar | 10 | √ | ||||||
15 | Date | Datatime | 8 | √ |
六:管理员表(Admin)
序号 | 字段名 | 类型 | 长度 | 精度 | 小数位数 | 默认值 | 允许空 | 主键 | 说明 |
1 | admin_ID | Int | 10 | √ | |||||
2 | Admin_password | Char | 15 | ||||||
3 | Admin_ | Nvarchar | 16 |
七,学生规则表(Rule)
序号 | 字段含义 | 字段名称 | 类型 | 长度 | 是否为主键 | 是否为空 |
1 | 规则ID | RuleId | int | 10 | PK | |
2 | 规则名称 | GZMC | nvarchar | 50 | ||
3 | 可借阅天数 | KJYSJ | Int | 2 | ||
4 | 续借天数 | KXJSJ | Int | 2 | ||
5 | 最大续借次数 | KXJCS | Int | 2 | ||
6 | 预约保留天数 | KYYSJ | Int | 2 |
数据结构与程序是软件的重要组成部分,程序的正确执行依赖于合理的数据结构
本程序主要是以一个窗口为模块,一般一个窗口完成一个特定的功能,主窗口通过打开另一个子窗口来实现个模块之间不同功能的连接和组合。各模块之间相对独立,程序的可移植性好。各模块之间主要以传递数据项的引用来实现模块之间的合作和数据共享。
只要符合操作说明书,用户可自由控制
由用户决定
本程序多处采用了异常处理的机制,当遇到异常时不但能及时的处理,保证程序的安全性和稳定性,而且各种出错信息能通过弹出对话框的形式,及时的告诉用户出错的原因及解决的办法,使用户以后能够减少错误的发生。程序的大部分地方还采取了出错保护,如输入内容的长度和类型等减少了用户出错的可能。
我们对于本程序的几种可能的错误进行了分析,分别进行了不同的处理。
主要的错误可能有:
数据库连接错误:
这类错误主要是数据库设置不正确,或sql server异常引起的,我们只要取消本次操作,提醒用户检查数据库问题就可。
输入错误:
这主要是用户输入不规范造成的,我们在尽量减少用户出错的条件的情况下,主要也是通过对话框,提醒用户,然后再次操作。
其他操作错误:
对于用户的不正当操作,有可能使程序发生错误。我们主要是中止操作,并提醒用户中止的原因和操作的规范。
其他不可预知的错误:
程序也会有一些我们无法预知或没考虑完全的错误,我们对此不可能作出万全的异常处理,这时我们主要要保证数据的安全,所以要经常的进行数据库备份,并能及时的和我们联系,以逐步的完善我们的程序。
我们这个软件的安全主要有几个方面:
软件使用安全:
这个我们在对错误的异常处理的地方已经详细说明。这里不再重述。
数据保密:
由于我们这个软件是面向企业的人事管理的,里面就会有很多员工和企业方面的重要数据。这些数据,出于企业计划,员工隐私等原因需要不宜被外人知道,所以我们设计了登陆系统,保证了操作员合法性。另外,建议企业对数据库(和备份文件)进行一定的密码保护,以防资料的泄漏。
操作安全:
由于操作员的操作不慎可能导致数据被误删,误改等情况,这里我们在每次删除的时候提醒用户,以防误操作。
软件的维护主要包括,数据库的维护和软件功能的维护。
对于数据库的维护,本软件已经提供了数据库的备份和恢复的功能,可以方便的实现数据库的维护管理。
对于软件功能方面的维护,由于我们采用的是模块化的设计方法,每个模块(窗口)之间相互独立性较高,这样对软件的维护带来了很大的方便,对于单独功能的修改只需修改一个窗口就行了。而对于功能的添加,只要再添加菜单项的内容即可,软件卖出后,我们将根据客户的要求和反映,定期的对软件进行维护修改。