需求:
设计一个图书管理系统,要求具有以下功能:
1.查看图书
2.增加图书
3.修改图书
4.删除图书
实现过程:
首先要搭建项目的package,然后根据需求分析对象,设计类
图书实体类:
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
@ToString
@EqualsAndHashCode
public class Book {
private int id;
private String name;
private String author;
private String adress;
private int price;
}
菜单列表和数据初始化
package com.bun.library.action;
import com.bun.library.entity.Book;
import com.bun.library.service.BookService;
import java.util.Scanner;
/**
* @Author: Bun
* @Version: 1.0
* @Date: 2022/9/29-16:23
* @Since: jdk1.8
* @Name:
*/
public class BookAction {
//扫描仪
static Scanner scanner = new Scanner(System.in);
//用来存储多本书
static Book[] books = new Book[4];
//业务对象
static BookService bookService = new BookService();
/*
初始化数据
*/
public static void init() {
System.out.println("正在初始化");
books[0] = new Book(1001, "西游记", "吴承恩", "海南出版社", 100);
books[1] = new Book(1002, "红楼梦", "曹雪芹", "海南出版社", 120);
books[2] = new Book(1003, "水浒传", "施耐庵", "海南出版社", 80);
books[3] = new Book(1004, "三国演义", "罗贯中", "海南出版社", 90);
System.out.println("初始化完成");
}
/*
启动菜单
*/
public static void startMenu() {
boolean G = true;
while (G) {
System.out.println("----------图书管理系统----------");
System.out.println("1.查看图书");
System.out.println("2.添加图书");
System.out.println("3.修改图书");
System.out.println("4.删除图书");
System.out.println("0.退出系统");
System.out.println("请选择:");
int choose = scanner.nextInt();
switch (choose) {
case 1:
bookService.showBook(books);
break;
case 2:
books = bookService.addBook(books, scanner);
break;
case 3:
bookService.amendBook(books, scanner);
break;
case 4:
books = bookService.deleteBook(books, scanner);
case 0:
System.out.println("谢谢使用,正在退出");
G = false;
break;
}
}
}
}
业务类
package com.bun.library.service;
import com.bun.library.entity.Book;
import java.util.Arrays;
import java.util.Scanner;
/**
* @Author: Bun
* @Version: 1.0
* @Date: 2022/9/29-16:46
* @Since: jdk1.8
* @Name:
*/
public class BookService {
/*
查看图书
*/
public void showBook(Book[] books) {
for (Book book : books) {
System.out.println(book);
}
}
/*
添加图书
*/
public Book[] addBook(Book[] books, Scanner scanner) {
System.out.println("--->添加图书");
//图书对象
Book book = new Book();
//录入信息
System.out.println("请输入图书编号:");
book.setId(scanner.nextInt());
System.out.println("请输入图书名称:");
book.setName(scanner.next());
System.out.println("请输入图书作者:");
book.setAuthor(scanner.next());
System.out.println("请输入图书出版社:");
book.setAdress(scanner.next());
System.out.println("请输入图书价格:");
book.setPrice(scanner.nextInt());
books = Arrays.copyOf(books, books.length + 1);
books[books.length - 1] = book;
System.out.println("添加完成");
return books;
}
/*
修改图书
*/
public void amendBook(Book[] books, Scanner scanner) {
System.out.println("--->修改图书");
System.out.println("请输入想要修改的书籍的编号: ");
int inputBookId = scanner.nextInt();
//查找索引
int index = getIndexByBookId(inputBookId, books);
//先判断图书是否存在
if (index == -1) {
System.out.println("[修改失败,该图书不存在!]");
return;
}
//允许修改的前提--该图书存在
Book updateBook = books[index];
System.out.println("原图书名称:" + updateBook.getName() + "\t请输入新的图书名称:");
updateBook.setName(scanner.next());
System.out.println("原图书价格:" + updateBook.getPrice() + "\t请输入新的图书价格:");
updateBook.setPrice(scanner.nextInt());
System.out.println("原图书作者:" + updateBook.getAuthor() + "\t请输入新的图书作者:");
updateBook.setAuthor(scanner.next());
System.out.println("原图书出版社:" + updateBook.getAdress() + "\t请输入新的图书出版社:");
updateBook.setAdress(scanner.next());
System.out.println("[修改成功!]");
}
/*
图书索引
*/
private int getIndexByBookId(int inputBookId, Book[] books) {
//根据图书的编号来查找图书的索引位置
int index = -1;
for (int i = 0; i < books.length; i++) {
//根据索引获取图书
Book book = books[i];
//判断图书的编号
if (inputBookId == book.getId()) {
index = i;
break;
}
}
return index;
}
/*
图书的删除
*/
public Book[] deleteBook(Book[] books, Scanner scanner) {
System.out.println("--->删除图书");
System.out.println("请输入想要修改的书籍的编号: ");
int inputBookId = scanner.nextInt();
//查找索引
int index = getIndexByBookId(inputBookId, books);
//先判断图书是否存在
if (index == -1) {
System.out.println("[删除失败,该图书不存在!]");
return books;
}
//删除
for (int i = index; i < books.length - 1; i++) {
books[i] = books[i + 1];
}
//缩容copyof
books = Arrays.copyOf(books, books.length - 1);
System.out.println("[删除图书!]");
return books;
}
}
启动
package com.bun.library.test;
import com.bun.library.action.BookAction;
import com.bun.library.entity.Book;
import java.util.Scanner;
/**
* @Author: Bun
* @Version: 1.0
* @Date: 2022/9/29-16:23
* @Since: jdk1.8
* @Name:
*/
public class Start {
public static void main(String[] args) {
BookAction.init();
BookAction.startMenu();
}
}
ps:因为是刚开始接触的缘故,很多东西用的比较生疏,理解也不透彻,只能说是勉强会用