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;
    }
    
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章