数据库课程设计报告总结归纳图书管理系统

合集下载

-图书管理系统数据库设计报告

-图书管理系统数据库设计报告

图书馆管理系统数据库设计报告目录一、 设计背景........................................................二、 需求分析........................................................2.1系统目标 .....................................................2.2需求定义 .....................................................2.3数据流图 .....................................................2.4数据字典 .....................................................三、 功能说明........................................................四、 概念结构设计 ...................................................4.1 分ER图 ......................................................4.2总ER图 .....................................................五、 逻辑结构设计 ...................................................六、 物理结构设计 ...................................................七、 设计人员........................................................正文一、设计背景随着我国市场经济的迅速发展和人们生活水平的不断提高,图书馆藏书的树木逐渐增大,这也挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,通过使用Access创建的图书管理系统可以让管理人员方便而快捷的进行管理、查询、借阅、录入等工作。

数据库课程设计——图书管理系统

数据库课程设计——图书管理系统

借阅管理模块
实现图书的借阅、归还和 续借功能,记录借阅历史 和当前借阅状态。
系统管理模块
实现用户管理、权限管理 、日志管理等功能,保障 系统的安全性和稳定性。
04
系统实现
开发环境搭建
开发工具
Visual Studio Code、MySQL Workbench
运行环境
Windows 10、MySQL 5.7
息。
借阅数据
包括借阅编号、读者 编号、图书编号、借 阅日期、归还日期等
信息。
系统用户数据
包括用户编号、用户 名、密码、角色和权
限等信息。
性能需求
响应时间
01
系统响应时间应小于2秒。
并发用户数
02
系统应支持至少100个并发用户。
数据备份与恢复
03
系统应具备定期自动备份和手动备份功能,同时能够在需要时
数据库课程设计— —图书管理系统
2024-01-09
目录
• 引言 • 系统需求分析 • 系统设计 • 系统实现 • 系统测试与优化 • 课程设计总结与展望
01
引言
课程设计目的
01 掌握数据库设计的基本步骤和方法
通过课程设计,使学生熟悉数据库设计的流程, 包括需求分析、概念设计、逻辑设计、物理设计 等阶段,并掌握各个阶段的主要任务和方法。
模块实现
图书管理模块
实现图书的录入、修改、删除等功能 ,提供对图书信息的全面管理。
借阅管理模块
实现图书的借阅、归还等功能,记录 借阅历史,方便管理员和读者查看。
读者管理模块
实现读者的注册、登录、个人信息管 理等功能,提供对读者信息的全面管 理。
系统管理模块
实现用户权限管理、系统日志查看等 功能,保障系统的安全性和稳定性。

数据库实验报告图书管理系统

数据库实验报告图书管理系统

图书馆管理系统的设计一、实验背景:在数据库应用系统的编程中,管理人员需要经常从数据库中查询数据。

复杂组合查询,特别是多种数据类型的复杂条件动态组合查询是一个设计难度大,但很能方便用户的功能模块,在系统开发时要尽量满足用户的需要,就必须考虑多类型-多条件综合模糊查询功能,提高应用系统的智能性。

消费者在选择市场产品时往往面临数据量大、删选难、数据不全面等问题,多类型-多条件综合模糊查询正式基于此设计的。

二、实验内容:以SQL SERVER2008为后台数据库,以Visual Basic为前台开发工具,完成一个以人事管理系统为实例或结合相关专业方向的查询界面友好的多类型-多条件综合模糊查询应用模块的设计与开发,以满足用户复杂查询的需求,具体内容包括:1)数据库概念结构和逻辑结构的设计;2)通过SQL语句创建数据库;3)设计通用模块;4)设计窗体,达到界面简洁,友好的要求;5)编写代码,使程序能正确执行;6)调试美化,提高查询效率。

三、需求分析图书馆是这样的部门,馆中收藏大量图书供读者借阅,其中图书可分成不同的类别,如自然科学类、社会科学类等;借阅者可分为老师和学生。

不同的借阅者最多可借书的数量和期限不同,如教师最多可借10本,期限为3个月,学生最多可借2本,期限为1个月,无论是老师还是学生,借阅超期都要进行罚款处理。

以上就是图书管理系统所要完成的主要功能。

四、概念结构设计经分析,本系统涉及到的实体只有读者和图书,二者之间存在借阅和罚款的联系,据此可画出此系统的E-R图。

N图书馆管理系统的E-R图其中读者与其属性关系,图书与其属性关系如下图读者实体与其属性图书实体与其属性五、数据库表格(1)图书表的结构(2)读者表的结构(3)借阅表的结构(4)罚款表的结构(5)密码表的结构六、用VB开发应用程序1配置数据源利用ODBC数据源管理器配置一个连接到“图书馆”数据库的数据源,名为“图书管理”。

