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(;i
Delete类
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;i
Exit类
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(;i
IO接口
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;i
Return类
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(;i
user包:
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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。