用JAVA写一个无界面的简单图书管理系统
时间: 2023-10-06 16:12:25 浏览: 36
好的,我可以为您提供一个简单的图书管理系统的JAVA代码,如下:
```
import java.io.*;
import java.util.*;
class Book implements Serializable {
String bookName;
String author;
String publisher;
int year;
double price;
public Book(String bookName, String author, String publisher, int year, double price) {
this.bookName = bookName;
this.author = author;
this.publisher = publisher;
this.year = year;
this.price = price;
}
public String toString() {
return bookName + " " + author + " " + publisher + " " + year + " " + price;
}
}
public class BookManagementSystem {
static List<Book> bookList = new ArrayList<>();
public static void main(String[] args) {
loadData();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请选择操作:\n1.添加图书\n2.删除图书\n3.修改图书\n4.查找图书\n5.退出");
int choice = scanner.nextInt();
switch (choice) {
case 1:
addBook(scanner);
break;
case 2:
deleteBook(scanner);
break;
case 3:
updateBook(scanner);
break;
case 4:
searchBook(scanner);
break;
case 5:
saveData();
System.exit(0);
default:
System.out.println("输入有误,请重新输入!");
}
}
}
private static void loadData() {
try {
FileInputStream fileInputStream = new FileInputStream("book.dat");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
bookList = (List<Book>) objectInputStream.readObject();
objectInputStream.close();
fileInputStream.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private static void saveData() {
try {
FileOutputStream fileOutputStream = new FileOutputStream("book.dat");
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
objectOutputStream.writeObject(bookList);
objectOutputStream.flush();
objectOutputStream.close();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void addBook(Scanner scanner) {
System.out.print("请输入书名:");
String bookName = scanner.next();
System.out.print("请输入作者:");
String author = scanner.next();
System.out.print("请输入出版社:");
String publisher = scanner.next();
System.out.print("请输入出版年份:");
int year = scanner.nextInt();
System.out.print("请输入价格:");
double price = scanner.nextDouble();
Book book = new Book(bookName, author, publisher, year, price);
bookList.add(book);
System.out.println("添加成功!");
}
private static void deleteBook(Scanner scanner) {
System.out.print("请输入要删除的书名:");
String bookName = scanner.next();
Iterator<Book> iterator = bookList.iterator();
while (iterator.hasNext()) {
Book book = iterator.next();
if (book.bookName.equals(bookName)) {
iterator.remove();
System.out.println("删除成功!");
return;
}
}
System.out.println("没有找到该书!");
}
private static void updateBook(Scanner scanner) {
System.out.print("请输入要修改的书名:");
String bookName = scanner.next();
Iterator<Book> iterator = bookList.iterator();
while (iterator.hasNext()) {
Book book = iterator.next();
if (book.bookName.equals(bookName)) {
System.out.print("请输入新的作者(如不修改请输入原作者):");
String author = scanner.next();
System.out.print("请输入新的出版社(如不修改请输入原出版社):");
String publisher = scanner.next();
System.out.print("请输入新的出版年份(如不修改请输入原出版年份):");
int year = scanner.nextInt();
System.out.print("请输入新的价格(如不修改请输入原价格):");
double price = scanner.nextDouble();
if (!author.equals(book.author)) {
book.author = author;
}
if (!publisher.equals(book.publisher)) {
book.publisher = publisher;
}
if (year != book.year) {
book.year = year;
}
if (price != book.price) {
book.price = price;
}
System.out.println("修改成功!");
return;
}
}
System.out.println("没有找到该书!");
}
private static void searchBook(Scanner scanner) {
System.out.print("请输入要查找的书名:");
String bookName = scanner.next();
Iterator<Book> iterator = bookList.iterator();
while (iterator.hasNext()) {
Book book = iterator.next();
if (book.bookName.equals(bookName)) {
System.out.println(book);
return;
}
}
System.out.println("没有找到该书!");
}
}
```
这段代码实现了一个简单的图书管理系统,可以进行添加、删除、修改、查找、退出等操作。您可以根据需要进行修改和扩展。