1、安 徽 农 业 大 学课程实践(设计)报告实践项目名称 图书管理系统设计项目构成人员 院 系 信 年级专业 0指 导 教 师 傅 目录1课程设计背景(涉及:现状、研究目等)32需求分析(涉及:功能分析、操作流程分析等)32.1需求分析33设计与实现(涉及:前台页面、数据库、业务逻辑等设计)43.1数据库构造设计43.1.1 概念构造设计43.1.2 逻辑构造设计 . 73.2.1物理构造设计. 83.3.1系统功能设计图书管理模块功1134系统界面设计与实现.113.4.1系统登录界面111课程设计背景图书馆信息化管理从最初对图书馆业务管理实行信息化管理发展到对图书馆各个业务流程和网络化管理,
2、并建立大规模以个体文献目录联机查询为主资源共享系统;而图书馆正常运营中总是面对大量读者信息,图书信息及两者互相作用产生借书信息,因此要对读者资源,读者资源,借书信息进行管理,本系统开发就是在于提高图书管理工作效率!2需求分析(涉及:功能分析、操作流程分析等)2.1需求分析普通通用图书馆借阅管理系统涉及系统管理、读者管理、编目、图书流通、记录、查询等功能。比较先进可以在一种界面下实现图书、音像、期刊管理,设立假期、设立暂离锁(提高安全性)、暂停某些读者借阅权、导入导出读者、互换MARC数据、升级辅助编码库等。此外随着Internet应用发展,一种完善系统还应当提供无缝接入Internet功能,通
3、过IE浏览器让读者使用借阅资料查询、更换密码、预约、资料检索等功能。有些系统还能提供读者自助服务,可以开放某些客户机让读者自行管理密码、查询自己借阅史、预约资料、检索资料等。在构造系统时,一方面从需求出发构造数据库表,然后再由数据库结合需求划分系统功能模块。这样,就把一种大系统分解成了几种小系统。这里把系统层次划分为了两个某些:一种是普通顾客态:即图书有服务子系统;另一种是管理员界面:提供图书管理和维护功能。对于不同子系统之间功换,采用了登录功能和顾客注销功能。 系统划分了子系统后,下一步工作是继续划分子系统小模块。先考虑在进入子系统时应当做什么,进入系统之后又应当做什么,提供那些服务等。例如
4、,对于图书信息服务子系统,在顾客进入时一方面得调用有关数据库表,找出顾客图书借阅状况;进入系统后,子系统得提供图书查询、图书借阅和还书功能。此外,针对本系统特殊状况,同步也考虑系统可移植性,在系统中增长了数据库途径维护某些。但由于本人技术有限,下面只做了某些设计3设计与实现(涉及:前台页面、数据库、业务逻辑等设计) 3.1数据库构造设计3.1.1 概念构造设计(E-R图)概念构造设计是将分析得到顾客需求抽象为概念模型过程,即在需求分析基本上,设计出可以满足顾客需求各种实体以及它们之间互有关系模型。这样才干更好地、更精确地用某一DBMS实现这些需求,它是整个数据库设计核心。概念构造重要特点是能真
5、实、充分地反映现实世界,易于理解,易于更改,易于向关系、网状、层次等各种数据模型转换。描述概念模型有力工具是E-R模型。 Er图: 图书类型 管理借阅信息属于管理 管理员 图书管理 管理 属于管理图书馆信息书架某些实体ER图: 借阅次数图书编号 图书 价格书架号书类书名作者管理员管理员号密码管理员名 3.1.2 逻辑构造设计逻辑构造设计任务就是把概念构造设计阶段设计好基本E-R图转换为与选用DBMS产品所支持数据模型相符合逻辑构造。设计逻辑构造时普通要分三步进行,一方面是将概念构造转换为普通关系、网状、层次模型,另一方面是将转换来关系、网状、层次模型向特定DBMS支持下数据模型转换,最后是对数
6、据模型进行优化。基于B/S简易图书借阅管理系统采用是将E-R图向关系数据模型转换。如下是由概念模型向逻辑模型转化关系模式:管理员(管理员编号,管理员名称,管理员密码)图书(图书编码,图书名称,图书类别,书架,作者,价格,借阅次数)3.2.1物理构造设计 数据库物理构造设计是对于给定逻辑数据模型,选用一种最适当应用环境物理构造。数据库物理构造指是数据库在物理设备上存储构造与存取办法,它依赖于给定计算机系统表2.2管理员信息表(new_userlist)字段名注释类型长度容许空默认值userId管理员编号int4自动增长(1,1)userName管理员名称varchar50NulluserPwd管
7、理员密码varchar50Null表2.3图书信息表(new_booklist)字段名 注释 类型长度 容许空 默认值bookid图书编码varchar 50 bookName图书名称varchar 50 null bookType图书类别 int 4 null bookcase书架int 100 nullauother作者varchar 80 nullprice价格money 8nullborrowSum借阅次数int 4 null数据库表:3.3.1系统功能设计图书管理模块功能(时间技术有限当前只有此功能)图书类型管理:是对图书进行分类管理,对图书类型添加、删除、修改等功能。图书信息管理:
8、管理员对图书信息详细录入,修改图书信息和删除图书信息等功能。34系统界面设计与实现3.4.1系统登录界面系统首页,同步也是登录界面,在此界面中,管理可以依照自身状况登录到系统中 ,管理员登录界面如下图所示:有关代码:顾客登陆界面 管理员登陆: 管理员姓名 管理员密码 顾客身份验证 !- -JSPdl-0显示图书列表 图书列表 图书编号 书名 作者 书类 书架号 价格 借阅次数 % new_booklistBean records=conn.getAllRecords(); if(records!=null) for(int i=0;irecords.length;i+) out.println
9、(); out.println(+recordsi.getbookID()+); out.println(+recordsi.getbookName()+); out.println(+recordsi.getauother()+); out.println(+recordsi.getbookType()+); out.println(+recordsi.getbookCase()+); out.println(+recordsi.getprice()+); out.println(+recordsi.getborrowSum()+); out.println(); % 更多操作:添加图书返回
10、删除图书管理员添加图书记录:有关代码:JSPdl-3添加图书记录 添加新记录 图书编号 * 书名 * 作者 书类 书架号 * 价格 * 借阅次数 * % if(book.getbookID()!=0&conn.insertRecord(book) out.println(添加记录成功); % JSPdl-4删除图书记录 图书列表 图书编号 书名 作者 书类 书架号 价格 借阅次数 选取 % new_booklistBean records=conn.getAllRecords(); if(records!=null) for(int i=0;irecords.length;i+) out.pr
11、intln(); out.println(+recordsi.getbookID()+); out.println(+recordsi.getbookName()+); out.println(+recordsi.getauother()+); out.println(+recordsi.getbookType()+); out.println(+recordsi.getbookCase()+); out.println(+recordsi.getprice()+); out.println(+recordsi.getborrowSum()+); % input type=checkbox n
12、ame= value= / % out.println(); % % String check=new Stringrecords.length; for(int i=0;icheck.length;i+) checki=request.getParameter(check+i); if(checki=null) checki=; if(checki.equals(+i) if(conn.deleteRecord(recordsi) out.println(删除成功); response.setHeader(refresh,1); % 与系统有关bean代码:New_booklistBeanp
13、ackage beans;public class new_booklistBean private String bookID;/表达书编号; private String bookName;/书名; private String auother;/作者名; private int bookType;/书类; private int bookCase;/书架号; private int price;/书价; private int borrowSum;/书被借次数; public String getbookID() return bookID; public void setbookID(
14、String bookID) this.bookID = bookID; public String getbookName() return bookName; public void setbookName(String bookName) this.bookName = bookName; public String getauother() return auother; public void setauother(String auother) this.auother = auother; public int getbookType() return bookType; pub
15、lic void setbookType(int bookType) this.bookType = bookType; public int getbookCase() return bookCase; public void setbookCase(int bookCase) this.bookCase = bookCase; public int getprice() return price; public void setprice(int price) this.price = price; public int getborrowSum() return borrowSum; p
16、ublic void setborrowSum(int borrowSum) this.borrowSum = borrowSum; ConnBeanpackage beans;import java.sql.*; /导入jdbc;public class ConnBean private String driver=sun.jdbc.odbc.JdbcOdbcDriver;/默认驱动程序为jdbc-odbc驱动; private String jdbcurl=jdbc:odbc:;/jdbcurl private String database=new_booklist;/数据库或数据源 p
17、rivate String userName=root;/顾客名 private String password=123456;/密码 private Connection connection=null; public Connection getConnection() try Class.forName(driver);/注册驱动程序; connection=DriverManager.getConnection(jdbc:odbc:new_booklist,);/建立连接; catch(ClassNotFoundException e1) e1.printStackTrace(); c
18、atch(SQLException e2) e2.printStackTrace(); return connection; public void closeConnection(Connection connection)/关闭连接; try if(connection!=null) connection.close(); connection=null; catch(SQLException e3) e3.printStackTrace(); public void closePstmt(PreparedStatement pstmt)/关闭执行语句; try if(pstmt!=nul
19、l) pstmt.close(); pstmt=null; catch(SQLException e) e.printStackTrace(); public void closeResultSet(ResultSet rs)/关闭成果集语句; try if(rs!=null) rs.close(); rs=null; catch(SQLException e) e.printStackTrace(); public String getDriver() /获取驱动程序return driver; public void setDriver(String driver) this.driver
20、 = driver; public String getDatabase() return database; public void setDatabase(String database) this.database = database; public String getPassword() return password; public void setPassword(String password) this.password = password; public String getJdbcurl() return jdbcurl; public void setJdbcurl
21、(String url) this.jdbcurl = url; public String getUserName() return userName; public void setUserName(String userName) this.userName = userName; New_libraryBeanpackage beans;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import jav
22、a.util.ArrayList;import java.util.Collection;public class new_libraryDBean extends ConnBeanprivate Connection connection=null;public new_booklistBean getAllRecords()/获取所有记录 ResultSet rs=null; PreparedStatement pstmt=null; Collection list=new ArrayList(); try connection=getConnection(); pstmt=connection.prepareStatement(select * from new_booklist);/数据表new_booklist rs=pstmt.executeQuery(); while(rs.next() new_booklistBean new_booklist=new new_booklistBean(); new_booklist.setbookID(rs.getString(1); new_booklist.setbookName(rs.getString(2); n