如何使用Java实现图书管理系统(java,编程语言)

时间:2024-05-04 05:17:21 作者 : 石家庄SEO 分类 : 编程语言
  • TAG :

如何使用Java实现图书管理系统

一. 功能介绍

1.1 使用介绍

1.输入姓名
如何使用Java实现图书管理系统

2.选择身份
如何使用Java实现图书管理系统
3.根据身份打印不同功能菜单
如何使用Java实现图书管理系统

1.2 基本框架

如何使用Java实现图书管理系统


二、具体思路

book(包)
如何使用Java实现图书管理系统
operation(功能包)
如何使用Java实现图书管理系统
user(使用者包)
如何使用Java实现图书管理系统


三、代码实现

book(包)

Book(书类)

packagebook;/***User:gu'jiu*Date:2022-05-18*Time:14:45*Description:书*/publicclassBook{privateStringname;//书名privateStringauthor;//作者privatedoubleprice;//价格privateStringtype;//类型privatebooleanstate;//书的状态(已借出or未借出) //对书进行初始化,书的状态不用进行初始化(默认未借出)publicBook(Stringname,Stringauthor,doubleprice,Stringtype){this.name=name;this.author=author;this.price=price;this.type=type;this.state=state;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicStringgetAuthor(){returnauthor;}publicvoidsetAuthor(Stringauthor){this.author=author;}publicdoublegetPrice(){returnprice;}publicvoidsetPrice(doubleprice){this.price=price;}publicStringgetType(){returntype;}publicvoidsetType(Stringtype){this.type=type;}publicbooleanisState(){returnstate;}publicvoidsetState(booleanstate){this.state=state;}@OverridepublicStringtoString(){return"["+"name='"+name+'\''+",author='"+author+'\''+",price="+price+",type='"+type+'\''+","+(state==true?"已借出":"未借出")+']';}}

BookList(书架类)

packagebook;/***User:gu'jiu*Date:2022-05-18*Time:14:52*Description:书架*/publicclassBookList{privateBook[]books=newBook[10];privateintusedSize;publicBookList(){books[0]=newBook("三国演义","罗贯中",19.9,"小说");books[1]=newBook("西游记","吴承恩",29.9,"小说");books[2]=newBook("红楼梦","曹雪芹",26.9,"小说");usedSize=3;}publicBookgetBooks(intpos){//输入下标获取该下标的这本书returnbooks[pos];}publicvoidsetBooks(intpos,Bookbook){//输入下标和一本书,在该下标放入一本书this.books[pos]=book;}publicintgetUsedSize(){returnusedSize;}publicvoidsetUsedSize(intusedSize){this.usedSize=usedSize;}}

operation(功能包)

IOperation(功能接口)

packageoperation;importbook.BookList;/***User:gu'jiu*Date:2022-05-18*Time:15:07*Description:接口*/publicinterfaceIOperation{voidwork(BookListbookList);}

FindOperation(查找图书)

packageoperation;importbook.Book;importbook.BookList;importjava.util.Scanner;/***User:gu'jiu*Date:2022-05-18*Time:15:09*Description:查找书籍信息*/publicclassFindOperationimplementsIOperation{@Overridepublicvoidwork(BookListbookList){System.out.println();System.out.println("查找图书");System.out.println("------------------------");Scannerscanner=newScanner(System.in);System.out.print("请输入书的名称:");Stringname=scanner.nextLine();//获取书架中图书数量intsize=bookList.getUsedSize();//根据名字查找for(inti=0;i<size;i++){Bookbook=bookList.getBooks(i);if(book.getName().equals(name)){System.out.println(book);return;}}System.out.println("未找到该书。");}}

AddOperation(添加图书)

packageoperation;importbook.Book;importbook.BookList;importjava.util.Scanner;/***User:gu'jiu*Date:2022-05-18*Time:15:04*Description:新增书籍*/publicclassAddOperationimplementsIOperation{@Overridepublicvoidwork(BookListbookList){System.out.println();System.out.println("添加图书");System.out.println("------------------------");Scannerscanner=newScanner(System.in);System.out.print("请输入书名:");Stringname=scanner.nextLine();System.out.print("请输入作者:");Stringauthor=scanner.nextLine();System.out.print("请输入书的类型:");Stringtype=scanner.nextLine();System.out.print("请输入价格:");doubleprice=scanner.nextDouble();Bookbook=newBook(name,author,price,type);bookList.setBooks(bookList.getUsedSize(),book);//将书放入书架bookList.setUsedSize(bookList.getUsedSize()+1);//书籍数量+1}}

DelOperation(删除图书)

packageoperation;importbook.Book;importbook.BookList;importjava.util.Scanner;/***User:gu'jiu*Date:2022-05-18*Time:15:05*Description:删除书籍*/publicclassDelOperationimplementsIOperation{@Overridepublicvoidwork(BookListbookList){System.out.println();System.out.println("删除图书");System.out.println("------------------------");Scannerscanner=newScanner(System.in);System.out.print("请输入要删除的书名:");Stringname=scanner.nextLine();//获取书架中现在有几本书intsize=bookList.getUsedSize();inti=0;//根据书名找到这个本书的下标for(i=0;i<size;i++){Bookbook=bookList.getBooks(i);if(book.getName().equals(name)){break;}}if(i==size){System.out.println("删除失败,未找到该书。");return;}//通过前移将书删除for(i=0;i<size-1;i++){bookList.setBooks(i,bookList.getBooks(i+1));}bookList.setUsedSize(bookList.getUsedSize()-1);//书架中图书数量-1System.out.println("删除成功。");}}

BorrowOperation(借阅图书)

packageoperation;importbook.Book;importbook.BookList;importjava.util.Scanner;/***User:gu'jiu*Date:2022-05-18*Time:15:05*Description:借阅书籍*/publicclassBorrowOperationimplementsIOperation{@Overridepublicvoidwork(BookListbookList){System.out.println();System.out.println("借阅图书");System.out.println("------------------------");Scannerscanner=newScanner(System.in);System.out.print("请输入要借书的名称:");Stringname=scanner.nextLine();//获取书架中现在有几本书intsize=bookList.getUsedSize();for(inti=0;i<size;i++){Bookbook=bookList.getBooks(i);//判断在书架中是否有这本书if(book.getName().equals(name)){//判断书是否被借走if(!book.isState()){System.out.println("借阅成功!");book.setState(true);//将书的状态改为已借出return;}else{System.out.println("借阅失败,该书已被别人借走。");return;}}}System.out.println("借阅失败,未找到该书。");}}

ReturnOperation(归还图书)

packageoperation;importbook.Book;importbook.BookList;importjava.util.Scanner;/***User:gu'jiu*Date:2022-05-18*Time:15:10*Description:归还书籍*/publicclassReturnOperationimplementsIOperation{@Overridepublicvoidwork(BookListbookList){System.out.println();System.out.println("归还图书");System.out.println("------------------------");Scannerscanner=newScanner(System.in);System.out.print("请输入要还书的名称:");Stringname=scanner.nextLine();//获取书架中现在有几本书intsize=bookList.getUsedSize();for(inti=0;i<size;i++){Bookbook=bookList.getBooks(i);//判断在书架中是否有这本书if(book.getName().equals(name)){//判断书是否已被借走if(book.isState()){System.out.println("归还成功!");book.setState(false);//将书的状态改为未借出return;}else{System.out.println("归还失败,该书已还未被借走。");return;}}}System.out.println("归还失败,未找到该书。");}}

DisplayOperation(打印图书信息)

packageoperation;importbook.Book;importbook.BookList;/***User:gu'jiu*Date:2022-05-18*Time:15:06*Description:打印全部书籍信息*/publicclassDisplayOperationimplementsIOperation{@Overridepublicvoidwork(BookListbookList){System.out.println();System.out.println("显示全部图书");System.out.println("------------------------");intsize=bookList.getUsedSize();for(inti=0;i<size;i++){Bookbook=bookList.getBooks(i);System.out.println(book);}}}

ExitOperation(退出系统)

importbook.BookList;/***User:gu'jiu*Date:2022-05-18*Time:15:08*Description:退出系统*/publicclassExitOperationimplementsIOperation{@Overridepublicvoidwork(BookListbookList){System.out.println();System.out.println("退出系统。");System.out.println("------------------------");System.exit(0);}}

user(使用者包)

User(使用者抽象类)

packageuser;importbook.BookList;importoperation.IOperation;/***User:gu'jiu*Date:2022-05-18*Time:15:11*Description:使用者*/abstractpublicclassUser{protectedStringuserName;//使用者姓名protectedIOperation[]iOperations;//功能数组publicUser(StringuserName){this.userName=userName;}publicabstractintmenu();//输入选择,调用不同的功能publicvoiddoOperation(intchoice,BookListbookList){this.iOperations[choice].work(bookList);//动态绑定}}

AdminUser(管理员)

packageuser;importoperation.*;importjava.util.Scanner;/***User:gu'jiu*Date:2022-05-18*Time:15:13*Description:管理员*/publicclassAdminUserextendsUser{publicAdminUser(StringuserName){super(userName);//管理员功能this.iOperations=newIOperation[]{newExitOperation(),newFindOperation(),newAddOperation(),newDelOperation(),newDisplayOperation()};}@Overridepublicintmenu(){System.out.println();System.out.println("hello"+this.userName+"欢迎来到图书馆");while(true){System.out.println("------------------------");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("请输入你的操作:");Scannerscanner=newScanner(System.in);intchoice=scanner.nextInt();//保证输入数字有效if(choice>4||choice<0){System.out.println("输入有误请重新输入。");}else{returnchoice;}}}}

NormalUser(普通用户)

packageuser;importoperation.*;importjava.util.Scanner;/***User:gu'jiu*Date:2022-05-18*Time:15:13*Description:学生*/publicclassNormalUserextendsUser{publicNormalUser(StringuserName){super(userName);//用户功能this.iOperations=newIOperation[]{newExitOperation(),newFindOperation(),newBorrowOperation(),newReturnOperation(),};}@Overridepublicintmenu(){System.out.println();System.out.println("hello"+this.userName+"欢迎来到图书馆");while(true){System.out.println("------------------------");System.out.println("1.查找图书");System.out.println("2.借阅图书");System.out.println("3.归还图书");System.out.println("0.退出系统");System.out.println("------------------------");System.out.print("请输入你的操作:");Scannerscanner=newScanner(System.in);intchoice=scanner.nextInt();//保证输入数字有效if(choice>3||choice<0){System.out.println("输入有误请重新输入。");}else{returnchoice;}}}}

Test类

importbook.BookList;importuser.AdminUser;importuser.NormalUser;importuser.User;importjava.util.Scanner;/***User:gu'jiu*Date:2022-05-18*Time:15:20*Description:图书管理系统*/publicclassTest{publicstaticUserlogin(){System.out.println("欢迎使用图书管理系统");Scannerscanner=newScanner(System.in);System.out.print("请输入您的姓名:");Stringname=scanner.nextLine();while(true){System.out.println("-----------------------------");System.out.println("请选择您的身份:1>管理员2>普通用户");System.out.print("请输入:");intchoice=scanner.nextInt();//保证输入数字有效if(choice==1){returnnewAdminUser(name);}elseif(choice==2){returnnewNormalUser(name);}else{System.out.println("输入有误,请重新输入。");}}}publicstaticvoidmain(String[]args){BookListbookList=newBookList();Useruser=login();//向上转型while(true){intchoice=user.menu();user.doOperation(choice,bookList);}}}

四、部分代码(doOperation)解释

主函数中的user.doOperation(choice, bookList);中的doOperation方法比较难理解,我们来解释一下

1.user.引用的可能是两个对象
如何使用Java实现图书管理系统
2.在实例化这对象的时候,在构造方法中,我们已经将iOperations[]准备好了。
如何使用Java实现图书管理系统
3.根据输入下标(例如:2)访问相应对象,再调用work方法。
如何使用Java实现图书管理系统

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:如何使用Java实现图书管理系统的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Python3中return和yield的区别是什么下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18