- 項目:圖書借閱系統
- 項目簡介:開發一個圖書借閱系統,包括圖書常用的查看、新增、刪除、借出、歸還等功能
- 開發工具: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存儲圖書借出次數
}
- BookMgr.java:功能實現,主要是數組的操作
Java 在線API中文手冊:http://www.matools.com/api/java8
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;
}
}