《图书馆管理系统课程设计报告书.doc》由会员分享,可在线阅读,更多相关《图书馆管理系统课程设计报告书.doc(49页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、图书馆管理系统班级: 软件0801班 小组成员:日期: 2011年1月10日 第一章 系统概述1.1系统背景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机网被广泛应用于管理信息系统的外部环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息处理,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与管理信息系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。图书馆作为一种信息资源的集聚地,图书和用户借阅资料繁多,包含很多的信息数据的管理。本案例的问题定义是
2、:为了减轻新生入学(或新员工入公司)、不断增加、修改图书给图书馆带来的不便而设计的。图书馆管理系统是办公自动化不可缺少的一部分,是适应现代管理制度要求、推动学生学籍管理走向科学化、规范化的必要条件。该软件最终的使用者是学校,公司,图书馆管理者,并提供以下的功能:1. 默认页提供关于图书馆的基本信息;2. 图书馆管理者可以根据读者信息创建读者的帐户;3. 如果读者输入的电子邮件 ID 在数据库中已存在,系统将显示错误页;4. 图书馆管理者必须先登录才能在了解图书馆的详细信息和自己的基本信息,并可以对图书进行添加、查找、修改、注销等的操作,还可对读者进行管理与归类;5. 读者必须先登录才能对图书进
3、行借阅、归还、续借等操作。1.2 可行性研究1.2.1 技术条件方面的可能性技术上的可行性分析主要分析现有技术条件能否顺利完成开发工作,硬件、软件配置能否满足开发者的需要,各类技术人员的数量,水平,来源等。图书馆管理系统的工作主要是在读者和图书馆之间架起一座桥梁,能相互沟通信息和处理信息。所使用的语言是C#和SQL之间连接,这是大家还比较熟悉的内容,可行性绝对可行。1.2.2.法律方面的可行性合同责任:符合国家标准的合同,经双方签字后生效侵犯专利权:有侵犯版权:有当今社会发展迅速,知识量的积累更是与日俱增,无论是学校的图书馆还是公司的资料库,学生或员工的知识渴求的越显强烈,书籍资料的借阅量也是
4、越来越高,而逐渐显现出来的读者信息管理质量问题是越来越严重。一方面,管理员为了将读者的部分个人信息记录下来,需要每一位新读者自己填写他们个人资料,并且能够对读者进行编号和排序,对他们的信息进行修改和查询操作。另一方面,为了能够使读者信息更加安全,必须限制非管理员对读者信息的访问权。为了能够解决这些问题,需要建立一个安全完善的管理平台,能够使读者信息能够快速完整地自动记录在案,并且不能够随便被任何人非法窃取,这对学校和公司的读者信息管理都有着非常重要的作用。1.2.3.使用方面的可行性用户单位的行政管理:自定工作制度:自定人员素质等能否满足要求:可以满足从社会效益上看,随着技术的发展,采用软件管
5、理图书馆日常工作,毫无疑问会在使用过程中产生新的需求和问题,这样也会不断地促进信息技术和软件应用的革新。用哲学的思维分析可概括为软件应用促进技术进步,技术进步反作用于软件的应用,从而双方面同时促使社会不断朝前。经过研究,此系统的用户无使用方面的问题。第二章 需求分析2.1 需求图书管理系统用户个人信息管理信息录入信息查询打印读者信息信息修改与删除图书才查询借阅退还管理查询图书管理借阅图书管理读者登录模式管理员信息管理信息录入信息查询信息修改与删除图书信息管理信息修改与删除图书清单新进图书图书查询退还图书管理用户登录界面管理管理员登录模式2.1.1功能需求2.1.1.1登录界面 为了方便进行管理
6、,我们设置了一个登陆界面。对于不同身份的人应该进入不同的管理界面。因此将登陆界面分成了以下两个部分:2.1.1.1.1 管理员登录 2.1.1.1.2 用户登录2.1.1.1.1 管理员登录(1) 管理员信息此模块包括管理员的姓名、密码、年龄和性别。(2) 图书信息此模块包括图书的类别、名称、作者、出报社、内容简介以及图书馆里的现有数量。(3) 借阅图书此模块包括借阅图书的用户、借阅的时间。(4) 密码的更改管理员可根据自己的喜好更改自己的登录密码。2.1.1.1.2 用户登录(1) 读者的信息显示当前读者的个人信息。(2) 图书的信息此模块包括图书的类别、名称、作者、出报社、内容简介以及图书
7、馆里的现有数量。(3) 密码的更改用户可以更改自己的登录的密码。登 陆 界 面管 理 员 登 陆用 户 登 录管理员信息图书信息 。读者信息图书信息 。 登录界面流程图2.1.1.2 管理员信息管理对于图书馆管理员,客户和管理员要清楚的知道管理员的详细信息,比如管理员个人信息和所分配的工作时间等。1管理员姓名 2管理员工号 3管理员工作时间 4管理员信息更新管 理 员 信 息 管 理管 理 员 姓 名管 理 员 工 作 时 间管 理 员 工 号管 理 员 信 息 更 新管理员信息管理流程图2.1.1.3 图书信息管理2.1.1.3.1图书清单1.图书名 2.图书编号 3.类型 4.作者5.已借
8、出的本数 6.所剩本数 7.曾经借过此书的人和所借时间2.1.1.3.2新进图书信息2.1.1.3.3图书查询 (1) 按类型(2) 按作者(3) 按图书名2.1.1.3.4图书信息的更新及删除图书信息管理图 书 清 单图 书 查 询新 进 图 书 信 息图 书 信 息 的 更 新对影碟信息进行修改,添加或删除。图书信息管理流程图2.1.1.4 用户信息管理管理员和用户自己可以查看的基本信息,通过用户的信息便于管理员有效的管理用户的借阅信息,可以让自己了解自己的借阅情况。2.1.1.4.1 个人基本信息1. 学号 2. 姓名 3. 密码 4. 年龄 5. 性别 6. 生日 7. 电话号码2.1
9、.1.4.2 功能1. 能借阅的书本数量2. 已借书数量3. 曾经借过的书及所借时间4. 用户信息的更改2.1.1.4.3 查询1.管理查询管理员可以查询图书馆里的藏书情况,用户的基本信息情况2.用户查询用户可以查询图书馆里的藏书情况和自己的借阅信息2.1.1.4.4 注销和修改用户信息 用 户 信 息 管 理学生读者基本信息功 能查 询姓 名学 号能借阅的书本数量已 借 书 数 量用户信息的更改管 理 员 查 询用 户 查 询。用户信息管理流程图2.1.1.5 图书借阅管理2.1.1.5.1 图书借书管理(1) 读者查询方式按类型(如小说类、专业类、杂志类)或按出版日期等查询,系统给与提示,
10、若按其中一种查询系统会给出这类查询的所有信息。(2) 图书的借阅查找到读者所需的书本,若该书没有被借阅或还有库存,则借阅成功,记录借阅的图书的基本信息,借阅的日期和借阅者的详细信息。图书借书管理读者查询方式图书的借阅按 类 型按出版日期借阅成功借阅失败 借书管理流程图2.1.1.5.2 图书还书管理(1)退还图书的详细信息如退还信息,图书信息(2)还书读者的详细信息(3)罚款计算方式设定归还期限,超过归还期限不退还图书者按超过天数增加借阅费用;若没有超期就无需罚款。(4)赔偿方式针对退还时图书损坏或丢失者,照原价赔偿。图书还书管理返还图书信息返还读者信息罚款计算方式赔偿方式还书管理流程图2.1
11、.2数据需求n图书管理员m馆长图书管理管理员ID密码图书ID书名用户管理用户ID密码借阅操作图书事务处理nmnmn总体E-R属性图图书信息图书编号定 价ISBN号书 名作 者出版社出版日期书库到馆日期图书属性图借 阅编 号书目编号读者编号借阅日期应还日期 借阅信息属性图用 户 信 息用户编号所属年级用户类别姓 名性 别密 码用户信息属性图2.1.3性能需求说明程序对运行时间、存储空间和计算精度的特殊要求2.1.3.1运行时间a 用户登录请求、个人信息填写完毕后的提交、个人信息更改、删除的操作,响应时间应该在1.5s之内用户不应感到系统有延迟的时间;b 管理者对图书进行信息查询,返回记录在100
12、行之内的,响应时间应不超过2s,超过100行记录的情况,应该进行分页显示结果信息;c 统计分析涉及的数据表众多且数据量大,统计分析时要求系统响应速度快。2.1.3.2存储空间存储过程要是存储已经编译好并经过优化的放置于数据库服务器端SQL语句,这些语句可供应用程序直接调用。因为存储过程是为各功能模块提供商能的数据访问接口。2.1.3.3计算精度1、个人信息:真实,准确。2、对图书和读者进行信息查询,应执行不完全匹配的模糊查询;2.2 环境2.2.1运行环境描述运行软件系统所需的软、硬件环境。2.2.1.1 软件环境:操作系统:Windows XP,Windows Vista,Windows 7
13、 数据库:Oracle 10g,前台环境:Dreamweaver,Visual Studio.NET2.2.1.2 硬件环境:Cpu:Pentium 166 MHz 以上,内存至少128 MB,硬盘空间80 M,显示器800*600或更高分辨率。数据库服务器硬件需求:具有 Pentium III 处理器且满足以下要求的计算机:最低 256MB 内存最小 20 GB 硬盘鼠标键盘接口:系统之间不提供应用程序级别的接口,数据共享通过Oracle数据库表的公共访问来实现。2.2.2开发环境描述开发软件系统所需的软、硬件环境。2.2.2.1 软件环境:操作系统:Windows XP,Windows V
14、ista,Windows 7 开发软件:本系统需用Oracle 10g和Microsoft.NET平台,以C#为编程语言。.NET通过ADO.NET技术访问Oracle 10g数据库服务器中的资源。ADO.NET提供了一组优化的访问数据库的专用对象,不论服务器使用何种数据库系统,ADO.NET都提供相同的接口。2.2.2.2 硬件环境:Cpu: Pentium 166 MHz 以上,内存至少128 MB,硬盘空间80 M,显示器800*600或更高分辨率。数据库服务器硬件需求:具有 Pentium III 处理器且满足以下要求的计算机:最低 256MB 内存最小 20 GB 硬盘鼠标键盘接口:
15、系统之间不提供应用程序级别的接口,数据共享通过Oracle数据库表的公共访问来实现。第三章 软件设计3.1 总体设计3.1.1 软件结构设计借书还书图书预定查询读者信息注销读者信息修改读者信息读者登记系统设置管理员信息维护信息统计查询新书入库查询图书信息删除图书信息修改图书信息图书馆管理系统登录系统基本业务图书管理读者管理系统管理系统管理员图书管理员图书馆管理系统总体结构设计3.1.2 数据库设计将ERD模型导成关系模型,并进行数据的规范化(达到3范式)。最后以表单的形式给出数据库中的具体表的结构以及字段的说明。设计数据库的索引,数据库的视图等对象。 表2-1 XX表字段名类型长度约束说明XH
16、Char6主键学号XMChar20姓名对程序当中所采用的数据库相关的名称和标识符、在数据库当中的位置、定义、度量单位、格式和值域、敏感程度、数据项名、缩写词和代码,包括用于数据库的规格说明等进行定义。3.1.3 其它3.1.3.1 故障处理维护要求a. 在数据访问、增改时,用户输入一些不合理的数据的时候,能够进行一些合理的提示信息,不能因为输入错误而导致系统的错误,或者窗口关闭;b数据库要求有备份机制,以防止数据的全部丢失;3.1.3.2 安全保密要求a安全性进行图书跟读者的信息查询和信息的修改,必须是已经登录的用户。b可扩充性系统在开发完毕以后,应允许在后续的答辩中进行功能的扩展或者功能的重
17、新解释和实现。c健壮性系统应该保证在一次开机三个月之内稳定运行,数据库在一些事故中能够在系统安装好之后,两小时内恢复。3.2 模块详细设计3.2.1 读者模块设计借阅者(borrower):主要以自助服务为主,读者通过客户端浏览器登录系统,进行一些权限之内的自主操作,服务器端对其操作进行反馈。读者第一次登录系统需阅读图书馆管理系统操作手册,并按规定进行后续操作,以方便管理和操作。读者在操作中遇到困难,可随时阅读我们的在线帮助手册,并可提交意见,以便我们对系统改进。借阅者可在线进行以下操作:a 查询图书信息(未登录也可)b 修改自身资料c 预定图书d 对系统进行反馈(给出建议和意见)借阅者的活动
18、图3.2.2图书管理员模块设计 图书管理员(Librarian):管理员需登录系统,经过系统认证后,获取对系统的操作权限。图书管理员的操作一般是是由借阅者先提出请求,得到认可后完成请求,并将结果反馈给借阅者,是双方的一个互动的过程。图书管理员一般可进行以下操作:a 借书b 还书c 图书续借d 超期罚款图书管理员的活动图3.2.3 馆长模块设计馆长(Administrator):系统管理员具有系统操作的最高权限,其操作也具有不可逆性,所以系统管理员的操作一定要慎之又慎,以防对系统或数据产生致命性损坏。系统管理员的操作一般是自主操作,当然有时也会收到图书管理员的一些操作请求,并给予其一定帮助,以保
19、证图书管理员操作的效率。系统管理员一般可进行以下操作:a 图书管理:包括新书入库、修改图书信息、删除图书、查询图书信息等b 读者管理:包括读者登记、修改读者信息、读者注销、查询读者信息等c 数据库管理:包括数据库的备份和恢复等d 系统设置:包括对系统信息的设置和图书管理员的管理等 馆长进行读者和图书信息维护的活动图第四章 系统实现4.1 登录模块4.1.1模块界面 1.图书管理员和馆长的登陆 2.管理员窗口 3.馆长窗口4.关于窗口4.1.2功能说明扼要说明本模块(或本组模块)的功能,需要输入/输出的数据项,描述输入数据的输入形式和验证手段,以及对界面操作过程需要特别注意的地方进行说明。4.1
20、.3原代码清单1.登录窗口private void button1_Click(object sender, EventArgs e) bool isuser = false; string message = ; input(); if (logintype.Text.Trim() = 管理员) if (input() isuser = yanzhengUser(logintype.Text, loginid.Text, loginpwd.Text, ref message); if (isuser) Adminform adminform = new Adminform(); adminf
21、orm.Show(); this.Hide(); else MessageBox.Show(message, 登陆失败, MessageBoxButtons.OK, MessageBoxIcon.Error); if(logintype.Text.Trim()=馆长) if (input() isuser = yanzhengUser(logintype.Text, loginid.Text, loginpwd.Text, ref message); if (isuser) ManagerForm managerform = new ManagerForm(); managerform.Sho
22、w(); this.Hide(); else MessageBox.Show(message, 登陆失败, MessageBoxButtons.OK, MessageBoxIcon.Error); private bool input() if(loginid.Text.Trim()= ) MessageBox.Show(请输入用户名); loginid.Focus(); return false; else if(loginpwd.Text.Trim()=) MessageBox.Show(请输入密码); loginpwd.Focus(); return false; else if (lo
23、gintype.Text.Trim() = ) MessageBox.Show(请选择类型); return false; else return true; public bool yanzhengUser(string logintype, string loginid, string loginpwd,ref string message) int count = 0; bool isuser = false; if(logintype=管理员) string sql = string.Format(select count(*) from Madmin where mName=0and
24、 mPwd=1,loginid,loginpwd); try SqlCommand command = new SqlCommand(sql,DBHelper.connection); DBHelper.connection.Open(); count = (int)command.ExecuteScalar(); if (count = 1) isuser = true; else message=用户名或密码错误; isuser=false; catch(Exception ex) message=ex.Message; Console.WriteLine(ex.Message); fin
25、ally DBHelper.connection.Close(); if (logintype = 馆长) string sql = string.Format(select count(*) from Madmin where mName=0and mPwd=1, loginid, loginpwd); try SqlCommand command = new SqlCommand(sql, DBHelper.connection); DBHelper.connection.Open(); count = (int)command.ExecuteScalar(); if (count = 1
26、) isuser = true; else message = 用户名或密码错误; isuser = false; catch (Exception ex) message = ex.Message; Console.WriteLine(ex.Message); finally DBHelper.connection.Close(); return isuser ; 2.管理员窗口 private void tsmiAddStudent_Click(object sender, EventArgs e) AddSdReader addSdReader = new AddSdReader();
27、addSdReader.ShowDialog(); private void tsmiAddTeacher_Click(object sender, EventArgs e) AddTcReader addTcReader = new AddTcReader(); addTcReader.ShowDialog(); private void tsmiUpdateStudent_Click(object sender, EventArgs e) SelectSdReader selectSdReader = new SelectSdReader(); selectSdReader.ShowDia
28、log(); private void tsmiUpdateTeacher_Click(object sender, EventArgs e) SelectTcReader selectTcReader = new SelectTcReader(); selectTcReader.ShowDialog(); private void tsmiAddBook_Click(object sender, EventArgs e) Addnewbook addnewbook = new Addnewbook(); addnewbook.ShowDialog(); private void tsmiUp
29、dateBook_Click(object sender, EventArgs e) Updatebook updatebook = new Updatebook(); updatebook.ShowDialog(); private void tsmiAboat_Click(object sender, EventArgs e) AboutForm aboutform = new AboutForm(); aboutform.ShowDialog(); private void bkborrowtc_Click(object sender, EventArgs e) bkborrow bkb
30、orrow = new bkborrow(); bkborrow.ShowDialog(); private void bkbacktc_Click(object sender, EventArgs e) bkback bkback = new bkback(); bkback.ShowDialog(); 3.馆长窗口private void tsbtnClose_Click(object sender, EventArgs e) this.Close(); private void tsmiSystem_Click(object sender, EventArgs e) SystemForm
31、 systemForm = new SystemForm(); systemForm.ShowDialog(); private void tsmiAddAdmin_Click(object sender, EventArgs e) AddAdmin addAdmin = new AddAdmin(); addAdmin.ShowDialog(); private void tsmiSelectAdmin_Click(object sender, EventArgs e) SelectAdmin selectAdmin = new SelectAdmin(); selectAdmin.Show
32、Dialog(); private void tsmiAboat_Click(object sender, EventArgs e) AboutForm aboutform = new AboutForm(); aboutform.ShowDialog(); private void ManagerForm_FormClosed(object sender, FormClosedEventArgs e) Application.Exit(); 4.关于窗口 int index = 0;private void timer_Tick(object sender, EventArgs e) if
33、(index ilAnimation.Images.Count - 1) index+; else index = 0; picAnimation.Image = ilAnimation.Imagesindex; 4.2 添加信息管理模块4.2.1模块界面1.新增图书窗口 2.创建学生读者信息窗口3.创建教师读者信息窗口4.新增管理员窗口4.2.2 功能说明4.2.3 原代码清单1.新增图书窗口private bool ValidatInput() if (txtName.Text = ) MessageBox.Show(请输入职工号, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information); txtName.Focus(); return false; if (txtPassword.Text = ) MessageBox.Show(请输入密码, 输入提示, MessageBoxButtons.OK, MessageBoxIcon.Information); txtPassword.Focus(); return false; if (txtpswAgain.Text =