Java迷你图书管理系统

Java数组图书管理系统

使用数组实现图书管理

综合使用 Java变量,数组,选择结构,循环结构等知识实现图书管理

功能分析:

  1. 新增图书
  • 用户能够向系统中添加新的图书,当图书库中没有位置储放图书时能够提示用户没有位置装新书
  1. 查看图书
  • 向用户美观地展示出当前图书库中有的图书种类
  1. 删除图书
  • 在新增图书的同时,会对已经不重要的图书进行清理,不再提供借阅,此时就需要将这些图书的信息从系统中删除
  1. 借出图书
  • 用户输入所需要借出的图书名称,记录用户所借阅图书的日期,对用户所输入的数字进行相应的判断
  1. 归还图书
  • 用户输入所需要归还的图书名称,记录用户所归还图书的日期,判断归还日期是否真实,然后计算相应的租金
  1. 退出
  • 退出系统

 	public static void main(String[] args) {
		int isReturn = 0;
		double money = 1;
		
		Scanner input = new Scanner(System.in);
		String[] name = {
				"罗马假日","童年","在人间","我的大学","骆驼祥子",null
		};
		int[] state = {
				1,0,0,0,0,0
		};  		
		int[] count = {
				15,12,30,0,0,0
		};
		int[] date = new int[6]; 
		
		try {

			do {
				System.out.println("欢迎使用迷你图书管理系统\n----------------------------------");
				System.out.println("\n\t1.新增图书\n\t2.查看图书\n\t3.删除图书\n\t4.借出图书\n\t5.归还图书\n\t6.退出\n");
				System.out.println("----------------------------------");
				
				//提示语句
				System.out.println("请选择:");
				int num = input.nextInt();

				//根据用户输入进入不同分支
				switch (num) {
				case 1:
					System.out.println("--->新增图书\n");
					//声明变量装新增图书的下标
					int index01 = -1;
					//判断有没有位置装新增图书
					boolean check = false;
					//获取新增图书的下标,同时判断有没有位置装新增图书
					for (int i = 0; i < name.length; i++) {
						//判断有没有位置装新增图书
						if (name[i] == null) {
							index01 = i;	//获取图书校标
							check = true;	//有位置装新书
							break;			//跳出当前循环
						}
					}
					
					if (check) {
						//添加图书
						System.out.println("请输入图书名称:");
						name[index01] = input.next();
						System.out.println("新增《" + name[index01] + "》成功!");
					}else{
						System.out.println("该系统内已不能储存图书,请选择其他服务...");
					}
					break;
			
				case 2:
					System.out.println("--->查看图书\n");
					//查看图书
					System.out.println("序号\t状态\t名称\t借出日期\t借出次数");
					
					//判断图书状态
					for (int i = 0; i < name.length; i++) {
						if (name[i] != null) {
							//通过三目运算符判断图书状态与借出日期(可用if替换)
							String out = state[i] == 0 ? "可借阅":"已借出";
							String time = date[i] == 0 ? " ":date[i]+"号";
							System.out.println((i + 1) + "\t" + out + "\t" + name[i] + "\t" + time + "\t" + count[i]);
						}
					}				
					break;
					
				case 3:
					System.out.println("--->删除图书\n");
					System.out.println("请输入要删除的图书名称:");
					String delete = input.next();
					
					int index02 = -1;
					boolean isTrue = false;
					
					for (int i = 0; i < name.length; i++) {
						if (name[i].equals(delete)) {
							index02 = i;
							isTrue = true;
							break;
						}
					}			
					if (isTrue) {
						if (state[index02] == 0) {
							for (int i = index02; i < name.length-1; i++) {
								name[i] = name[i+1];							
								date[i] = date[i+1];
								state[i] = state[i+1];
								count[i] = count[i+1];
							}
							name[5] = null;
							System.out.println("《" + delete + "》图书删除成功!");
						}else{
							System.out.println("你要删除的图书被借出,无法执行删除操作!");
						}
					}else{
						System.out.println("查无此书...");
					}
					
					break;
					
				case 4:
					boolean isFind = true;
					System.out.println("--->借出图书\n");
					System.out.println("请输入图书名称:");
					String book = input.next();

					int index03 = -1;			
					for (int i = 0; i < name.length; i++) {
						if (name[i].equals(book)) {
							index03 = i;
							isFind = true;
							break;
						}
					}
					if (isFind) {
						if (state[index03] == 0) {
							System.out.println("请输入借阅日期:");
							int outdate=input.nextInt();
							
							while(outdate > 31 || outdate < 1){
								System.out.println("您的输入日期有误,请重新输入...");
								outdate=input.nextInt();
							}
							
							System.out.println("《" + book + "》借出成功。");
							date[index03]=outdate;
							state[index03]=1;
							count[index03]++;
						}else{
							System.out.println("你要借阅的书《" + book + "》已被借出。");
						}
					}else{
						System.out.println("没有找到匹配的图书,请检查输入...");
					}
					break;
				case 5:
					System.out.println("--->归还图书\n");
					System.out.println("请输入归还图书名称:");
					String give = input.next();
					int index04 = -1;
					boolean again = false;
					for (int i = 0; i < name.length; i++) {
						if (name[i].equals(give)) {
							index04 = i;
							again = true;
							break;
						}
					}
					if (again) {
						if (state[index04] == 1) {
							System.out.println("请输入归还日期:");
							int giveDate=input.nextInt();
							
							while(giveDate < date[index04] || giveDate > 31){
								System.out.println("输入日期有误,请重新输入:");
								giveDate=input.nextInt();
							}
							
							System.out.println("归还《" + give + "》成功。");
							System.out.println("借出日期为:" + date[index04] + "号");
							System.out.println("归还日期为:" + giveDate + "号");
							System.out.println("应付租金为:" + (giveDate-date[index04]) * money + "元");
							state[index04] = 0;
							date[index04] = 0;
						}else{
							System.out.println("你要归还的书未借出,无法完成归还操作");
						}
					}else{
						System.out.println("你要归还的书不存在!");
					}
				break;
				
				case 6:
					System.out.println("谢谢使用...");
					return;
				default:
					System.out.println("您的输入有误,请重新输入...");
					while(num > 6 || num < 0){
						num = input.nextInt();
					}
					break;
				}
				
				System.out.println("********************************************\n输入0返回:");
				isReturn = input.nextInt();
				while (isReturn != 0) {
					System.out.println("\n您的输入有误,请重新输入...(输入0返回)");
					isReturn = input.nextInt();
				}
			} while (isReturn == 0);
			
		}catch (InputMismatchException e) {
			System.out.println("您的输入有误,请退出重新输入...");
		}
	}

你可能感兴趣的:(自己创作)