java基础,菜单切换,查看图书,新增删除图书,借出归还图书,图书管理系统

/**
 * 
 * @author a2643116636
 * @date  2020-04-12
 */
public class book2 {
	// 创建对象
	book1 book = new book1();

	/**
	 * 初始化 已有图书,借出日期,借出状态,借出次数
	 */
	public void tu() {
		book.name[0] = "Java基础教程"; // 图书
		book.date[0] = "2020-3-15"; // 借出日期
		book.zhuang[0] = 1; // 借出状态
		book.count[0] = 0; // 借出次数
		book.name[1] = "数据库技术";
		book.date[1] = " ";
		book.zhuang[1] = 2;
		book.count[1] = 0;
		book.name[2] = "后羿射日";
		book.date[2] = " ";
		book.zhuang[2] = 2;
		book.count[2] = 0;
	}

	// 主菜单
	public void mune() {
		Scanner input = new Scanner(System.in);
		System.out.println("欢迎使用图书管理系统");
		System.out.println("-------------------------");
		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.println("-------------------------");
		System.out.println("请输入相应的编号");
		int num = input.nextInt();
		switch (num) { // 用户选择输出
		case 1:
			one();
			break;
		case 2:
			two();
			break;
		case 3:
			three();
			break;
		case 4:
			four();
			break;
		case 5:
			five();
			break;
		case 6:
			System.out.println("系统退出,谢谢使用!");
			break;
		default:
			System.out.println("您输入的指令有误!");
			break;
		}
	}

	// 用户输入0返回主菜单
	public void zhumune() {
		Scanner input = new Scanner(System.in);
		System.out.println("***********************");
		System.out.println("输入0返回主菜单:");
		int num = input.nextInt(); // 接收用户输出,返回主菜单
		if (num == 0) {
			System.out.print("\n");
			mune();
		} else { // 输入不正确提示输入有误
			System.out.println("您输入的口令有误!");
		}
	}

//  查看图书
	public void two() {
		System.out.println("===>>  查看图书\n");
		System.out.println("序号\t状态\t名称\t\t     借出日期");
		for (int i = 0; i < book.name.length; i++) { // 循环输出已有图书
			if (book.name[i] == null) { // 如果没有图书,则循环结束
				break;
			} else if (book.zhuang[i] == 1) { // 如果借出状态为1,则输出已借出
				System.out.println((i + 1) + "\t已借出\t" + "<<" + book.name[i] + ">>\t   " + book.date[i]);
			} else if (book.zhuang[i] == 2) { // 如果借出状态为2,则输出可借出
				System.out.println((i + 1) + "\t可借出\t" + "<<" + book.name[i] + ">>");
			}
		}
		zhumune();
	}

	// 新增图书
	public void one() {
		Scanner input = new Scanner(System.in);
		System.out.println("===>>  新增图书\n");
		System.out.println("请输入要新增图书的书名:");
		String Name = input.next(); // 接收要新增的图书
		for (int i = 0; i < book.name.length; i++) {
			int a = i + 1;
			if (book.name[i] == null) {
				book.name[i] = Name;// 找下标,增加图书
				book.zhuang[i] = 2;
				break;
			}
		}
		System.out.println("新增图书《" + Name + "》成功!");
		zhumune();
	}

