0


Java 图书管理系统

💖欢迎来阅读子豪的博客(Java实操篇🍱)
👉有什么宝贵的意见或建议可以在留言区留言 💬
👽欢迎 素质三连 点赞+关注+收藏💯
🧑‍🚀码云仓库: 补集王子的代码仓库🧑‍🔧

BMS

项目实现

创几个包:用来组织类(分类)

在这里插入图片描述

🍔1. 每本书数据【book】

Book类

  1. publicclassBook{}

设置字段(书的属性)

  1. publicclassBook{privateString name;//书名privateString author;//作者privateint price;//价格privateString type;//类型privateboolean isBorrowed;//是否被借出 默认false

提供构造

实例化对象,设置几个属性,因为字段是private修饰的就给每属性get set方法
在加个构造和toString方法

  1. //构造publicBook(String name,String author,int price,String type){this.name = name;this.author = author;this.price = price;this.type = type;}

get+set方法,便于操作数据

  1. //get+setpublicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}publicStringgetAuthor(){return author;}publicvoidsetAuthor(String author){this.author = author;}publicintgetPrice(){return price;}publicvoidsetPrice(int price){this.price = price;}publicStringgetType(){return type;}publicvoidsetType(String type){this.type = type;}publicbooleanisBorrowed(){return isBorrowed;}publicvoidsetBorrowed(boolean borrowed){
  2. isBorrowed = borrowed;}

重写toString方法,便于打印显示,(借出处略加修改)

  1. //toString@OverridepublicStringtoString(){return"Book{"+"name='"+ name +'\''+", author='"+ author +'\''+", price="+ price +", type='"+ type +'\''+((isBorrowed==true)?"已经借出":"未借出")+'}';}

🍟2. 书架储存书【bookList】

BookList类

  1. publicclassBookList{}

设置书架大小

  1. //对多放十本privateBook[] books =newBook[3];privateint usedSize ;//实时记录 目前有几本书

初始化书架,类构造方法

  1. publicBookList(){
  2. books[0]=newBook("西游记","吴承恩",10,"小说");
  3. books[1]=newBook("三国演义","施耐庵",11,"小说");
  4. books[2]=newBook("红楼梦","曹雪芹",12,"小说");
  5. usedSize =3;}

getBook,拿出pos处的书

  1. //拿出pos处的书publicBookgetBook(int pos){return books[pos];}

setBook,给pos下标放一本书

  1. // 给pos下标放一本书publicvoidsetBook(int pos,Book book){
  2. books[pos]= book;}

getUesSize,setUesSize,获取实时书本数,用于修改

  1. //获取实时书本数,用于修改publicintsetUesSize(int size){return(usedSize = size);}publicintgetUesSize(){returnthis.usedSize;}

🍕3. 设置两个角色【user】

管理员【AdmainUser】

  1. publicclassAdmainUserextendsUser{}

构造方法,提供构造方法帮助父类构造

  1. //提供构造方法帮助父类构造publicAdmainUser(String name){super(name);//在new管理人员这个对象时,就把这些功能一并写入this.iOperations =newIOperation[]{newExitOperation(),//0newFindOperation(),newAddOperation(),newDelOperation(),newDisplayOperation()};

菜单

  1. //设置一个开始菜单publicint menu (){System.out.println("hello"+this.name+"欢迎使用BMS!");System.out.println("1.查找图书");System.out.println("2.增添图书");System.out.println("3.删除图书");System.out.println("4.显示图书");System.out.println("0.退出BNS");Scanner scanner =newScanner(System.in);return scanner.nextInt();}

普通用户【NormalUser】

  1. publicclassNormalUserextendsUser{}

菜单【menu】

  1. //设置一个开始菜单publicint menu (){System.out.println("hello"+this.name+"欢迎使用BMS!");System.out.println("1.查找图书");System.out.println("2.借阅图书");System.out.println("3.归还图书");System.out.println("0.退出BNS");Scanner scanner =newScanner(System.in);return scanner.nextInt();}

构造方法,提供构造方法帮助父类构造

  1. //提供构造方法帮助父类构造publicNormalUser(String name){super(name);//在new一般人员这个对象时,就把这些功能一并写入this.iOperations =newIOperation[]{newExitOperation(),//0newFindOperation(),newBorrowOperation(),newReturnOperation()};}

🌭4. 每个角色对应功能列表不一样

身份不同,拥有的功能不一样

管理员一般用户1.查找图书1.查找图书2.增添图书2.借阅图书3.删除图书3.归还图书4.显示图书0.退出BNS0.退出BNS

🍜5. 实现每一具体功能【operation】

接口【interface】

