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;
    }
    
}
2.1 可行性分析 采用现代化统的计算机信息网站系统,能够有效优化图书馆管理系统,使其高效的发挥最大作用,能够迅捷的为读者提供相应的服务。开发本系统的可行性研究如下: 2.1.1 技术可行性 技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。本系统采用JSP开发出友好美观的人机界面,便于用户理解、操作。数据库管理系统采用MySQL,它能够处理大量数据,同时保持数据的完整性、安全性。因此本系统的开发平台已成熟可行。硬件方面,在科技飞速发展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越便宜,因此硬件平台也能够满足本系统所需。 2.1.2 经济可行性 鉴于计算机技术发展异常迅猛,在硬件软件配置以及开发技术均以可行的情况下开发这样个管理系统成本不会很高,但其可以大大提高图书馆的工作效率,也是图书馆管理发展的必然趋势,其必将有比较宽阔的市场,因此改性统在经济可行性上时可行的。 2.2 图书借阅管理系统需求概述 2.2.1 系统目标 该系统主要建立个基于B/S模式的图书借阅管理系统,面对当起很多小型图书管理仍是人工管理带来的检索速度慢,效率低,借阅归还图书量大,图书统计工作量大,藏书不能完成及时更新的问题,该系统可以对跟系统的三个用户类型的使用实现: (1)对于读者在本系统的应用下可实现按照各种方式(如:书名,编号,作者)查询图书馆的藏书请客,方便的借阅图书,续借图书,归还图书,能够查询自己的借阅图书情况。 (2)对于图书馆工作人员能够实现方便的对图书进行查询,方便的进行读者借阅情况查询,方便的进行借书还书处理等,便捷的对图书信息进行添加、修改、删除,分类管理等操作,对读者信息进行相关添加,修改,分类管理等操作。 (3)对于系统管理员可以对图书馆信息进行修改更新操作,对系统用户进行添加、修改、删除、权限设置等操作,对图书馆的办证参数进行修改维护等操作功能。 2.2.2 用户类和用户特性 图书借阅管理系统个基于B/S模式的对图书馆进行高效率管理的应用系统,它的用户主要是读者和图书管理员,图书管理员通过本系统实现对图书及读者的高效管理,除此之外,还需要系统管理员对不同的用户进行权限的设置等操作。 三类用户的具体描述如表2.1所示。 表2.1用户具体描述
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值