2设计各个窗体1)设计MDI主窗体从主窗体中可以打开各个功能的窗口,其中图书馆管理系统的主窗体如下图2)设计登陆窗体(1)设计界面如下图(2)编写程序Private Sub Command1_Click()Dim str As StringDim micount As Integerstr = "select 密码from 密码表的结构where 用户名='" & Text1.Text & " ' "Adodc1.RecordSource = strAdodc1.RefreshIf Adodc1.Recordset.EOF = True ThenMsgBox "用户名错误,请重新输入", vbExclamation, "警告"Text1.Text = ""Text1.SetFocusElseIf Adodc1.Recordset.Fields("密码") = Text2.Text ThenMDIForm1.ShowUnload MeElseMsgBox "密码错误,请重新输入", vbExclamation, "警告"Text2.Text = ""Text2.SetFocusEnd IfEnd Ifmicount = micount + 1If micount >= 3 Then Unload MeEnd SubPrivate Sub cmdcancel_Click()Unload MeEnd Sub3)设计读者管理窗体(1)设计界面(2)编写程序Private Sub cmdadd_Click()Adodc1.Recordset.AddNewcmdadd.Enabled = Falsecmddel.Enabled = Falsecmdok.Enabled = Falsecmdcnacel.Enabled = TrueEnd SubPrivate Sub cmdcancel_Click()Adodc1.Refreshcmdadd.Enabled = Truecmddel.Enabled = Truecmdok.Enabled = Falsecmdcancel.Enabled = FalseEnd SubPrivate Sub cmddel_Click()X = MsgBox("确实要删除当前记录吗?", vbYesNo + vbQuestion) If X = vbYes ThenAdodc1.Recordset.DeleteAdodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF = True ThenAdodc1.Recordset.MoveLastEnd IfElseAdodc1.RefreshEnd IfEnd SubPrivate Sub cmdfirst_Click()Adodc1.Recordset.MoveFirstcmdfirst.Enabled = Falsecmdpre.Enabled = Falsecmdnext.Enabled = Truecmdlast.Enabled = TrueEnd SubPrivate Sub cmdlast_Click()Adodc1.Recordset.MoveLastcmdfirst.Enabled = Truecmdpre.Enabled = Truecmdnext.Enabled = Falsecmdlast.Enabled = FalseEnd SubPrivate Sub cmdnext_Click()Adodc1.Recordset.MoveNextcmdfirst.Enabled = Truecmdpre.Enabled = TrueIf Adodc1.Recordset.EOF = True ThenAdodc1.Recordset.MoveLastcmdlast.Enabled = Falsecmdnext.Enabled = FalseEnd IfEnd SubPrivate Sub cmdok_Click()Adodc1.Recordset.Updatecmdadd.Enabled = Truecmddel.Enabled = Truecmdok.Enabled = Falsecmdcancel.Enabled = FalseEnd SubPrivate Sub cmdpre_Click()Adodc1.Recordset.MovePreviouscmdnext.Enabled = Truecmdlast.Enabled = TrueIf Adodc1.Recordset.BOF = True ThenAdodc1.Recordset.MoveFirstcmdfirst.Enabled = Falsecmdpre.Enabled = FalseEnd IfEnd SubPrivate Sub Form_Load()cmdfirst.Enabled = Falsecmdpre.Enabled = Falsecmdnext.Enabled = Truecmdlast.Enabled = Truecmdadd.Enabled = Truecmddel.Enabled = Truecmdok.Enabled = Falsecmdcancel.Enabled = FalseEnd Sub4)设计读者查询窗体(3)编写程序Private Sub Command1_Click()Dim str As Stringstr = "select *from 读者表where 读者表." & combol.Text & "like '" & Text1.Text & "%'"Adodc1.RecordSource = strAdodc1.RefreshEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Form_Load()combo1.Text = " "Text1.Text = ""combo1.AddItem "性别"combo1.AddItem "读者姓名"combo1.AddItem "是否有超期"End Sub5)设计图书管理窗体、图书查询窗体6)设计借阅管理窗体(1)设计界面(2)编写程序Private Sub cmdexit_Click()Unload MeEnd SubPrivate Sub cmdlend_Click()Dim st1 As StringDim st2 As StringDim st3 As StringDim i As Integerst2 = "select 读者类别,是否有超期from 读者表的结构where 借书证号='" & Trim(Text1) & " ' "Adodc2.RecordSource = st2Adodc2.Refresh'有借书证号If Adodc2.Recordset.BOF = False Then'读者是教师If Adodc2.Recordset.Fields(" 读者类别") = " t " And Adodc2.Recordset.Fields("是否有超期") = "n" Then'是否超过最多的十本st1 = "select *from 借阅表where 借书证号='" & Trim(Text) & "'"Adodc1.RecordSource = st1Adodc1.RefreshIf Adodc1.Recordset.RecordCount >= 10 Then MsgBox "教师借书数量达到最多,不能再借!"ElseAdodc1.Recordset.AddNewAdodc1.Recordset.Fields("借书证号") = Text1Adodc1.Recordset.Fields("条形码号") = Text2Adodc1.Recordset.Fields("借出日期") = str(Date)Adodc1.Recordset.Fields("归还日期") = NullAdodc1.Recordset.Update'在图书表中写入"借阅状态"和"借阅次数"信息st3 = "select * from 图书表where 条形码号='" & Trim(Text2) & "'"Adodc3.RecordSource = st3Adodc3.RefreshAdodc3.Recordset.Fields("借阅状态") = "借出"Adodc3.Recordset.Fields("借阅次数") = Adodc3.Recordset.Fields("借阅次数") + 1Adodc3.Recordset.UpdateEnd If'读者是学生ElseIf Adodc2.Recordset.Fields("读者类别") = "s" And Adodc2.Recordset.Fields("是否有超期") = "n" Then'是否超过最多的三本str1 = "select * from 借阅表where 借书证号='" & Trim(Text1) & " ' "Adodc1.RecordSource = st1Adodc1.RefreshIf Adodc1.Recordset.RecordCount >= 3 ThenMsgBox "学生借书量达到最多,不能再借!"ElseAdodc1.Recordset.AddNewAdodc1.Recordset.Fields("借书证号") = Text1Adodc1.Recordset.Fields("条形码号") = Text2Adodc1.Recordset.Fields("借出日期") = str(Date)Adodc1.Recordset.Fields("归还日期") = NullAdodc1.Recordset.Update'在图书表中写入“借阅状态”和“借阅次数”信息st3 = "select * from 图书表where 条形码号=' " & Trim(Text2) & "'"Adodc3.RecordSource = st3Adodc3.RefreshAdodc3.Recordset.Fields("借阅状态") = "借出"Adodc3.Recordset.Fields("借阅次数") = Adodc3.Recordset.Fields("借阅次数") + 1Adodc3.Recordset.UpdateEnd IfElse: If Adodc2.Recordset.Fields("是否有超期") = "y" Then MsgBox "该读者有超期书,不能再借书"End IfEndEnd SubPrivate Sub cmdreturn_Click()Dim sst As StringDim sstt As StringDim sst3 As Stringsst = "select * from 借阅表where 条形码号='" & Text2 & "'"Adodc1.RecordSource = sstAdodc1.Refreshsstt = "select*from读书表where借书证号='" & Adodc1.Recordset.Fields("借书证号") & "'"Adodc2.RecordSource = ssttAdodc2.Refresh'先还书,再罚款Adodc1.Recordset.Fields("归还日期") = DateAdodc1.Recordset.UpdateMsgBox "还书成功"'在图书表中写入该书的“在库”信息sst3 = "select * from 图书馆where 条形码号='" & Text2 & "'"Adodc3.RecordSource = sst3Adodc3.RefreshAdodc3.Recordset.Fields("借阅状态") = "在库"Adodc3.Recordset.UpdateIf Adodc2.Recordset.Fields("读者类别") = "t" ThenIf Date - Adodcl.Recordset.Fields("借出日期") > 90 ThenMsgBox "有超期罚款"fm_punish.ShowEnd IfElseIf Adodc2.Recordset.Fields("读者类别") = "s" ThenIf Date - Adodcl.Recordset.Fields("借出日期") > 30 ThenMsgBox "有超期罚款"fm_punish.ShowEnd IfEnd IfEnd SubEnd Sub7)设计罚款管理窗口(1)设计窗体(3)编写程序Private Sub cmdexit_Click()Unload MeEnd SubPrivate Sub cmdpunish_Click()Dim pcount As IntegerDim i As IntegerDim sum As Singlesum = 0If Adodc3.Recordset.BOF = False Thenpcount = Adodc3.Recordset.RecordCountEnd IfFor i = 1 To pcountsum = sum + Adodc3.Recordset.Fields("超期天数") * 0.1'向罚款表中添加记录Adodc1.Recordset.AddNewAdodc1.Recordset.Fields("借书证号") = Adodc3.Recordset.Fields("借书证号")Adodc1.Recordset.Fields("条形码号") = Adodc3.Recordset.Fields("条形码号")Adodc1.Recordset.Fields("处罚日期") = DateAdodc1.Recordset.Fields("超期天数") = Adodc3.Recordset.Fields("超期天数")Adodc1.Recordset.Fields("罚款金额") = Adodc3.Recordset.Fields("超期天数") * 0.1Adodc1.Recordset.UpdateAdodc3.Recordset.MoveNextNext iText2 = sum & "元"End SubPrivate Sub cmdquery_Click()Dim str3 As Stringstr3 = "select 读者表.借书证号,条形码号,读者姓名,借出日期,(month(getdate())-month(借出日期)-3)*30+day(getdate()-day(借出日期)) as 超期天数"str3 = str3 & " from 读者表inner join 借阅表on 读者表.借书证号=借阅表.借书证号"str3 = str3 + " where 借阅表.借书证号='" & Text1 & " 'and 读者表.读者类别='t'and month (归还日期) - month(借出日期)>3"str3 = str3 + "or 读者类别= 's'and month (归还日期)-month(借出日期) > 1"Adodc3.RecordSource = str3Adodc3.RefreshText2.Text = " "End Sub七、实验心得与体会通过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计的过度,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,增强了自己在数据库中应用SQL语言的灵活性。

