JAVA图书馆查书、借书、还书对象分析与设计
一、功能展示图

二、UML类图

三、类说明
User类:用于展示用户相关信息,以及进行借书还书操作
package util;
import dao.UserInformation;
import java.util.Arrays;
public class User {
private String accountNumber; //用户账号
private Book[] lentBook; //所有所借书籍
private String[] lentBookName; //所借书籍的种类
private int[] lentBookNum; //所借书籍的数目,与种类下标对应
private int lentBookTotalNum; //所借书本总数
private int lentBookVarietyTotalNum; //所借书本的种类总数
{
//对所借书籍数目的数组进行初始化,使其初始值均为0
int[] lentBookNum = new int[Library.varietyNum];
for (int i = 0; i < lentBookNum.length; i++) {
lentBookNum[i]=0;
}
this.lentBookNum=lentBookNum;
//对其他两个数组也进行初始化
this.lentBook = new Book[Library.varietyNum];
this.lentBookName= new String[Library.varietyNum];
}
public String getAccountNumber() {
return accountNumber;
}
public void setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
}
public Book[] getLentBook() {
return lentBook;
}
public void setLentBook(Book[] lentBook) {
this.lentBook = lentBook;
}
public String[] getLentBookName() {
return lentBookName;
}
public void setLentBookName(String[] lentBookName) {
this.lentBookName = lentBookName;
}
public int[] getLentBookNum() {
return lentBookNum;
}
public void setLentBookNum(int[] lentBookNum) {
this.lentBookNum = lentBookNum;
}
public int getLentBookTotalNum() {
return lentBookTotalNum;
}
public void setLentBookTotalNum(int lentBookTotalNum) {
this.lentBookTotalNum = lentBookTotalNum;
}
public int getLentBookVarietyTotalNum() {
return lentBookVarietyTotalNum;
}
public void setLentBookVarietyTotalNum(int lentBookVarietyTotalNum) {
this.lentBookVarietyTotalNum = lentBookVarietyTotalNum;
}
@Override
public String toString() {
return "User [accountNumber=" + accountNumber + ", lentBook=" + Arrays.toString(lentBook) + ", lentBookName="
+ Arrays.toString(lentBookName) + ", lentBookNum=" + Arrays.toString(lentBookNum)
+ ", lentBookTotalNum=" + lentBookTotalNum + ", lentBookVarietyTotalNum=" + lentBookVarietyTotalNum
+ "]";
}
public User(String accountNumber, Book[] lentBook, String[] lentBookName, int[] lentBookNum, int lentBookTotalNum,
int lentBookVarietyTotalNum) {
super();
this.accountNumber = accountNumber;
this.lentBook = lentBook;
this.lentBookName = lentBookName;
this.lentBookNum = lentBookNum;
this.lentBookTotalNum = lentBookTotalNum;
this.lentBookVarietyTotalNum = lentBookVarietyTotalNum;
}
public void addBook(UserBook book) {
int i ;
for(i =0;i<this.lentBookVarietyTotalNum;i++) {
if(this.lentBookName[i]==book.getBookName()) { //判断所借书籍是否有在相同种类
this.lentBookNum[i]++; //将种类数组中的数值加一
break;
}
}
if(i==this.lentBookVarietyTotalNum) { //说明不在同一相同种类
this.lentBookNum[this.lentBookVarietyTotalNum]++; //将数组相加
this.lentBookName[this.lentBookVarietyTotalNum]=book.getBookName(); //将新的种类记录进种类数组
this.lentBookVarietyTotalNum++; //将所借书籍种类数加一
}
this.lentBook[this.lentBookTotalNum]=book; //将新数组加入数组中
book.setDoLent(1); //将书籍标记已借出
book.setUserAccountNumber(this.accountNumber); //将书籍被借者账号标注为用户的账号
this.lentBookTotalNum++; //用户所借总书数加一
}
public void returnBook(UserBook book) {
//归还书籍
}
}
Library类:用于展示书籍相关信息,以及是界面与功能的连接处。
package util;
import dao.LibarayBook;
import dao.UserLogin;
import ui.Design;
public class Library {
private int bookNum; //图书馆中所有书籍的数目
static int varietyNum; //图书馆中书的种类数目
private int lentNum; //图书馆中已借书籍的总数目
private int doLendNum; //图书馆中未借书籍的总数目
private int lentVarietyNum; //图书馆中已借书籍的种类数目
private int doLendVarietyNum; //图书馆中未借书籍的种类数目
public int getBookNum() {
return bookNum;
}
public void setBookNum(int bookNum) {
this.bookNum = bookNum;
}
public int getVarietyNum() {
return varietyNum;
}
public void setVarietyNum(int varietyNum) {
Library.varietyNum = varietyNum;
}
public int getLentNum() {
return lentNum;
}
public void setLentNum(int lentNum) {
this.lentNum = lentNum;
}
public int getDoLendNum() {
return doLendNum;
}
public void setDoLendNum(int doLendNum) {
this.doLendNum = doLendNum;
}
public int getLentVarietyNum() {
return lentVarietyNum;
}
public void setLentVarietyNum(int lentVarietyNum) {
this.lentVarietyNum = lentVarietyNum;
}
public int getDoLendVarietyNum() {
return doLendVarietyNum;
}
public void setDoLendVarietyNum(int doLendVarietyNum) {
this.doLendVarietyNum = doLendVarietyNum;
}
public Library(int bookNum, int lentNum, int doLendNum, int lentVarietyNum, int doLendVarietyNum) {
super();
this.bookNum = bookNum;
this.lentNum = lentNum;
this.doLendNum = doLendNum;
this.lentVarietyNum = lentVarietyNum;
this.doLendVarietyNum = doLendVarietyNum;
}
@Override
public String toString() {
return "Library [bookNum=" + bookNum + ", varietyNum=" + varietyNum + ", lentNum=" + lentNum + ", doLendNum="
+ doLendNum + ", lentVarietyNum=" + lentVarietyNum + ", doLendVarietyNum=" + doLendVarietyNum + "]";
}
public void lentBook(User user,UserBook book) {
user.addBook(book);
}
public void rentBook(User user,UserBook book) {
user.returnBook(book);
}
public void srarchBook(LibraryBook book,int number) {
//根据编号查找书籍
}
public void srarchBook(LibraryBook book,String variety) {
//根据分类查找书籍
}
public int judgeLent(LibraryBook book) {
return bookNum;
//判断是否还能借书
//判断界面代码
}
void judgeUser(String number,String password) {
//判断是否为用户正确密码
//登入界面代码
}
void showVarietyBook() {
//按分类展现书籍
}
}
Book类:用于保存书籍的信息,标记是否被记,与剩余数目。
package util;
public class Book {
private String bookName; //书本名称
private String varietyName; //书本分类的名称
private String bookNumber; //书本编号
private String location; //书本位置
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getVarietyName() {
return varietyName;
}
public void setVarietyName(String varietyName) {
this.varietyName = varietyName;
}
public String getBookNumber() {
return bookNumber;
}
public void setBookNumber(String bookNumber) {
this.bookNumber = bookNumber;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
@Override
public String toString() {
return "Book [bookName=" + bookName + ", varietyName=" + varietyName + ", bookNumber=" + bookNumber
+ ", location=" + location + "]";
}
public Book(String bookName, String varietyName, String bookNumber, String location) {
super();
this.bookName = bookName;
this.varietyName = varietyName;
this.bookNumber = bookNumber;
this.location = location;
}
}
public class LibraryBook extends Book{//图书馆中的书籍
private int lastBookNum; //书本剩余数目
public int getLastBookNum() {
return lastBookNum;
}
public void setLastBookNum(int lastBookNum) {
this.lastBookNum = lastBookNum;
}
@Override
public String toString() {
return "LibraryBook [lastBookNum=" + lastBookNum + "]";
}
}
public class UserBook extends Book{//用户信息中的书籍
private int doLent; //书本是否被借出
private String userAccountNumber; //所借人的账号
public int getDoLent() {
return doLent;
}
public void setDoLent(int doLent) {
this.doLent = doLent;
}
public String getUserAccountNumber() {
return userAccountNumber;
}
public void setUserAccountNumber(String userAccountNumber) {
this.userAccountNumber = userAccountNumber;
}
@Override
public String toString() {
return "UserBook [doLent=" + doLent + ", userAccountNumber=" + userAccountNumber + "]";
}
}
LibarayBook 类:存放所有书籍信息,使用集合中的List。
package dao;
import java.awt.List;
import util.Book;
//用于存放所有书籍
public class LibarayBook {
static List books;
//运用集合保存书本
//创建文件类
//按行依次读取书本名称、编号、种类名保存到数组中
}
四、包的规划设计

五、特色
1.使用DAO模式:在对书籍数据的储存,用户信息的存储以及用户账号信息的存储。
好处:将数据封装,更容易使用。
2.进行数据持久化(数据存储)。用文件存储信息。

浙公网安备 33010602011771号