迷你DVD管理器
Posted lemon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了迷你DVD管理器相关的知识,希望对你有一定的参考价值。
import java.text.*; import java.util.*; class DVDSet { String[] name=new String[50]; //定义一个DVD数组 boolean[] state=new boolean[50]; //定义DVD借出状态:true.已借出false.可借 String[] date=new String[50]; //定义借出日期 int[] count=new int[50]; //定义借出次数 } class DVDMgr { Scanner input = new Scanner(System.in); DVDSet dvd = new DVDSet(); // 初始化对象 boolean isJiechu = true; // 已借出是true 可借是false // 初始化三张DVD信息 public void initial() { dvd.name[0] = "罗马假日"; dvd.state[0] = true; // 已借出 dvd.date[0] = "2007-7-1"; dvd.name[1] = "风声鹤唳"; dvd.state[1] = false; // 可借 dvd.name[2] = "浪漫满屋"; dvd.state[2] = false; // 可借 } public void startMenu() { System.out.println("欢迎使用迷你DVD管理器"); System.out.println("--------------------------"); System.out.println("0.借出排行榜"); System.out.println("1.新增DVD"); System.out.println("2.查看DVD"); System.out.println("3.删除DVD"); System.out.println("4.借出DVD"); System.out.println("5.归还DVD"); System.out.println("6.退出"); System.out.println("---------------------------"); System.out.print("请选择:"); int choice = input.nextInt(); switch (choice) { case 0: list(); // 查看借出排行 break; case 1: add(); // 新增DVD break; case 2: search(); // 查看DVD break; case 3: delete(); // 删除DVD break; case 4: lend(); // 借出DVD break; case 5: returnDvd(); // 归还DVD break; case 6: System.out.println("感谢您的使用!"); break; default: System.out.println("你的输入有误,请重新输入"); returnMain(); } } public void returnMain() { System.out.print("输入0返回:"); if (input.nextInt() == 0) { startMenu(); } else { System.out.println("输入错误,异常终止!"); } } // 查看借出排行 public void list() { String[] newname = new String[50]; // 定义新数组 显示DVD名称 int[] newcount = new int[50]; // 定义新数组 显示借出次数 for (int i = 0; i < dvd.name.length; i++) { newname[i] = dvd.name[i]; newcount[i] = dvd.count[i]; } for (int i = 0; i < newname.length; i++) { // 2层循环控制位置 for (int j = i + 1; j < newname.length; j++) { if (newcount[i] > newcount[j]) { int temp = newcount[i]; // 2次交换实现次数和名字的替换 newcount[i] = newcount[j]; newcount[j] = temp; String temp1 = newname[i]; newname[i] = newname[j]; newname[j] = temp1; } } } 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("**************************"); returnMain(); } // 新增DVD public void add() { System.out.println("--->新增DVD\n"); System.out.print("请输入DVD的名称:"); String name = input.next(); for (int i = 0; i < dvd.name.length; i++) { if (dvd.name[i] == null) { // 判断位置是否为空 dvd.name[i] = name; dvd.state[i] = false; // 新增的光盘是可借的 System.out.println("新增《" + name + "》成功"); break; } } System.out.println("**************************"); returnMain(); } // 查看DVD public void search() { System.out.println("--->查看DVD\n"); System.out.println("序号\t状态\t名称\t\t借出日期"); for (int i = 0; i < dvd.name.length; i++) { if (dvd.name[i] == null) { break; } else if (dvd.state[i] == true) { System.out.println((i + 1) + "\t已借出\t《" + dvd.name[i] + "》\t" + dvd.date[i]); } else if (dvd.state[i] == false) { System.out.println((i + 1) + "\t可借\t《" + dvd.name[i] + "》"); } } System.out.println("**************************"); returnMain(); } // 删除DVD public void delete() { System.out.println("--->删除DVD\n"); System.out.print("请输入DVD的名称:"); String name = input.next(); boolean flag = false; for (int i = 0; i < dvd.name.length; i++) { if (dvd.name[i] != null && dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == false) { int j = i; while (dvd.name[j + 1] != null) { dvd.name[j] = dvd.name[j + 1]; // 删除元素,元素前移 dvd.state[j] = dvd.state[j + 1]; dvd.date[j] = dvd.date[j + 1]; j++; } // 最后一个不为空的元素置空 dvd.name[j] = null; dvd.date[j] = null; System.out.println("删除《" + name + "》成功!"); flag = true; // 标识位 break; } else if (dvd.name[i] != null && dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == true) { System.out.println("《" + name + "》为借出状态,不能删除!"); flag = true; break; } if (flag == true) { System.out.println("没有找到匹配信息"); } } System.out.println("**************************"); returnMain(); } // 借出DVD public void lend() { System.out.println("--->借出DVD\n"); System.out.print("请输入DVD的名称:"); String name = input.next(); for (int i = 0; i < dvd.name.length; i++) { if (dvd.name[i] == null) { System.out.println("没有找到匹配信息!"); break; } else if (dvd.name[i].equals(name) && dvd.state[i] == false) { System.out.print("请输入借出日期(年-月-日):"); dvd.date[i] = input.next(); System.out.println("《" + name + "》借出成功"); dvd.state[i] = true; dvd.count[i]++; break; } else if (dvd.name[i].equals(name) && dvd.state[i] == true) { System.out.println("不好意思,《" + name + "》已被借出!"); break; } } System.out.println("**************************"); returnMain(); } // 归还DVD public void returnDvd() { System.out.println("--->归还DVD\n"); System.out.print("请输入DVD名称:"); String name = input.next(); long loan = 0; // 租金 for (int i = 0; i < dvd.name.length; i++) { if (dvd.name[i] == null) { System.out.println("没有找到匹配信息!"); break; } else if (dvd.name[i].equals(name) && dvd.state[i] == true) { System.out.print("请输入归还日期(年-月-日):"); String redate = input.next(); loan = charge(dvd.date[i], redate); System.out.println("\n《" + name + "》归还成功"); dvd.state[i] = false; System.out.println("借出日期为:" + dvd.date[i]); System.out.println("归还日期为:" + redate); System.out.println("应付租金(元):" + loan); break; } else if (dvd.name[i].equals(name) && dvd.state[i] == false) { System.out.println("《" + name + "》没有被借出,无法进行归还操作!"); break; } } System.out.println("**************************"); returnMain(); } // 计算日期差 public long charge(String dstr1, String dstr2) { long charge = 0; SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); // 格式化日期 try { Date d1 = sd.parse(dstr1); Date d2 = sd.parse(dstr2); charge = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000); } catch (ParseException e) { e.printStackTrace(); } return charge; } } class Demo { public static void main(String[] args) { DVDMgr dm=new DVDMgr(); dm.initial(); dm.startMenu(); } }
迷你DVD管理器,实现DVD碟片的管理,主要包括如下功能。
1.新增DVD
2.查看DVD
3.删除DVD
4借出DVD
5.归还DVD
以上是关于迷你DVD管理器的主要内容,如果未能解决你的问题,请参考以下文章