Java實戰案例一:圖書借閱系統

  • 項目:圖書借閱系統
  • 項目簡介:開發一個圖書借閱系統,包括圖書常用的查看、新增、刪除、借出、歸還等功能
  • 開發工具:eclipse
  • 語言:Java
  • 知識點:程序控制結構、數組、IO

模塊流程劃分
在這裏插入圖片描述

將整個系統規劃爲三個文件來書寫:
  • Stsrt.java:程序入口->>main()函數,BookMgr類的聲明和方法的調用
  • BookSet.java:圖書變量以及getters和setters的定義
  • BookMgr.java:變量的初始化,菜單,功能方法的實現
程序執行效果圖:

在這裏插入圖片描述
以下只給出源碼框架,需要查看完整代碼的可於微信搜索公衆號“鑰道不止”或“suoyue_zhan”或下方直接掃碼關注並在後臺回覆“524055”即可獲取完整代碼

在這裏插入圖片描述

源碼框架:
  • Stsrt.java:此處可設置系統登錄密碼
package com;

public class Start {
	public static void main(String[] args) {
		BookMgr dm = new BookMgr();
		dm.initial();
		dm.startMenu();
	}	
}
  • BookSet.java:getters和setter的定義,可使用eclipse快速生成
    菜單導航欄->Source->Generate Getters an Setters
package com;

public class BookSet {
	String[] name = new String[50];		//數組1存儲圖書名稱
	int[] state = new int[50];			//數組2存儲圖書借出狀態:0->已借出 / 1->可借
	String[] date = new String[50];		//數組3存儲圖書借出日期
	int[] count = new int[50];			//數組4存儲圖書借出次數
}
package com;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Scanner;
import java.util.Date;

public class BookMgr {
	//創建圖書對象
	BookSet book = new BookSet();
	//已借出書籍數量
	private int lendCount = 0;
	//未借出書籍數量
	private int existCount = 0;
	//每一次的暫存租金
    private long charge;
    
	//getters/setters方法
	
	/**
	 * 初始化四個圖書
	 */
	public void initial() {
		book.name[0] = "數據結構";
		book.state[0] = 0;
		book.date[0] = "1997-7-1";
		book.count[0] = 12;
		
		book.name[1] = "數據庫";
		book.state[1] = 1;
		book.count[1] = 14;
		
		book.name[2] = "Java手冊";
		book.state[2] = 1;
		book.count[2] = 8;
		
		book.name[3] = "算法核心";
		book.state[3] = 1;
		book.count[3] = 4;
	}
	
	/**
	 * 開始菜單
	 */
	public void startMenu() {
		System.out.println("歡迎使用圖書借閱系統");
		System.out.println("-------------------------------------");
		System.out.println("0. 退     出");     
		System.out.println("1.借出排行榜");	 
		System.out.println("2.新增圖書");
		System.out.println("3.查看圖書");
		System.out.println("4.刪除圖書");
		System.out.println("5.借出圖書");
		System.out.println("6.歸還圖書");
		System.out.print("--------------------------------------\n");
		
		System.out.println("請選擇:");
		Scanner input = new Scanner(System.in);
		int choice = input.nextInt();
		switch(choice) {
			case 0:			//退出
				break;
			case 1:			
				list();
				returnMain();
				break;
			case 2:
				add();
				break;
			case 3:
				search();
		     	returnMain();
				break;
			case 4:
				delete();
				break;
			case 5:
				lend();
				break;
			case 6:
				returnbook();
				break;
			default:
				System.out.println("輸入有誤,請重新輸入...");	
				returnMain();
		}
		input.close();		
	}
	
	/**
	 * 返回主菜單
	 */
	public void returnMain() {
		Scanner input = new Scanner(System.in);
		System.out.println("輸入 0 返回:");
		if(input.nextInt() == 0) {
			startMenu();
		}
		else {
			System.out.println("輸入錯誤, 異常終止!");
		}
		input.close();
	}
	
	/**
	 * 借出排行榜
	 * @return
	 */
	public String[] list() {
		//定義新數組,用來存放排序後圖書信息
		String[] newname = new String[50];
		int[] newcount = new int[50];

		System.out.println("---> 排行榜\n");
    	System.out.println("**************************");
    	System.out.println("次數\t名稱");
    	//顯示排行榜信息
    	for(int i=newname.length-1;i>=0;i--) {
    		if(newname[i] != null) {
    			System.out.println(newcount[i]+"\t<<"+ newname[i]+ ">>" );
    		}
    	}
    	System.out.println("**************************");
     	return newname;
	}

	/**
	 * 新增圖書
	 */
	public void add() {
		//爲方便測試,拆分方法爲鍵盤輸入方法和核心追加書籍方法
		System.out.println("---> 新增圖書\n");    	
		System.out.print("請輸入圖書名稱: ");
		String name = getInputData();
		addBook(name);
		System.out.println("**************************");
	   	returnMain();
	}
	/**
	 * 鍵盤輸入數據,用於新增圖書和刪除圖書的輸入
	 * @return
	 */
	private String getInputData() {
		Scanner input = new Scanner(System.in);
		String name = input.next();
		return name;
	}
	/**
	 * 追加圖書
	 * @param naem
	 * @return
	 */
	public BookSet addBook(String name) {

		return book;
	}

	/**
	 * 查看圖書
	 */
	public void search() {

	}

	/**
	 * 刪除圖書
	 */
	public void delete() {
		System.out.println("---> 刪除圖書\n");
    	System.out.print("請輸入圖書名稱: ");
        String name = getInputData();
        //爲方便測試用例,抽出一個方法
        deleteBook(name);
        returnMain();
	}
	/**
	 * 刪除圖書的核心方法
	 * @param name
	 */
	public void deleteBook(String name) {

	}
	
	/**
	 * 借出圖書
	 */
	public void lend() {

	}
	
	/**
	 * 借出圖書的核心方法
	 * @param want
	 * @param lendDate
	 */
	public void lendBook(String want,String lendDate) {

	}

	/**
     * 歸還圖書
     */
    public void returnbook() {

    }
    /**
     * 歸還圖書並計算租金
     */
    public void returnbook(String want, String redate) {
        
    }
    /**
     * 計算日期差
     *
     * @param dstr1 第一個日期
     * @param dstr2 第二個日期
     */
    public long charge(String dstr1, String dstr2) {
	
		return  0;
    }
    
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章