图书管理系统 数据库课程设计报告

图书管理系统  数据库课程设计报告

目录1、开发背景 .................................................................................................. 错误!未定义书签。

2、系统描述 (2)3、数据分析 (2)3.1、数据流图 (3)3.2、数据字典 (3)4、概念模型设计 (4)5. 逻辑模型设计及优化 (4)6. 物理设计和实施 ....................................................................................... 错误!未定义书签。

7、应用程序设计(前台) .......................................................................... 错误!未定义书签。

8、课程设计心得体会 ................................................................................ 错误!未定义书签。

1 参考文献 ...................................................................................................... 错误!未定义书签。

21、开发背景90年代中期,由于Internet 的迅速普及,使Intranet成为Internet技术在企业管理信息系统中的应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体的信息技术综合体,它打破了时间和地域的界限,使信息交流变得快捷、准确,为建立现代企业管理信息系统提供了充足的条件。

企业信息管理系统在此基础上延伸、扩展,使之上下、内外全面贯通。

引入Internet后,形成了新型的浏览器/服务器(Browser/Server)结构,而传统的客户机/服务器(Client/Server)结构在这方面就远不及B/S结构。

关于图书馆管理系统的Mysql设计报告

关于图书馆管理系统的Mysql设计报告

. /《高级数据库系统(MYSQL)》课程设计报告课题:图书馆管理系统班级:计科N141姓名:xxx学号: 1/ v .目录一.课程设计目的 (2)二.系统设计 (3)1.系统的功能分析 (3)2.系统的功能模块设计 (3)三.课程设计说明书 (4)1. 需求分析 (4)(1)数据库需求分析 (4)(2)图书馆管理流程图 (4)2. 概要设计 (5)四.逻辑设计 (6)1.图书信息表 (6)五. 物理设计 (7)六. 数据库建立 (8)1.创建图书信息表 (8)2.创建借阅表 (8)3.用户信息表 (9)4.借书卡信息表 (10)七.系统功能实施需要的语句 (11)/*用户信息表*/ (11)/*借阅表*/ (12)/*图书信息表*/ (12)/*视图*/ (13)/*存储过程*/ (13)END (14)八.数据库的完整性要求 (14)九.数据库安全设计 (14)十.课程设计心得体会 (14)一.课程设计目的数据库课程设计是为数据库原理及应用课程而独立开设的实践性课程,对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。

通过本实验达到以下目的:1.熟练掌握一种数据库系统(如MYSQL)的使用。

2.熟练掌握一种数据库应用软件开发工具的使用。

3.通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。

二.系统设计1.系统的功能分析a. 图书信息管理:图书信息的插入、修改,编号、书名、作者、价格、、出版日期、在馆状态。

管理员用户可以对图书信息进行修改等操作。

读者用户只可以查询图书信息。

b. 读者信息管理:读者信息:账号、密码、读者编号、读者姓名、读者类别编号、联系电话。

管理员对读者信息进行增加、删除、查询及修改等操作。

读者只能对读者信息进行查询操作。

c. 管理员信息管理。

管理员信息:管理员工作号、、、备注。

管理员对管理员信息的添加删除修改等操作。

数据库课程设计报告-图书管理系统

数据库课程设计报告-图书管理系统

数据库课程设计报告网上图书管理系统课程名称数据库课程设计专业计算机科学与技术班级191122学号20121003143姓名梁道远指导教师胡霍真时间2014.12.31摘要随着信息技术的发展,计算机已被广泛的应用于社会的各个领域,成为推动社会发展的技术动力。

而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。

软件产业已成为社会信息化进程中的一个战略性产业。

在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。

不断开发适应用户需求、市场需要的新型软件产品。

尤其是在校园里,各种软件的应用无处不在,为我们的学习和生活提供了方便。

学校的图书馆不仅给我们提供看书学习的地方,还给我们提供了一套功能齐全的图书馆系统,方便我们搜索书籍、借阅图书。

我本次的数据库课程设计的最终目标是利用Java语言和Oracle数据库实现一个图书管理系统,使其具有一般图书管理系统所具有的功能,可以实现管理员注册、管理员添加、管理员退出、读者添加、读者修改、读者查询、读者删除、新书入库、书籍查询、书籍借阅与归还等功能。

因为Java是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,所以用Java编程为我们本次程序的编写提供了方便。

在设计中我们主要进行了数据库及类的设计,把整系统分成了com.SJK.db、com.SJK.model、com.SJK.tools、com.SJK.view4个包包含了20个类和5个表。

通过应用awt、swing、sql、until等包,合理的添加了按钮、菜单、文本框、文本区、表格等组件类,还包含窗口、面板等容器类,经过设计者合理的布局,完成了窗体的设计,并通过建立JDBC连接器连接到Oracle数据库后,向数据库发送SQL语句实现程序与数据库中表间的消息通信,从而实现了相应的图书馆管理系统的功能(或通过存储过程来调用数据库表的信息)。

