大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 Java圖書管理系統代碼

Java圖書管理系統代碼

更新時間:2022-07-08 11:26:15 來源:動力節點 瀏覽1647次

Java圖書管理系統需要哪些代碼?動力節點小編來告訴大家。

1.Book類

public class Book {
 private String name; //書名
 private String author; //作者
 public double price; //價格
 private String category; //分類
 private boolean state; //狀態  true-未借出  false-已借出
 //通過構造函數給定書的屬性
 public Book(String name,String author,double price,String category,boolean state){
  this.author = author;
  this.name = name;
  this.price = price;
  this.category = category;
  this.state = state;
 }
 public Book() {  //默認10本書
  this(10);
 }
 public Book(int i) {
  Person.books = new Book[i];
 }
 //屬性的獲取和設置
 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 getCategory() {
  return category;
 }
 public void setCategory(String category) {
  this.category = category;
 }
 public boolean getState() {
  return state;
 }
 public void setState(boolean state) {
  this.state = state;
 }
}

2.Library類

import java.util.Scanner;
public class Library {
 Scanner sc = new Scanner(System.in);
 //登錄函數:顯示登錄界面進行選擇登錄
 public void login() {
  int count = 0;
  Person p = null;
  while (count < 2) {
   System.out.println("===============jewel圖書管理系統===============");
   System.out.println("歡迎討論指正! qq505791225"+"\n");
   System.out.println("請登錄:1.普通用戶  2.管理員登錄  3.退出系統");
   int n = sc.nextInt();
   //通過輸入的值進行登錄判斷
   if (n == 3) {
    return;
   }
   switch (n) {
    case 1:
     System.out.println("請輸入姓名:");
     String Uname = sc.next();
     System.out.println("請輸入性別:");
     String Usex = sc.next();
     System.out.println("請輸入年齡:");
     int Uage = sc.nextInt();
     p = new User(Uname,Usex,Uage); //構造普通用戶對象
     System.out.println("登錄成功!");
     System.out.println("當前普通用戶:"+"姓名:" + p.getName() + " "+"性別:" + p.getSex() + " "+"年齡"+ p.getAge());
     //普通用戶循環操作
     while (true) {
      System.out.println("請輸入你的操作: 1.查詢書籍 2.借閱書籍 3.歸還書籍 4.顯示書籍列表 5.退出");
      int i = sc.nextInt();
      if (i == 5) {
       System.out.println("您已成功退出!");
       break;
      }else {
       p.operate();  //調用普通用戶的操作方法
      }
     }
     break;
    case 2:
     System.out.println("請輸入管理員姓名:");
     String Rname = sc.next();
     System.out.println("請輸入性別:");
     String Rsex = sc.next();
     System.out.println("請輸入年齡:");
     int Rage = sc.nextInt();
     p = new Root(Rname,Rsex,Rage);//構造管理員對象
     System.out.println("登錄成功!");
     System.out.println("當前管理員:"+"姓名:" + p.getName() + " "+"性別:" + p.getSex() + " "+"年齡" + p.getAge());
     while (true) {
      System.out.println("請輸入你的操作: 1.整理書籍 2.查閱書籍 3.增加書籍 4.刪除書籍 5.顯示書籍列表 6.退出");
      int j = sc.nextInt();
      if (j == 6) {
       System.out.println("您已成功退出!");
       break;
      }else{
       p.operate();//調用管理員的操作方法
      }
     } break;
   }
  }
 }
}

3.Person類(抽象類)

abstract class Person {
 public String name;
 public String sex;
 public int age;
 /**
  *  默認定義10本書籍。(預留3本新書的buffer,用來添加書籍)
  */
 public static Book[] books = new Book[]{
   new Book("西游記", "吳承恩", 10, "名著", true),
   new Book("紅樓夢", "曹雪芹", 20, "名著", true),
   new Book("三國演義", "羅貫中", 15, "名著", true),
   new Book("小茗同學", "小明", 5, "雜志", true),
   new Book("C與指針", "馬老師", 35, "計算機", true),
   new Book("Java編程思想", "王老師", 55, "計算機", true),
   new Book("新世界", "陳宇", 15, "雜志", true),
   new Book("阿衰與大頭妹", "阿衰", 5, "漫畫", true),
   new Book("一個人就一個人", "劉同", 35, "小說", true),
   new Book("活著", "陳彤", 36, "小說", true),
   new Book(),
   new Book(),
   new Book(),
 };
 public Person(String name, String sex, int age) {
  this.age = age;
  this.name = name;
  this.sex = sex;
 }
 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;
 }
 /**
  *  抽象類中的抽象方法
  */
 public abstract void operate();
}

4.operate接口

