java实现图书馆管理系统
本文实例为大家分享了java实现图书馆管理系统的具体代码,供大家参考,具体内容如下
思路:所有包都在book_manage包里
利用面向对象的多态特性去除了很多if-else的判断,不同的子类在父类所对应的方法不同。
1.首先建立一个book包
包里面有2个类,一个是Book,这个类里面包含一本书的全部信息
另外一个类是BookList,这个类是用来管理每一个书,通过这个类来寻找每一本书。
privateBook[]books=newBook[100];
Book数组里面存放所有的书。
2.再建立一个包Operation这个类里面有一个OI接口,通过对接口里面的Work方法重写,来实现管理员身份和普通用户身份的不同操作。
3.最后建立一个User包,里面有三个类,User,Admin,NormalUser
Admin和NormalUser都继承自User.
User里秒你有一个数组
protectedIO[]operation;
这个数组里面包含了用户或者管理员所具备的操作。
通过对数组的索引来确定具体需要调用的操作方法。
下面来看看代码吧:
book包
Book类
packagebook_manager.book; publicclassBook{ privateStringname; privateStringid; privateStringauthor; privateintprice; privateStringtype; privatebooleanisBorrow; publicBook(Stringname,Stringid,Stringauthor,intprice, Stringtype,booleanisBorrow){ this.name=name; this.id=id; this.author=author; this.price=price; this.type=type; this.isBorrow=isBorrow; } @Override//Object中内置的类,用来格式化打印book的信息 publicStringtoString(){ return"Book{"+ "name='"+name+'\''+ ",id='"+id+'\''+ ",author='"+author+'\''+ ",price="+price+ ",type='"+type+'\''+ ",isBorrow="+isBorrow+ '}'; } publicStringgetName(){ returnname; } publicbooleanisBorrow(){ returnisBorrow; } publicvoidsetBorrow(booleanbool){ this.isBorrow=bool; } publicStringgetId(){ returnid; } }
BookList类
packagebook_manager.book; importjava.util.Arrays; publicclassBookList{ privateBook[]books=newBook[100]; privateintsize; publicBookList(){ books[0]=newBook("金瓶梅", "001","兰陵笑笑生",100, "古典名著",false); books[1]=newBook("水浒传", "002","施耐庵",100, "古典名著",false); books[2]=newBook("西游记", "003","吴承恩",100, "古典名著",false); size=3; } publicintgetSize(){ returnsize; } publicvoidsetBooks(intindex,Bookbook){ books[index]=book; } publicvoidsetSize(intsize){ this.size=size; } publicBookgetBook(intindex){ returnbooks[index]; } }
Operation包:
ADD类
packagebook_manager.Operation; importbook_manager.book.*; importjava.util.Scanner; publicclassADDimplementsIO{ @Override publicvoidwork(BookListbookList){ Scannerscanner=newScanner(System.in); System.out.println("请输入书名"); Stringname=scanner.next(); System.out.println("请输入序号"); Stringid=scanner.next(); System.out.println("请输入作者"); Stringauthor=scanner.next(); System.out.println("请输入价格"); intprice=scanner.nextInt(); System.out.println("请输入类型"); Stringtype=scanner.next(); Bookbook=newBook(name,id, author,price,type,false); bookList.setBooks(bookList.getSize(),book); bookList.setSize(bookList.getSize()+1); System.out.println("添加成功"); } }
Borrow类
packagebook_manager.Operation; importbook_manager.book.Book; importbook_manager.book.BookList; importjava.util.Scanner; publicclassBorrowimplementsIO{ @Override publicvoidwork(BookListbookList){ inti=0; intflag=0; Scannerscan=newScanner(System.in); System.out.println("请输入需要借阅的书名"); Stringname=scan.next(); for(;iDelete类
packagebook_manager.Operation; importbook_manager.book.BookList; importjava.util.Scanner; publicclassDeleteimplementsIO{ publicvoidwork(BookListbookList){ Scannerscanner=newScanner(System.in); System.out.println("请输入想要删除的编号"); Stringid=scanner.next(); for(inti=0;iExit类
packagebook_manager.Operation; importbook_manager.book.BookList; publicclassExitimplementsIO{ @Override publicvoidwork(BookListbookList){ System.out.println("退出成功"); System.exit(0); } }Find类
packagebook_manager.Operation; importbook_manager.book.BookList; importjava.util.Scanner; publicclassFindimplementsIO{ @Override publicvoidwork(BookListbookList){ inti=0; intcount=0; Scannerscan=newScanner(System.in); System.out.println("请输入需要查找的书名"); Stringname=scan.next(); for(;iIO接口
packagebook_manager.Operation; importbook_manager.book.BookList; publicinterfaceIO{ abstractpublicvoidwork(BookListbookList); }PrintAll类
packagebook_manager.Operation; importbook_manager.book.BookList; publicclassPrintAllimplementsIO{ @Override publicvoidwork(BookListbookList){ for(inti=0;iReturn类
packagebook_manager.Operation; importbook_manager.book.BookList; importjava.util.Scanner; publicclassReturnimplementsIO{ @Override publicvoidwork(BookListbookList){ inti=0; intflag=0; Scannerscan=newScanner(System.in); System.out.println("请输入需要归还的ID"); Stringid=scan.next(); for(;iuser包:
User类
packagebook_manager.user; importbook_manager.Operation.*; importbook_manager.Operation.IO; importbook_manager.book.BookList; abstractpublicclassUser{ Stringname; protectedIO[]operation; publicUser(Stringname){ this.name=name; } abstractpublicintmenu();//该方法被重写 publicvoiddoOperation(intchoice,BookListbookList){ operation[choice].work(bookList); } }Admin类
packagebook_manager.user; importbook_manager.Operation.*; importjava.util.Scanner; publicclassAdminextendsUser{ publicAdmin(Stringname){ super(name); operation=newIO[]{ newExit(), newFind(), newADD(), newDelete(), newPrintAll(), }; } publicintmenu(){ System.out.println("============"); System.out.println("hello"+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.println("请输入您的选择:"); Scannerscanner=newScanner(System.in); intchoice=scanner.nextInt(); returnchoice; } }NormalUser
packagebook_manager.user; importbook_manager.Operation.*; importjava.util.Scanner; publicclassNormalUserextendsUser{ publicNormalUser(Stringname){ super(name); operation=newIO[]{ newExit(), newFind(), newBorrow(), newReturn(), newPrintAll() }; } publicintmenu(){ System.out.println("============"); System.out.println("hello"+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.println("请输入您的选择:"); Scannerscanner=newScanner(System.in); intchoice=scanner.nextInt(); //close本质上是在关闭System.in //由于后面还需要用到System.in,此处不能盲目关闭. //scanner.close(); returnchoice; } }最后还有一个Test类,里面放了main函数
packagebook_manager; importbook_manager.book.BookList; importbook_manager.user.Admin; importbook_manager.user.NormalUser; importbook_manager.user.User; importjava.util.Scanner; publicclassTest{ publicstaticvoidmain(String[]args){ BookListlist=newBookList(); Useruser=login(); //通过不同的choice和身份调用不同的Operation方法 while(true){ intchoice=user.menu(); user.doOperation(choice,list); } } publicstaticUserlogin(){ Scannerscanner=newScanner(System.in); System.out.println("请输入你的姓名"); Stringname=scanner.next(); System.out.println("请输入你的身份"); System.out.println("1.普通用户2.管理员"); introle=scanner.nextInt(); if(role==1){ returnnewNormalUser(name); } else{ returnnewAdmin(name); } } }更多学习资料请关注专题《管理系统开发》。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。