课程设计实验报告--图书管理系统

课程设计实验报告--图书管理系统

课程设计实验报告--图书管理系统课程名称:数据库课程设计系(院):数学与计算机学院班级: 2011级计算机科学与技术指导教师:欧方平摘要随着人类社会的发展,人类对知识的需求也不断地增长。

在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置。

随着现代科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用愈来愈重要。

因此结合开入式图书馆的要求,对Access数据库、SQL语言原理应用程序设计,数据库技术进行了较深入的学习和应用,主要完成对图书管理系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。

系统运行结果证明,本文所设计的图书管理系统可以满足借阅者、系统管理员、图书管理员和读者三方面的需要。

为了联系实际,考虑各层次学校的情况,软件本身要求易学,界面友好,容易掌握,可以较简单方便的管理各种图书信息;硬件的配置要求不能太高,这样可以很好的适应当前的学校图书馆。

系统的总体特点应该是方便、简单、实用。

关键词:SQL语言;管理;图书管理系统;分析;设计目录第一章绪论 (8)一、课题背景 (8)二、图书馆信息化管理 (9)第二章图书管理系统需求分析 (9)一、引言 (9)1、编写目的 (9)2、项目背景 (9)二、任务概述 (10)1、目标 (10)2、用户特点 (10)3、需求概述 (10)4、功能层次图 (12)三、数据描述 (12)1、数据 (12)2、动态数据 (13)3、数据库描述 (13)4、数据流图与数据字典 (13)四、功能需求 (16)1、功能划分 (16)2、功能描述 (16)五、性能需求 (17)1、数据精确度 (17)2、系统响应时间 (17)3、适应性 (18)六、运行需求 (18)1、用户界面 (18)2、硬件接口 (18)3、软件接口 (18)4、故障处理 (18)第三章图书馆管理系统数据库分析 (19)一、数据库 (19)二、用户数据 (19)三、源数据 (20)四、索引 (20)五、数据 (20)1、创建数据库 (20)2、数据库创建语句 (21)3、图书馆管理系统E-R (27)4、图书馆管理系统数据表清单 (28)第四章图书管理系统的功能实现 (31)一、登陆界面编码设计 (31)二、读者管理界面编码设计 (32) (33)三、图书管理界面编码设计 (33)四、借阅信息管理界面编码设计 (34)第五章结论与体会 (35)参考文献 (35)第一章绪论一、课题背景随着现代科学技术的进步,人类社会正逐渐走向信息化,图书馆拥有丰富的文献信息资源,是社会系统的重要组成部分,在信息社会中作用愈来愈重要。

图书管理系统-课程设计报告

图书管理系统-课程设计报告

《数据库系统概论》课程设计报告题目:图书管理系统专业:网络工程班级:姓名:指导教师:成绩:计算机学院2017年12月8日目录1设计内容及要求1.1 背景1.2 设计要求2概要设计2.1 部分E-R图2.2 总体E-R图3逻辑结构设计3.1表结构介绍4设计结果与分析4.1系统开发平台4.2用户界面的实现5 结束语5.1课程设计心得6 参考文献1、设计内容及要求1.1 背景今天,计算机的价格已经十分低廉,性能却有了长足的进步。

它已经被应用于许多领域,计算机之所以如此流行的原因主要有以下几个方面:首先,计算机可以代替人工进行许多繁杂的劳动;其次,计算机可以节省许多资源;第三,计算机可以大大的提高人们的工作效率;第四,计算机可以使敏感文档更加安全,等等。

(1)基本思路根据实际情况,我们使用原型法(Rapid Prototyping)即以少量代价快速地构造一个可执行的软件系统模型。

使用户和开发人员可以较快地确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐增加上去,直到所有的性质全部满足。

此时模块也发展成为最终产品了。

我作为一个网络工程专业的本科生,希望可以在这方面有所贡献。

改革的总设计师邓小平同志曾经说过:“科学技术是第一生产力”,我希望能用我这几年的所学编制出一个实用的应用程序来帮助这些学校图书馆进行更有效的图书管理。

归纳起来,好处大约有以下几点:(1)可以存储所有的图书档案,安全、高效;(2)只需一到二名图书录入员即可操作系统,节省大量人力;(3)可以迅速查到所需信息。

1.2 设计要求借书------根据您提供的图书条形码和图书编号确认图书,再据读者的编号确认读者后把此书借给这位读者。

还书------根据您提供的图书条形码和图书编号确认图书,再据读者的编号确认读者后把此书归还。

图书管理------对所有图书的资料进行添加,修改和删除等操作。