功能标准化【IOperation】

  1. publicinterfaceIOperation{//实现功能publicabstractvoidwork(BookList bookList);}

增添图书【AddOperation】

  1. implements实现接口
  2. 录入书本信息
  3. 用getUesSize(),在书架的size位置插入这本书

Tips:

要先输入字符串String,再输入整数int!
先输入整数再输字符串的话回车会被读进去

  1. packageoperation;importbook.Book;importbook.BookList;importjava.util.Scanner;publicclassAddOperationimplementsIOperation{@Overridepublicvoidwork(BookList bookList){System.out.println("添加图书!");Scanner scanner =newScanner(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();Book newbook =newBook(name,author,price,type);
  2. bookList.setBook(bookList.getUesSize(),newbook);
  3. bookList.setUesSize(bookList.getUesSize()+1);//更新数量System.out.println("新增书记成功!");}}

借阅图书【BorrowOperation】

  1. packageoperation;importbook.Book;importbook.BookList;importjava.util.Scanner;publicclassBorrowOperationimplementsIOperation{@Overridepublicvoidwork(BookList bookList){System.out.println("借出图书!");System.out.print("请输入借阅图书的名字:");int currentSize = bookList.getUesSize();Scanner scanner =newScanner(System.in);String name = scanner.nextLine();for(int i =0; i < currentSize; i++){Book book = bookList.getBook(i);if(book.getName().equals(name)){System.out.println("找到了!");
  2. book.setBorrowed(true);//改状态System.out.println("借阅成功!");return;}}System.out.println("没有这本书!");System.out.println();}}

删除图书【DelOperation】

  1. packageoperation;importbook.Book;importbook.BookList;importjava.util.Scanner;/**
  2. *覆盖
  3. */publicclassDelOperationimplementsIOperation{@Overridepublicvoidwork(BookList bookList){System.out.println("删除图书!");System.out.print("请输入图书的名字:");int currentSize = bookList.getUesSize();Scanner scanner =newScanner(System.in);String name = scanner.nextLine();int index =-1;//存下标int i =0;for(; i < currentSize; i++){Book book = bookList.getBook(i);if(book.getName().equals(name)){System.out.println("找到了!");
  4. index = i;System.out.println(book);System.out.println();}}if(i >= currentSize){System.out.println("找不到此书");return;}//直接覆盖for(int j = index; j < currentSize-1; i++){
  5. bookList.setBook(j,bookList.getBook(j +1));}
  6. bookList.setUesSize(bookList.getUesSize()-1);//更新数量
  7. bookList.setBook(currentSize-1,null);//置为空 相当于freeSystem.out.println("删除成功!");System.out.println();}}

显示图书【DisplayOperation】

  1. packageoperation;importbook.BookList;publicclassDisplayOperationimplementsIOperation{@Overridepublicvoidwork(BookList bookList){System.out.println("显示图书!");int currentSize = bookList.getUesSize();for(int i =0; i < currentSize; i++){System.out.println(bookList.getBook(i));}System.out.println();}}

归还图书【ReturnOperation】

  1. packageoperation;importbook.Book;importbook.BookList;importjava.util.Scanner;publicclassReturnOperationimplementsIOperation{@Overridepublicvoidwork(BookList bookList){System.out.println("归还图书!");System.out.print("请输入归还图书的名字:");int currentSize = bookList.getUesSize();Scanner scanner =newScanner(System.in);String name = scanner.nextLine();for(int i =0; i < currentSize; i++){Book book = bookList.getBook(i);if(book.getName().equals(name)){System.out.println("找到了!");
  2. book.setBorrowed(true);//改状态System.out.println("归还成功!");return;}}System.out.println("没有这本书!");System.out.println();}}

查找图书【FindOperation】

  1. packageoperation;importbook.Book;importbook.BookList;importjava.util.Scanner;publicclassFindOperationimplementsIOperation{@Overridepublicvoidwork(BookList bookList){System.out.print("请输入图书的名字:");int currentSize = bookList.getUesSize();Scanner scanner =newScanner(System.in);String name = scanner.nextLine();for(int i =0; i < currentSize; i++){Book book = bookList.getBook(i);if(book.getName().equals(name)){System.out.println("找到了!");System.out.println(book);System.out.println();return;}}System.out.println("没有这本书!");System.out.println();}}

退出系统【ExitOperation】

  1. packageoperation;importbook.BookList;publicclassExitOperationimplementsIOperation{@Overridepublicvoidwork(BookList bookList){System.out.println("退出系统!");System.exit(0);// 状态码 零代表正常结束,负数异常结束}}

🍚6. 主函数 【Main】

整理所有功能

  1. importbook.Book;importbook.BookList;importuser.AdmainUser;importuser.NormalUser;importuser.User;importjava.util.Scanner;//登录publicclassMain{publicstaticUserlogin(){System.out.println("请输入你的姓名:");Scanner scanner =newScanner(System.in);String name = scanner.nextLine();System.out.println("请输入你的身份: 1-->管理员,2-->普通用户");int choise = scanner.nextInt();if(choise ==1){returnnewAdmainUser(name);}else{returnnewNormalUser(name);}}publicstaticvoidmain(String[] args){//整合!BookList bookList =newBookList();//准备图书//登录,User user =login();while(true){int choise = user.menu();//父类的引用想访问子类的方法,此方法必须为抽象方法,动态绑定
  2. user.doOperator(choise, bookList);}}}

🥡7. 总结

我亦无他,惟手熟尔!,多动手实操!在实践中进步!

欢迎大家,点赞+关注+收藏!

标签: java

本文转载自: https://blog.csdn.net/qq_60021974/article/details/126031710
版权归原作者 补集王子 所有, 如有侵权,请联系我们删除。

“Java 图书管理系统”的评论:

还没有评论