用java做图书管理系统步骤,java图书管理程序

  用java做图书管理系统步骤,java图书管理程序

  

目录

前言主函数书的创建对用户的操作对书的操作

 

  

前言

今天的内容主要是利用前面所学的知识点:类,抽象类,封装,继承,多态,接口等进行的一个简单的代码练习。

 

  主要要求:

  1、用户登录

  2、管理端

  查找图书新增图书删减图书显示图书列表退出系统3、用户端

  查找图书借阅图书归还图书退出系统我们可以将以上内容分为对书的创建初始化,对用户的操作,对书的操作。

  

主函数

Main:(对所有流程进行整合)

 

  导入图书。书单;导入用户。普通用户;导入用户AdminUser。导入用户.用户导入Java。util。扫描仪;公众的类主{公共静态用户登录(){系统。出去。打印(请输入你的姓名:);扫描仪扫描仪=新扫描仪(系统。在);字符串名称=扫描仪。next line();System.out.println(请选择你的身份:1-管理员0-普通用户);int choice=scanner。nextint();if(choice==1){ return new AdminUser(name);}否则{返回新的普通用户(姓名);} }公共静态void main(String[]args){ BookList BookList=new BookList();用户us=log in();//向上转型while(true){ int choice=us。menu();//多态绑定us.doWork(选择,书单);} }}

  

书的创建

图书:

 

  包书;//创建图书公共类书{私有字符串名称;//书名私有字符串作者;//书的作者私有字符串类型;//书的类型私有(同Internationalorganizations)国际组织价格;//书的价格布尔值被借用;//书是否被借出//在这里我们就不对借款进行构造,在最后打印的时候对他进行判断就好公共书籍(字符串名称,字符串作者,字符串类型,int价格){ this.name=namethis.author=作者;this.type=typethis.price=价格;} public String getName(){ return name;} public void set name(String name){ this。name=名称;}公共字符串getAuthor() {返回作者;} public void set author(字符串作者){ this。作者=作者;} public String getType(){ return type;} public void setType(String类型){ this。type=类型;} public int getPrice(){ return price;} public void set price(int price){ this。价格=价格;} public boolean is borrow(){ return is borrow;} public void set bordered(boolean bordered){ is bordered=bordered;} @将公共字符串重写为

  String() { return "Book{" + "name=" + name + + ", author=" + author + + ", type=" + type + + ", price=" + price + ((isBorrowed==true)?" 已被借出":" 未被借出") + }; }}BookList:

  

package book;//创建书架public class BookList { private Book[] books=new Book[10];//创建一个数组当书架放书,假设一共可以放10本 public int usedSize;//书架上有效放书数 public BookList(){//假设一开始书架上就放了三本书 books[0]=new Book("红楼梦","曹雪芹","文学",55); books[1]=new Book("西游记","吴承恩","文学",65); books[2]=new Book("水浒传","施耐庵","文学",23); usedSize=3; } public int getUsedSize(){ return usedSize; } public void setUsedSize(int usedSize){ this.usedSize=usedSize; } //获取一本书的位置 public Book getpos(int pos){ return this.books[pos]; } //在下标为pos的位置上放一本书(添加) public void setBook(int pos,Book book){ this.books[pos]=book; }}

 

  

对用户的操作

创建用户user类:

 

  

