版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安安 徽徽 农农 业业 大大 学学 课程实践(设计)报课程实践(设计)报 告告 实践项目名称 图书管理系统的设计 项目组成人员 院 系 信 年级专业 0 指 导 教 师 傅 目录 1 1 课程设计背景(课程设计背景(包包括:现状、括:现状、研研究目的等)究目的等) .3 3 2 2 需求分析需求分析(包括:功包括:功能能分析、操作流程分析分析、操作流程分析等等) .3 3 . 8 11 11 1 课程设计背景课程设计背景 图书馆信息化管理从最初的对图书馆业务管理实行信息化管 理发展到对图书馆各个业务流程和网络化管理,并建立大规模 的以个体文献目录联机查询为主的资源共享系统;而图书馆的 正常运营
2、中总是面对大量的读者信息,图书信息及两者相互作 用产生的借书信息,所以要对读者资源,读者资源,借书信息 进行管理,本系统的开发就是在于提高图书管理的工作效率! 2 需求分析(包括:功能分析、操作流程分析等)需求分析(包括:功能分析、操作流程分析等) 2.1需求分析 一般通用的图书馆借阅管理系统包括系统管理、读者管理、编 目、图书流通、统计、查询等功能。比较先进的能够在一个界 面下实现图书、音像、期刊的管理,设置假期、设置暂离锁 (提高安全性)、暂停某些读者的借阅权、导入导出读者、交 换marc数据、升级辅助编码库等。此外随着internet应用的 发展,一个完善的系统还应该提供无缝接入inte
3、rnet的功能, 通过ie浏览器让读者使用借阅资料查询、更换密码、预约、资 料检索等功能。有些系统还能提供读者自助服务,可以开放一 些客户机让读者自行管理密码、查询自己的借阅史、预约资料、 检索资料等。 在构造系统时,首先从需求出发构造数据库表,然后再由数据 库结合需求划分系统功能模块。这样,就把一个大的系统分解 成了几个小系统。这里把系统的层次划分为了两个部分:一个 是一般用户态:即图书有服务子系统;另一个是管理员界面: 提供图书的管理和维护功能。对于不同子系统之间的功换,采 用了登录功能和用户注销功能。 系统划分了子系统后,下一步的工作是继续划分子系统的小 模块。先考虑在进入子系统时应该做
4、什么,进入系统之后又应 该做什么,提供那些服务等。例如,对于图书信息服务子系统, 在用户进入时首先得调用相关数据库表,找出用户的图书借阅 情况;进入系统后,子系统得提供图书查询、图书借阅和还书 功能。另外,针对本系统的特殊情况,同时也考虑系统的可移 植性,在系统中增加了数据库路径的维护部分。 但由于本人技术有限,下面只做了部分设计但由于本人技术有限,下面只做了部分设计 3 设计与实现(包括:前台页面、数据库、业务逻辑等设计)设计与实现(包括:前台页面、数据库、业务逻辑等设计) 3.1数据库结构设计 3.1.1 概念结构设计(e-r图) 概念结构设计是将分析得到的用户需求抽象为概念模型的 过程,
5、即在需求分析的基础上,设计出能够满足用户需求的各 种实体以及它们之间的相互关系的模型。这样才能更好地、更 准确地用某一dbms实现这些需求,它是整个数据库设计的关 键。概念结构的主要特点是能真实、充分地反映现实世界,易 于理解,易于更改,易于向关系、网状、层次等各种数据模型 转换。描述概念模型的有力工具是e-r模型。 er 图:图: 管理 管理 管理 管理 管理 管理员 图书类型 书架 图书 图书馆信 息 借阅信息 属于 属于 部分实体部分实体 er 图:图: 图书 书名 作者 书类 书架号 价格 管理员 管理员号 管理员名 密码 图书编 号 借阅次数 3.1.2 逻辑结构设计 逻辑结构设计的
6、任务就是把概念结构设计阶段设计好的基本e- r图转换为与选用dbms产品所支持的数据模型相符合的逻辑 结构。设计逻辑结构时一般要分三步进行,首先是将概念结构 转换为一般的关系、网状、层次模型,其次是将转换来的关系、 网状、层次模型向特定dbms支持下的数据模型转换,最后是 对数据模型进行优化。 基于b/s的简易图书借阅管理系统采用的是将e-r图向关系数 据模型转换。以下是由概念模型向逻辑模型转化的关系模式: 管理员(管理员编号,管理员名称,管理员密码) 图书(图书编码,图书名称,图书类别,书架,作者,价格, 借阅次数) 3.2.1物理结构设计 数据库的物理结构设计是对于给定的逻辑数据模型,选取
7、一个 最合适应用环境的物理结构。数据库的物理结构指的是数据库 在物理设备上的存储结构与存取方法,它依赖于给定的计算机 系统 表2.2管理员信息表(new_userlist) 字段名注释类型长度允许空默认值 userid 管理员 编号 int4 自动增长 (1,1) username 管理员 名称 varch ar 50null userpwd 管理员 密码 varch ar 50null 表2.3图书信息表(new_booklist) 字段名 注释 类 型 长度 允 许空 默认值 bookid图书编 码 varc har 50 bookna me 图书名 称 varc har 50 null
8、booktyp e 图书类 别 int 4 null bookcase书架int 100 null auother作者varc har 80 null price价格mon ey 8null borrows um 借阅次 数 int 4 null 数据库表: 3.3.1系统功能设计图书管理模块功能(时间技术有限目前只有 此功能) 图书类型管理:是对图书进行分类管理,对图书类型的添 加、删除、修改等功能。 图书信息管理:管理员对图书信息的详细录入,修改图书 信息和删除图书信息等功能。 34系统界面设计与实现 3.4.1系统登录界面 系统首页,同时也是登录界面,在此界面中,管理可以根 据自身情况登
9、录到系统中 ,管理员登录界面如下图所示: 相关代码: 用户登陆界面 管理员登陆: 管理员姓名 管理员密码 用户身份验证 !- -jspdl-0 显示图书列表 图书列表 图书编号 书名 作者 书类 书架号 价格 借阅次数 % new_booklistbean records=conn.getallrecords(); if(records!=null) for(int i=0;irecords.length;i+) out.println(); out.println(+recordsi.getbookid()+); out.println(+recordsi.getbookname()+);
10、out.println(+recordsi.getauother()+); out.println(+recordsi.getbooktype()+); out.println(+recordsi.getbookcase()+); out.println(+recordsi.getprice()+); out.println(+recordsi.getborrowsum()+); out.println(); % 更多操作: 添加图书 返回 删除图书 管理员添加图书记录: 相关代码: jspdl-3 添加图书记录 添加新记录 图书编号 * 书名 * 作者 书类 书架号 * 价格 * 借阅次数
11、* % if(book.getbookid()!=0 % jspdl-4 删除图书记录 图书列表 图书编号 书名 作者 书类 书架号 价格 借阅次数 选择 % new_booklistbean records=conn.getallrecords(); if(records!=null) for(int i=0;irecords.length;i+) out.println(); out.println(+recordsi.getbookid()+); out.println(+recordsi.getbookname()+); out.println(+recordsi.getauother
12、()+); out.println(+recordsi.getbooktype()+); out.println(+recordsi.getbookcase()+); out.println(+recordsi.getprice()+); out.println(+recordsi.getborrowsum()+); % input type=checkbox name= value= / % out.println(); % % string check=new stringrecords.length; for(int i=0;icheck.length;i+) checki=reques
13、t.getparameter(check+i); if(checki=null) checki=; if(checki.equals(+i) if(conn.deleterecord(recordsi) out.println(删除成功); response.setheader(refresh,1); % 与系统相关的bean代码: new_booklistbean package beans; public class new_booklistbean private string bookid;/表示书编号; private string bookname;/书名; private str
14、ing auother;/作者名; private int booktype;/书类; private int bookcase;/书架号; private int price;/书价; private int borrowsum;/书被借的次数; public string getbookid() return bookid; public void setbookid(string bookid) this.bookid = bookid; public string getbookname() return bookname; public void setbookname(string
15、 bookname) this.bookname = bookname; public string getauother() return auother; public void setauother(string auother) this.auother = auother; public int getbooktype() return booktype; public void setbooktype(int booktype) this.booktype = booktype; public int getbookcase() return bookcase; public vo
16、id setbookcase(int bookcase) this.bookcase = bookcase; public int getprice() return price; public void setprice(int price) this.price = price; public int getborrowsum() return borrowsum; public void setborrowsum(int borrowsum) this.borrowsum = borrowsum; connbean package beans; import java.sql.*; /导
17、入jdbc; public class connbean private string driver=sun.jdbc.odbc.jdbcodbcdriver;/默认驱动程序为jdbc-odbc驱动; private string jdbcurl=jdbc:odbc:;/jdbcurl private string database=new_booklist;/数据库或数据源 private string username=root;/用户名 private string password=123456;/密码 private connection connection=null; publi
18、c connection getconnection() try class.forname(driver);/注册驱动程序; connection=drivermanager.getconnection(jdbc:odbc:new_booklist,);/ 建立连接; catch(classnotfoundexception e1) e1.printstacktrace(); catch(sqlexception e2) e2.printstacktrace(); return connection; public void closeconnection(connection connec
19、tion)/关闭连接; try if(connection!=null) connection.close(); connection=null; catch(sqlexception e3) e3.printstacktrace(); public void closepstmt(preparedstatement pstmt)/关闭执行语句; try if(pstmt!=null) pstmt.close(); pstmt=null; catch(sqlexception e) e.printstacktrace(); public void closeresultset(resultse
20、t 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 = driver; public string getdatabase() return database; public void setdatabase(string database) this.datab
21、ase = database; public string getpassword() return password; public void setpassword(string password) this.password = password; public string getjdbcurl() return jdbcurl; public void setjdbcurl(string url) this.jdbcurl = url; public string getusername() return username; public void setusername(strin
22、g username) this.username = username; new_librarybean package beans; import java.sql.connection; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import java.util.arraylist; import java.util.collection; public class new_librarydbean extends connbean private
23、 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
24、(rs.next() new_booklistbean new_booklist=new new_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)
25、; new_booklist.setborrowsum(rs.getint(7); list.add(new_booklist); catch(sqlexception e) e.printstacktrace(); finally closepstmt(pstmt); closeconnection(connection); new_booklistbean records=(new_booklistbean)list.toarray(new new_booklistbean0); return records; public new_booklistbean queryarecord(st
26、ring sqlstr)/查询一条记录 resultset rs=null; preparedstatement pstmt=null; new_booklistbean new_booklist=new new_booklistbean(); try connection=getconnection(); pstmt=connection.preparestatement(sqlstr); rs=pstmt.executequery(); if(rs.next() new_booklist.setbookid(rs.getstring(1); new_booklist.setbookname
27、(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(sqlexception e) e.printstacktrace(); finally closeresultset(rs); closepstmt(pstmt
28、); closeconnection(connection); return new_booklist; public boolean insertrecord(new_booklistbean record)/插入记录 preparedstatement pstmt=null; string insstr=insert into new_booklist values (?,?,?,?,?); if(record=null) return false; try connection=getconnection(); pstmt=connection.preparestatement(inss
29、tr); pstmt.setstring(1, record.getbookid(); pstmt.setstring(2, record.getbookname(); pstmt.setstring(3, record.getauother(); pstmt.setint(4, record.getbooktype(); pstmt.setint(5, record.getbookcase(); pstmt.setint(6, record.getprice(); pstmt.setint(7, record.getborrowsum(); pstmt.execute(); catch(sqlexception e) e.printstacktrace(); finally closepstmt(pstmt); closeconnection(connection); return true; public boolean deleterecord(new_booklistbean record)/删除记录; preparedstatement pstmt=null; string delstr=delete from n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年天津市医院周边临时停车场供需平衡可行性研究报告
- 2025年上海市城市地下综合管廊智能化运维可行性研究报告
- 2021年1月国家开放大学中文、汉语言专科《外国文学》期末纸质考试真题试题及答案
- 酒店餐饮部门员工服务技能专项训练试卷及答案
- 某服装厂质量管理方案
- 行业峰会合作洽谈规划
- 某铝塑厂铝塑复合生产细则
- 建筑工程-消防水泵作业安全技术交底表格
- 检验检测机构资质认定文件及标准汇编及答案
- 护士资格《儿科护理》试题及答案
- 肝病科工作制度
- 美容行业皮肤护理师专业水平绩效评定表
- 新能源汽车电气系统检修 课件 项目一新能源汽车电气系统的认知
- GB/T 36073-2025数据管理能力成熟度评估模型
- 2026甘肃公路交通建设集团校招面试题及答案
- 中医医疗技术相关性感染预防与控制指南考试试题及答案
- 商务局遴选笔试真题及答案
- CNAS实验室内审员培训资料
- 护理部台账管理
- 水杨酸焕肤课件
- AI搜索时代:从GEO到AIBE的品牌新蓝图
评论
0/150
提交评论