读者管理------对所有读者的资料进行添加,修改和删除等操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库原理课程设计报告书课题名图书信息管理系统指导教师日期目录 (2)3.1可行性分析 (2)3.2系统目标 (3)3.3系统应该具备的功能 (3)3.4系统结构图 (4)四、概念设计 (5)五、逻辑设计 (9)六、物理设计 (9)5.1表命令 (9)5.2表结构图 (13)七、代码实现 (13)6.1数据库连接 (13)6.2增加一条图书记录 (14)6.3删除一条图书记录 (16)6.4修改一条图书记录 (17)6.5查询一条图书记录 (18)八、结束语 (22)前言近年来,随着我国市场经济的迅速发展和人们生活水平的不断提高,以及计算机的普及使用,图书馆藏书的数目逐渐增大,这也是挑战了图书管理方面的技术,以前的人工管理方式已经不再适应现在的环境,取而代之的是先进的图书管理系统,提高了图书馆的工作效率,为想要借书和还书的人提供更好的服务。

1、概述1.1 开发目的图书信息管理工作面对大量的可模块化处理的信息,是当今信息革命的一个重要阵地。

我们小组开发图书管理信息系统就是采用现代化的信息管理方式代替手工管理方式,提高图书管理工作效率,做到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校、社会服务。

2、需求分析2.1可行性分析2.1.1技术可行性就技术力量来说,我们小组可以完成此次开发工作。

开发过程中会出现许多问题,有我们预想之中的,也有一些没有在我们预想中,但我们有信心克服一切困难。

我们小组各成员已经学习了MySQL,SQL,对网络技术和操作系统也有系统的了解,熟悉计算机原理,能解决常见的硬件故障和硬件选择。

2.1.2经济可行性目标系统开发需求比较低,加上具有成熟的软硬件环境,所以在软硬件的支出上十分有限。

而且,目标系统并不是十分的复杂,开发的周期较短,人员有限。

当系统开发完实际运行后,将很大程度上提高计算机的功能,在为使用者带来便利的同时也为系统的进一步推广创造了条件。

2.1.3管理可行性整个系统由于是自行开发,自行使用,所以很方便管理使用。

2.2系统目标图书管理信息系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对于前者要求建立起数据一致性和完整性强,数据安全性好的库。

而对于后者则要求应用程序功能完备,易使用等特点。

系统开发的总体任务是实现各种信息的系统化,规范化和自动化。

2.3 系统应该具备的功能①读者基本信息的输入,包括借书证编号、读者姓名、读者性别等。

②读者基本信息的查询、修改,包括读者借书证编号、读者姓名、读者性别等。

③书籍类别标准的制定、类别信息的输入,包括类别编号、类别名称。

④书籍类别信息的查询、修改,包括类别编号、类别名称。

⑤书籍库存信息的输入,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期、登记日期。

⑥书籍库存信息的查询,修改,包括书籍编号、书籍名称、书籍类别、作者姓名、出版社名称、出版日期登记日期等。

⑦借书信息的输入,包括读者借书证编号、书籍编号、借书日期。

⑧借书信息的查询、修改,包括借书证编号、借书证编号、读者姓名、书籍编号、书籍名称、借书日期等。

⑨还书信息的输入,包括借书证编号、书籍编号、还书日期。

⑩还书信息的查询和修改,包括还书读者借书证编号、读者姓名、书籍编号、书籍名称、借书日期、还书日期等。

⑾超期还书罚款输入,还书超出期限包括超出期限还书的读者借书证号,书籍编号,罚款金额。

⑿超期还书罚款查询,删除,包括读者借书证编号、读者姓名、书籍编号、书籍名称,罚款金额等。

⒀管理员管理:包括创建读者用户信息、删除读者用户信息、添加图书信息、删除图书信息。

⒁超级管理员管理:包括创建管理员用户信息、删除管理员用户信息、创建读者用户信息、删除读者用户信息、添加图书信息、删除图书信息。

