- 项目:图书借阅系统
- 项目简介:开发一个图书借阅系统,包括图书常用的查看、新增、删除、借出、归还等功能
- 开发工具:eclipse
- 语言:Java
- 知识点:程序控制结构、数组、IO
模块流程划分
将整个系统规划为三个文件来书写:
- Stsrt.java:程序入口->>main()函数,BookMgr类的声明和方法的调用
- BookSet.java:图书变量以及getters和setters的定义
- BookMgr.java:变量的初始化,菜单,功能方法的实现
程序执行效果图:
源码框架:
- 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;
}
}