学 号:
姓 名:
班 级:
指导教师:
报告日期: 2009年1月7日
一、课设目的
通过对图书管理信息系统的系统分析、系统设计、编码和调试等工作的实践,了解管理信息系统的一般设计方法和实现思路,深入了解数据库设计的基本理论及方法。
二、课设任务
要求完成一个具有一定实用价值的图书管理信息系统,主要任务包括:
在SQL Server 2000或SQL Server 2005环境下建立图书管理信息系统所使用的数据库,利用企业管理器或查询分析器建立各种数据库对象,包括:数据表、视图、约束、存储过程和触发器等;
了解数据库引擎技术,并掌握使用ADO.NET连接数据库服务器和客户端应用程序;
掌握使用C#或其他语言开发一个数据库系统的基本方法和步骤,应用程序的功能包括:数据的输入、修改和删除;数据的浏览和查询;数据的图形化、报表以及打印输出;系统的用户登录和权限管理;
了解多层C/S或B/S体系结构的数据库系统的开发过程:需求分析、系统设计、系统实现及文档的收集和整理。
三、课设内容
1. 设计准备
1.1 系统准备
操作系统:Windows xp
数据库系统:SQL Server 2000 或 SQL Server 2005
客户端开发工具:Visual Studio 2005或其他开发工具
1.2 知识准备
熟悉SQL Server 2000 或 SQL Server 2005的使用;
熟悉C#、ASP.NET或其他语言进行数据库编程。
2. 系统分析
图书信息包括:每种图书都有书名、ISBN、一名或多名作者(译者)、出版社、定价和内容简介等;
读者信息包括:借书证记录有借阅者的姓名、密码、类别和所在单位等;
读者凭借书证借书,教师最多借书15本书,借书期限最长为90天,学生最多借书8本书,借书期限最长为30天。对于超期未还的读者不能继续借书,每本书每超期一天罚款0.05元。
3. 系统设计
3.1 功能框图
该系统主要由五大功能模块组成:图书管理、读者管理、借阅管理、数据统计和系统管理。各大功能模块又由一些子功能模块构成,其功能框图如下。
3.2 数据库结构
1. 读者类别表(ReaderType)
字段名 | 数据类型 | 说明 |
rdType | SmallInt | 读者类别【主键】 |
rdTypeName | Varchar(8) | 读者类别名称 |
CanLendQty | Int | 可借书数量 |
CanLendDay | Int | 可借书天数 |
CanContinueTimes | Int | 可续借的次数 |
PunishRate | Float | 罚款率(分/天/本) |
DateValid | SmallInt | 证书有效日期 |
字段名 | 数据类型 | 说明 |
rdID | Int | 读者序号【主键】 |
rdName | varchar(10) | 读者姓名 |
rdPwd | varchar (10) | 读者密码,初值为“123” |
rdSex | Bit | 性别,0-男,1-女 |
rdType | SmallInt | 读者类别【外键】 |
rdDept | Char(8) | 单位代码 |
rdPhone | varchar(25) | 电话号码 |
rdEmail | varchar(25) | 电子邮件 |
rdDateReg | smalldatetime | 读者登记日期 |
rdBorrowQty | Int | 已借书数量 |
3. 图书信息表(Book)
字段名 | 数据类型 | 说明 |
bkID | Int | 图书序号【主键】 |
bkCode | Char(20) | 图书编号 |
bkName | Varchar(50) | 书名 |
bkAuthor | Varchar(30) | 作者 |
bkPress | Varchar(50) | 出版社 |
bkDatePress | Smalldatetime | 出版日期 |
bkISBN | Char(15) | 书号 |
bkCatalog | Varchar(30) | 分类名 |
bkLanguage | SmallInt | 语言,0-中文,1-英文,2-日文,3-俄文, 4-德文,5-法文 |
bkPages | Int | 页数 |
bkPrice | Money | 价格 |
bkDateIn | SmallDateTime | 入馆日期 |
bkBrief | Text | 内容简介 |
bkCover | Varchar(100) 或image | 图书封面照片 |
bkIsInLab | Char(4)或bit | 是否在馆 |
字段名 | 数据类型 | 说明 |
rdID | Int | 读者序号【主键】 |
bkID | Int | 图书序号【主键】 |
ldContinueTimes | Int | 续借次数(第一次借时,记为1) |
ldDateOut | SmallDateTime | 借书日期 |
ldDateRetPlan | SmallDateTime | 应还日期 |
ldDateRetAct | SmallDateTime | 实际还书日期 |
ldOverDay | Int | 超期天数 |
ldOverMoney | Money | 超期金额 |
ldPunishMoney | Money | 罚款金额 |
lsHasReturn | Bit | 是否已经还书,缺省为0-未还 |
OperatorLend | VarChar(10) | 借书操作员 |
OperatorRet | VarChar(10) | 还书操作员 |
1. 图书管理
添加图书信息:图书管理员可以将新书添加到数据库中。
查询图书信息:所有用户可以按指定的组合条件查询图书,查询结果可以显示、预览、打印、导出到Excel文件。对于图书管理员,可以删除图书和修改部分字段的内容。
2. 读者管理
读者管理员可以添加读者类别和修改读者类别。
读者管理员可以添加读者信息,可以按指定的组合条件查询读者,查询结果可以显示、预览、打印和导出到Excel文件,还可以删除读者和修改部分字段的内容。
读者可以修改个人信息、密码和查阅个人的借阅信息。
3. 借阅管理
读者管理员可以给读者借书和还书。还书时如果图书超期,提示超期的天数,并计算罚款,记录归还相关信息。
读者管理员还可按读者信息查询指定期间内的历史借阅信息和当前未还信息,按图书信息查询指定期间内的历史借阅信息和当前借阅读者信息。查询结果可以显示、预览、打印和导出到Excel文件。
4. 数据统计
图书管理员和读者管理员可以做如下统计:
按图书的个别属性进行分类统计(如:图书编号前几位、出版社、出版年、入馆日期年、是否在馆等);
按借阅的个别属性进行分类统计(如:读者类型、单位代码、借阅天数等)。
统计结果可以显示、预览、打印和导出到Excel文件。
5. 系统管理
系统管理员可以浏览、添加、修改和删除用户信息。
3.4界面设计
1. 登录窗口
所有用户只有正确登录后,方可进入该系统,登录窗口如下。
用户编号指“用户“表中的用户编号或“读者”信息表中的读者编号。
2. 总体界面
用户进入系统后,总体界面如下。
3. 菜单设计
不同角色的用户登录后,有不同的功能显示.
4. 查询图书信息
图书管理员、读者管理员和读者均可查询图书信息,如下图。
输入查询条件:图书序号采用完全匹配;图书编号采用左匹配;图书名称、作者、出版社采用模糊匹配;出版日期、入馆日期、库存数量支持区间条件。
输入文本若为空,表示没有约束条件。
按下“查询”按钮后,将满足各个输入框中的条件相与的记录显示到网格中。
查询结果可以预览、打印和导出到指定的Excel文件。
按下“明细”按钮,可以查看选定图书的详细信息。
若用户角色为图书管理员,可以按下“修改”或“删除”按钮。
⏹按下“删除”按钮,可以删除选择的图书。
⏹按下“修改”按钮,将修改的结果保存到“图书信息表”,成功修改后,显示提示信息。
5. 添加图书信息
只有图书管理员可以添加图书信息,和查询图书明细类似,如上图。
输入或选择相关图书的信息。
起始序号是系统自动获得到的最后入馆图书的序号加1,然后根据图书本数,自动生成图书序号。
图书封面从扫描的文件得到,上传后存储到数据库相应记录中。
按下“添加”按钮,向“图书信息表”中添加1条记录,成功添加后,显示提示信息。
6. 添加读者信息
只有读者管理员才可以添加读者信息,如下图。
输入或选择相关图书的信息。
按下“添加”按钮,向“读者信息表”中添加1条记录。成功添加后,显示提示信息。
按下“修改”按钮,将修改的结果保存到“读者信息表”中。成功修改后,显示提示信息。
按下“删除”按钮,可以删除选定的读者信息。
7. 查询读者信息
图书管理员、读者管理员均可查询读者信息,如下图。
输入查询条件:读者编号、性别、读者类别采用完全匹配;读者姓名采用模糊匹配;
输入文本若为空,表示没有约束条件。
按下“查询”按钮后,将满足各个输入框中的条件相与的记录显示到网格中。
查询结果可以预览、打印和导出到指定的Excel文件。
若用户角色为图书管理员,可以按下“修改”或“删除”按钮。
按下“修改”按钮,弹出“修改读者”对话框,可以修改选择的读者记录。
8. 添加读者类别信息
只有读者管理员才可以添加读者类别信息,如下图。
输入或选择相关读者类别的信息。
按下“添加”按钮,向“读者类别信息表”中添加1条记录。成功添加后,显示提示信息。
9. 修改读者类别信息
只有读者管理员才可以修改读者类别信息。
输入或选择相关读者的信息。
按下“修改”按钮,修改“读者类别信息表”中相应的记录。成功修改后,显示提示信息。
10. 借书
读者管理员可以借书,如下图。
输入读者编号后,点击按钮,显示信息
输入图书序号或图书名称,点击按钮,系统自动显示图书信息。
按下“借书”按钮,向“借阅信息表”中添加1条记录(续借次数为0,计划还书日期为当前系统日期加上该读者可借书的最大天数,是否已经还书为0,借书操作员)。
11. 续借
读者管理员可以续借,如下图。
输入读者编号后,点击按钮,系统显示读者信息以及该读者的所有借阅图书。
选择要续借的图书,按下“续借”按钮,修改“借阅信息表”中对应记录的相关信息(续借次数加1,计划还书日期加上可以借书天数,超期金额,罚款金额,借书操作员)。成功续借后,显示提示信息。
注:只能对满足以下条件的图书才能续借:离还书日期只有1个星期,若已超期需交罚款金额,续借次数不能超过3次。
12. 还书
读者管理员可以还书,如下图所示
输入读者编号后,点击按钮,系统显示读者信息,同时显示改读者的所有借阅图书。
选择要还的图书,按下“还书”按钮,修改“借阅信息表”中对应记录的相关信息(实际还书日期为当前系统日期,是否已经还书为1,超期金额,罚款金额,还书操作员)。成功还书后,显示提示信息。
13. 查询借阅信息
读者管理员可查询借阅信息,如下图。
输入查询条件:读者类别采用完全匹配;读者序号、单位代码、图书编号采用左匹配;读者姓名、图书名称采用模糊匹配;借书日期、还书日期、续借次数、超期天数支持区间条件。
输入文本若为空,表示没有约束条件。
按下“查询”按钮后,将满足各个输入框中的条件相与的记录显示到网格中。
查询结果导出到指定的Excel文件。
若用户角色为读者管理员而且操作员是本人,可以按下“删除”按钮。
按下“删除”按钮,可以删除所有选择记录。
14. 按借阅统计信息
图书管理员和读者管理员可以按借阅统计信息,如下图。
按读者类型统计借阅情况:按读者类型分类汇总统计,统计结果可以导出到Excel文件
按单位代码统计借阅情况:按单位代码分类汇总统计,统计结果可以导出到Excel文件。
15. 按图书统计信息
图书管理员和读者管理员可以按借阅统计信息,如下图。
按不同类型分类汇总统计,统计结果显示如图。
按出版社统计借阅情况:按出版社分类汇总统计,统计结果显示如图。
按出版年统计借阅情况:按出版年区间分类汇总统计,出版年区间按近10年一年一个间隔,以后5年一个间隔,最多50年,统计结果显示给用户。
按入馆年统计借阅情况:按入馆年区间分类汇总统计,入馆年区间按近10年一年一个间隔,以后5年一个间隔,最多50年,统计结果显示给用户。
16. 查询个人借阅信息
读图可以本人的借阅信息,如下图。
17. 用户管理
系统管理员可以进行用户管理,首先在网格中显示全部用户信息,如下图。
添加用户:直接在当前网格中添加用户及其基本信息,然后点击保存
修改用户:直接更改用户的信息,点击保存
删除用户:选中一行,点击删除。
4 系统实现
主要的功能实现的代码
登陆
借书
四、问题及解决方法
1.添加读者信息的时候,容易进行误操作,如何避免此种操作?
本系统采用显示界面和修改界面分开,修改界面单独显示,显示界面不可编辑的方法,修改或者增加后,点击保存按钮时,给出用户确认信息,以免误操作
2.用户和图书信息过多,如何减少管理员的劳动量?
图书和读者信息是一个很庞大的数据,如果仅由一个人来管理的话,是很不科学的
本系统采用分开管理,各司其责的方法,各个管理员的权限不同,登陆后界面也不相同,管理员分3种,系统管理员,读者管理员,图书管理员,
系统管理员:管理所有管理员的信息,包括读者管理员和图书管理员,相当于最大权限,但不涉及读者信息
图书管理员:负责管理图书的相关信息,图书的增加,修改和删除,以及借书、还书和续借
读者管理员:只负责读者信息的增加,删除和修改
各个不同的管理员职责不同,工作不同,没有交叉,分工明确,这样减少每个管理员的劳动量
五、小结
通过这次图书系统的设计,充分了解了分层的思想,不再是拿着系统就做,不考虑过以后系统修改和功能扩展的问题,分层思想可以很好的解决这个问题,是软件重用的一个重要途径
更加熟练的操作数据库,理解软件设计基于满足用户的要求。