需求分析
1. 确定系统的基本功能和界面设计。
2. 定义图书类(Book)及其属性和方法。
3. 定义图书管理系统类(LibrarySystem)及其属性和方法。
系统设计与实现
1. 创建一个图书类(Book),包含图书名称、作者、出版社等属性,并实现相关的get和set方法。
2. 创建一个图书管理系统类(LibrarySystem),包含添加图书、删除图书、查询图书信息等方法。
3. 在LibrarySystem类中,使用集合(如ArrayList)来存储图书信息。
4. 实现用户交互界面,可以使用命令行或者图形界面。
第一步:创建一个图书类(Book),包含图书名称、作者、出版社等属性
private String name;
? ?private String author;
? ?private String publisher;
? ?public Book(String name,String author,String publisher) {
? ? ? this.name=name;
? ? ? this.author=author;
? ? ? this.publisher=publisher;
? ?}
第二步:图书名称、作者、出版社实现相关的get和set方法。
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 String getPublisher() {
? ? ? ? return publisher;
? ? }
? ? public void setPublisher(String publisher) {
? ? ? ? this.publisher = publisher;
? ? }
第三步:创建一个图书管理系统类(LibrarySystem),包含添加图书、删除图书、查询图书信息等方法。
while (true) {
? ? ? ? ? ? System.out.println("请选择你要进行的操作:1:添加图书,2:删除图书,3:查询图书,4:查看图书,5:退出系统");
? ? ? ? ?// 键盘录入
? ? ? ? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? ? ? String type = sc.next();
? ? ? ? ? ? switch (type) {
? ? ? ? ? ? ? ? case "1":
? ? ? ? ? ? ? ? ? ? // 添加
? ? ? ? ? ? ? ? ? ? addBook(list);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "2":
? ? ? ? ? ? ? ? // 删除图书
? ? ? ? ? ? ? ? ? ? deleteBook(list);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "3":
? ? ? ? ? ? ? ? // 查询某本图书
? ? ? ? ? ? ? ? findBookByName(list);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "4":
? ? ? ? ? ? ? ? // 查看所有图书
? ? ? ? ? ? ? ? ? ? findAllBooks(list);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "5":
? ? ? ? ? ? ? ? System.out.println("感谢使用,再见");
? ? ? ? ? ? ? ? ? ? System.exit(0); // 退出系统
? ? ? ? ? ? ? ? default:
? ? ? ? ? ? ? ? ? ? System.out.println("选择有误,请重新输入");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
第四步:在LibrarySystem类中,使用集合(如ArrayList)来存储图书信息。
//添加图书
? ?private static void addBook(ArrayList<Book> list) {
? ? ? // TODO Auto-generated method stub
? ? ? // 键盘录入
? ? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? System.out.println("请输入图书信息:");
? ? ? ? System.out.println("名称:");
? ? ? ? String name = sc.next();
? ? ? ? System.out.println("作者:");
? ? ? ? String author = sc.next();
? ? ? ? System.out.println("出版社:");
? ? ? ? String publisher = sc.next();
? ? ? ? // 将信息封装到图书对象
? ? ? ? Book b = new Book(name, author, publisher);
? ? ? ? // 添加到集合
? ? ? ? list.add(b);
? ? ? ? System.out.println("~~~添加成功~~~");
? ? }
? ?// 删除图书
? ?private static void deleteBook(ArrayList<Book> list) {
? ? ? // TODO Auto-generated method stub
? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? System.out.println("请输入您要删除的图书名称:");
? ? ? ? String name = sc.next();
? ? ? ? for (int i = 0; i < list.size(); i++) {
? ? ? ? ? ? Book b = list.get(i);
? ? ? ? ? ? if (name.equals(b.getName())) { // 图书存在
? ? ? ? ? ? ? ? // 删除图书并结束方法
? ? ? ? ? ? ? ? list.remove(i);
? ? ? ? ? ? ? ? System.out.println("~~~删除成功~~~");
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? System.out.println("没有该名称的图书信息");
}
? ? // 根据图书的名称查询图书信息
? ? private static void findBookByName(ArrayList<Book> list) {
? ? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? System.out.println("请输入您要查询的图书名称:");
? ? ? ? String name = sc.next();
? ? ? ? for (int i = 0; i < list.size(); i++) {
? ? ? ? ? ? Book b = list.get(i);
? ? ? ? ? ? if (name.equals(b.getName())) {
? ? ? ? ? ? ? ? System.out.println("书名\t" + "作者\t" + "出版社");
? ? ? ? ? ? ? ? System.out.println(b.getName() + "\t" + b.getAuthor() + "\t" + b.getPublisher());
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? System.out.println("没有该名称图书信息");
? ? }
?// 查看所有图书信息
? ? private static void findAllBooks(ArrayList<Book> list) {
? ? ? ? if (list == null || list.size() == 0) {
? ? ? ? ? ? System.out.println("尚无图书信息");
? ? ? ? ? ? return;
? ? ? ? }
? ? ? ? System.out.println("书名\t" + "作者\t" + "出版社");
? ? ? ? for (int i = 0; i < list.size(); i++) {
? ? ? ? ? ? Book b = list.get(i);
? ? ? ? ? ? System.out.println(b.getName() + "\t" + b.getAuthor() + "\t" + b.getPublisher());
? ? ? ? }
? ? }
源代码:
Book.java:
package text;
public class Book {
? ?private String name;
? ?private String author;
? ?private String publisher;
? ?public Book(String name,String author,String publisher) {
? ? ? this.name=name;
? ? ? this.author=author;
? ? ? this.publisher=publisher;
? ?}
??
? ?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 String getPublisher() {
? ? ? ? return publisher;
? ? }
? ? public void setPublisher(String publisher) {
? ? ? ? this.publisher = publisher;
? ? }
}
LibrarySystem.java:
package text;
import java.util.*;
public class LibrarySystem {
? ?public static void main(String[] args) {
? ? ? // 创建集合用于存储图书信息
? ? ? ? ArrayList<Book> list = new ArrayList<>();
? ? ? ? while (true) {
? ? ? ? ? ? System.out.println("请选择你要进行的操作:1:添加图书,2:删除图书,3:查询图书,4:查看图书,5:退出系统");
? ? ? ? ?// 键盘录入
? ? ? ? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? ? ? String type = sc.next();
? ? ? ? ? ? switch (type) {
? ? ? ? ? ? ? ? case "1":
? ? ? ? ? ? ? ? ? ? // 添加
? ? ? ? ? ? ? ? ? ? addBook(list);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "2":
? ? ? ? ? ? ? ? // 删除图书
? ? ? ? ? ? ? ? ? ? deleteBook(list);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "3":
? ? ? ? ? ? ? ? // 查询某本图书
? ? ? ? ? ? ? ? findBookByName(list);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "4":
? ? ? ? ? ? ? ? // 查看所有图书
? ? ? ? ? ? ? ? ? ? findAllBooks(list);
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case "5":
? ? ? ? ? ? ? ? System.out.println("感谢使用,再见");
? ? ? ? ? ? ? ? ? ? System.exit(0); // 退出系统
? ? ? ? ? ? ? ? default:
? ? ? ? ? ? ? ? ? ? System.out.println("选择有误,请重新输入");
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ?//添加图书
? ?private static void addBook(ArrayList<Book> list) {
? ? ? // TODO Auto-generated method stub
? ? ? // 键盘录入
? ? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? System.out.println("请输入图书信息:");
? ? ? ? System.out.println("名称:");
? ? ? ? String name = sc.next();
? ? ? ? System.out.println("作者:");
? ? ? ? String author = sc.next();
? ? ? ? System.out.println("出版社:");
? ? ? ? String publisher = sc.next();
? ? ? ? // 将信息封装到图书对象
? ? ? ? Book b = new Book(name, author, publisher);
? ? ? ? // 添加到集合
? ? ? ? list.add(b);
? ? ? ? System.out.println("~~~添加成功~~~");
? ? }
? ?// 删除图书
? ?private static void deleteBook(ArrayList<Book> list) {
? ? ? // TODO Auto-generated method stub
? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? System.out.println("请输入您要删除的图书名称:");
? ? ? ? String name = sc.next();
? ? ? ? for (int i = 0; i < list.size(); i++) {
? ? ? ? ? ? Book b = list.get(i);
? ? ? ? ? ? if (name.equals(b.getName())) { // 图书存在
? ? ? ? ? ? ? ? // 删除图书并结束方法
? ? ? ? ? ? ? ? list.remove(i);
? ? ? ? ? ? ? ? System.out.println("~~~删除成功~~~");
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? System.out.println("没有该名称的图书信息");
}
? ? // 根据图书的名称查询图书信息
? ? private static void findBookByName(ArrayList<Book> list) {
? ? ? ? Scanner sc = new Scanner(System.in);
? ? ? ? System.out.println("请输入您要查询的图书名称:");
? ? ? ? String name = sc.next();
? ? ? ? for (int i = 0; i < list.size(); i++) {
? ? ? ? ? ? Book b = list.get(i);
? ? ? ? ? ? if (name.equals(b.getName())) {
? ? ? ? ? ? ? ? System.out.println("书名\t" + "作者\t" + "出版社");
? ? ? ? ? ? ? ? System.out.println(b.getName() + "\t" + b.getAuthor() + "\t" + b.getPublisher());
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? System.out.println("没有该名称图书信息");
? ? }
?// 查看所有图书信息
? ? private static void findAllBooks(ArrayList<Book> list) {
? ? ? ? if (list == null || list.size() == 0) {
? ? ? ? ? ? System.out.println("尚无图书信息");
? ? ? ? ? ? return;
? ? ? ? }
? ? ? ? System.out.println("书名\t" + "作者\t" + "出版社");
? ? ? ? for (int i = 0; i < list.size(); i++) {
? ? ? ? ? ? Book b = list.get(i);
? ? ? ? ? ? System.out.println(b.getName() + "\t" + b.getAuthor() + "\t" + b.getPublisher());
? ? ? ? }
? ? }
? ?}