资源描述
面向对象程序设计课程设计说明书题学专班姓学目:图书管理系统院: 计算机与信息工程学院业:级:名:号:计算机科学与技术计算机级班起止时间:2009.6.29-2009.7.10成绩: 课程设计任务书一、设计题目:图书管理系统二、设计内容:设计图书管理借阅系统,将用户登陆、图书查询、图书信息、图书预借、图书借阅结合在一起。用户可以在登陆以后享受以上功能。三、设计要求:1系统登陆界面包括 :用户登陆、账号、密码、注册、图书查询。2系统登录后,首页显示我的信息、我的预借、我的借阅。3使用鼠标单击系统管理,页面显示系统管理用于进行用户管理,管理员用户具有最大权限,可以全方位控制信息资源。4用户单击借阅管理,显示请输入借阅号和归还号。四、工作计划:时间完成内容查找资料,确定题目,选择方案需求分析建模提交文档备注第 1天第 2天课程设计任务书设计准备阶段需求分析阶段第 3天第 4天第 5天第 6天第 7天第 8天第 9天设计建模设计阶段编码测试阶段收尾阶段详细设计与实现整理材料,撰写设计说明书课程设计考核,评定成绩课程设计说明书、设计源代码第 10 天课程设计答辩指导教师:教研室主任:2009年 6月 29日 摘要随着人类社会的发展,人类对知识的需求也不断地增长。在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就成不可少了,本文介绍了在 Myeclipse环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发本系统的详细过程,提出实现图书馆信息管理、资源共享的基本目标,从而推动迈向数字化图书馆的步伐,并阐述系统结构设计和功能设计,从图书的入库登记到查询浏览,从借书放到图书的借阅,形成了一个整体自动化管理模式,从软件工程的角度进行了科学而严谨的阐述。关键词: Java面向对象图书管理借阅 目录课程设计任务书 . I摘要. II目录. III一、设计内容 . 1二、设计过程 . 12.1需求分析 . 12.2概要设计 . 12.3详细设计 . 22.4代码实现 . 32.5程序运行与发布 . 10三、总结 . 11四、参考文献 . 11 一、设计内容设计图书管理借阅系统,将用户登陆、图书查询、图书信息、图书预借、图书借阅结合在一起。用户可以在登陆以后享受以上功能。二、设计过程2.1需求分析随着读书及图书数量的不断增加,其管理工作难度也愈来愈大,为了提高效率,减轻劳动强度,采用计算机管理日常借阅工作,就显得由为重要。在计算机飞速发展的今天,将计算机这一信息利器应用于日常管理,已是势必所然,他可以带来意想不到的效益,同时为企业的飞速发展提供了无限潜力。采用计算机管理信息系统极大的提高了管理人员的工作效率,大大减少了出错率。鉴于此,选择了图书管理系统作为本次课程设计的题目。我2.2概要设计根据图书管理借阅系统的需求绘制系统结构如图图书管理系统2-1所示:用户管理图书查询分类管理添加图书删除图书用户信息用户预借用户借阅图 2-1系统结构图 2.3详细设计管理员提交登录表单以后,需要调用数据库判断管理员的用户名和密码,和用户登录的检验基本相似,管理员只有登录成功后才可以对商品进行增加,删除,修改工作。数据库详细设计:book表如表 2-1所示:表 2-1 book表列名类型字数段4BookNoNameINTEGERVARCHARVARCHARVARCHARVARCHARDATE30AuthorBookManBrief30301024PublishDateIsbnVARCHARVARCHARINTEGERINTEGERINTEGER641284ImageFilePriceAmountRemain44bookcategory表如表 2-2所示:表 2-2 bookcategory表列名类型字数段BcNoINTEGERINTEGERINTEGERVARCHAR4BookNoCategoryNoRemark4464borrow表如表 2-3所示:表 2-3 borrow表列名类型字数段BookNoPreBorrowNoBorrowTimeRemarkINTEGERINTEGERDATETIMEVARCHARINTEGER44644Statuscategory表如表 2-4所示: 表 2-4 category表列名类型字数段CategoryNoNameINTEGERVARCHARINTEGERVARCHAR4304ParentNoRemark642.4代码实现经过前面的工作,最后在集成编辑环境中,编写的程序代码如下:package c18.dao;import java.util.List;import mons.logging.Log;import mons.logging.LogFactory;import org.hibernate.HibernateException;import org.hibernate.Query;import org.hibernate.Session;import c18.entity.Book;import c18.entity.BookCategory;import c18.helper.PageBean;import c18.helper.PageResult;/*图书持久化接口实现类* author yuxd*/public class BookDaoImpl extends PageDao implements BookDao /*日志操作对象*/private static final Log log = LogFactory.getLog(BookDaoImpl.class); /*以会话对象作参数的构造器* param session*/public BookDaoImpl(Session session)this.session = session;/*根据图书号得到图书*/public Book get(int bookNo) throws HibernateException /得到对象return (Book)session.get(Book.class, new Integer(bookNo);/*得到所有图书(支持分页)*/public PageResult getBooks(PageBean pageBean) throws HibernateException /组成查询 sqlString sql = from Book book;/输出日志信息log.debug(getBooks: + sql);PageResult pageresult = new PageResult();/生成查询对象Query query = session.createQuery(sql);/设置分页查询数query.setFirstResult(pageBean.getPage() - 1) * pageBean.getPageSize();query.setMaxResults(pageBean.getPageSize();/得到结果pageresult.setResultList(query.list();/查询总数 if(pageBean.getCount() = 0)pageBean.setCount(getCount(sql, new Object);/设置分页信息pageresult.setPageBean(pageBean);/得到查询列表return pageresult;/*删除图书*/public void remove(Book book) throws HibernateException /删除对象session.delete(book);/*保存图书*/public void save(Book book) throws HibernateException /保存对象session.save(book);/*更新图书*/public void update(Book book) throws HibernateException /更新对象session.update(book);/* *保存图书分类*/public void save(BookCategory bookcategory) throws HibernateException /保存对象session.save(bookcategory);/*根据分类号得到分类下的图书数目*/public int getBookCountByCategory(int categoryNo) throws HibernateException /组成查询 sqlStringsql=selectcount(*)fromBookCategorybookcategorywherebookcategory.categoryNo=?;/输出日志信息log.debug(getBookCountByCategory: + sql);log.debug(categoryNo: + categoryNo);/生成查询对象Query query = session.createQuery(sql);query.setInteger(0, new Integer(categoryNo);/得到结果return (Integer)query.list().get(0).intValue();/*根据分类号得到分类下图书信息(支持分页)*/publicPageResultgetBooksByCategory(intcategoryNo,PageBeanpageBean)throwsHibernateException /组成查询 sqlString sql = from Book book where exists (select bookcategory.bookNo from BookCategorybookcategory where bookcategory.bookNo=book.bookNo and bookcategory.categoryNo=?); /输出日志信息log.debug(getBooksByCategory: + sql);log.debug(categoryNo: + categoryNo);PageResult pageresult = new PageResult();/生成查询对象Query query = session.createQuery(sql);query.setInteger(0, new Integer(categoryNo);/设置分页查询数query.setFirstResult(pageBean.getPage() - 1) * pageBean.getPageSize();query.setMaxResults(pageBean.getPageSize();/得到结果pageresult.setResultList(query.list();/查询总数if(pageBean.getCount() = 0)pageBean.setCount(getCount(sql, new Objectnew Integer(categoryNo);/设置分页信息pageresult.setPageBean(pageBean);/得到查询列表return pageresult;/*根据图书号删除图书分类关系*/public void delBookCategoryByBook(int bookNo) throws HibernateException /得到图书对应的图书分类关系列表List list = getBookCategoryByBook(bookNo);if(list != null)for(int i=0; ilist.size(); i+) BookCategory bookcategory = (BookCategory)list.get(i);/删除图书分类关系session.delete(bookcategory);/*得到图书相关的分类关系*/public List getBookCategoryByBook(int bookNo) throws HibernateException /组成查询 sqlString sql = from BookCategory bookcategory where bookcategory.bookNo=?;/输出日志信息log.debug(delBookCategoryByBook: + sql);log.debug(bookNo: + bookNo);/生成查询对象Query query = session.createQuery(sql);query.setInteger(0, new Integer(bookNo);/得到结果return query.list();/*根据关键字查询图书*/public PageResult findBooksByProperty(String propertyName, String propertyValue, PageBeanpageBean) throws HibernateException /组成查询 sqlString sql = from Book book where book. + propertyName + like ?;/输出日志信息 log.debug(findBooksByProperty: + sql);log.debug(propertyName: + propertyName);log.debug(propertyValue: + propertyValue);PageResult pageresult = new PageResult();/生成查询对象Query query = session.createQuery(sql);query.setString(0, % + propertyValue + %);/设置分页查询数query.setFirstResult(pageBean.getPage() - 1) * pageBean.getPageSize();query.setMaxResults(pageBean.getPageSize();/得到结果pageresult.setResultList(query.list();/查询总数if(pageBean.getCount() = 0)pageBean.setCount(getCount(sql, new Object% + propertyValue + %);/设置分页信息pageresult.setPageBean(pageBean);/得到查询列表return pageresult; 2.5程序运行与发布将此程序部署到 Tomcat服务器目录下,启动 Tomcat服务器,在浏览器地址栏输入 HTTP:/localhost:8080/c18即可执行留言板程序。程序运行结果如图 2-2所示:图 2-2图书管理系统程序界面 三、总结本文提出并设计了一个基于 J2EE的完整的图书管理系统,该系统整合了数据库技术、 JSP技术、网站开发技术等。主要实现了当前的图书管理的基本功能,由于本人的实力还没有达到完全自己开发的能力,于是就采用了“拿来主义”。虽然本系内容很简单不够完善,而且存在一些不足,不过通过对这个系统的学习与开发,让我更好地掌握了基于 J2EE的 Web开发技术,更深刻地理解了网站的开发流程。在两周的开发中,让我明白一点,就是测试的重要性。所谓建系统,测试先行,软件工程的知识告诉我们一个系统的开发从立项到投入运行,是在测试上的,这次的实际的系统开发让我增长了测试的经验。很长的周期都四、参考文献1申吉红、廖学峰、余建编著 JSP动态网页设计教程 M北京:电子工业, 2005 105-2672张海藩编著软件工程导论 M北京 :人民邮电 2002.3 ISBN7-115-09378-43张白一,崔尚森。面向对象程序设计 -J2EE.西安,西安电子科技大学出版社 2003.1 课程设计成绩评定表质量评价指标评价项目学习态度具体要求满分得分学习认真,态度端正,遵守纪律,出勤情况良好,能够独立完成设计工作。2020按期圆满完成规定的设计任务,工作量饱满,难度适宜。工作量设计方案正确、表达清楚;设计思路、方法科学合理;达到课程设计任务书规定的要求;图、表、文字表达准确规范,上交及时。设计说明书质量3030陈述简明扼要,思路清晰,清楚流答辩陈述和回答问题利,回答问题准确,基本概念清楚,有理有据,有一定深度。 评定成绩评定人员签名年月日
展开阅读全文