品质商城网站建设,三亚婚纱摄影 织梦网站源码,wordpress warring,手机网站关键词排名一、前言#xff1a;
今天我们来分享一下一个简单的图书管理系统 我们知道图书馆系统可以有两个系统#xff0c;一个是管理员管理图书的系统#xff0c;管理员可以#xff08;1#xff09;查找某一本图书情况、#xff08;2#xff09;增加新的图书、#xff08;3
今天我们来分享一下一个简单的图书管理系统 我们知道图书馆系统可以有两个系统一个是管理员管理图书的系统管理员可以1查找某一本图书情况、2增加新的图书、3删除旧的图书、4查看图书馆有哪些图书、5图书类别管理 6读者管理 7借阅管理 另一个就是作为学生的我们去借书的系统我们去图书馆可以1查找某一本图书的情况、2借阅某一本书、3归还某一本书、4退出管理系统。
二、部分代码实现
1、代码的类、抽象类及接口
(1)book 这个包就是字面意识用来存放书的信息。
2operation 这个包存放的是一些操作的实现如查找图书退出系统等等容我慢慢道来。
3user 这个包是用于区分两种不同使用者而去实现相应的操作。
4Main 将以上所说的东西结合起来从而实现这个图书馆管理系统。
2、代码的具体实现 1book Book类用于设置一本书的书名、作者、价格、类型、是否被借出的情况
package book;public class Book {private String name;//书名private String author;//作者private int price;//价格private String type;//类型private boolean isBorrowed;//是否被借出// Book构造方法public Book(String name, String author, int price, String type) {this.name name;this.author author;this.price price;this.type type;}
//个个变量的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 int getPrice() {return price;}public void setPrice(int price) {this.price price;}public String getType() {return type;}public void setType(String type) {this.type type;}public boolean isBorrowed() {return isBorrowed;}public void setBorrowed(boolean borrowed) {isBorrowed borrowed;}//重写toString方法Overridepublic String toString() {return Book{ name name \ , author author \ , price price , type type \ ((isBorrowedtrue)? 已借出:未借出) };}
}BookList类一个书架初始存放三本书可以添加删除查找。
package book;public class BookList {private Book[] books new Book[10];//创建一个Book类的书组用来放书private int usedSize;//记录book有多少本书//BookList的构造方法存放所以书的内容public BookList(){books[0] new Book(三国演义,罗贯中,19,小说);books[1] new Book(西游记,吴承恩,29,小说);books[2] new Book(红楼梦,曹雪芹,9,小说);usedSize 3;}/**** param pos pos位置一定是合法的* return 一本书*/public Book getBook(int pos) {return books[pos];}/**** param pos pos位置一定是合法的* param book 你要放的书*/public void setBooks(int pos,Book book) {books[pos] book;}/*** 实时获取当前的 书的个数* return*/public int getUsedSize() {return usedSize;}/*** 实时的修改当前书架上的书的个数*/public void setUsedSize(int size) {usedSize size;}}2operation IOperation接口给operation通过work抽象方法
package operation;import book.BookList;//因为每个操作类都要实现work抽象方法所以创建一个接口提供work方法
public interface IOperation {void work(BookList bookList) ;
}
AddOperation类:进行添加操作 package operation;import book.BookList;
import book.Book;import java.util.Scanner;public class AddOperation implements IOperation{//重写work方法添加书籍的信息Overridepublic void work(BookList bookList) {System.out.println(新增图书);Scanner scanner new Scanner(System.in);System.out.println(请输入图书的名字);String name scanner.nextLine();System.out.println(请输入图书的作者:);String author scanner.nextLine();System.out.println(请输入图书的类型:);String type scanner.nextLine();System.out.println(请输入图书的价格:);int price scanner.nextInt();//new一个Book的对象保持新添加书籍的信息Book book new Book(name,author,price,type);//重新设置书架书的数量的值int currentSize bookList.getUsedSize();bookList.setBooks(currentSize,book);bookList.setUsedSize(currentSize1);System.out.println(新增书籍成功);}
}BorrowOperation类:进行借书操作package operation;import book.Book;
import book.BookList;import java.util.Scanner;public class BorrowOperation implements IOperation{//重写work方法Overridepublic void work(BookList bookList) {Scanner scnew Scanner(System.in);//给借书的人查看所有图书的信息方便借阅System.out.println(我们图书馆有);for (int i0;i bookList.getUsedSize();i){Book bookbookList.getBook(i);System.out.println(book);}System.out.println(请问你要借的图书是);String name sc.nextLine();//判断书籍是否可以借阅for (int i0;i bookList.getUsedSize();i){Book bookbookList.getBook(i);if (book.getName().equals(name)){System.out.println(找到图书);if(!book.isBorrowed()){System.out.println(该书未被借出借书成功);book.setBorrowed(true);System.out.println(book);break;}}if (i bookList.getUsedSize()-1)System.out.println(该书已被借出借书失败);}}
}DelOperation类进行删除操作
package operation;import book.Book;
import book.BookList;import java.util.Scanner;public class DelOperation implements IOperation{
//重写work方法Overridepublic void work(BookList bookList) {System.out.println(删除图书);Scanner scanner new Scanner(System.in);System.out.println(请输入要删除图书的名字);String name scanner.nextLine();int j0;for (int i0;i bookList.getUsedSize();i){Book bookbookList.getBook(i);if (book.getName().equals(name)){ji;break;}}//重新编排书籍的序号for (int ij;i bookList.getUsedSize()-1;i){Book bookbookList.getBook(i1);bookList.setBooks(i,book);}//更改书籍数量信息int currentSizebookList.getUsedSize();bookList.setUsedSize(currentSize-1);System.out.println(删除成功);}
}DisplayOperation类进行展示操作 package operation;import book.Book;
import book.BookList;public class DisplayOperation implements IOperation{//重写work方法Overridepublic void work(BookList bookList) {System.out.println(显示图书:);for (int i0;i bookList.getUsedSize();i){Book bookbookList.getBook(i);System.out.println(book);}}
}ExitOperation类进行退出操作package operation;import book.BookList;public class ExitOperation implements IOperation{//重写work方法public void work(BookList bookList) {System.out.println(退出系统);//终止当前运行的Java虚拟机。 参数作为状态代码为零则终止程序System.exit(0);}
}FindOperation类:进行查找操作package operation;import book.Book;
import book.BookList;import java.util.Scanner;public class FindOperation implements IOperation{//重写work方法Overridepublic void work(BookList bookList) {System.out.println(查找图书);Scanner scanner new Scanner(System.in);System.out.println(请输入图书的名字);String name scanner.nextLine();//查找图书for (int i0;i bookList.getUsedSize();i){Book bookbookList.getBook(i);if (book.getName().equals(name)){System.out.println(找到图书该图书((book.isBorrowed())? 已借出:未借出));System.out.println(book);break;}if (i bookList.getUsedSize()-1){System.out.println(未找到该图书);break;}}}
}ReturnOperation:归还图书
package operation;import book.BookList;
import book.Book;
import java.util.Scanner;public class ReturnOperation implements IOperation{//重写work类Overridepublic void work(BookList bookList) {System.out.println(归还图书);Scanner scanner new Scanner(System.in);System.out.println(请输入归还图书的名字);String name scanner.nextLine();int currentSize bookList.getUsedSize();
//修改图书状态是否被借出for (int i 0; i currentSize; i) {Book book bookList.getBook(i);if(book.getName().equals(name)) {book.setBorrowed(false);System.out.println(归还成功);return;}}}
}3user AdminUsers类:用于实现组合管理员用户的功能
package user;import operation.*;import java.util.Scanner;public class AdminUsers extends User {//AdminUsers构造方法public AdminUsers(String name) {super(name);this.operations new IOperation[]{new ExitOperation(),new FindOperation(),new AddOperation(),new DelOperation(),new DisplayOperation(),};}//设计管理员用户的菜单实现他们的功能public int menu(){System.out.println(hello this.name欢迎来到图书馆);System.out.println(1,查找图书);System.out.println(2,新增图书);System.out.println(3,删除图书);System.out.println(4,显示图书);System.out.println(0,提出系统);Scanner scnew Scanner(System.in);int choicesc.nextInt();return choice;}
}NormalUsers类用于实现组合普通用户的功能
package user;import operation.*;import java.util.Scanner;//继承User类使得User类可以分别去满足两种不同用户的需求
public class NormalUsers extends User {//NormalUsers构造方法public NormalUsers(String name) {super(name);this.operations new IOperation[]{new ExitOperation(),new FindOperation(),new BorrowOperation(),new ReturnOperation()};}//设计管理员用户的菜单实现他们的功能public int menu(){System.out.println(hello this.name欢迎来到图书馆);System.out.println(1,查找图书);System.out.println(2,借阅图书);System.out.println(3,归还图书);System.out.println(0,退出系统);Scanner scnew Scanner(System.in);int choicesc.nextInt();return choice;}}User类: 该类是user包中另两个类的父类通过此类来判断用户类型并加以实现
package user;import book.BookList;
import operation.IOperation;public abstract class User {//两个变量保存您的姓名 并创建一个IOperation的数组用于实现相应的操作protected String name;protected IOperation[] operations;public User(String name) {this.name name;}//通过用户类型来打印相应的菜单public abstract int menu();//选择你想进行的操作public void doOperation(int choice, BookList bookList) {this.operations[choice].work(bookList);}
}4Main函数
import book.BookList;
import user.AdminUsers;
import user.NormalUsers;
import user.User;import java.util.Scanner;public class Main {//判断你的用户类型public static User login(){Scanner scnew Scanner(System.in);System.out.println(请输入你的姓名);String name sc.nextLine();System.out.println(请确认你的身份1-》管理员0-》普通用户);int choicesc.nextInt();if (choice1)return new AdminUsers(name);elsereturn new NormalUsers(name);}public static void main(String[] args) {BookList bookListnew BookList();User userlogin();//实现你想进行的操作while (true){int choice user.menu();user.doOperation(choice,bookList);}}
}3、效果展示