Java在控制台实现图书管理系统
利用面向对象的思想设计一个图书管理系统。图书的属性有:编号,书名,作者,价格。要求提供如下功能:
1、提供操作菜单,可以选择要进行的操作。
2、可以添加图书,添加图书时,编号需要唯一,添加成功,返回到菜单。
3、可以查询图书,显示所有图书信息,然后返回到菜单。
4、可以根据书名,查询单本图书信息,显示信息后,返回到菜单。
5、可以删除图书,通过编号删除,删除成功后,返回到菜单。
6、可以修改图书的信息,但编号不可以修改,修改成功后,返回到菜单。
7、可以退出系统,结束程序运行。
代码实现
创建图书类
class book {
private String bookId;
private String name;
private String author;
private double price;
public book() {
}
public book(String bookId, String name, String author, double price) {
this.bookId = bookId;
this.name = name;
this.author = author;
this.price = price;
}
public String getBookId() {
return bookId;
}
public void setBookId(String bookId) {
this.bookId = bookId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
在测试类中创建图书对象并对图书进行管理
package day_11;
import java.util.ArrayList;
import java.util.Scanner;
public class day_4 {
public static void main(String[] args) {
ArrayList<book> list = new ArrayList<>();
while (true) {
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("请输入你的选项进行图书管理:");
Scanner input = new Scanner(System.in);
String choose = input.next();
switch (choose){
case "1"-> addBook(list);
case "2"-> deleteBook(list);
case "3"-> updateBook(list);
case "4"-> showBook(list);
case "5"-> {
System.out.println("谢谢使用!");
System.exit(0);
}
default -> System.out.println("没有这个选项,请重新输入你的选项!!");
}
}
}
public static void addBook(ArrayList<book> list){
book b = new book();
Scanner input = new Scanner(System.in);
System.out.println("请输入你要添加的书的id:");
String bookId = input.next();
if(check(list,bookId)>=0){
System.out.println("该图书id已存在,请重新输入!!");
return;
}
b.setBookId(bookId);
System.out.println("请输入你要添加的书的书名:");
String name = input.next();
b.setName(name);
System.out.println("请输入你要添加书的作者:");
String author = input.next();
b.setAuthor(author);
System.out.println("请输入你要添加书的价格:");
double price = input.nextDouble();
b.setPrice(price);
list.add(b);
System.out.println("添加图书成功!!");
}
public static void deleteBook(ArrayList<book> list){
System.out.println("请输入你要删除的书的id:");
Scanner input = new Scanner(System.in);
String id = input.next();
for (int i = 0; i < list.size(); i++) {
book b = list.get(i);
if(b.getBookId().equals(id)){
list.remove(i--);
System.out.println("删除图书成功!!");
}
}
}
public static void updateBook(ArrayList<book> list){
System.out.println("请输入你要修改书的书id:");
Scanner input = new Scanner(System.in);
String id = input.next();
for (int i = 0; i < list.size(); i++) {
book b = list.get(i);
if(b.getBookId().equals(id)){
System.out.println("请输入新书的书名:");
String newBookName = input.next();
b.setName(newBookName);
System.out.println("请输入新书的作者:");
String newBookAuthor = input.next();
b.setAuthor(newBookAuthor);
System.out.println("请输入新书的价格:");
double newBookPrice = input.nextDouble();
b.setPrice(newBookPrice);
list.set(i,b);
}
}
}
public static void showBook(ArrayList<book> list){
System.out.println("书id"+"\t书名"+"\t\t作者"+"\t\t\t价格");
for (int i = 0; i < list.size(); i++) {
book b = list.get(i);
System.out.println(b.getBookId()+"\t\t"+b.getName()+"\t\t"+b.getAuthor()+"\t\t"+b.getPrice());
}
}
public static int check(ArrayList<book> list,String id){
for (int i = 0; i < list.size(); i++) {
book b = list.get(i);
if(b.getBookId().equals(id)){
return i;
}
}
return -1;
}
}
输出结果