import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class Test4 { //成员变量区域 static Scanner input = new Scanner(System.in); static String[] names = new String[50]; static String[] status = new String[50]; static String[] dates = new String[50]; static int[] counts = new int[50]; public static void main(String[] args) { init(); menu(); } /* 图书管理系统--主菜单 */ public static void menu() { 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("7.退\t出"); System.out.println("请选择:"); int number = input.nextInt(); if (number == 1) { System.out.println("---->新增图书"); System.out.println("请输入图书的名称"); menu1(); } else if (number == 2) { menu2(); System.out.println("---->查看图书"); } else if (number == 3) { System.out.println("---->删除图书"); menu3(); } else if (number == 4) { menu4(); System.out.println("---->借出图书"); } else if (number == 5) { menu5(); System.out.println("---->归还图书"); } else if (number == 6) { menu6(); System.out.println("---->图书馆排行"); } else if (number == 7) { System.out.println("谢谢使用!"); System.exit(1);//程序正常退出 } returnMune(); } /** * 定义一个方法实现循环菜单(原因:该代码重复6遍) */ public static void returnMune() { System.out.println(".........."); System.out.println("******************"); System.out.println("输入0返回"); int i = input.nextInt(); if (i == 0) { menu(); } } /** * 定义方法:给数组定义初始值 */ public static void init() { names[0] = "罗马假日"; status[0] = "已借出"; dates[0] = "2010-7-1"; counts[0] = 34; names[1] = "风声鹤唳"; status[1] = "可借"; dates[1] = "\t\t"; counts[1] = 19; names[2] = "浪漫满屋"; status[2] = "可借"; dates[2] = "\t\t"; counts[2] = 24; } /** * 定义方法:查看图书的业务方法(目的:代码可读性) */ public static void menu2() { System.out.println("序号\t状态\t名称\t借出日期\t借出次数"); for (int i = 0; i < names.length; i++) { if (names[i] == null) { break; } System.out.println((i + 1) + "\t" + status[i] + "\t" + names[i] + "\t" + dates[i] + "\t" + counts[i]); } } //新增图书 private static void menu1() { System.out.println("---->新增图书"); System.out.println("请输入图书的名称"); String nameBook=input.next(); boolean boo = false; for (int i = 0; i < names.length; i++) { if(nameBook.equals(names[i])){ // == equals System.out.println("已存在,新增失败!"); boo = true; break; } } if(!boo){ for (int i = 0; i < names.length; i++) { if(names[i] == null){ names[i] = nameBook; status[i] = "可借"; dates[i] = ""; counts[i] = 0; System.out.println("新增<<"+nameBook+">>成功!"); break; } } } } //删除图书 public static void menu3() { System.out.println("请输入删除图书名称"); String name = input.next(); boolean boo = false; a:for (int i = 0; i < names.length; i++) { if (name.equals(names[i])) { boo = true; System.out.println("图书存在"); if (status[i] == "可借") { System.out.println("可以删除"); b:for (int j = i; j < names.length; j++) { if (status[j] != null) { names[j] = names[j + 1]; status[j] = status[j + 1]; dates[j] = dates[j + 1]; counts[j] = counts[j + 1]; } else { break b; } } System.out.println("删除成功"); } else { System.out.println("图书已借出,无法删除"); } } } if (!boo) { System.out.println("图书不存在,无法删除"); } } //借出图书 public static void menu4() { System.out.println("请输入图书名称"); String name = input.next(); boolean boo = false; for (int i = 0; i < names.length; i++) { if (name.equals(names[i]) && status[i] == "可借") { boo = true; System.out.println("图书可借出"); status[i] = "已借出"; System.out.println("输入借出时间"); String date = input.next(); dates[i] = date; counts[i]++; break; } else if (name.equals(names[i]) && status[i] == "已借出") { System.out.println("不可借出"); break; } } if (boo=false) { System.out.println("图书不存在,无法借出"); } } public static void menu5() { System.out.println("---->归还图书"); System.out.println("输入图书名称"); String name = input.next(); System.out.println("输入归还日期(年-月-日)"); String returndt = input.next(); boolean boo = false; int index = -1; for (int i = 0; i < names.length; i++) { if (names[i] != null && names[i].equals(name)) { boo = true; index = i; break; } } if (boo && status[index] == "可借") { System.out.println("无法归还,未借出"); } else if (boo && status[index] == "已借出") { System.out.println("归还" + name + "成功"); System.out.println("借出日期" + dates[index]); System.out.println("归还日期为" + returndt); //计算租金 int money =getMoney(dates[index], returndt); System.out.println("应付租金(元)" +money); status[index] = "可借"; dates[index] = ""; } } public static int getMoney(String dt1, String dt2) { //字符串转化成整数型(字符串----时间类型----整数型) SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date parse1 = sdf.parse(dt1); long time1 = parse1.getTime(); Date parse2 = sdf.parse(dt2); long time2 = parse2.getTime();//获得当前时间 距离时间起点的毫秒数 return (int)((time2 - time1) / (1000 * 60 * 60 * 24)); } catch (ParseException e) { e.printStackTrace(); } return 0; } public static void menu6(){ System.out.println("--->图书排行榜"); /** * 冒泡排序:小数在前,大数在后 * 1.n个元素参与冒泡排序,比较n-1轮 * 2.轮数+本轮次数=n * 3.换数 */ /*for (int i = 0; i <数组名.length-1 ; i++) {//循环轮数变化 for (int j = 0; j <数组名。length-1-i; j++) {//每轮比较的次数 if (数组名[j]>数组名[j+1]){ int 数组名1=数组名[j]; shuzuming[j]=shuzuming[j+1]; 数组名[j+1]=数组名1; } } }Systen.out.println(""+Arrays.toString(数组名)+); */ int index=names.length; //获得元素个数-----多少个数参与冒泡排序 for (int i = 0; i <names.length ; i++) { if (names[i]==null){ index=i; break; } } for (int i = 0; i <index-1 ; i++) {//比较轮数 for (int j = 0; j < index-1-i; j++) {//每轮比较的次数 if (counts[j]<counts[j+1]){ int num=counts[j]; String name=names[j]; String zt=status[j]; String dt=dates[j]; counts[j]=counts[j+1]; names[j+1]=names[j+1]; status[j+1]=status[j+1]; dates[j+1]=dates[j+1]; counts[j+1]=num; names[j+1]=name; status[j+1]=zt; dates[j+1]=dt; } } } System.out.println("***************"); System.out.println("借出次数\t图书名"); for (int i = 0; i <index ; i++) { System.out.println(counts[i]+"\t"+names[i]); } } }
图书管理系统
最新推荐文章于 2024-09-27 00:45:01 发布