Java迷你DVD管理系统
2017-06-24 16:44
351 查看
package cn.practice.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Scanner; public class DVD_MS { /** * 迷你DVD管理系统 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); // 初始化数组用于存储数据 String[] dvdNames = new String[5];// 保存DVD名称 int[] states = new int[5];// 保存DVD状态:0为可借,1为借出 String[] borrowDates = new String[5];// 保存借出日期 int[] counts = new int[5];// 用于保存借出统计次数 // 初始化3条DVD信息 // 第1条 dvdNames[0] = "罗马假日"; states[0] = 1; borrowDates[0] = "2013-7-1"; counts[0] = 1; // 第2条 dvdNames[1] = "风声鹤唳"; states[1] = 0; borrowDates[1] = ""; counts[1] = 0; // 第3条 dvdNames[2] = "浪漫满屋"; states[2] = 0; borrowDates[2] = ""; counts[2] = 0; int num = -1;// 用于判定系统状态,输入0返回 boolean isExit = false;// 用于判定是否退出 do { // 主界面布局 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("请选择:"); num = input.nextInt();// 输入选项 // 使用switch结构来构成各个选项 switch (num) { case 0:// 借出排行榜 System.out.println("--->借出排行榜\n"); System.out.println("序号\t名称\t借出次数"); for (int i = 0; i < dvdNames.length; i++) { if (dvdNames[i] != null) { for (int j = 0; j < dvdNames.length - 1; j++) {// 使用冒泡排序,将借出次数顺序排列出来 for (int k = 0; k < dvdNames.length - j - 1; k++) { if (counts[k] < counts[k + 1]) { // 换次数 int a = counts[k]; counts[k] = counts[k + 1]; counts[k + 1] = a; // 换名称 String b = dvdNames[k]; dvdNames[k] = dvdNames[k + 1]; dvdNames[k + 1] = b; // 换状态 int c = states[k]; states[k] = states[k + 1]; states[k + 1] = c; // 换借出日期 String d = borrowDates[k]; borrowDates[k] = borrowDates[k + 1]; borrowDates[k + 1] = d; } } } System.out.println((i + 1) + "\t" + dvdNames[i] + "\t" + counts[i]);// 输出排序结果 } } break; case 1:// 新增DVD System.out.println("--->新增DVD\n"); if (dvdNames[dvdNames.length - 1] != null) {// 判断是否已满,若是则提示 System.out.println("对不起!DVD存量已满,请删除后再添加!!!"); break; } System.out.print("请输入DVD名称:"); String name1 = input.next();// 输入要增加的DVD名称 for (int i = 0; i < dvdNames.length; i++) {// 循环查找空位 while (name1.equals(dvdNames[i])) { System.out.print("该DVD名称已存在,请重新输入:");// 避免输入的DVD名称与已存在的重复 name1 = input.next();// 重新输入 } if (dvdNames[i] == null) {// 如有空位,则进行添加 // 进行赋值 dvdNames[i] = name1;// DVD名称 states[i] = 0;// DVD状态 System.out.println("新增" + "《" + name1 + "》成功!"); break; } } break; case 2:// 查看DVD System.out.println("--->查看DVD\n"); System.out.println("序号\t状态\t名称\t\t借出日期"); for (int i = 0; i < dvdNames.length; i++) {// 循环遍历DVD数组 if (dvdNames[i] != null) {// 将名字不为空的按格式输出 if (borrowDates[i] == null) { borrowDates[i] = "";// 将null字符隐藏 } String state = (states[i] == 0) ? "可借" : "已借出";// 将DVD状态用文字表示 System.out.println( (i + 1) + "\t" + state + "\t" + "《" + dvdNames[i] + "》" + "\t\t" + borrowDates[i]); } } break; case 3:// 删除DVD System.out.println("--->删除DVD\n"); boolean isDel = false;// 判断要删除的DVD是否存在 // 将可删除的DVD排列出来 System.out.println("可删除的DVD如下:"); System.out.println("序号\t状态\t名称"); int count = 0;// 序号初始化 for (int i = 0; i < dvdNames.length; i++) { if (dvdNames[i] != null) {// 要删除的DVD名称不能为空 if (states[i] == 0) {// 状态要只能为可借 String state = (states[i] == 0) ? "可借" : "已借出"; count++; System.out.print(count); System.out.println("\t" + state + "\t" + dvdNames[i]);// 输出 } } } System.out.print("请输入要删除的DVD名称:"); String name2 = input.next();// 输入要删除的DVD名称 for (int i = 0; i < dvdNames.length; i++) {// 循环查找 if (dvdNames[i] != null && name2.equals(dvdNames[i]) && states[i] == 0) { // 将删除后的DVD进行前移补位 for (int j = i; j < dvdNames.length - 1; j++) { dvdNames[j] = dvdNames[j + 1]; states[j] = states[j + 1]; borrowDates[j] = borrowDates[j + 1]; } // 末尾元素数据清除 int end = dvdNames.length - 1; dvdNames[end] = null; states[end] = 0; borrowDates[end] = ""; isDel = true;// 标记已经找到要删除的DVD System.out.println("《" + name2 + "》删除成功!");// 删除成功提示 break; } else if (dvdNames[i] != null && name2.equals(dvdNames[i]) && states[i] == 1) { System.out.println("《" + name2 + "》为借出状态,不能删除!");// 不能删除提示 isDel = true;// 标记已经找到要删除的DVD break; } } if (!isDel) { System.out.println("您要删除的DVD名称不存在,请您核实后再进行操作!!!");// 提示要删除的DVD不存在 break; } break; case 4:// 借出DVD System.out.println("--->借出DVD\n"); boolean isLend = false;// 判断是否能借出 // 将可借出的DVD排列出来 System.out.println("可借出的DVD如下:"); System.out.println("序号\t状态\t名称"); int count1 = 0;// 序号初始化 for (int i = 0; i < dvdNames.length; i++) { if (dvdNames[i] != null) {// 要借出的DVD名称不能为空 if (states[i] == 0) {// 状态要只能为可借 String state = (states[i] == 0) ? "可借" : "已借出"; count1++; System.out.print(count1); System.out.println("\t" + state + "\t" + dvdNames[i]);// 输出 } } } System.out.print("请输入DVD名称:"); String name3 = input.next();// 输入要借的DVD名称 for (int i = 0; i < dvdNames.length; i++) { if (dvdNames[i] != null && name3.equals(dvdNames[i]) && states[i] == 0) { System.out.print("请输入借出日期(年-月-日):"); borrowDates[i] = input.next();// 输入借出日期 states[i] = 1; counts[i]++; System.out.println("借出《" + name3 + "》成功!");// 借出成功提示 isLend = true;// 标记为找到 break; } else if (dvdNames[i] != null && name3.equals(dvdNames[i]) && states[i] == 1) { System.out.println("《" + name3 + "》为借出状态,无法借出!");// 已借出,不能再借提示 isLend = true;// 标记为找到 break; } } if (!isLend) { System.out.println("您要借出的DVD名称不存在,请您核实后再进行操作!!!");// 无此DVD提示 break; } break; case 5:// 归还DVD System.out.println("--->归还DVD\n"); boolean isreturn = false;// 标记是否找到 // 将需归还的DVD排列出来 System.out.println("需归还的DVD如下:"); System.out.println("序号\t状态\t名称"); int count2 = 0;// 序号初始化 for (int i = 0; i < dvdNames.length; i++) { if (dvdNames[i] != null) {// 要归还的DVD名称不能为空 if (states[i] == 1) {// 状态要只能为已借出 String state = (states[i] == 0) ? "可借" : "已借出"; count2++; System.out.print(count2); System.out.println("\t" + state + "\t" + dvdNames[i]);// 输出 } } } System.out.print("请输入DVD名称:"); String name4 = input.next();// 输入要归还的DVD名称 for (int i = 0; i < dvdNames.length; i++) { if (dvdNames[i] != null && name4.equals(dvdNames[i]) && states[i] == 1) { isreturn = true; System.out.print("请输入归还日期:"); String returndate = input.next();// 输入归还日期 long charge = 0;// 初始化应付租金 // 将字符串转为日期,求出日期差 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); try { java.util.Date d1 = sd.parse(borrowDates[i]); java.util.Date d2 = sd.parse(returndate); charge = (d2.getTime() - d1.getTime()) / (24 * 3600 * 1000); } catch (ParseException e) { e.printStackTrace(); } System.out.println("归还成功!"); System.out.println("借出日期为:" + borrowDates[i]); System.out.println("归还日期为:" + returndate); System.out.println("应付租金(元):" + charge);// 输出应支付金额 borrowDates[i] = null;// 归还日期归零 states[i] = 0;// 状态转为可借 isreturn = true;// 标记找到 System.out.println("归还成功"); break; } else if (dvdNames[i] != 8274 null && name4.equals(dvdNames[i]) && states[i] == 0) { isreturn = true;// 标记找到 System.out.println("此DVD未借出,归还失败!"); break; } } if (!isreturn) { System.out.println("您要归还的DVD不在借出之列,请您核对后再进行操作!!!"); } break; case 6: isExit = true; break; default: isExit = true; break; } if (!isExit) {// 输入0返回 System.out.println("**********************"); System.out.print("输入0返回:"); num = input.nextInt(); } else { System.out.println("输入错误,退出系统!"); break; } } while (num == 0);// 循环执行的条件,输入0 System.out.println("谢谢惠顾,欢迎您下次使用!!!"); input.close(); } }
相关文章推荐
- java DVD迷你管理系统
- JAVA项目实战<迷你DVD管理系统>
- java DVD迷你管理系统
- 迷你DVD租用管理系统
- JAVA DVD管理系统
- 从零开始学java 之 DVD的增删改查管理系统(方法,界面,数据库相分离)用IO流写入文件代替数据库
- JavaDVD管理系统
- Java小项目迷你图书管理系统
- 使用java代码来实现dvd管理系统
- 黑马程序员:DVD管理系统项目之三--使用io流模拟迷你SQL
- 迷你DVD管理系统
- DVD管理系统:为某音像店开发一个迷你DVD管理器,实现DVD碟片的管理,包括如下功能:
- java基础<迷你DVD系统>
- 迷你Dvd管理系统
- 迷你DVD管理系统
- 迷你DVD管理系统
- java写的迷你学生信息管理系统
- Java----DVD管理系统
- java项目“助你成功管理系统”
- 跟老紫竹学Java-图书销售系统-管理界面:图书,入库,订单查看,历史数据等