2.4 系统结构图(根据需求分析,图书信息管理系统的结构图如下:)(1)书籍类别(类别编号,类别名)(2)读者(借书证编号,读者姓名,读者性别,读者种类,登记时期,可借书数,已借书数,逾期未还书数)(3) 管理员(管理员编号,管理员姓名,管理员密码,管理员权限)(4) 超级管理员(管理员编号,管理员姓名,管理员密码,管理员权限)(5)书籍(书籍编号,书籍名称,书籍类别,书记作者,出版社名称,出版日期,登记日期)(6)借阅(借书证编号,书籍编号,读者借书时间)(7)还书(借书证编号,书籍编号,读者还书时间)(8)罚款(借书证编号,读者姓名,借书证编号,书籍编号,读者借书时间)5、物理设计表命令:(1)创建数据库CREATE DATABASE librarysystemON(NAME = librarysystem,FILENAME = 'd:\librarysystem.mdf',SIZE = 10,MAXSIZE = 50,FILEGROWTH = 5 )LOG ON(NAME = 'library',FILENAME = 'e:\librarysystem.ldf',SIZE = 5MB,MAXSIZE = 25MB,FILEGROWTH = 5MB)(2)书本类别表建立create table book_style(bookstyleno varchar(30) primary key,bookstyle varchar(30))(3)创建书库表create table system_books(bookid varchar(20) primary key,bookname varchar(30) Not null,bookstyleno varchar(30) Not null,bookauthor varchar(30),bookpub varchar(30) ,bookpubdate datetime,bookindate datetime ,isborrowed bit,foreign key (bookstyleno) references book_style (bookstyleno), )(4)借书证表建立create table system_readers(readerid varchar(9)primary key,readername varchar(9)not null ,readersex varchar(2) not null,readertype varchar(10),regdate datetime,booktotal int,borrowednum int,overduenoreturnnum int)(5)借书记录表建立create table borrow_record(bookid varchar(20) primary key,readerid varchar(9),borrowdate datetime,foreign key (bookid) references system_books(bookid),foreign key (readerid) references system_readers(readerid),)(6)还书记录表建立create table return_record(bookid varchar(20) primary key,readerid varchar(9),returndate datetime,foreign key (bookid) references system_books(bookid),foreign key (readerid) references system_readers(readerid))(7)罚款单表建立create table reader_fee(readerid varchar(9)not null,readername varchar(9)not null ,bookid varchar(20) primary key,bookname varchar(30) Not null,bookfee smallmoney,borrowdate datetime,foreign key (bookid) references system_books(bookid),foreign key (readerid) references system_readers(readerid))(8) 管理员表建立create table system_Administrator(administratorid varchar(9)primary key,administratorname varchar(9)not null ,administratorpassword varchar(2) not null,administratorpermission varchar(10))(9) 索引的创建create index bookstyle_index_style on book_style(bookstyle)create index borrow_record_index_readerid on borrow_record(readerid) create index reader_fee_index_readerid on reader_fee (readerid)create index return_record_index_readerid on return_record(readerid) create index system_books_index_bookname on system_books(bookname) create index system_books_index_styleno on system_books(bookstyleno) create index system_books_index_bookauthor on system_books(bookauthor)表结构图:6、代码实现1)数据库的连接:import java.sql.*;import javax.swing.JOptionPane;public class Query{public static Connection conection = null;static Connection getConnection(){ //连接MySQL 数据库try{Class.forName("org.gjt.mm.mysql.Driver");//加载驱动conection = DriverManager.getConnectionSystem.out.println("数据库连接成功");}catch(ng.ClassNotFoundException classnotfound){classnotfound.printStackTrace();//驱动未找到}catch(java.sql.SQLException sql){sql.printStackTrace();//SQL 执行时发生异常,打印栈信息}return conection;}2)增加一条图书记录:public static boolean Insert(Book aBook){Connection connect=getConnection();//得到连接boolean res=false;try {Statement stmt = connect.createStatement();//查询集String sql = "select * from book where BID='"+aBook.getBID()+"'";ResultSet rs=stmt.executeQuery(sql);//执行SQL 命令,返回结果集if (rs.next())//图书编号存在{ res=false;JOptionPane.showMessageDialog(null,"学生信息插入失败,该学生ID 号已存在","警告",JOptionPane.WARNING_MESSAGE);rs.close();stmt.close();} else{ //不存在String sqlString="insert into bookvalues('"+aBook.getBID()+"','"+aBook.getBname()+"','"+aBook.getBauthor()+"','"+aBook.getPress()+"','"+aBook.getBinfo()+"','"+aBook.getYear()+"-"+aBook.getMonth()+"-"+aBook.getDay()+"','"+aBook.getBclass()+"')";res =stmt.execute(sqlString);res=true;if(res){JOptionPane.showMessageDialog(null," 图书信息插入成功","成功",RMATION_MESSAGE);rs.close();} else{res=false;JOptionPane.showMessageDialog(null,"图书信息插入失败", "警告",JOptionPane.WARNING_MESSAGE); rs.close();}}}catch (SQLException e) //捕获异常{res=false;System.out.print("Error loading Mysql Driver!");e.printStackTrace();}return res;}3)删除一条图书记录:public static boolean delBook(String bid){Connection connect=getConnection();boolean res=false;try {Statement stmt = connect.createStatement();String sql = "select * from book where Bid='"+bid+"'";ResultSet rs=stmt.executeQuery(sql);if (rs.next()){String sqlString="delete from book where Bid='"+bid+"'";stmt.executeUpdate(sqlString);JOptionPane.showMessageDialog(null,"图书信息删除成功", "成功",RMATION_MESSAGE);res=true;rs.close();stmt.close();}else{JOptionPane.showMessageDialog(null,"图书信息删除失败,该图书ID 号不存在","警告",JOptionPane.WARNING_MESSAGE);res=false;rs.close();stmt.close();}}catch (SQLException e){JOptionPane.showMessageDialog(null,"图书信息删除失败", "成功",RMATION_MESSAGE);res=false;System.out.print("Error loading Mysql Driver!");e.printStackTrace();}return res;}4)修改图书信息:public static boolean modifyBook(Book oldBook){ Connection connect=getConnection();boolean flag=false;try {Statement stmt = connect.createStatement(); //查询集String sqlString="update book set Bname='"+oldBook.getBname()+"',Bauthor='"+oldBook.getBauthor() +"', Press='"+oldBook.getPress()+"',BInfo='"+oldBook.getBinfo()+"',BDate='"+oldBook.getYear()+"-"+oldBook.getMonth()+"-"+oldBook.getDay()+"',Bclass='"+oldBook.getBclass()+"'where BID='"+oldBook.getBID()+"'"; stmt.executeUpdate(sqlString);JOptionPane.showMessageDialog(null,"图书信息修改成功", "成功",RMATION_MESSAGE);flag=true;}catch (SQLException e) //捕获错误{ JOptionPane.showMessageDialog(null,"图书信息修改失败", "警告",JOptionPane.WARNING_MESSAGE);flag=false;System.out.print("Error loading Mysql Driver!");e.printStackTrace();}return flag;}5)修改一条图书记录并将结果用表格显示出来:public{ javax.swing.ListSelectionModel;javax.swing.RowSorter; javax.swing.table.DefaultTableModel;javax.swing.table.TableRowSorter;class BookInfoQuery extends JFrameBorderLayout borderLayout1 = new BorderLayout();//布局方式JSplitPane jSplitPane1 = new JSplitPane();//分割面板JScrollPane jScrollPane1 = new JScrollPane();//滚动面板,用于放置表格JPanel jPanel1 = new JPanel();//面板JTable jTable1 = new JTable();//表格DefaultTableModel tablemodel = null;//默认表格模型JPanel jPanel3 = new JPanel();//面板GridLayout gridLayout1 = new GridLayout();// 网格布局方式JButton jBexit = new JButton();//退出按钮ListSelectionModel selectionMode=null;public BookInfoQuery(String bID,String bname,String bauthor, String press, String bInfo,String year,String month,String day,String bclass) { getContentPane().setLayout(borderLayout1);//设置布局方式String[] name = {"图书编号","图书名称","作者","出版社","图书简介","出版时间", "类别"};String sqlStr = "select * from book where Year(BDate)>1900";if(bID!=null)//查询时如果编号不为空{sqlStr+=" and BID='"+bID+"'";}if(bname!=null)//查询时如果图书名不为空{sqlStr+=" and Bname like '%"+bname+"%'";//模糊查询}if(bauthor!=null)//查询时如果作者不为空{sqlStr+=" and Bauthor like'%"+bauthor+"%'";//模糊查询}if(press!=null)//查询时如果出版社不为空{sqlStr+=" and Press like '%"+press+"%'";//模糊查询}if(bInfo!=null)//查询时如果图书信息不为空{sqlStr+=" and Binfo like '%"+bInfo+"%'";//模糊查询}if(year!=null)//出版年份不为空{sqlStr+=" and Year(BDate)"+year+" ";//按条件查询}if(month!=null)//出版月份不为空{sqlStr+=" and Month(BDate)"+month+" ";//按条件查询if(day!=null)//出版日不为空{sqlStr+=" and Day(BDate)"+day+" ";//按条件查询}if(bclass!=null)// 图书类别不为空{sqlStr+=" and Bclass like '%"+bclass+"%'";//模糊查询}sqlStr+=" order by BDate desc";//按出版日期降序排序ToTable bdt = new ToTable();tablemodel = bdt.getTableModel(name,sqlStr);jTable1.setModel(tablemodel);jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMN S);//让其它的列也跟随变动jTable1.setEnabled(true);//设置表格可用jTable1.setCellSelectionEnabled(true);jTable1.setBackground(Color.pink);//设置表格背景颜色selectionMode=jTable1.getSelectionModel();selectionMode.setSelectionMode(ListSelectionModel.SINGLE_SELEC TION);jTable1.setRowHeight(24);//设置表格高度RowSorter<DefaultTableModel> sorterTableRowSorter<DefaultTableModel>(tablemodel)= newjTable1.setRowSorter(sorter);//表格排序过滤jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);jBexit.setText("退出");jBexit.addActionListener(new ActionListener()public void actionPerformed(ActionEvent arg0){ int result = JOptionPane.showOptionDialog(null,"是否退出图书信息查询?","系统提示",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE, null,new String[] {"是","否"},"否");if (result == JOptionPane.YES_OPTION){dispose();//隐藏}}}jPanel1.add(jBexit);jScrollPane1.getViewport().add(jTable1);//将表格添加至滚动面板中jSplitPane1.add(jPanel1, JSplitPane.BOTTOM);jSplitPane1.resetToPreferredSizes();jSplitPane1.add(jScrollPane1, JSplitPane.TOP);this.getContentPane().add(jSplitPane1, java.awt.BorderLayout.CENTER);this.getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH);this.add(jSplitPane1);setSize(800,640);setVisible(true);setTitle("按复合条件进行查询");setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}}7、结束语通过对图书信息管理系统的设计,我们对数据库的理论知识有了更多的认识,对需求分析的重要性、对一个系统的各部门的工作流程细节有了更深入的了解,对概念设计的步骤掌握的更加清晰,对分析过程中的原则要求有了更透彻的认识,使得我们对数据库的整体设计有了更好的把握。

相关文档
最新文档