java实现简易的图书馆管理系统
比较适合新手练手的一个简易项目
直接上源码
Book
package code; /** * @author ztr * @version 创建时间:2021年3月4日 下午8:21:40 * 类说明 */ public class Book { private String name; private String author; private double price; private String type; // 有参构造器 public Book(String name, String author, double price, String type) { super(); 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 double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getType() { return type; } public void setType(String type) { this.type = type; } }
Cuser
package code; import java.util.Iterator; import java.util.List; import java.util.Scanner; /** * @author ztr * @version 创建时间:2021年3月4日 下午8:32:15 类说明 */ public class Cuser extends User { Scanner sc = new Scanner(System.in); public Cuser(String name, String sex, int age) { super(name, sex, age); } // 查找书籍 @Override public void serach(List<Book> LibraryBookDate) { // Scanner sc = new Scanner(System.in); System.out.println("请输入你想要查询的书籍名称"); String name = sc.next(); for (int i = 0; i < LibraryBookDate.size(); i++) { if (name != null) { if (LibraryBookDate.get(i).getName().equals(name)) { System.out.println("查询成功"); System.out.println(LibraryBookDate.get(i).getName() + " " + LibraryBookDate.get(i).getAuthor() + " " + LibraryBookDate.get(i).getPrice() + " " + LibraryBookDate.get(i).getType()); } } else { System.out.println("没有此书"); } } } //遍历图书 @Override public void display(List<Book> LibraryBookDate) { // 使用lambda表达式 Iterator<Book> it = LibraryBookDate.iterator(); while (it.hasNext()) { // 因为it.next()返回的是object类型所以需要进行类型强转 Book book = (Book) it.next(); System.out.println(book.getName() + " " + book.getAuthor() + " " + book.getPrice() + " " + book.getType()); } } //借阅书籍 @Override public void borrow(List<Book> LibraryBookDate) { // Scanner sc = new Scanner(System.in); System.out.println("请输入你想要借阅的书籍书名:"); String name = sc.next(); // 获取集合的迭代器 Iterator<Book> it = LibraryBookDate.iterator(); while (it.hasNext()) { Book book = (Book) it.next(); if (book.getName().equals(name)) { System.out.println(book.getName() + " " + book.getAuthor() + " " + book.getPrice() + " " + book.getType()); UserBookDate.userdateBooks.add(book); it.remove(); } else { System.out.println("没有该书籍"); } } } // 归还书籍 public void revert(List<Book> LibraryBookDate){ // Scanner sc = new Scanner(System.in); System.out.println("请输入需要归还的书籍:"); String name = sc.next(); Iterator<Book> it = UserBookDate.userdateBooks.iterator(); while(it.hasNext()){ Book book = (Book)it.next(); if(book.getName().equals(name)){ it.remove(); LibraryBookDate.add(book); } } } }
LibraryBookDate
package code; import java.util.ArrayList; import java.util.List; /** * @author ztr * @version 创建时间:2021年3月4日 下午9:21:13 * 类说明 */ public class LibraryBookDate { static List<Book> LibraryBookDate = new ArrayList<Book>(); }
Menu
ackage code; import java.util.Scanner; /** * @author ztr * @version 创建时间:2021年3月6日 下午4:28:07 类说明 */ public class Menu { public void menuRuser() { Ruser ruser = new Ruser("ztr", "man", 20); System.out.println("1.查阅书籍" + "/n" + "2.遍历书籍" + "/n" + "3.删除书籍" + "4.添加书籍" + "5.返回上一层"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); switch (n) { case 1: ruser.serach(LibraryBookDate.LibraryBookDate); menuRuser(); break; case 2: ruser.display(LibraryBookDate.LibraryBookDate); menuRuser(); break; case 3: ruser.borrow(LibraryBookDate.LibraryBookDate); menuRuser(); break; case 4: ruser.insert(LibraryBookDate.LibraryBookDate); menuRuser(); break; case 5: menu(); break; default: System.out.println("请重新输入:"); menuRuser(); break; } sc.close(); } public void menuCuser() { Cuser cuser = new Cuser("x", "man", 10); System.out.println("1.查阅书籍" + "/n" + "2.遍历书籍" + "/n" + "3.借阅书籍" + "4.归还书籍" + "5.返回上一层"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); switch (n) { case 1: cuser.serach(LibraryBookDate.LibraryBookDate); menuCuser(); break; case 2: cuser.display(LibraryBookDate.LibraryBookDate); menuCuser(); break; case 3: cuser.borrow(LibraryBookDate.LibraryBookDate); menuCuser(); break; case 4: cuser.revert(LibraryBookDate.LibraryBookDate); menuCuser(); break; case 5: menu(); break; default: System.out.println("请重新输入:"); menuCuser(); break; } sc.close(); } public void menu() { System.out.println("====图书馆管理系统==="); System.out.println("1.用户 2.管理员 3.退出"); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); switch (n) { case 1: menuCuser(); break; case 2: menuRuser(); case 3: break; default: System.out.println("请重新输入"); break; } sc.close(); } }
Operate
package code; import java.util.List; /** * @author ztr * @version 创建时间:2021年3月4日 下午8:25:01 * 类说明 */ public interface Operate { public void serach(List<Book> LibraryBookDate); public void display(List<Book> LibraryBookDate); public void borrow(List<Book> LibraryBookDate); }
Ruser
package code; import java.util.Iterator; import java.util.List; import java.util.Scanner; /** * @author ztr * @version 创建时间:2021年3月6日 下午3:56:25 类说明 */ public class Ruser extends User { Scanner sc = new Scanner(System.in); public Ruser(String name, String sex, int age) { super(name, sex, age); } // 查找书籍 @Override public void serach(List<Book> LibraryBookDate) { // Scanner sc = new Scanner(System.in); System.out.println("请输入你想要查找的书籍书名:"); String name = sc.next(); // 获取集合的迭代器 Iterator<Book> it = LibraryBookDate.iterator(); while (it.hasNext()) { Book book = (Book) it.next(); if (book.getName().equals(name)) { System.out.println(book.getName() + " " + book.getAuthor() + " " + book.getPrice() + " " + book.getType()); UserBookDate.userdateBooks.add(book); } else { System.out.println("没有该书籍"); } } } // 遍历图书 @Override public void display(List<Book> LibraryBookDate) { // 使用lambda表达式 Iterator<Book> it = LibraryBookDate.iterator(); while (it.hasNext()) { // 因为it.next()返回的是object类型所以需要进行类型强转 Book book = (Book) it.next(); System.out.println(book.getName() + " " + book.getAuthor() + " " + book.getPrice() + " " + book.getType()); } } // 删除图书 @Override public void borrow(List<Book> LibraryBookDate) { // Scanner sc = new Scanner(System.in); System.out.println("请输入你要删除书籍的书名:"); String name = sc.next(); // 获取集合的迭代器 Iterator<Book> it = LibraryBookDate.iterator(); while (it.hasNext()) { Book book = (Book) it.next(); if (book.getName().equals(name)) { System.out.println(book.getName() + " " + book.getAuthor() + " " + book.getPrice() + " " + book.getType()); it.remove(); } else { System.out.println("没有该书籍"); } } } // 添加图书 public void insert(List<Book> libraryBookDate) { // Scanner sc = new Scanner(System.in); System.out.println("请依次输入锁添加书籍的信息:1.书名2.作者3价格4类型"); String name = sc.next(); String author = sc.next(); double price = sc.nextDouble(); String type = sc.next(); Book book = new Book(name, author, price, type); libraryBookDate.add(book); } }
User
package code; /** * @author ztr * @version 创建时间:2021年3月4日 下午8:24:46 * 类说明 */ public abstract class User implements Operate{ private String name; private String sex; private int age; public User(String name, String sex, int age) { super(); this.name = name; this.sex = sex; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
UserBookDate
package code; import java.util.ArrayList; import java.util.List; /** * @author ztr * @version 创建时间:2021年3月6日 下午2:07:20 * 类说明 */ public class UserBookDate { static List<Book> userdateBooks = new ArrayList<Book>(); }
Test
package code; /** * @author ztr * @version 创建时间:2021年3月6日 下午4:47:25 * 类说明 */ public class Test { public static void main(String[] args){ Menu menuone = new Menu(); menuone.menu(); } }
Fileio
package FileIo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.Iterator; import code.Book; import code.LibraryBookDate; /** * @author ztr * @version 创建时间:2021年3月6日 下午9:29:18 类说明 */ public class Fileio { public void fileread() { // 创建字符缓冲流对象 BufferedReader br = null; try { br = new BufferedReader(new FileReader("src/book.txt")); String line; while ((line = br.readLine()) != null) { // 把读取到的字符串数据存储到集合中 String[] strArray = line.split(" "); String name = strArray[0]; String author = strArray[1]; double price = Double.parseDouble(strArray[2]); String type = strArray[3]; // 创建书本对象 Book book = new Book(name, author, price, type); LibraryBookDate.LibraryBookDate.add(book); } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) {// 写文件是会有IO异常 // TODO: handle exception e.printStackTrace(); } finally { // 为了保障close一定执行 if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } } } public void filewrite() { // 创建输出缓冲流对象 BufferedWriter bw = null; try { bw = new BufferedWriter(new FileWriter("src/book.txt")); // 遍历集合 Iterator<Book> iterator = LibraryBookDate.LibraryBookDate .iterator(); while (iterator.hasNext()) { Book book = (Book) iterator.next(); bw.write(book.getName() + " "); bw.write(book.getAuthor() + " "); bw.write(String.valueOf(book.getPrice()) + " "); bw.write(book.getType() + " "); bw.newLine(); // 强制数据输出 bw.flush(); } } catch (FileNotFoundException e) { // TODO: handle exception } catch (IOException e) { e.printStackTrace(); // TODO: handle exception } finally { if (bw != null) { try { bw.close(); } catch (IOException e2) { // TODO: handle exception e2.printStackTrace(); } } } } }
功能非常简单,但可以自己进行功能的扩展
笨鸟先飞