图书管理系统 设计说明书.doc_第1页
图书管理系统 设计说明书.doc_第2页
图书管理系统 设计说明书.doc_第3页
图书管理系统 设计说明书.doc_第4页
图书管理系统 设计说明书.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图书管理系统设计说明书 一、选题的意义:当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书馆信息而设计的。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。基于这些问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。二、需求分析:一直以来人们使用传统的人工方式管理图书管的日常工作,对于图书管的借书和还书过程,想必大家都很熟悉。在计算机尚未在图书管广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。 以上所描述的手工过程的不足之处显而易见。首先,处理借书还书的业务流程的效率很低;其次,处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选书和看书上。 为方便对图书管书籍、读者资料、借还书等进行高效的管理,特编写该程序以提高图书管的管理效率。使用该程序之后,管理人员可以查询某位读者图书的借阅情况。 本次毕业设计 “图书借管理系统”主要是利用.NET技术编制的一个管理软件,用以实现图书、借阅者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一个完整论证。 图书借阅管理系统是一种基于集中统一规划的数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。 目前,在大多数图书管理中,查找图书都是采用传统的查询方法,让读者在图书分类架上一本一本地去查找,这样不仅很难找到自己所需要的图书,且费时费力。而图书管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个一个去查找,而要找到借书记录并删除该记录是件很麻烦的事情。每当新书入库时,图书管理员既要填写新书入库卡片,又要填写新书入库帐目,不仅工作量大,而且,在新书入库后要经历较长的时间方能借出。 为提高图书查询效率,减少图书管理员的工作负担,有必要开发一个小型图书管理软件来对图书实施有效管理。该系统必须具备以下功能: 1能对各类图书实行分类管理; 2提供必要的读者信息; 3能进行各种高级查询(如图书分类,图书编号的查询等); 这样不仅能较好地帮助读者在最短的时间内找到自己所需要的图书书目、编号,而且能让图书管理员以最高的效率办理借阅手续。 设计目标: 针对以上情况,决定构建一个图书借阅管理系统,要求该系统登录后实行图书管理。包括可以对图书的查询、图书的借阅或还书手续,另外,图书管理员能根据需要通过该系统修改图书信息,增加或删除图书书目等。该系统设有超级用户,当管理员以超级用户登录时,图书管理员有着最大的权限,能通过管理界面设置图书借阅期限和读者信息,并能有效地管理图书分类、读者信息及图书管理员的登录帐目等。 系统设计原则: 实用性原则 适合于中小型图书管图书管理,用户界面友好,操作方便,具有高效的数据处理能力。三、总体设计:图书管理者的需求是查询图书馆所存的图书、借阅者的借阅情况及个人信息的修改;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书查询给借阅者查看确认,可直接查看图书馆图书情况。图书借阅者、图书进行管理和维护,及系统状态的查看、维护。系统登录首页系统设置读者管理图书管理图书借还更改口令系统查询退出系统借阅排行榜图书馆信息读者类型管理读者档案管理图书类型管理图书档案管理图书借阅图书续借图书归还图书档案查询图书借阅查询书架设置管理员设置图书馆工作人员有修改图书借阅者借书和还书记录的权限,在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录。 系统功能详细模块设计图四、详细设计Bookaction.java package com.shuangyulin.action;import java.util.List;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.shuangyulin.dao.BookDAO;import com.shuangyulin.dao.BookTypeDAO;import com.shuangyulin.domain.Book;import com.shuangyulin.domain.BookType;import com.shuangyulin.test.TestUtil;public class BookAction extends ActionSupport /查询字段private String barcode; /图书条形码private String bookName; /图书名称private BookType bookType; /图书类别private int currentPage;/当前页private int totalPage;/一共多少页private int recordNumber; /总共多少记录private Book book;/待操作的图书对象/*业务层对象*/BookDAO bookDAO = new BookDAO();public Book getBook() return book;public void setBook(Book book) this.book = book; public String getBarcode() return barcode;public void setBarcode(String barcode) this.barcode = barcode; public String getBookName() return bookName;public void setBookName(String bookName) this.bookName = bookName;public BookType getBookType() return bookType;public void setBookType(BookType bookType) this.bookType = bookType;public int getCurrentPage() return currentPage;public void setCurrentPage(int currentPage) this.currentPage = currentPage;public int getTotalPage() return totalPage;public void setTotalPage(int totalPage) this.totalPage = totalPage;public int getRecordNumber() return recordNumber;public void setRecordNumber(int recordNumber) this.recordNumber = recordNumber;/*添加图书视图*/public String AddView() /*查询所有的图书类别信息*/ActionContext ctx = ActionContext.getContext();BookTypeDAO bookTypeDAO = new BookTypeDAO();List bookTypeList = bookTypeDAO.QueryAllBookTypeInfo();ctx.put(bookTypeList, bookTypeList); return add_view;SuppressWarnings(deprecation)public String AddBook() /*验证条形码是否已经存在*/ActionContext ctx = ActionContext.getContext();String barcode = book.getBarcode();Book db_book = bookDAO.GetBookByBarCode(barcode);if(null != db_book) ctx.put(error, .URLEncoder.encode(该条形码已经存在!);return error;try BookTypeDAO bookTypeDAO = new BookTypeDAO();bookType = bookTypeDAO.GetBookTypeById(book.getBookType().getBookTypeId();book.setBookType(bookType);bookDAO.AddBook(book);ctx.put(message, .URLEncoder.encode(图书添加成功!);return add_success; catch (Exception e) e.printStackTrace();ctx.put(error, .URLEncoder.encode(图书添加失败!);return error; /*查询图书信息*/public String QueryBook() if(barcode = null) barcode = ;if(null = bookName) bookName = ;if(currentPage = 0) currentPage = 1;List bookList = bookDAO.QueryBookInfo(barcode, bookName, bookType, currentPage); bookDAO.CalculateTotalPageAndRecordNumber(barcode,bookName,bookType); /计算总的页数和总的记录数totalPage = bookDAO.getTotalPage(); /获取到总的页码数目recordNumber = bookDAO.getRecordNumber(); /当前查询条件下总记录数 BookTypeDAO bookTypeDAO = new BookTypeDAO();List bookTypeList = bookTypeDAO.QueryAllBookTypeInfo();ActionContext ctx = ActionContext.getContext(); ctx.put(bookList, bookList); ctx.put(totalPage, totalPage);ctx.put(recordNumber, recordNumber);ctx.put(currentPage, currentPage);ctx.put(barcode, barcode);ctx.put(bookName, bookName);ctx.put(bookType, bookType);ctx.put(bookTypeList, bookTypeList); return query_view;/*查询要修改的图书信息*/public String ModifyBookQuery() Book book= bookDAO.GetBookByBarCode(barcode);BookTypeDAO bookTypeDAO = new BookTypeDAO();List bookTypeList = bookTypeDAO.QueryAllBookTypeInfo();ActionContext ctx = ActionContext.getContext();ctx.put(bookTypeList, bookTypeList); ctx.put(book, book); return modify_view;/*更新图书信息*/public String ModifyBook() ActionContext ctx = ActionContext.getContext(); try BookTypeDAO bookTypeDAO = new BookTypeDAO();bookType = bookTypeDAO.GetBookTypeById(book.getBookType().getBookTypeId();book.setBookType(bookType);bookDAO.UpdateBook(book);ctx.put(message, .URLEncoder.encode(图书更新成功!);return modify_success; catch (Exception e) e.printStackTrace();ctx.put(error, .URLEncoder.encode(图书更新失败!);return error; /*删除图书*/public String DeleteBook() ActionContext ctx = ActionContext.getContext(); try bookDAO.DeleteBook(barcode);ctx.put(message, .URLEncoder.encode(图书删除成功!);return delete_success; catch (Exception e) e.printStackTrace();ctx.put(error, .URLEncoder.encode(图书删除失败!);return error; Booktypeaction.javapackage com.shuangyulin.action;import java.util.List;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.shuangyulin.dao.BookTypeDAO;import com.shuangyulin.domain.BookType;import com.shuangyulin.test.TestUtil;public class BookTypeAction extends ActionSupport /*业务层对象*/BookTypeDAO bookTypeDAO = new BookTypeDAO();private BookType bookType; public BookType getBookType() return bookType;public void setBookType(BookType bookType) this.bookType = bookType;public String AddView() return add_view;SuppressWarnings(deprecation)public String AddBookType() /*验证图书类别名称是否已经存在*/ActionContext ctx = ActionContext.getContext();String bookTypeName = bookType.getBookTypeName(); if(bookTypeDAO.QueryBookTypeInfoByNameFlag(bookTypeName) = 1) ctx.put(error, .URLEncoder.encode(该类别名称已经存在!);return error;try bookTypeDAO.AddBookType(bookType); ctx.put(message, .URLEncoder.encode(图书类别信息添加成功!);return add_success; catch (Exception e) e.printStackTrace();ctx.put(error, .URLEncoder.encode(图书类别信息添加失败!);return error; /*查询图书类别信息*/public String QueryBookType() List bookTypeList = bookTypeDAO.QueryAllBookTypeInfo(); ActionContext ctx = ActionContext.getContext(); ctx.put(bookTypeList, bookTypeList); return query_view;/*查询要修改的读者类别信息*/public String ModifyBookTypeQuery() BookType db_bookType = bookTypeDAO.GetBookTypeById(bookType.getBookTypeId();ActionContext ctx = ActionContext.getContext(); ctx.put(db_bookType, db_bookType); return modify_view;/*更新图书类别信息*/public String ModifyBookType() ActionContext ctx = ActionContext.getContext(); try bookTypeDAO.UpdateBookType(bookType);ctx.put(message, .URLEncoder.encode(图书类别信息更新成功!);return add_success; catch (Exception e) e.printStackTrace();ctx.put(error, .URLEncoder.encode(图书类别信息更新失败!);return error; /*删除图书类别*/public String DeleteBookType() ActionContext ctx = ActionContext.getContext(); try /这里需要先查询该类别下是否还存在图书信息bookTypeDAO.DeleteBookType(bookType.getBookTypeId();ctx.put(message, .URLEncoder.encode(图书类别信息删除成功!);return add_success; catch (Exception e) e.printStackTrace();ctx.put(error, .URLEncoder.encode(图书类别信息删除失败!);return error; Changepasswordaction.javapackage com.shuangyulin.action;import com.opensymphony.xwork2.ActionContext;import com.shuangyulin.dao.AdminDAO;import com.shuangyulin.domain.Admin;public class ChangePasswordAction private String oldPassword;private String newPassword;private String newPassword2;public String getOldPassword() return oldPassword;public void setOldPassword(String oldPassword) this.oldPassword = oldPassword;public String getNewPassword() return newPassword;public void setNewPassword(String newPassword) this.newPassword = newPassword;public String getNewPassword2() return newPassword2;public void setNewPassword2(String newPassword2) this.newPassword2 = newPassword2;/*修改密码*/public String execute() ActionContext ctx = ActionContext.getContext(); if(oldPassword.equals() ctx.put(error, .URLEncoder.encode(旧密码必须输入!);return error;if(newPassword.equals() ctx.put(error, .URLEncoder.encode(新密码必须输入!);return error;if(!newPassword2.equals(newPassword) ctx.put(error, .URLEncoder.encode(两次密码输入不一致!);return error;String username = (String)ctx.getSession().get(username); Admin admin = AdminDAO.GetAdmin(username);if(!admin.getPassword().equals(oldPassword) ctx.put(error, .URLEncoder.encode(旧密码不正确!);return error;try AdminDAO.ChangePassword(username,newPassword);ctx.put(message, .URLEncoder.encode(密码修改成功!);return change_success; catch (Exception e) e.printStackTrace();ctx.put(error, .URLEncoder.encode(密码更新失败!);return error; package com.shuangyulin.action;import com.opensymphony.xwork2.ActionContext;import com.shuangyulin.dao.AdminDAO;import com.shuangyulin.domain.Admin;public class ChangePasswordAction private String oldPassword;private String newPassword;private String newPassword2;public String getOldPassword() return oldPassword;public void setOldPassword(String oldPassword) this.oldPassword = oldPassword;public String getNewPassword() return newPassword;public void setNewPassword(String newPassword) this.newPassword = newPassword;public String getNewPassword2() return newPassword2;public void setNewPassword2(String newPassword2) this.newPassword2 = newPassword2;/*修改密码*/public String execute() ActionContext ctx = ActionContext.getContext(); if(oldPassword.equals() ctx.put(error, .URLEncoder.encode(旧密码必须输入!);return error;if(newPassword.equals() ctx.put(error, .URLEncoder.encode(新密码必须输入!);return error;if(!newPassword2.equals(newPassword) ctx.put(error, .URLEncoder.encode(两次密码输入不一致!);return error;String username = (String)ctx.getSession().get(username); Admin admin = AdminDAO.GetAdmin(username);if(!admin.getPassword().equals(oldPassword) ctx.put(error, .URLEncoder.encode(旧密码不正确!);return error;try AdminDAO.ChangePassword(username,newPassword);ctx.put(message, .URLEncoder.encode(密码修改成功!);return change_success; catch (Exception e) e.printStackTrace();ctx.put(error, .URLEncoder.encode(密码更新失败!);return error; Useraction.javapackage com.shuangyulin.action;public class UserAction public String UserQuery()return user_query_view;AdminDAO.javapackage com.shuangyulin.dao;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.Transaction;import com.shuangyulin.domain.Admin;import com.shuangyulin.utils.HibernateUtil;public class AdminDAO /*保存业务逻辑错误信息字段*/private String errMessage;public String getErrMessage() return this.errMessage; /*验证用户登录*/public boolean CheckLogin(Admin admin) Session s = null;try s = HibernateUtil.getSession();Admin db_admin = (Admin)s.get(Admin.class, admin.getUsername();if(db_admin = null) this.errMessage = 账号不存在 ;System.out.print(this.errMessage);return false; else if( !db_admin.getPassword().equals(admin.getPassword() this.errMessage = 密码不正确! ;System.out.print(this.errMessage);return false; finally HibernateUtil.closeSession(); return true;/*修改用户登录密码*/public static void ChangePassword(String username, String newPassword) Session s = null;Transaction tx = null;try s = HibernateUtil.getSession();tx = s.beginTransaction();Admin db_admin = (Admin)s.get(Admin.class, username);db_admin.setPassword(newPassword);s.save(db_admin);mit(); catch (HibernateException e) if (tx != null)tx.rollback();throw e; finally HibernateUtil.closeSession(); /*根据用户名获取管理员对象*/public static Admin GetAdmin(String username) Session s = null;Admin db_admin = null;try s = HibernateUtil.getSession();db_admin = (Admin)s.get(Admin.class, username); finally HibernateUtil.closeSession(); return db_admin;BookDAO.javapackage com.shuangyulin.domain;/*图书信息类*/public class Book /*条形码*/private String barcode;/*图书名称*/private String bookName;/*图书类型*/private BookType bookType;/*作者*/private String author;/*出版社*/private String publishAddress;/*价格*/private float price;/*库存*/private int stockCount;public int getStockCount() return stockCount;public void setStockCount(int stockCount) this.stockCount = stockCount;public String getBarcode() return barcode;public void setBarcode(String barcode) this.barcode = barcode;public String getBookName() return bookName;public void setBookName(String bookName) this.bookName = bookName;public BookType getBookType() return bookType;public void setBookType(BookType bookType) this.bookType = bookType;public String getAuthor() return author;public void setAuthor(String author) this.author = author;public String getPublishAddress() return publishAddress;public void setPublishAddress(String publishAddress) this.publishAddress = publishAddress;public float getPrice() return price;public void setPrice(float price) this.price = price; BookType.javapackage com.shuangyulin.domain;/*图书类别*/public class BookType /*类别编号*/private int bookTypeId;/*类别名称*/private String bookTypeName;/*可借天数*/private int days;public int getBookTypeId() return bookTypeId;public void setBookTypeId(int bookTypeId) this.bookTypeId = bookTypeId;public String getBookTypeName() return bookTypeName;public void setBookTypeName(String bookTypeName) this.bookTypeName = bookTypeName;public int getDays() return days;public void setDays(int days) this.days = days;Hibernateutil.javapackage com.shuangyulin.utils; import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration; /* * Configures a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论