图书馆数据库课程设计.doc_第1页
图书馆数据库课程设计.doc_第2页
图书馆数据库课程设计.doc_第3页
图书馆数据库课程设计.doc_第4页
图书馆数据库课程设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统课程设计 课程设计题目: 图书管理系统 指导教师: 莫尚丰 学生院系: 数学与计算科学学院 学生班级: 信计三班 学生姓名: xxxx 学生学号: 12070203 15 目录1. 绪论.22. 需求分析.2 2.1图书资料基本管理.2 2.2读者管理.2 2.3图书资料借阅罚款管理.2 2.4查询管理.22.5员工管理.23.总体设计.3 3.2绘制系统的软件结构图.3 3.2操作流程的描述.33.3安全设计.54. 数据库设计.54.1概念结构设计.54.2逻辑结构设计.6 4.3物理结构设计.65.详细设计.106.编码.107.结论.118.学习体会.129.致谢.1210.参考文献.12一、绪论 本次课程设计主要是图书馆管理系统的设计与实现。主要实现的功能为学生查询图书信息及借书证挂失;员工对学生信息进行更新;管理员对员工信息进行更改;员工对图书信息进行更新;员工记录借阅信息及超期与损坏的罚款金额等,极大地提高了员工的工作效率,方便员工管理各类数据。通过结合数据库原理及数据库开发技术知识,运用sql sever 2008,及c+ builder,采用不同模块设计,完成此次课程设计。二、需求分析2.1图书资料基本管理1.新书编号、登记、入库:将新购入的书籍按照国家统一的分类编号;2.登记书号、书名、作者等基本信息,将新购图书入库。3.检索查询:按照各种组合条件对书库图书进行查询,也可以进行模糊查询。4.图书分析:根据要求对图书总数、各类图书数以及图书单价合计统计,打印日常报表。2.2读者管理1.新学期向导能自动引导您建立新班级,处理毕业班读者。 2.借书证制作可用扫描仪、图像文件等作为读者照片源,制作黑白或彩色的借书证。3.借书证挂失,解挂:通过借阅者自己操作将借书证进行挂失或对已挂失的借书证进行解挂。 2.3图书资料借阅罚款管理1.借还书管理:主要负责日常的借书登记、还书登记,和逾期未还图书。2.检索查询:按照各种组合条件对图书借阅情况查询,也可以进行模糊查询。3.罚款记录:按照逾期及损坏进行罚款。2.4查询管理1.读者可以通过WEB随时随地进行图书检索,可以随意安排检索条件、检索项目。 2.可查询图书的被借阅史、读者的借阅史。 3.借书统计:统计各类书借阅情况,借阅次数;统计个人借书情况,打印日常报表。4.定期整理图书借阅信息:将还书情况总结整理后彻底删除。2.5员工管理1. 管理员可以查询员工信息,并对员工信息进行更新。2. 管理员可以更改员工登陆图书馆管理系统的密码。程序完成借书、还书、报表生成、职工管理、借阅者管理、图书管理部分的功能实现。系统主要实现借书还书罚款功能。本软件主界面借书、还书、罚款界面。另外还有图书管理(增加、删除等)、员工工信息维护(添加、删除员工、修改员工密码)、借阅者管理(增添、删除借阅者),罚款管理(超期罚款,损坏罚款),实时生成报表。三、总体设计3.1绘制系统的软件结构图 图3-1-1 软件功能模块图3.2操作流程的描述。查询借阅信息查询员工信息查询读者信息查询图书信息 图3-2-1 主界面点击选择操作类 图3-2-2 借书证查询点击,改变借书证状态,输出挂失成功点击,改变借书证状态,输出挂失成功点击选择操作类点击后检索借书证信息,若借书证号为空则会显示借书证号不能为空,重新输入 图3-2-3 借书证挂失过程点击选择操作类型 图3-2-4 生成的报表信息 3.3安全设计。学生与员工信息的更新模块只能管理员有权限查看(通过查询当前登录来判断是否为管理员);借阅者只允许访问图书查询界面及借书证挂失界面。 四、数据库设计4.1概念结构设计由需求分析可知:数据库中要存储,员工,借阅者,图书,图书类别,借阅明细,罚款明细等实体,以及实体之间关系。员工与借阅者都有性别属性,而且性别的域也相同,可以把性别抽象为一个实体。而图书种类主要是以图书名进行分类,其属性中主要的是同名图书的库存量;图书主要是同名图书不同编号的书,其属性中主要的是图书的状态。员工中有一个管理员的职位,负责管理图书室中其他员工。 图 4-1-1 ER图4.2逻辑结构设计 1对1联系可以转换为一个独立的关系模式,把1方实体的关键词放入另一方中实体中;1对多联系也可以转换为一个独立的关系模式,把1方实体的键放入多方实体中;3各实体多元联系,必须新建关系,与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系的一部分。员工(员工编号,姓名,性别id,密码,职位,电话,住址,图书室号)借阅者(学号,姓名,性别id,类别,入学日期,学院)性别 (性别id,性别)图书类别(图书类别id,类别名,数量,图书室号)图书(编号,名称,单价,图书类别id,作者号,状态)作者(作者号,作者名,作者地址)借阅明细(借书号,图书编号,学号,借书日期,规定日期,还书日期,员工号)罚款明细(罚款号,借书号,图书编号,学号,超期罚款,损坏否,损坏罚款)借书(员工号,学号,图书号)图书室(图书室号,位置)借书证(借书证号,姓名,学号,类别,学院,办理日期,状态)4.3物理结构设计分析:在ER图转换成表的过程中,由1对1、1对多、多对多的关系,将实体转换成表以及表之间的关系。在逻辑结构设计中新建的关系也需转换为表。此数据库中有数据冗余,如借阅者跟借书证。物理结构的设计: 数据库名:library-management 表4-3-1 表名reader序号列名数据类型长度小数位标识主键允许空默认值说明1snochar100是是否2snamechar100否3classchar100是4enterdatedate0否5sdeptchar100否6sexidchar100是 表4-3-2 表名sex序号列名数据类型长度小数位标识主键允许空默认值说明1sexidchar100是是否2sex1char100否 表4-3-3 表名staff 序号列名数据类型长度小数位标识主键允许空默认值说明1staffidchar100是是否2stnamechar100否3passwordint0否4phonechar130是5positionchar200是6addresschar200是7sexidchar100是 表4-3-4 表名bookclass 序号列名数据类型长度小数位标识主键允许空默认值说明1classidchar100是是否2classnamechar500是3qtyint0是4library_roomidint0否 表4-3-5 表名author序号列名数据类型长度小数位标识主键允许空默认值说明1authoridchar100是否2authornamechar100是3authoraddresschar100是 序号列名数据类型长度小数位标识主键允许空默认值说明1bookidchar100是 是否2booknamechar500否3priceint0否4stateint0否5classidchar100否6authoridchar100否 表4-3-6 表名 book 表4-3-7 表名 library_room序号列名数据类型长度小数位标识主键允许空默认值说明1library_roomidint0是是否2sitechar200否 表4-3-8 表名 borrow_card序号列名数据类型长度小数位标识主键允许空默认值说明1borrow_cardidchar100是是否2snamechar100否3snochar100否4classchar100是5collegechar100是6deal_datedate0否7stateint0否 表4-3-9 表名 punish_bill序号列名数据类型长度小数位标识主键允许空默认值说明1punishidchar100是是否2borrowidchar100否3bookidchar100否4snochar100否5outdate_punishchar101否6y_ndamagechar101否7damage_punishchar101否 表4-3-10 表名borrow_bill 序号列名数据类型长度小数位标识主键允许空默认值说明1borrowidchar100是是否2bookidchar100否3snochar100否4borrow_datedate0否5fix_datedate0否6return_datedate0否7staffidchar100否 表4-3-11 表名 borrow 序号列名数据类型长度小数位标识主键允许空默认值说明1Bookidchar100是是否2snochar100是是否3staffidchar100是是否五、详细设计 图 5-1 程序流程图六、编码借书证挂失的存储过程create procedure update_borrow_cardborrow_cardid char(10)asbegin transaction if (borrow_cardid not in(select borrow_cardid from borrow_card where borrow_cardid=borrow_cardid) begin print(不存在此借书证!) rollback transaction end else begin declare mark int select mark=state from borrow_card where borrow_cardid=borrow_cardid if(mark=0) begin print(此借书证已处于挂失状态,不能再挂失!) rollback transaction end else begin update borrow_card set state=0 where borrow_cardid=borrow_cardid; /改变借书证状态 print (挂失成功!) commit transaction end end*/借书证解挂的存储过程与借书证挂失的存储过程大同小异。程序界面,参照操作流程介绍。 在借阅证挂失界面中使用了PageControl、DBGride、ADOConnection、AQOQuery、ADOStoredProc、Button等控件核心代码1.借书证信息的更新AnsiStringas=insert into borrow_card values(+Edit13-Text+,+Edit2-Text+,+Edit1-Text+, +Edit4-Text+,+Edit14-Text+,+Edit15-Text+);2.判断借书证号是否为空,并给出相应的提示if(ComboBox4-Text=) Label25-Caption=借书证号不能为空 ; 3.查询借书证信息 AnsiString ssql; ssql=select * from borrow_card where borrow_cardid=+ComboBox4-Text+;运用4.ADOStoredProc1调用以上借书证挂失的存储过程ADOStoredProc1-Close();ADOStoredProc1-Parameters-Clear();ADOStoredProc1-ProcedureName=update_borrow_card;ADOStoredProc1-Parameters-CreateParameter(borrow_cardid,ftString,pdInput,10,NULL);ADOStoredProc1-Parameters-ParamByName(borrow_cardid)-Value=ComboBox4-Text;ADOStoredProc1-Prepared;ADOStoredProc1-ExecProc();ShowMessage(挂失成功!);同样运用ADOStoredProc1调用借书证解挂的存储过程七、结论本系统实现了基本的借书还书过程,对员工、借阅者、图书信息、借书证信息维护功能实现。实现了报表功能,设置了权限。但本系统还有一些缺点,如当插入罚款记录时,无法判断借阅者是否已交罚款。对于预定功能,仍然有缺陷,如当书处于借出状态时,借阅者可以对其进行预定。数据库也有部分缺陷,如借书证与借阅者,有很多属性是一样的,其实可以借助视图来解决这类问题。八、心得体会:这次课程设计通过小组成员前期需求分析讨论,然后模块化设计,设计ER图,设计数据库,分块实现,组装,最终完成了图书馆管理系统这次的图书馆管理系统设计使我们了解了系统设计的过程,通过此次课程设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论