java简单实现图书管理系统
要求:简单实现图书的添加、借阅、归还和查看操作
图书具有 书名、编号、价格、数量 属性
Book图书类
有参构造、无参构造,get、set方法,重写三个方法 hashCode()、equals()、toString()、
package Books;
import java.util.Objects;
/**
* @author: Mae.W
*/
public class Book {
private int num;
private String bookName;
private int bookNumber;
private double price;
public Book(String bookName, int bookNumber, double price, int num) {
this.bookName = bookName;
this.bookNumber = bookNumber;
this.price = price;
this.num = num;
}
public Book() {
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public int getBookNumber() {
return bookNumber;
}
public void setBookNumber(int bookNumber) {
this.bookNumber = bookNumber;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Book book = (Book) o;
return num == book.num && bookNumber == book.bookNumber && Double.compare(book.price, price) == 0 && Objects.equals(bookName, book.bookName);
}
@Override
public int hashCode() {
return Objects.hash(num, bookName, bookNumber, price);
}
@Override
public String toString() {
return "Book{" +
"num=" + num +
", bookName='" + bookName + '\'' +
", bookNumber=" + bookNumber +
", price=" + price +
'}';
}
}
BookList类
用来创建一个ArrayList集合,存储数据类型为Book图书类
import java.util.ArrayList;
import java.util.List;
/**
* @author: Mae.W
*/
public class BookList {
static public List<Book> books = new ArrayList<>();
public BookList() {
}
}
Operation接口
接口中有一个work方法,方便以后各个类实现Operation接口,重写work方法
package Operations.Operation;
/**
* @author: Mae.W
*/
public interface Operation {
public void work();
}
AddBook 添加图书类
实现Operation接口,重写work方法 实现图书添加
package Operations.Add;
import Books.Book;
import Books.BookList;
import Operations.Operation.Operation;
import java.util.Scanner;
/**
* @author: Mae.W
*/
public class AddBook implements Operation {
@Override
/* @Test*/
public void work() {
Scanner sc = new Scanner(System.in);
Book book = new Book();
System.out.println("请输入添加您要添加的书名:");
String bookName = sc.next();
book.setBookName(bookName);
System.out.println("请输入添加您要添加的书的编号:");
int bookNumber = sc.nextInt();
book.setBookNumber(bookNumber);
System.out.println("请输入添加您要添加的书的价格:");
double price = sc.nextDouble();
book.setPrice(price);
System.out.println("请输入添加您要添加的书的数量:");
int num = sc.nextInt();
book.setNum(num);
BookList.books.add(book);
System.out.println("添加成功!");
System.out.println("序号:"+BookList.books.size()+"\t"+BookList.books.get(BookList.books.size() - 1));
}
}
BorrowBook 图书借阅类
实现Operation接口,重写work方法,实现图书借阅
package Operations.Borrow;
import Books.BookList;
import Operations.Operation.Operation;
import java.util.Scanner;
/**
* @author: Mae.W
*/
public class BorrowBook implements Operation {
@Override
public void work() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您要借阅的图书名称:");
String name = scanner.next();
boolean isBook = false;
for (Books.Book book : BookList.books) {
if (name.equals(book.getBookName())) {
if (book.getNum() > 0) {
book.setNum(book.getNum() - 1);
System.out.println("《" + book.getBookName() + "》 借阅成功!\n\t当前库存:"+book.getNum());
} else {
System.out.println("当前图书已被全部借阅");
}
isBook = true;
break;
}
}
if (!isBook) {
System.out.println("未找到此图书!");
}
}
}
图书归还
package Operations.Return;
import Books.BookList;
import Operations.Operation.Operation;
import java.util.Scanner;
/**
* @author: Mae.W
*/
public class ReturnBook implements Operation {
@Override
public void work() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您要归还的图书名称:");
String name = scanner.next();
boolean isBook = false;
for (Books.Book book : BookList.books) {
if (name.equals(book.getBookName())) {
book.setNum(book.getNum() + 1);
System.out.println("《" + book.getBookName() + "》 归还成功!\n\t当前库存:"+book.getNum());
isBook = true;
break;
}
}
if (!isBook) {
System.out.println("未找到此图书!");
}
}
}
查看指定图书
package Display;
import Books.BookList;
import Operations.Operation.Operation;
import java.util.Scanner;
/**
* @author: Mae.W
*/
public class DisplayBook implements Operation {
@Override
public void work() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您要查看的图书名称:");
String name = scanner.next();
boolean isBook = false;
for (Books.Book book : BookList.books) {
if (name.equals(book.getBookName())) {
System.out.println("《" + book.getBookName() + "》"+":\n\t编号:"+book.getBookNumber()
+"\n\t价格:"+book.getPrice()+"\n\t库存:"+book.getNum());
isBook = true;
break;
}
}
if (!isBook) {
System.out.println("未找到此图书!");
}
}
查看所有图书
}
package Display;
import Books.BookList;
import Operations.Operation.Operation;
/**
* @author: Mae.W
*/
public class DisplayAllBooks implements Operation {
@Override
public void work() {
boolean isBook = false;
int i=1;
for (Books.Book book : BookList.books) {
System.out.println(i+"、《" + book.getBookName() + "》" + ":\n\t编号:" + book.getBookNumber()
+ "\n\t价格:" + book.getPrice() + "\n\t库存:" + book.getNum());
isBook=true;
i++;
}
if(!isBook){
System.out.println("当前没有图书!");
}
}
}
package Operations.MainOPeration;
/**
* @author: Mae.W
*/
public class Menu {
public void menu() {
System.out.println("---------------------图书管理系统------------------");
System.out.println("---------------------1、添加图书-------------------");
System.out.println("---------------------2、借阅图书-------------------");
System.out.println("---------------------3、归还图书-------------------");
System.out.println("-----------------4、显示指定图书信息-----------------");
System.out.println("-----------------5、显示所有图书信息-----------------");
System.out.println("-----------------------0、退出---------------------");
}
}
主方法
package Operations.MainOPeration;
import Display.DisplayAllBooks;
import Display.DisplayBook;
import Operations.Add.AddBook;
import Operations.Borrow.BorrowBook;
import Operations.Return.ReturnBook;
import java.util.Scanner;
/**
* @author: Mae.W
*/
public class Operation {
public static void main(String[] args) {
while (true) {
new Menu().menu();
int opr = new Scanner(System.in).nextInt();
if (opr == 1) {
new AddBook().work();
}
if(opr==2){
new BorrowBook().work();
}
if (opr==3){
new ReturnBook().work();
}
if (opr==4){
new DisplayBook().work();
}
if (opr==5){
new DisplayAllBooks().work();
}
if(opr==0){
break;
}
}
}
}
总结
简单实现一下,主要为了复习java的基础知识。
局限性:这个小项目中的java的一些知识没涵盖到,而且没能够和数据库相连接。
下一步主要是学习JDBC方面知识,与数据库相关联,进一步地改进代码。