package User;import book.BookList;import operation.IOperation; public abstract class user { protected String name; protected IOperation[] iOperations;//创建操作类数组,通过返回的数字用于对书的操作 public user(String name){ this.name=name; } public abstract int menu();//用于动态绑定 public void doWork(int choice, BookList bookList){ iOperations[choice].work(bookList); }}

创建管理员用户类AdminUser ,是 user 的子类.

 

  

package User;import operation.*;import java.util.Scanner;public class AdminUser extends user { public AdminUser(String name) { super(name); this.iOperations=new IOperation[]{//初始化数组,将菜单上的数字与对应的操作放好 new ExitOperation(), new FindOperation(), new AddOperation(), new DelOperation(), new DisplayOperation() }; } public int menu(){ System.out.println("========管理员的菜单========"); System.out.println("欢迎"+this.name+"来到图书馆"); System.out.println("1.查找图书"); System.out.println("2.新增图书"); System.out.println("3.删减图书"); System.out.println("4.显示图书"); System.out.println("0.查退出系统"); System.out.println("==========================="); System.out.print("请选择你要的操作: "); Scanner scanner=new Scanner(System.in); int choice=scanner.nextInt(); return choice;//返回选择的数字 }}

创建普通用户类NormalUser, 是 user 的子类.

 

  

package User;import operation.*;import java.util.Scanner;public class NormalUser extends user { public NormalUser(String name){ super(name); this.iOperations=new IOperation[]{ new ExitOperation(), new FindOperation(), new BorrowOperation(), new ReturnOperation() }; } public int menu(){ System.out.println("========普通用户的菜单========"); System.out.println("欢迎"+this.name+"来到图书馆"); System.out.println("1.查找图书"); System.out.println("2.借阅图书"); System.out.println("3.归还图书"); System.out.println("0.退出系统"); System.out.println("============================"); System.out.print("请选择你要的操作: "); Scanner scanner=new Scanner(System.in); int choice=scanner.nextInt(); return choice; }}

 

  

对书的操作

创建接口 IOperation:

 

  

package operation;import book.BookList;import java.util.Scanner;public interface IOperation { Scanner scanner=new Scanner(System.in); void work(BookList bookList);}

创建增加图书类AddOperation,继承接口 IOperation

 

  

package operation;import book.Book;import book.BookList;import java.util.Scanner;public class AddOperation implements IOperation{ public void work(BookList bookList){ System.out.println("新增图书!"); 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(); Book book=new Book(name,author,type,price);//新创建一本书 int size= bookList.getUsedSize(); bookList.setBook(size,book); bookList.setUsedSize(size+1); System.out.println("新增图书成功"); }}

创建删减图书类DelOperation,继承接口 IOperation

 

  

package operation;import book.Book;import book.BookList;public class DelOperation implements IOperation{ public void work(BookList bookList){ System.out.println("删减图书"); System.out.println("请输入要删减图书的名字:"); String name=scanner.nextLine(); int size= bookList.getUsedSize(); int index=0; int i=0; for (i = 0; i <size ; i++) { Book book = bookList.getpos(i); if(name.equals(book.getName())) { index=i; break; } } if(i>=size){ System.out.println("没有你要删除的图书"); } //删除就是要将j+1下标的信息放进j下标里面信息去,这样子j里面的信息就被删除了 for (int j = index; j < size-1; j++) { Book book=bookList.getpos(j+1);//获取j+1下标放的书的信息给j下标 bookList.setBook(j,book); } bookList.setBook(size,null);//删除之后,把最后一个下标信息置为null bookList.setUsedSize(size-1);//下标减1 System.out.println("删除成功"); }}

创建查找图书类FindOperation,继承接口 IOperation

 

  

package operation;import book.BookList;import book.Book;public class FindOperation implements IOperation{ public void work(BookList bookList){ System.out.println("查找图书!"); System.out.println("请输入要查找书的名字"); String name = scanner.nextLine(); int size = bookList.getUsedSize(); for (int i = 0; i < size; i++) { Book book = bookList.getpos(i);//找到这本书的信息 if(name.equals(book.getName())) {//比较名字是否相同 System.out.println("找到了这本书,信息如下:"); System.out.println(book); return; } } System.out.println("没有找到这本书!"); }}

创建显示图书列表类DisplayOperation,继承接口 IOperation

 

  

package operation;import book.Book;import book.BookList;public class DisplayOperation implements IOperation{ public void work(BookList bookList){ System.out.println("显示图书"); for(int i=0;i<bookList.usedSize;i++){ Book book=bookList.getpos(i); System.out.println(book); } }}

创建借阅图书列表类BorrowOperation,继承接口 IOperation

 

  

package operation;import book.Book;import book.BookList;public class BorrowOperation implements IOperation{ public void work(BookList bookList){ System.out.println("借阅图书"); System.out.println("请输入你要借阅的图书的名字"); String name=scanner.nextLine(); int size= bookList.getUsedSize(); for(int i=0;i<size;i++){ Book book = bookList.getpos(i); if(name.equals(book.getName())) { book.setBorrowed(true); System.out.println("借阅成功"); System.out.println(book); return; } } System.out.println("没有你要借阅的书"); }}

创建归还图书列表类ReturnOperation,继承接口 IOperation

 

  

package operation;import book.Book;import book.BookList;public class ReturnOperation implements IOperation{ public void work(BookList bookList){ System.out.println("归还图书"); System.out.println("请输入你要归还的图书的名字"); String name=scanner.nextLine(); int size= bookList.getUsedSize(); for(int i=0;i<size;i++){ Book book = bookList.getpos(i); if(name.equals(book.getName())) { book.setBorrowed(true); System.out.println("归还成功"); System.out.println(book); return; } } System.out.println("没有你要归还的书"); }}

创建退出系统类ExitOperation,继承接口 IOperation

 

  

package operation;import book.BookList;public class ExitOperation implements IOperation{ public void work(BookList bookList){ System.out.println("退出系统"); System.exit(0); }}

到此这篇关于Java快速实现图书管理基本功能的文章就介绍到这了,更多相关Java图书管理内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

 

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: