目录
类和对象:定义了Book和Library两个类,其中Book类代表书籍,Library类代表图书馆。
构造方法:Book类有两个构造方法,一个是无参构造方法,另一个是带参数的构造方法,用于初始化书籍对象。
封装:通过私有属性和公共的getter和setter方法,实现了类的封装特性。
重写toString方法:在Book类中重写了toString方法,用于返回书籍的字符串表示形式。
步骤3: Getter和Setter方法,用于访问和修改属性
步骤4: 重写toString方法,用于返回书籍的字符串表示
1 图书管理系统
1.1使用到的知识点
类和对象:定义了
Book
和Library
两个类,其中Book
类代表书籍,Library
类代表图书馆。构造方法:
Book
类有两个构造方法,一个是无参构造方法,另一个是带参数的构造方法,用于初始化书籍对象。封装:通过私有属性和公共的getter和setter方法,实现了类的封装特性。
重写
toString
方法:在Book
类中重写了toString
方法,用于返回书籍的字符串表示形式。集合:使用
ArrayList
来存储书籍对象。
1.2 实现的功能及演示
图书的添加,删除,查询操作
1.2.1 功能界面
1.2.2 添加书籍
1.2.3 书籍展示
1.2.4 借取书籍
1.2.5 查询书籍
1.3 实现过程
步骤1: 定义Book类,代表书籍对象
public class Book{
// 属性定义
public String BookName;//书籍名称
public int ISBN;//书籍编号
public String BookAuthor;//作者
public int Number;//书籍数量
}
步骤2: 构造方法,用于创建Book对象
public class Book{
// 属性定义
public String BookName;//书籍名称
public int ISBN;//书籍编号
public String BookAuthor;//作者
public int Number;//书籍数量
//步骤2: 构造方法,用于创建Book对象
public Book() {
}
public Book(String bookName, int ISBN, String bookAuthor, int number) {
// 初始化属性
}
}
步骤3: Getter和Setter方法,用于访问和修改属性
public class Book{
// 属性定义
public String BookName;//书籍名称
public int ISBN;//书籍编号
public String BookAuthor;//作者
public int Number;//书籍数量
//步骤2: 构造方法,用于创建Book对象
public Book() {
}
public Book(String bookName, int ISBN, String bookAuthor, int number) {
// 初始化属性
}
//步骤3: Getter和Setter方法,用于访问和修改属性
public String getBookName() {
return BookName;
}
public int getISBN() {
return ISBN;
}
public String getBookAuthor() {
return BookAuthor;
}
public int getNumber() {
return Number;
}
public void setBookName(String bookName) {
BookName = bookName;
}
public void setISBN(int ISBN) {
this.ISBN = ISBN;
}
public void setBookAuthor(String bookAuthor) {
BookAuthor = bookAuthor;
}
public void setNumber(int number) {
Number = number;
}
}
步骤4: 重写toString方法,用于返回书籍的字符串表示
public class Book{
// 属性定义
public String BookName;//书籍名称
public int ISBN;//书籍编号
public String BookAuthor;//作者
public int Number;//书籍数量
//步骤2: 构造方法,用于创建Book对象
public Book() {
}
public Book(String bookName, int ISBN, String bookAuthor, int number) {
// 初始化属性
}
//步骤3: Getter和Setter方法,用于访问和修改属性
public String getBookName() {
return BookName;
}
public int getISBN() {
return ISBN;
}
public String getBookAuthor() {
return BookAuthor;
}
public int getNumber() {
return Number;
}
public void setBookName(String bookName) {
BookName = bookName;
}
public void setISBN(int ISBN) {
this.ISBN = ISBN;
}
public void setBookAuthor(String bookAuthor) {
BookAuthor = bookAuthor;
}
public void setNumber(int number) {
Number = number;
}
//步骤4: 重写toString方法,用于返回书籍的字符串表示
@Override
public String toString() {
return "Book{" +
"BookName='" + BookName + '\'' +
", ISBN=" + ISBN +
", BookAuthor='" + BookAuthor + '\'' +
", Number=" + Number +
'}';
}
}
步骤5: 定义Library类,代表图书馆
public class Library {
// 使用ArrayList来存储书籍对象
public List<Book> book;
// 构造方法,初始化书籍列表
public Library(){
book = new ArrayList<>();
}
}
步骤6: 实现添加书籍的方法(方法在Library类中)
public void addBook(Book newBook) {
boolean exists = false;
for (Book currentBook : book) {
if (currentBook.getISBN() == newBook.getISBN()) {
currentBook.setNumber(currentBook.getNumber() + newBook.getNumber());
exists = true;
break;
}
}
if (!exists) {
book.add(newBook);
}
System.out.println(exists ? "书籍数量更新成功" : "新书籍添加成功");
}
步骤7: 实现借书的方法
public void borrow(int isbn) {
for (int i = 0; i < book.size(); i++) {
Book bookItem = book.get(i);
if (bookItem.getISBN() == isbn) {
if (bookItem.getNumber() > 1) {
bookItem.setNumber(bookItem.getNumber() - 1);
System.out.println("成功借取编号为" + isbn + "的书,剩余 " + bookItem.getNumber() + " 本");
} else {
System.out.println("借书失败,库存不足");
}
return;
}
}
System.out.println("书籍不存在");
}
步骤8: 实现展示所有书籍的方法
public void displayBook() {
boolean hasBooks = !book.isEmpty();
for (Book bookItem : book) {
System.out.println(bookItem);
}
if (hasBooks) {
System.out.println("执行成功");
} else {
System.out.println("没有书籍可以展示");
}
}
步骤9: 实现查找书籍的方法
public void FindBook(String BookName){
for (int i = 0;i<book.size();i++){
String Name = book.get(i).BookName;
Book book2 = book.get(i);
if(Name.equals(BookName)){
System.out.println(book2);
System.out.println("找到");
}else {
System.out.println("没有找到");
}
}
}
步骤10: main方法,程序的入口点()
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Library library = new Library();
while (true) {
// 功能界面
System.out.println("1.添加书籍");
System.out.println("2.全部书籍展示");
System.out.println("3.借去书籍");
System.out.println("4.查找书籍");
System.out.println("请选择要执行的操作");
int option = input.nextInt();
input.nextLine();
switch (option){
case 1:
//接受数据并且存到数组里
System.out.println("请输入书籍名称");
String BookName = input.nextLine();
System.out.println("请输入书籍编号");
int BookNo = input.nextInt();
input.nextLine();
System.out.println("请输入书籍作者");
String BookAuthor = input.nextLine();
System.out.println("请输入书籍数量");
int BookNumber = input.nextInt();
input.nextLine();
Book book1 = new Book(BookName,BookNo,BookAuthor,BookNumber);
library.addBook(book1);
break;
case 2:
library.displayBook();
break;
case 3:
System.out.println("请输入书籍编号");
int No = input.nextInt();
library.borrow(No);
System.out.println("执行成功");
break;
case 4:
System.out.println("请输入书籍名称");
String BookName1 = input.nextLine();
library.FindBook(BookName1);
break;
}
}
}
1.4 完整代码
1.4.1 Library类代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Library {
public List<Book> book;
public Library(){
book = new ArrayList<>();
}
public void addBook(Book newBook) {
boolean exists = false;
for (Book currentBook : book) {
if (currentBook.getISBN() == newBook.getISBN()) {
currentBook.setNumber(currentBook.getNumber() + newBook.getNumber());
exists = true;
break;
}
}
if (!exists) {
book.add(newBook);
}
System.out.println(exists ? "书籍数量更新成功" : "新书籍添加成功");
}
// 修改 borrow 方法
public void borrow(int isbn) {
for (int i = 0; i < book.size(); i++) {
Book bookItem = book.get(i);
if (bookItem.getISBN() == isbn) {
if (bookItem.getNumber() > 1) {
bookItem.setNumber(bookItem.getNumber() - 1);
System.out.println("成功借取编号为" + isbn + "的书,剩余 " + bookItem.getNumber() + " 本");
} else {
System.out.println("借书失败,库存不足");
}
return;
}
}
System.out.println("书籍不存在");
}
// 修改 displayBook 方法
public void displayBook() {
boolean hasBooks = !book.isEmpty();
for (Book bookItem : book) {
System.out.println(bookItem);
}
if (hasBooks) {
System.out.println("执行成功");
} else {
System.out.println("没有书籍可以展示");
}
}
public void FindBook(String BookName){
for (int i = 0;i<book.size();i++){
String Name = book.get(i).BookName;
Book book2 = book.get(i);
if(Name.equals(BookName)){
System.out.println(book2);
System.out.println("找到");
}else {
System.out.println("没有找到");
}
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Library library = new Library();
while (true) {
System.out.println("1.添加书籍");
System.out.println("2.全部书籍展示");
System.out.println("3.借去书籍");
System.out.println("4.查找书籍");
System.out.println("请选择要执行的操作");
int option = input.nextInt();
input.nextLine();
switch (option){
case 1:
System.out.println("请输入书籍名称");
String BookName = input.nextLine();
System.out.println("请输入书籍编号");
int BookNo = input.nextInt();
input.nextLine();
System.out.println("请输入书籍作者");
String BookAuthor = input.nextLine();
System.out.println("请输入书籍数量");
int BookNumber = input.nextInt();
input.nextLine();
Book book1 = new Book(BookName,BookNo,BookAuthor,BookNumber);
library.addBook(book1);
break;
case 2:
library.displayBook();
break;
case 3:
System.out.println("请输入书籍编号");
int No = input.nextInt();
library.borrow(No);
System.out.println("执行成功");
break;
case 4:
System.out.println("请输入书籍名称");
String BookName1 = input.nextLine();
library.FindBook(BookName1);
break;
}
}
}
}
1.4.2 Book类代码:
public class Book {
public String BookName;
public int ISBN;
public String BookAuthor;
public int Number;
public Book() {
}
public Book(String bookName, int ISBN, String bookAuthor, int number) {
BookName = bookName;
this.ISBN = ISBN;
BookAuthor = bookAuthor;
Number = number;
}
public String getBookName() {
return BookName;
}
public int getISBN() {
return ISBN;
}
public String getBookAuthor() {
return BookAuthor;
}
public int getNumber() {
return Number;
}
public void setBookName(String bookName) {
BookName = bookName;
}
public void setISBN(int ISBN) {
this.ISBN = ISBN;
}
public void setBookAuthor(String bookAuthor) {
BookAuthor = bookAuthor;
}
public void setNumber(int number) {
Number = number;
}
@Override
public String toString() {
return "Book{" +
"BookName='" + BookName + '\'' +
", ISBN=" + ISBN +
", BookAuthor='" + BookAuthor + '\'' +
", Number=" + Number +
'}';
}
}