《数据库_图书馆管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《数据库_图书馆管理系统实验报告.docx(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库课程设计报告专 业: 计算机科学与技术 班 级: 03 组 长: 张云 组 员: 王冉 赵承东 指导教师: 袁道华 成 绩: 2013年12月16日一、 课程设计概述1. 课程设计背景课程需要开发一个图书管理系统,要求在读者登记处可以将读者的信息添加,信息系统中保存,当读者信息发生变化,对计算机内容进行修改,当读者办理退卡手续要删除此读者信息,图书管理负责图书和出版社的管理,读书借还处进行借书管理,还书管理,库存查询,图书排行榜,生成超期未还书的读者,进行通知.给不同用户设置不同权限,供用户访问数据库。2. 编写目的熟练掌握mysql中的创建数据库、创建表、显示、查询、select语句、
2、视图、存储过程、创建检索、对表的添加、删除、修改和用户权限的设置等基本运用,并通过编写这个图书管理系统来实际演练。3. 软件定义Mysql是目前最流行的开源的中小型关系数据管理系统,目前被广泛的应用于internet上得中小型网站中,它由mysql AB公司开发、发布并支持。本实验用的是mysql 5.1版本4. 开发环境本实验用的是mysql 5.1版本,windows2010二、 需求分析1. 问题的提出1:怎么通过mysql和信息之间的关系来创建图书管理系统的数据库及表?2:怎样来实现对插入读者信息并保存、修改及删除?3:怎么来实现对图书的管理?4:怎样实现对借书后在读书借还处添加读者借
3、书信息和还书后删除读者借还处中的借书信息且更新图书管理处的图书数量?5:怎么实现对超期读者进行罚款操作和生成这些读者的名单,以方便通知?6:怎样实现图书的借书排行榜和查看库存书量?7:怎么样来根据不同用户对数据库的等级的不同来设置这些用户的权限?2. 需要完成的功能及各部分功能概述1:读者登记建卡处的功能是对读者基本信息进行登记,读者信息发生变化对读者基本信息进行修改,读者要求退还借书卡时对读者信息进行删除等操作。2:图书管理处的功能是对图书和出版社、作者、书价,数量,剩余书量进行管理更新。3:图书借还处的功能是对借出书的登记。4:基于上面3大模块,进行细分一:1、通过创建存储过程对读者通过i
4、nsert进行登记2、通过alter或update来修改和更新读者信息3、通过delete来对读者信息删除二:1、对图书的添加、更新和修改也用到存储过程2、在对图书剩余量的更新是通过图书借还处和图书管理处之间的书号来发生联系,对存储过程对这个字段进行调用达到更新目的三:1、借书管理都是通过建立存储过程来实现登记处的登记同时也在借书处登记借读信息,同时更新图书的剩余量,还书管理处是根据还书的读者号和书号来选定要清除的借读信息,同时也更新图书剩余量信息,还要根据存储过程传来的read_id和book_id及js_quantity(借书数量)的参数计算出是否超期,超期的天数显示出来。2、产生超期未还
5、书的读者的名单是通过视图来实现显示3、对图书排行我也是通过存储过程实现4: 对图书进行借出量排行,增加图书的热度和知名度和图书的剩余量查询。5:新建读者用户和管理员用户,对他们分别设置不同的权限,在mysql的安装文件下的bin目录进行登录项目流程图功能模块图E-R图图中各实体属性如下:读者档案:学号,读者姓名,性别,借书证号,单位借书证:借书证号,姓名,性别,办证日期管理员:操作员编号,管理员姓名,登陆密码库存信息:书号,图书编号借出信息:图书编号,借书证号,借书日期,归还日期图书档案:书号,书名,作者,出版单位,出版日期,单价,类别,藏书册书图书编号入库日期三、 部分关键代码图书借阅: &
6、nbsp; 当前位置:图书借还 > 图书借阅>>> ?phpinclude(conn/conn.php); error_reporting(E_ALL&E_NOTICE); if($_REQUESTbarcode!=null) $barcode=$_REQUESTbarcode;$sql=mysql_query(select r.*,t.name as typename,t.number from tb_reader r left join tb_readerType t on r.typeid=t.id where r.barcode=$barcode )
7、;$info=mysql_fetch_array($sql); if($info=false) echo alert(读者不存在!);window.opener.location.reload(); else $sql=mysql_query(select r.*,t.name as typename,t.number from tb_reader r left join tb_readerType t on r.typeid=t.id where r.barcode= ); $info=mysql_fetch_array($sql); / $info=$_GET(info);?
8、 读者条形码: input name=barcode type=text id=barcode size=24 value= 姓 名: input style=disabled:ture;border:none name=readername type=text id=readername value= input style=disabled:ture;border:none name=readerid type=hidden id=readerid value= 性 别: input
9、style=disabled:ture;border:none name=sex type=text id=sex value= 读者类型: input style=disabled:ture;border:none name=readerType type=text id=readerType value= 证件类型: input style=disabled:ture;border:none name=paperType type=text id=paperType value= 证件号码: input style=disabled:ture;border:none name=paperN
10、o type=text id=paperNo value= 可借数量: input style=disabled:ture;border:none name=number type=text id=number value= size=17 册 添加的依据: 图书条形码 input name=operator type=hidden id=operator value= 图书名称 借阅时间 应还时间 出版社 书架 定价(元) input name=borrow
11、Number type=hidden id=borrowNumber value= exeute_dql2($sql);/ var_dump($r);foreach($r as $key=$value)$backDate=$valuebackTime; if($backDate$todayTime) echo alert(您有超期图书!);window.location.href=bookBorrow.php?barcode=$barcode; break; if($result=false) echo alert(该图书不存在!);window.location.href=bo
12、okBorrow.php?barcode=$barcode; else $query1=mysql_query(select r.*,borr.borrowTime,borr.backTime,book.bookname,book.price,pub.pubname,bc.name as bookcase from tb_borrow as borr join tb_reader as r on borr.readerid=r.id join tb_bookinfo as book on book.id=borr.bookid join tb_publishing as pub on book
13、.ISBN=pub.ISBN join tb_bookcase as bc on book.bookcase=bc.id where borr.bookid=$resultid and borr.readerid=$readerid and ifback=0); /检索该读者所借阅的图书是否与再借图书重复 $result1=mysql_fetch_array($query1); if($result1=true) /如果借阅的图书已被该读者借阅,那么提示不能重复借阅 echo alert(该图书已经借阅!);window.location.href=bookBorrow.php?barcode
14、=$barcode; else /否则,完成图书借阅操作 $bookid=$resultid; $res=mysql_query(insert into tb_borrow(readerid,bookid,borrowTime,backTime,operator,ifback)values($readerid,$bookid,$borrowTime,$backTime,$_SESSIONadmin_name,0); $sql1=select exist from tb_bookinfo where barcode=$inputkey ; $sqltools=new sqltools(); $r
15、es1=$sqltools-exeute_dql2($sql1); foreach($res1 as $key=$value) $exist1=$valueexist; $exist=$exist1-1; / 图书可借数要减去1 $res2=mysql_query(update tb_bookinfo set exist=$exist where barcode=$inputkey ); error_reporting(E_ALL E_NOTICE); if($res=ture &$res2=ture) echo alert(图书借阅操作成功!);window.location.href=bo
16、okBorrow.php?barcode=$barcode; ? 图书归还:?php include(conn/conn.php);$info=false; error_reporting(E_ALL&E_NOTICE); if(isset($_REQUESTbarcode)$barcode=$_REQUESTbarcode;$sql=mysql_query(select borr.id as borrid,borr.borrowTime,borr.backTime,borr.ifback,r.*,t.name as typename,t.number,book.bookname,book.p
17、rice,pub.pubname,bc.name as bookcase from tb_borrow as borr join tb_reader r on borr.readerid=r.id join tb_readerType t on r.typeid=t.id join tb_bookinfo as book on book.id=borr.bookid join tb_publishing as pub on book.ISBN=pub.ISBN join tb_bookcase as bc on book.bookcase=bc.id where r.barcode=$barc
18、ode and borr.ifback=0);$info=mysql_fetch_array($sql);$sql1=mysql_query(select * from tb_reader where barcode=$barcode );$info1=mysql_fetch_array($sql1);if($info1=false) echo alert(读者不存在!);window.opener.location.reload();if($info1!=false & $info=false) echo alert(不存在未归还书籍!);window.opener.location.reload(); ?