Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

1 圖書管理系統項目演示

圖書管理系統分析:

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

  1. 定義Book類
  2. 完成主界面和選擇
  3. 完成查詢所有圖書
  4. 完成添加圖書
  5. 完成刪除圖書
  6. 完成修改圖書
  7. 使用Debug追蹤調試

2 圖書管理系統之標準Book類

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

我們發現每一本書都有書名和價格,定義一個Book類表示書籍

public class Book {
private String name;
private double price;
public Book() {
}

public Book(String name, double price) {
this.name = name;
this.price = price;
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public double getPrice() {
return price;
}

public void setPrice(double price) {
this.price = price;
}
}

3 圖書管理系統之主界面和選擇的實現

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

主界面的內容其實就是通過打印語句打印出來的.但是要注意因爲每個操作過後都會重新回到主界面,所以使用while(true)死循環的方式.

public class BookManager {
public static void main(String[] args) {
while (true) {
//這是學生管理系統的主界面
System.out.println("--------歡迎來到學生管理系統--------");
System.out.println("1.查看所有書籍");
System.out.println("2.添加書");
System.out.println("3.刪除書");
System.out.println("4.修改書");
System.out.println("5.退出");
System.out.println("請輸入你的選擇:");


//創建鍵盤錄入對象
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
switch (num) {
case 1:
// 查看所有書籍
break;
case 2:
// 添加書籍
break;
case 3:
// 刪除書
break;
case 4:
// 修改書
break;
case 5:
// 退出
break;
default:
System.out.println("輸入錯誤,請重新輸入");
break;
}
}
}
}

4 圖書管理系統之查詢所有圖書

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

public class BookManager {
public static void main(String[] args) {
Map<String, ArrayList<Book>> map = new HashMap<>();
// 創建集合對象,用於存儲學生數據
ArrayList<Book> it = new ArrayList<Book>();
it.add(new Book("Java入門到精通", 99));
it.add(new Book("PHP入門到精通", 9.9));
map.put("it書籍", it);
ArrayList<Book> mz = new ArrayList<Book>();
mz.add(new Book("西遊記", 19));
mz.add(new Book("水滸傳", 29));
map.put("名著", mz)

while (true) {
//這是學生管理系統的主界面
System.out.println("--------歡迎來到學生管理系統--------");
System.out.println("1.查看所有書籍");
System.out.println("2.添加書");
System.out.println("3.刪除書");
System.out.println("4.修改書");
System.out.println("5.退出");
System.out.println("請輸入你的選擇:");

//創建鍵盤錄入對象
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
switch (num) {
case 1:
// 查看所有書籍
findAllBook(map);
break;
case 2:
// 添加書籍
break;
case 3:
// 刪除書
break;
case 4:
// 修改書
break;
case 5:
// 退出
System.out.println("謝謝你的使用");
System.exit(0); // JVM退出
break;
default:
System.out.println("輸入錯誤,請重新輸入");
break;
}
}
}
private static void findAllBook(Map<String, ArrayList<Book>> map) {
System.out.println("類型\t\t書名\t價格");
Set<Map.Entry<String, ArrayList<Book>>> entries = map.entrySet();
for (Map.Entry<String, ArrayList<Book>> entry : entries) {
String key = entry.getKey();
System.out.println(key);
ArrayList<Book> value = entry.getValue();
for (Book book : value) {
System.out.println("\t\t" + book.getName() + "\t" + book.getPrice());
}
}
}
}

5 圖書管理系統之添加圖書

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

private static void addBook(Map<String, ArrayList<Book>> map) {
// 創建鍵盤錄入對象
Scanner sc = new Scanner(System.in);
System.out.println("請輸入要添加書籍的類型:");
String type = sc.next();
System.out.println("請輸入要添加的書名:");
String name = sc.next();
System.out.println("請輸入要添加書的價格:");
double price = sc.nextDouble();
Book book = new Book(name, price);
// 拿到書籍列表
ArrayList<Book> books = map.get(type);
if (books == null) {
// 如果書籍列表不存在創建一個書籍列表
books = new ArrayList<>();
map.put(type, books);
}
// 將書添加到集合中
books.add(book);
System.out.println("添加" + name + "成功");
}

6 圖書管理系統之刪除圖書

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

private static void deleteBook(Map<String, ArrayList<Book>> map) {
// 創建鍵盤錄入對象
Scanner sc = new Scanner(System.in);
System.out.println("請輸入要刪除書籍的類型:");
String type = sc.next();
System.out.println("請輸入要刪除的書名:");
String name = sc.next();

// 拿到書籍列表  : 用Map集合的
ArrayList<Book> books = map.get(type);
if (books == null) {
System.out.println("您刪除的書籍類型不存在");
return;
}
for (int i = 0; i < books.size(); i++) {
Book book = books.get(i);
if (book.getName().equals(name)) {
books.remove(i); // 找到這本書,刪除這本書
System.out.println("刪除" + name + "書籍成功");
return; // 刪除書籍後結束方法
}
}
System.out.println("沒有找到" + name + "書籍");
}

7 圖書管理系統之修改圖書

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

 

private static void editBook(Map<String, ArrayList<Book>> map) {
// 創建鍵盤錄入對象
Scanner sc = new Scanner(System.in);
System.out.println("請輸入要修改書籍的類型:");
String type = sc.next();
System.out.println("請輸入要修改的書名:");
String oldName = sc.next();
System.out.println("請輸入新的書名:");
String newName = sc.next();
System.out.println("請輸入新的價格:");
double price = sc.nextDouble();

// 拿到書籍列表
ArrayList<Book> books = map.get(type); // 根本不不像一個技術人員
if (books == null) {
System.out.println("您修改的書籍類型不存在");
return;
}
for (int i = 0; i < books.size(); i++) {
Book book = books.get(i);
if (book.getName().equals(oldName)) {
// 找到這本書,修改這本書
book.setName(newName);
book.setPrice(price);
System.out.println("修改成功");
return; // 修改書籍後結束方法
}
}
System.out.println("沒有找到" + oldName + "書籍");
}

8 Debug追蹤調試

之前我們看程序的執行流程都是通過System.out.println();但是又不能讓程序執行到某條語句後停下來,也不能看到程序具體的執行步驟.而是執行完所有的語句程序結束了。

斷點調試可以查看程序的執行流程和暫停程序.可以快速解決程序中的bug

Debug調試窗口介紹

Java程序員的福音:Java項目教學之圖書管理系統(含源代碼)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章