




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
..安徽农业大学课程实践〔设计〕报告实践工程名称图书管理系统的设计 工程组成人员院系信年级专业0指导教师傅目录TOC\o"1-3"\h\z1课程设计背景〔包括:现状、研究目的等〕32需求分析〔包括:功能分析、操作流程分析等〕3HYPERLINK2.1需求分析3HYPERLINK3设计与实现〔包括:前台页面、数据库、业务逻辑等设计〕4HYPERLINK3.1数据库构造设计4HYPERLINK3.1.1概念构造设计4HYPERLINK3.1.2逻辑构造设计……………………….7HYPERLINK3.2.1物理构造设计………………………..8HYPERLINK系统功能设计图书管理模块功……………11HYPERLINK3.4系统界面设计与实现…………………………..11HYPERLINK3.4.1系统登录界面………………………11..1课程设计背景图书馆信息化管理从最初的对图书馆业务管理实行信息化管理开展到对图书馆各个业务流程和网络化管理,并建立大规模的以个体文献目录联机查询为主的资源共享系统;而图书馆的正常运营中总是面对大量的读者信息,图书信息及两者相互作用产生的借书信息,所以要对读者资源,读者资源,借书信息进展管理,本系统的开发就是在于提高图书管理的工作效率!2需求分析〔包括:功能分析、操作流程分析等〕2.1需求分析一般通用的图书馆借阅管理系统包括系统管理、读者管理、编目、图书流通、统计、查询等功能。比拟先进的能够在一个界面下实现图书、音像、期刊的管理,设置假期、设置暂离锁〔提高平安性〕、暂停*些读者的借阅权、导入导出读者、交换MARC数据、升级辅助编码库等。此外随着Internet应用的开展,一个完善的系统还应该提供无缝接入Internet的功能,通过IE浏览器让读者使用借阅资料查询、更换密码、预约、资料检索等功能。有些系统还能提供读者自助效劳,可以开放一些客户机让读者自行管理密码、查询自己的借阅史、预约资料、检索资料等。在构造系统时,首先从需求出发构造数据库表,然后再由数据库结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。这里把系统的层次划分为了两个局部:一个是一般用户态:即图书有效劳子系统;另一个是管理员界面:提供图书的管理和维护功能。对于不同子系统之间的功换,采用了登录功能和用户注销功能。
系统划分了子系统后,下一步的工作是继续划分子系统的小模块。先考虑在进入子系统时应该做什么,进入系统之后又应该做什么,提供那些效劳等。例如,对于图书信息效劳子系统,在用户进入时首先得调用相关数据库表,找出用户的图书借阅情况;进入系统后,子系统得提供图书查询、图书借阅和还书功能。另外,针对本系统的特殊情况,同时也考虑系统的可移植性,在系统中增加了数据库路径的维护局部。但由于本人技术有限,下面只做了局部设计3设计与实现〔包括:前台页面、数据库、业务逻辑等设计〕3.1数据库构造设计3.1.1概念构造设计〔E-R图〕概念构造设计是将分析得到的用户需求抽象为概念模型的过程,即在需求分析的根底上,设计出能够满足用户需求的各种实体以及它们之间的相互关系的模型。这样才能更好地、更准确地用*一DBMS实现这些需求,它是整个数据库设计的关键。概念构造的主要特点是能真实、充分地反映现实世界,易于理解,易于更改,易于向关系、网状、层次等各种数据模型转换。描述概念模型的有力工具是E-R模型。Er图:图书类型图书类型管理借阅信息管理借阅信息属于管理属于管理管理员管理员图书管理图书管理管理管理属于管理属于管理图书馆信息书架图书馆信息书架局部实体ER图:借阅次数借阅次数图书编号图书编号图书图书价格书架号书类书名价格书架号书类书名作者作者管理员管理员管理员号密码管理员号密码管理员名管理员名3.1.2逻辑构造设计逻辑构造设计的任务就是把概念构造设计阶段设计好的根本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑构造。设计逻辑构造时一般要分三步进展,首先是将概念构造转换为一般的关系、网状、层次模型,其次是将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换,最后是对数据模型进展优化。基于B/S的简易图书借阅管理系统采用的是将E-R图向关系数据模型转换。以下是由概念模型向逻辑模型转化的关系模式:管理员〔管理员编号,管理员名称,管理员密码〕图书〔图书编码,图书名称,图书类别,书架,作者,价格,借阅次数〕3.2.1物理构造设计数据库的物理构造设计是对于给定的逻辑数据模型,选取一个最适宜应用环境的物理构造。数据库的物理构造指的是数据库在物理设备上的存储构造与存取方法,它依赖于给定的计算机系统表2.2管理员信息表(new_userlist)字段名注释类型长度允许空默认值userId管理员编号int4自动增长〔1,1〕userName管理员名称varchar50NulluserPwd管理员密码varchar50Null表2.3图书信息表(new_booklist)字段名注释类型长度允许空默认值bookid图书编码varchar50bookName图书名称varchar50nullbookType图书类别int4nullbookcase书架int100nullauother作者varchar80nullprice价格money8nullborrowSum借阅次数int4null数据库表:3.3.1系统功能设计图书管理模块功能〔时间技术有限目前只有此功能〕图书类型管理:是对图书进展分类管理,对图书类型的添加、删除、修改等功能。图书信息管理:管理员对图书信息的详细录入,修改图书信息和删除图书信息等功能。3.4系统界面设计与实现3.4.1系统登录界面系统首页,同时也是登录界面,在此界面中,管理可以根据自身情况登录到系统中,管理员登录界面如下列图所示:相关代码:<!—JSPdl-0--><%pagecontentType="te*t/html;charset=gb2312"language="java"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""./TR/html4/loose.dtd"><html><head><meta-equiv="Content-Type"content="te*t/html;charset=gb2312"><title>用户登陆界面</title></head><body><%if(!session.isNew()){Stringname=(String)session.getAttribute("username");if(name==null)name="";}out.println("SessionID:"+session.getId());//输出会话编号%><palign="center"><tableborder="1"><caption>管理员登陆:</caption><formaction="JSPdl-1.jsp"method="post"><tr><td>管理员</td><td><inputtype="te*t"name="username"/></td></tr><tr><td>管理员密码</td><td><inputtype="password"name="password"/></td></tr><tr><td><inputtype="submit"value="提交"/></tr></form></table></p></body></html><!—JSPdl-1--><%pagecontentType="te*t/html;charset=gb2312"language="java"errorPage=""%><%pageimport="java.sql.*"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""./TR/html4/loose.dtd"><html><head><meta-equiv="Content-Type"content="te*t/html;charset=gb2312"><title>用户身份验证</title></head><body><%Stringusername=request.getParameter("username");Stringpassword=request.getParameter("password");if(username==null)username="";if(password==null)password="";try{//装载驱动程序Class.forName("org.gjt.mm.mysql.Driver").newInstance();//连接字符串Stringurl="jdbc:mysql://localhost/new_library";//建立连接Connectionconn=DriverManager.getConnection(url,"root","123456");//建立StatementStatementstmt=conn.createStatement();//执行查询建立ResultSetResultSetrs=stmt.e*ecuteQuery("selectuserName,userPwfromnew_userlist");//输出查询结果Stringuname=rs.getString("userName");Stringupass=rs.getString("userPw");if(username.equals(uname)&&password.equals(upass)){//验证用户信息response.sendRedirect("JSPdl-2.jsp");//进入欢送页面}else{response.sendRedirect("JSPdl-0.jsp");//进入登陆页面}//关闭连接、释放资源rs.close();stmt.close();conn.close();}catch(ClassNotFoundE*ceptionfe){ out.print(fe);}catch(SQLE*ceptionsqle){out.print(sqle);}catch(E*ceptione){out.print(e);}%></body></html><!--JSPdl-0<%pagecontentType="te*t/html;charset=gb2312"language="java"%><%pageimport="beans.*,java.sql.*"errorPage="error.jsp"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""./TR/html4/loose.dtd"><html><head><meta-equiv="Content-Type"content="te*t/html;charset=gb2312"><title>显示图书列表</title></head><body><jsp:useBeanid="conn"scope="session"class="beans.new_libraryDBean"/><tableborder="1"><caption>图书列表</caption><tr><th>图书编号</th><th>书名</th><th>作者</th><th>书类</th><th>书架号</th><th>价格</th><th>借阅次数</th></tr><%new_booklistBean[]records=conn.getAllRecords();if(records!=null){for(inti=0;i<records.length;i++){out.println("<tr>");out.println("<td>"+records[i].getbookID()+"</td>");out.println("<td>"+records[i].getbookName()+"</td>");out.println("<td>"+records[i].getauother()+"</td>");out.println("<td>"+records[i].getbookType()+"</td>");out.println("<td>"+records[i].getbookCase()+"</td>");out.println("<td>"+records[i].getprice()+"</td>");out.println("<td>"+records[i].getborrowSum()+"</td>");out.println("</tr>");}}%></table><p><aname="url">更多操作:</a><br><ahref="JSPdl-3.jsp"target="_self">添加图书</a><ahref="#url">返回</a><br><ahref="JSPdl-4.jsp"target="_self">删除图书</a></p></body></html>管理员添加图书记录:相关代码:JSPdl-3<%pagecontentType="te*t/html;charset=gb2312"language="java"%><%pageimport="beans.new_booklistBean,beans.ConnBean"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""./TR/html4/loose.dtd"><html><head><meta-equiv="Content-Type"content="te*t/html;charset=gb2312"><title>添加图书记录</title></head><body><p><table><formaction=""method="post"><caption>添加新记录</caption><tr><td>图书编号</td><td><inputtype="te*t"name="bookID"/>*</td></tr><tr><td>书名</td><td><inputtype="te*t"name="bookName"/>*</td></tr><tr><td>作者</td><td><inputtype="te*t"name="auother"/></td></tr><tr><td>书类</td><td><te*tareaname="bookType"cols="20"rows="5"></te*tarea></td></tr><tr><td>书架号</td><td><inputtype="te*t"name="bookCase"/>*</td></tr><tr><td>价格</td><td><inputtype="te*t"name="price"/>*</td></tr><tr><td>借阅次数</td><td><inputtype="te*t"name="borrowSum"/>*</td></tr><tr><td/><td><inputtype="submit"value="增加"/><inputtype="reset"value="重写"/></td></tr></form></table><jsp:useBeanid="book"scope="request"class="beans.new_booklistBean"/><jsp:setPropertyname="book"property="*"/><jsp:useBeanid="conn"scope="session"class="beans.new_libraryDBean"/><%if(book.getbookID()!=0&&conn.insertRecord(book))out.println("<hr>添加记录成功");%></p></body></html>JSPdl-4<%pagecontentType="te*t/html;charset=gb2312"language="java"%><%pageimport="beans.new_booklistBean,beans.ConnBean"%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""./TR/html4/loose.dtd"><html><head><meta-equiv="Content-Type"content="te*t/html;charset=gb2312"><title>删除图书记录</title></head><body><p><jsp:useBeanid="conn"scope="session"class="beans.new_libraryDBean"/><formaction=""method="post"><tableborder="1"><caption>图书列表</caption><tr><th>图书编号</th><th>书名</th><th>作者</th><th>书类</th><th>书架号</th><th>价格</th><th>借阅次数</th><th>选择</th></tr><%new_booklistBean[]records=conn.getAllRecords();if(records!=null){for(inti=0;i<records.length;i++){out.println("<tr>");out.println("<td>"+records[i].getbookID()+"</td>");out.println("<td>"+records[i].getbookName()+"</td>");out.println("<td>"+records[i].getauother()+"</td>");out.println("<td>"+records[i].getbookType()+"</td>");out.println("<td>"+records[i].getbookCase()+"</td>");out.println("<td>"+records[i].getprice()+"</td>");out.println("<td>"+records[i].getborrowSum()+"</td>");%><td><inputtype="checkbo*"name="<%="check"+i%>"value="<%=i%>"/></td><%out.println("</tr>");}}%></table><inputtype="submit"value="提交"/></form><%String[]check=newString[records.length];for(inti=0;i<check.length;i++){check[i]=request.getParameter("check"+i);if(check[i]==null)check[i]="";if(check[i].equals(""+i)){if(conn.deleteRecord(records[i])){out.println("<hr>删除成功");response.setHeader("refresh","1");}}}%></p></body></html>与系统相关的bean代码:New_booklistBeanpackagebeans;publicclassnew_booklistBean{privateStringbookID;//表示书编号;privateStringbookName;//书名;privateStringauother;//作者名;privateintbookType;//书类;privateintbookCase;//书架号;privateintprice;//书价;privateintborrowSum;//书被借的次数;publicStringgetbookID(){ returnbookID;}publicvoidsetbookID(StringbookID){ this.bookID=bookID;}publicStringgetbookName(){ returnbookName;}publicvoidsetbookName(StringbookName){ this.bookName=bookName;}publicStringgetauother(){ returnauother;}publicvoidsetauother(Stringauother){ this.auother=auother;}publicintgetbookType(){ returnbookType;}publicvoidsetbookType(intbookType){ this.bookType=bookType;}publicintgetbookCase(){ returnbookCase;}publicvoidsetbookCase(intbookCase){ this.bookCase=bookCase;}publicintgetprice(){ returnprice;} publicvoidsetprice(intprice){ this.price=price;} publicintgetborrowSum(){ returnborrowSum;} publicvoidsetborrowSum(intborrowSum){ this.borrowSum=borrowSum;}}ConnBeanpackagebeans;importjava.sql.*;//导入jdbc;publicclassConnBean{privateStringdriver="sun.jdbc.odbc.JdbcOdbcDriver";//默认驱动程序为jdbc-odbc驱动;privateStringjdbcurl="jdbc:odbc:";//jdbcurlprivateStringdatabase="new_booklist";//数据库或数据源privateStringuserName="root";//用户名privateStringpassword="123456";//密码privateConnectionconnection=null;publicConnectiongetConnection(){ try{ Class.forName(driver);//注册驱动程序; connection=DriverManager.getConnection("jdbc:odbc:new_booklist","","");//建立连接; }catch(ClassNotFoundE*ceptione1){ e1.printStackTrace(); }catch(SQLE*ceptione2){ e2.printStackTrace(); } returnconnection;}publicvoidcloseConnection(Connectionconnection){//关闭连接; try{ if(connection!=null) connection.close(); connection=null; }catch(SQLE*ceptione3){ e3.printStackTrace(); }}publicvoidclosePstmt(PreparedStatementpstmt){//关闭执行语句; try{ if(pstmt!=null) pstmt.close(); pstmt=null; }catch(SQLE*ceptione){ e.printStackTrace(); }}publicvoidcloseResultSet(ResultSetrs){//关闭结果集语句; try{ if(rs!=null) rs.close(); rs=null; }catch(SQLE*ceptione){ e.printStackTrace(); }}publicStringgetDriver(){//获取驱动程序 returndriver;}publicvoidsetDriver(Stringdriver){ this.driver=driver;}publicStringgetDatabase(){ returndatabase;}publicvoidsetDatabase(Stringdatabase){ this.database=database;}publicStringgetPassword(){ returnpassword;}publicvoidsetPassword(Stringpassword){ this.password=password;}publicStringgetJdbcurl(){ returnjdbcurl;}publicvoidsetJdbcurl(Stringurl){ this.jdbcurl=url;}publicStringgetUserName(){ returnuserName;}publicvoidsetUserName(StringuserName){ this.userName=userName;}}New_libraryBeanpackagebeans;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLE*ception;importjava.util.ArrayList;importjava.util.Collection;publicclassnew_libraryDBeane*tendsConnBean{ privateConnectionconnection=null; publicnew_booklistBean[]getAllRecords(){//获取所有记录 ResultSetrs=null; PreparedStatementpstmt=null; Collectionlist=newArrayList(); try{ connection=getConnection(); pstmt=connection.prepareStatement("select*fromnew_booklist");//数据表new_booklist rs=pstmt.e*ecuteQuery(); while(rs.ne*t()){ new_booklistBeannew_booklist=newnew_booklistBean(); new_booklist.setbookID(rs.getString(1)); new_booklist.setbookName(rs.getString(2)); new_booklist.setauother(rs.getString(3)); new_booklist.setbookType(rs.getInt(4)); new_booklist.setbookCase(rs.getInt(5)); new_booklist.setprice(rs.getInt(6)); new_booklist.setborrowSum(rs.getInt(7)); list.add(new_booklist); } }catch(SQLE*ceptione){ e.printStackTrace(); }finally{ closePstmt(pstmt); closeConnection(connection); } new_booklistBean[]records=(new_booklistBean[])list.toArray(newnew_booklistBean[0]); returnrecords; } publicnew_booklistBeanqueryARecord(StringsqlStr){//查询一条记录 ResultSetrs=null; PreparedStatementpstmt=null; new_booklistBeannew_booklist=newnew_booklistBean(); try{ connection=getConnection(); pstmt=connection.prepareStatement(sqlStr); rs=pstmt.e*ecuteQuery(); if(rs.ne*t()){ new_booklist.setbookID(rs.getString(1)); new_booklist.setbookName(rs.getString(2)); new_booklist.setauother(rs.getString(3)); new_booklist.setbookType(rs.getInt(4)); new_booklist.setbookCase(rs.getInt(5)); new_booklist.setprice(rs.getInt(6)); new_booklist.setborrowSum(rs.getInt(7)); } }catch(SQLE*ceptione){ e.printStackTrace(); }finally{ closeResultSet(rs); closePstmt(pstmt); closeConnection(connection); } returnnew_booklist; } publicbooleaninsertRecord(new_booklistBeanrecord){//插入记录 PreparedStatementpstmt=null; StringinsStr="insertintonew_booklistvalues(",",",",")"; if(record==null)returnfalse; try{ connection=getConnection(); pstmt=connection.prepareStatement(insStr); pstmt.setString(1,record.getbookID()); pstmt.setString(2,record.getbookName()); pstmt.se
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跟着法布尔去冒险昆虫界的奇妙物语《昆虫记》读书分享会
- 2025至2030年不锈钢外齿螺丝项目投资价值分析报告
- 2025年贴片下接触插座项目可行性研究报告
- 2025年肝安颗粒项目可行性研究报告
- 2025年电动小吊车项目可行性研究报告
- 数字孪生技术发展趋势与市场潜力解析
- 重症护理的小知识点
- 大润发蔬菜培训课件
- 审计流程中的关键环节试题及答案
- 2025年数控卧式镗铣床项目可行性研究报告
- 2025年健康管理师考试信息整合试题及答案
- 矮小症的护理措施
- 2024年襄阳市樊城区城市更新投资发展有限公司招聘笔试真题
- 2025年中国酸奶饮品行业市场深度评估及投资战略规划报告
- 新增值税法的变化要点与实务要领
- 2025年浙江省建筑安全员-A证考试题库及答案
- 雷雨第四幕剧本由中门上不做声地走进来雨衣上雨还在往下滴发鬓有些
- 广东省五年一贯制考试英语真题
- 《检验检测机构监督管理办法》培训结业考核试题附答案
- 2021年黑龙江省齐齐哈尔市中考化学试题及参考答案
- 上海市地方标准《商业物业管理服务规范》批准发布
评论
0/150
提交评论