如何使用Java实现图书管理系统
导读:本文共7697字符,通常情况下阅读需要26分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 一. 功能介绍1.1 使用介绍1.输入姓名2.选择身份3.根据身份打印不同功能菜单1.2 基本框架二、具体思路book(包)operation(功能包)user(使用者包)三、代码实现book(包)Book(书类)packagebook;/***User:gu'jiu*Date:2022-05-18*Time:14:45*Description:... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。一. 功能介绍
1.1 使用介绍
1.输入姓名
2.选择身份
3.根据身份打印不同功能菜单
1.2 基本框架
二、具体思路
book(包)
operation(功能包)
user(使用者包)
三、代码实现
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.
引用的可能是两个对象
2.在实例化
这对象的时候,在构造方法中,我们已经将iOperations[]
准备好了。
3.根据输入下标
(例如:2)访问相应对象,再调用work
方法。
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
如何使用Java实现图书管理系统的详细内容,希望对您有所帮助,信息来源于网络。