public interface operate{  //操作的接口
    void select(Book[] books); //查詢,查閱
    void delete(Book[] books);//刪除,借閱
    void add(Book[] books); //增加,還書
    void list(Book[] books); //顯示書列表
}

5.Root類

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Root extends Person implements Operate {
 //繼承了人的類,需要重寫它的抽象方法operate,實現了operate接口,需要重寫接口內的方法
 public Root(String name, String sex, int age) {
  //調用人基類的構造函數
  super(name, sex, age);
 }
 Scanner sc = new Scanner(System.in);
 /**
  * 管理員的操作
  */
 @Override
 public void operate() {
  System.out.print("請輸入確認操作:");
  int i = sc.nextInt();
  switch (i) {
   case 1:
    //整理
    sort(books);
    break;
   case 2:
    //查
    select(books);
    break;
   case 3:
    //加
    add(books);
    break;
   case 4:
    //刪
    delete(books);
    break;
   case 5:
    //列表
    list(books);
    break;
   default:
    System.out.println("輸入有誤!");
    break;
  }
 }
 /**
  *  compareable整理,重寫compare to,如果數組中有空的,則會出現空指針異常,把不空的拷到另一個新的數組,然后實現
  * @param books
  */
 public void sort(Book[] books) {
  System.out.println("圖書館中的書按價格整理如下:" + "\n" + "【書名】—— 【作者】——【價格】——【分類】——狀態");
  Arrays.sort(books, new Comparator<Book>() {
   @Override
   public int compare(Book o1, Book o2) {
    return (int) (o1.getPrice() - o2.getPrice());
   }
  });
  //遍歷數組打印書的列表
  for (int i = 0; i < books.length; i++) {
   if (books[i].price != 0) {
    System.out.println(
      "【" + books[i].getName() + "】—— 【" + books[i].getAuthor() + "】——【" + books[i].getPrice()
        + "】——【" + books[i].getCategory() + "】——" + books[i].getState());
   }
  }
 }
 @Override
 public void select(Book[] books) {
  System.out.println("請輸入書名進行查詢:");
  String name = sc.next();
  if (name != null) {
   boolean flag = false;
   int bookNum = 0;
   for (int i = 0; i < books.length; i++) {
    if (books[i].getName() != null && name.equals(books[i].getName())) {
     flag = true;
     bookNum = i;
     break;
    }
   }
   if (!flag) {
    System.out.println("未查詢到此書籍!");
   } else {
    System.out.println("書籍信息為:" + "\n" + "【書名】—— 【作者】——【價格】——【分類】——狀態");
    System.out.println(
      "【" + books[bookNum].getName() + "】—— 【" + books[bookNum].getAuthor() + "】——【" + books[bookNum]
        .getPrice() + "】——【" + books[bookNum].getCategory() + "】——" + books[bookNum]
        .getState());
   }
  }
 }
 @Override
 public void delete(Book[] books) {
  System.out.println("請輸入要刪除的書名:");
  String str = sc.next();
  if (str != null) {
   for (int i = 0; i < books.length; i++) {
    if (books[i].getName().equals(str)) {
     books[i] = null;
     System.out.println("刪除成功!");
     break;
    }
   }
  }
 }
 @Override
 public void add(Book[] books) {
  System.out.println("請輸入書名:");
  String name = sc.next();
  System.out.println("請輸入作者:");
  String author = sc.next();
  System.out.println("請輸入價格:");
  double price = sc.nextDouble();
  System.out.println("請輸入分類:");
  String category = sc.next();
  boolean flag = false;
  for (int i = 0; i < books.length; i++) {
   if (books[i].getName() == null) {
    flag = true;
    books[i].setName(name);
    books[i].setAuthor(author);
    books[i].setPrice(price);
    books[i].setCategory(category);
    books[i].setState(true);
    System.out.println("添加成功");
    break;
   }
  }
  if (!flag) {
   System.out.println("【警告】數組預留buffer最多只能添加3本新書,沒有位置放置新書了,如需添加多余3本,需要在‘Person'類中添加buffer!" + "\n");
  }
 }
 @Override
 public void list(Book[] books) {
  System.out.println("圖書列表如下:" + "\n" + "【書名】—— 【作者】——【價格】——【分類】——狀態");  //打印Book數組
  for (int i = 0; i < books.length; i++) {
   if (books[i] != null) {
    if (books[i].price != 0) {
     System.out.println(
       "【" + books[i].getName() + "】—— 【" + books[i].getAuthor() + "】——【" + books[i].getPrice()
         + "】——【" + books[i].getCategory() + "】——" + books[i].getState());
    }
   }
  }
 }
}

6.User類