	// 删除图书
	public void three() {
		Scanner input = new Scanner(System.in);
		boolean con = false;
		System.out.println("===>>  删除图书\n");
		System.out.println("请输入要删除的图书:");
		String Name = input.next(); // 接收要删除的图书
		// 查找每个元素前移一位
		for (int i = 0; i < book.name.length; i++) { // 循环找出图书
			if (book.name[i] != null && book.name[i].equalsIgnoreCase(Name) && book.zhuang[i] == 2) { // 图书组不能为空,有图书,图书状态为可借出时
				int a = i;
				while (book.name[a + 1] != null) { // 如果a的前面一个不为空
					book.name[a] = book.name[a + 1];
					book.zhuang[a] = book.zhuang[a + 1];
					book.date[a] = book.date[a + 1];
					book.count[a] = book.count[a + 1];
					a++;
				}
				// 最后一个不是空的位置置空
				book.name[i] = null;
				book.date[i] = null;
				System.out.println("删除图书《" + Name + "》成功!");
				con = true; // 表示删成功
				break;
			} else if (book.name[i] != null && book.name[i].equalsIgnoreCase(Name) && book.zhuang[i] == 1) { // 图书组不能为空,有图书,图书状态为已借出时
				System.out.println("该图书还在借出状态,不可删除!"); // 提醒用户还在借出状态不能删除
				con = true;
				break;
			}
		}
		if (!con) {
			System.out.println("没有找到该图书!");
		}
		zhumune();
	}

	// 借出图书
	public void four() {
		Scanner input = new Scanner(System.in);
		System.out.println("===>>  借出图书\n");
		System.out.println("请输入您要借出图书:");
		String Name = input.next(); // 接收用户要借出的图书
		for (int i = 0; i < book.name.length; i++) { // for循环查找图书
			if (book.name[i] == null) { // 未找到该图书
				System.out.println("未查找到该图书!");
				break;
			} else if (book.name[i].equals(Name) && book.zhuang[i] == 2) { // 找到该图书
				book.zhuang[i] = 1;
				System.out.println("请输入借出日期(年-月-日):");
				book.date[i] = input.next();
				System.out.println("成功借出图书《" + Name + "》");
				break;
			} else if (book.name[i].equals(Name) && book.zhuang[i] == 1) { // 图书已被借出
				System.out.println("该图书已被借出!");
				break;
			}
		}
		zhumune();
	}

	// 归还图书
	public void five() {
		Scanner input = new Scanner(System.in);
		System.out.println("===>>  归还图书\n");
		long money = 0; // 租金
		System.out.println("请输入归还的图书:");
		String Name = input.next(); // 接收用户归还的图书
		for (int i = 0; i < book.name.length; i++) { // 循环查找图书
			if (book.name[i] == null) { // 未找到该图书
				System.out.println("未查找到该图书!");
				break;
			} else if (book.name[i].equals(Name) && book.zhuang[i] == 1) { // 找到该图书
				book.zhuang[i] = 1;
				System.out.println("请输入归还日期(年-月-日):");
				String date = input.next(); // 接收用户归还日期
				money = charge(book.date[i], date); // 计算租金
				System.out.println("归还图书《" + Name + "》成功!");
				System.out.println("借出日期为:" + book.date[i]);
				System.out.println("归还日期为:" + date);
				System.out.println("应付租金:" + money);
				book.count[i] = book.count[i] + 1; // 计入借出次数
				break;
			} else if (book.name[i].equals(Name) && book.zhuang[i] == 2) { // 图书未被借出
				System.out.println("该图书还未被借出!无法进行归还!");
				break;
			}
		}
		zhumune();
	}

	/**
	 * 计算日期差 a1为借出日期 a2为归还日期
	 * 
	 * 字符串转为日期的两部: 1.定义时间格式 2.转换日期
	 * 
	 * getTime():时间跨度,用毫秒表示,1秒=1000毫秒
	 */
	private long charge(String string, String date) {
		long charge = 0;
		SimpleDateFormat a = new SimpleDateFormat("yyyy-MM-dd");
		try {
			Date a1 = a.parse(string);
			Date a2 = a.parse(date);
			charge = (a2.getTime() - a1.getTime()) / (24 * 60 * 60 * 1000);
		} catch (ParseException b) {
			b.printStackTrace();
		}
		return charge;
	}

	public static void main(String[] args) {
		book2 a = new book2();
		a.tu();
		a.mune();
	}
}
发布了10 篇原创文章 · 获赞 0 · 访问量 3

猜你喜欢

转载自blog.csdn.net/a2643116636/article/details/105474557
今日推荐