您好,欢迎访问一九零五行业门户网

怎么用Java代码实现图书管理系统

一、功能介绍此图书管理系统借助idea开发工具实现
图书馆系统一共有两种身份的访问:
1.管理员身份:
2.普通用户身份:
我们一共有三个包分别是book,operations,user实现.
二、main包main函数主要进行大致流程的进行,图书库的初始化,图书管理系统的登录,以及具体操作的选择,即实施.
import book.booklist;import user.adminuser;import user.normaluser;import user.user;import java.util.scanner;public class main { public static void main(string[] args) { //1.先初始化图书库,以及初始化: booklist booklist = new booklist(); //2.登录 user user = login();//向上转型,user接受管理员或者用户对象 //3.打印菜单,进行具体操作 while(true) { int choice = user.menu(); user.dooperation(choice,booklist); } }}
登录功能:
public static user login() { system.out.println("请输入你的姓名: "); scanner scanner = new scanner(system.in); string username = scanner.nextline(); system.out.println("请输入你的身份: 1-> 管理员 2-> 用户"); int choice = scanner.nextint(); if(choice == 1) { return new adminuser(username); }else { return new normaluser(username); } }
三、user包
因为有两套系统,管理员和普通用户,所以我们将共同属性提取出来一个user抽象类,以达到代码复用
1. userpackage user;import book.booklist;import operations.ioperation;public abstract class user { protected string name; ioperation[] ioperations; public user(string name) { this.name = name; } public abstract int menu(); public void dooperation(int choice, booklist booklist) { ioperations[choice].work(booklist); }}
2. adminuserpackage user;import operations.*;import java.util.scanner;public class adminuser extends user{ public adminuser(string name) { super(name); this.ioperations = new ioperation[]{ new exitoperation(), new findoperation(), new addoperation(), new deloperation(), new displayoperation() }; } public int menu() { system.out.println("欢迎: "+name+"来到图书馆"); 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.println("请输入你的操作: "); scanner scanner = new scanner(system.in); int choice = scanner.nextint(); return choice; }}
3. normaluserpackage user;import operations.*;import java.util.scanner;public class normaluser extends user{ public normaluser(string name) { super(name); this.ioperations = new ioperation[]{ new exitoperation(), new findoperation(), new borrowoperation(), new returnoperation() }; } public int menu() { system.out.println("欢迎: "+name+"来到图书馆"); system.out.println("**********************************"); system.out.println("1. 查找图书"); system.out.println("2. 借阅图书"); system.out.println("3. 归还图书"); system.out.println("0. 退出图书"); system.out.println("**********************************"); system.out.println("请输入你的操作: "); scanner scanner = new scanner(system.in); int choice = scanner.nextint(); return choice; }}
四、book包我们对book的属性进行书写,以及在booklist种对图书库的书进行初始化.
1. bookpackage book;public class book { private string name;//书名 private string author;//作者 private int price;//价格 private string type;//书的类型 private boolean isborrowed;//书默认未借出 public book(string name, string author, int price, string type) { this.name = name; this.author = author; this.price = price; this.type = type; } public string getname() { return name; } public void setname(string name) { this.name = name; } public string getauthor() { return author; } public void setauthor(string author) { this.author = author; } public int getprice() { return price; } public void setprice(int price) { this.price = price; } public string gettype() { return type; } public void settype(string type) { this.type = type; } public boolean isborrowed() { return isborrowed; } public void setborrowed(boolean borrowed) { isborrowed = borrowed; } @override public string tostring() { return "book{" + "name='" + name + '\'' + ", author='" + author + '\'' + ", price=" + price + ", type='" + type + '\'' + ","+ ((isborrowed == true) ? "该书已借出" : "该书未借出" )+ '}'; }}
2. booklistpackage book;public class booklist { public book[] books = new book[100]; public int usedsize;//用来存当前共有多少本书 /** * 事先通过代码块 * * 事先存进去三本书 */ { books[0] = new book("java","高斯林",95,"it"); books[1] = new book("c++","姚琳",93,"it"); books[2] = new book("python","马瑟斯",80,"it"); this.usedsize = 3; } public book getpos(int pos) { //获取某一位置的书 return books[pos]; } public void setbooks(book book,int pos) { //存储一本书 到指定位置 books[pos] = book; } public int getusedsize() { return usedsize; } public void setusedsize(int usedsize) { this.usedsize = usedsize; }}
五、operations包我们的图书管理系统有很多具体的操作,为了后面方便多态,以及检验错误,所以我们实现一个具体的ioperation接口,每一个具体的操作去实现这个接口.
1. ioperation接口package operations;import book.booklist;public interface ioperation { void work(booklist booklist);}
2. addoperation增加图书:
package operations;import book.book;import book.booklist;import java.util.scanner;public class addoperation implements ioperation{ @override public void work(booklist booklist) { system.out.println("新增图书! "); system.out.println("请输入要新增的图书的名字: "); scanner scanner = new scanner(system.in); string name = scanner.nextline(); system.out.println("请输入要新增的图书的作者: "); string author = scanner.nextline(); system.out.println("请输入要新增的图书的价格: "); int price = scanner.nextint(); system.out.println("请输入要新增的图书的类型: "); string type = scanner.nextline(); book book = new book(name,author,price,type); //1.获取当前书存放的位置 int cursize = booklist.getusedsize(); //2.把书放在指定位置 booklist.setbooks(book,cursize); //3.更新书的个数 booklist.setusedsize(cursize+1); }}
3. borrowoperation借阅图书:
package operations;import book.book;import book.booklist;import java.util.scanner;public class borrowoperation implements ioperation{ @override public void work(booklist booklist) { system.out.println("借阅图书! "); system.out.println("请输入要借阅的图书的名字: "); scanner scanner = new scanner(system.in); string name = scanner.nextline(); for (int i = 0; i < booklist.getusedsize(); i++) { book book = booklist.getpos(i); if(name.equals(book.getname())) { if(book.isborrowed()) { system.out.println("该书已经被借出! "); }else { book.setborrowed(true); system.out.println("借阅图书成功! "); return; } } } system.out.println("没有你要借阅的书! "); }}
4. deloperation删除图书:
package operations;import book.book;import book.booklist;import java.util.scanner;public class deloperation implements ioperation{ @override public void work(booklist booklist) { system.out.println("删除图书! "); system.out.println("请输入要删除的图书: "); scanner scanner = new scanner(system.in); string name = scanner.nextline(); //查找图书是否有此图书,记录下标 int index = -1; for (int i = 0; i < booklist.getusedsize(); i++) { book book = booklist.getpos(i); if(name.equals(book.getname())) { index = i; break; } } if(index == -1) { system.out.println("没有 "+name+"这本书!"); return; } for (int i = index; i < booklist.getusedsize()-1; i++) { book book = booklist.getpos(i+1); booklist.setbooks(book,i); } //删除的书,要置空 booklist.setbooks(null, booklist.getusedsize()-1); booklist.setusedsize(booklist.getusedsize()-1); }}
5. displayoperation显示图书:
package operations;import book.book;import book.booklist;public class displayoperation implements ioperation{ @override public void work(booklist booklist) { system.out.println("显示图书! "); for (int i = 0; i < booklist.getusedsize(); i++) { book book = booklist.getpos(i); system.out.println(book); } }}
6. exitoperation退出图书:
package operations;import book.booklist;public class exitoperation implements ioperation{ @override public void work(booklist booklist) { system.out.println("退出系统! "); system.exit(0); }}
7. findoperation查找图书:
package operations;import book.book;import book.booklist;import java.util.scanner;public class findoperation implements ioperation{ @override public void work(booklist booklist) { //查找图书 system.out.println("查找图书! "); system.out.println("请输入要查找的图书: "); scanner scanner = new scanner(system.in); string name = scanner.nextline(); for (int i = 0; i < booklist.getusedsize(); i++) { book book = booklist.getpos(i); if(name.equals(book.getname())) { system.out.println("找到了! "); system.out.println(book); return; } } system.out.println("没有这本书! "); }}
8. returnoperation归还图书:
package operations;import book.book;import book.booklist;import java.util.scanner;public class returnoperation implements ioperation{ @override public void work(booklist booklist) { system.out.println("归还图书! "); system.out.println("请输入要归还的图书的名字: "); scanner scanner = new scanner(system.in); string name = scanner.nextline(); for (int i = 0; i < booklist.getusedsize(); i++) { book book = booklist.getpos(i); if(name.equals(book.getname())) { book.setborrowed(false); system.out.println("归还图书成功! "); return; } } system.out.println("没有你要归还的书! "); }}
以上就是怎么用java代码实现图书管理系统的详细内容。
其它类似信息

推荐信息