import java.util.Scanner;
public class User extends Person implements Operate {   //user類繼承了人的類,  實現operate接口
 public User(String name, String sex, int age) {
  //調用人基類的構造函數(派生類不繼承基類的構造函數)
  super(name, sex, age);
 }
 Scanner sc = new Scanner(System.in);
 @Override
 public void operate() {  //普通用戶的操作
  System.out.print("請輸入確認操作:");
  int i = sc.nextInt();
  switch (i) {
   case 1:
    //查
    select(books);
    break;
   case 2:
    //借
    delete(books);
    break;
   case 3:
    //還
    add(books);
    break;
   case 4:
    //書列表
    list(books);
    break;
   default:
    System.out.println("輸入有誤!");
    break;
  }
 }
 @Override
 public void select(Book[] books) {
  System.out.println("請輸入書名進行查詢:");
  String name = sc.next();
  if (name != null) {
   boolean flag = false;
   int bookNum = 0;
   for (int i = 0; i < books.length; i++) {
    if (books[i].getName() != null && name.equals(books[i].getName())) {
     flag = true;
     bookNum = i;
     break;
    }
   }
   if (!flag) {
    System.out.println("未查詢到此書籍!");
   } else {
    System.out.println("書籍信息為:" + "\n" + "【書名】—— 【作者】——【價格】——【分類】——狀態");
    System.out.println(
      "【" + books[bookNum].getName() + "】—— 【" + books[bookNum].getAuthor() + "】——【" + books[bookNum]
        .getPrice() + "】——【" + books[bookNum].getCategory() + "】——" + books[bookNum]
        .getState());
   }
  }
 }
 @Override
 public void delete(Book[] books) {
  System.out.println("請輸入要借閱的書名:");
  String name = sc.next();
  if (name != null) {
   for (int i = 0; i < books.length - 1; i++) {
    if (books[i].getName().equals(name)) {
     //借走書時設置狀態為false
     if (!books[i].getState()) {
      System.out.println("【" + name + "】" + "已經被借出!");
     } else {
      books[i].setState(false);
      System.out.println("借閱成功!");
     }
     break;
    }
   }
  }
 }
 @Override
 public void add(Book[] books) {
  System.out.println("請輸入要還的書名:");
  String name = sc.next();
  if (name != null) {
   boolean flag = true;
   int i = 0;
   while (flag) {
    if (books[i].getName().equals(name)) {
     if (!books[i].getState()) {
      books[i].setState(true);
      System.out.println("還書成功!");
      flag = false;
     } else {
      System.out.println("該書籍已經被還回!");
      break;
     }
    }
    i++;
   }
  }
 }
 @Override
 public void list(Book[] books) {
  System.out.println("圖書列表如下:" + "\n" + "【書名】—— 【作者】——【價格】——【分類】——狀態");  //打印Book數組
  for (int i = 0; i < books.length; i++) {
   if (books[i] != null) {
    if (books[i].price != 0) {
     System.out.println(
       "【" + books[i].getName() + "】—— 【" + books[i].getAuthor() + "】——【" + books[i].getPrice()
         + "】——【" + books[i].getCategory() + "】——" + books[i].getState());
    }
   }
  }
 }
}

7.Main類

public class Main {
    public static void main(String[] args) {
        Library library = new Library(); //構造Library對象
        library.login(); //調用對象的登錄方法。
    }
}

 

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产欧美另类久久久精品免费 | 国产综合在线观看 | 欧美亚洲国产一区 | 中文字幕日本不卡一二三区 | 奇米四色影视 | 草草在线播放 | 久久天天躁狠狠躁夜夜躁综合 | 爱爱网网站免费观看 | 亚洲视频三区 | 亚洲精品综合一区二区三区在线 | 国产精品视频福利视频网 | 99精品久久久久久久婷婷 | 中国精品白嫩bbwbbw | 凹凸精品视频分类国产品免费 | 国产精品久久久久久久人热 | 99视频只有精品 | 国产一区中文字幕在线观看 | 性生活一级毛片 | 在线观看色视频 | 国产欧美精品 | 日本一级特黄毛片免费视频9 | 一区二区不卡久久精品 | 国产亚洲精品欧美一区 | 国产高清一区二区三区视频 | 亚洲综合日韩 | 九九热线 | 狠狠一区 | 免费一区二区三区久久 | 欧美真人毛片动作视频 | 99热久久国产精品这里小说 | 亚洲日本一区二区三区在线不卡 | 91国在线观看 | 国产精品入口麻豆午夜 | 色婷婷91| 国产精品久久久久激情影院 | 99在线精品视频 | 亚洲欧美日韩久久一区 | 狠狠干狠| 四虎欧美在线观看免费 | 午夜欧美性视频在线播放 | 国产精品亚洲专区在线播放 |