DVD管理器
来源:互联网 发布:raft算法 编辑:程序博客网 时间:2024/04/30 16:21
需求实现:
1.新增DVD信息
2.查询DVD信息
3.删除DVD信息
4.处理借出归还业务
DVD信息设置类
/** * DVD信息设置类 * * @author wql * */public class DVDSet { String[] name = new String[50];// 名称 int[] state = new int[50]; // 借出状态:0已借出/1可借 String[] date = new String[50];// 借出时间 int[] count = new int[50];// 借出次数}
DVD管理类
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;/** * DVD管理类 * * @author wql * */public class DVDMgr { DVDSet dvd = new DVDSet(); /** * 初始化 */ public void initial() { dvd.name[0] = "罗马假日"; dvd.state[0] = 0; dvd.date[0] = "2017-7-1"; dvd.count[0] = 1; dvd.name[1] = "风声鹤唳"; dvd.state[1] = 1; dvd.name[2] = "浪漫满屋"; dvd.state[2] = 1; } /** * 菜单切换 */ public void startMenu() { System.out.println("欢迎使用迷你DVD管理器"); System.out.println("-------------------------------"); 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("7.退出"); Scanner sc = new Scanner(System.in); System.out.print("请选择: "); int choice = sc.nextInt(); switch (choice) { case 1: // 新增DVD System.out.println("新增DVD-->"); System.out.println("请输入新增DVD名称:"); sc.nextLine(); String name = sc.next(); if (addDVD(name)) { System.out.println("新增DVD成功"); } else { System.out.println("新增DVD失败"); } System.out.println("\n***********************************"); returnMain();// 没查看完一个内容都可以选择回主菜单 break; case 2: // 查看DVD System.out.println("查看DVD-->"); showDVD(); System.out.println("\n***********************************"); returnMain();// 没查看完一个内容都可以选择回主菜单 break; case 3: // 删除DVD System.out.println("删除DVD-->"); System.out.println("请输入要删除的DVD名称:"); sc.nextLine(); String name3 = sc.next(); deleteDVD(name3); System.out.println("\n***********************************"); returnMain();// 没查看完一个内容都可以选择回主菜单 break; case 4: // 借出DVD System.out.println("借出DVD-->"); System.out.println("请输入借出DVD名称:"); sc.nextLine(); String name4 = sc.next(); lend(name4); System.out.println("\n***********************************"); returnMain();// 没查看完一个内容都可以选择回主菜单 break; case 5: // 归还DVD System.out.println("归还DVD-->"); System.out.println("请输入归还DVD名称:"); sc.nextLine(); String name5 = sc.next(); returnDVD(name5); System.out.println("\n***********************************"); returnMain();// 没查看完一个内容都可以选择回主菜单 break; case 6: // 排行榜 System.out.println("排行榜-->"); list(dvd.count); System.out.println("\n***********************************"); returnMain();// 没查看完一个内容都可以选择回主菜单 break; case 7: System.out.println("退出系统!"); break; default: System.out.println("输入错误!"); returnMain(); } } /** * 返回主菜单 */ public void returnMain() { Scanner input = new Scanner(System.in); System.out.print("输入0返回:"); if (input.nextInt() == 0) { startMenu(); } else { System.out.println("输入错误,异常终止!"); } } /** * 查看DVD信息 */ public void showDVD() { System.out .println("----------------------------------------------------------"); System.out.println("num\t\t" + "state\t\t" + "name\t\t" + "date"); System.out .println("----------------------------------------------------------"); for (int i = 0; i < dvd.name.length; i++) { if (dvd.name[i] == null) { continue;// break;******** } if (dvd.state[i] == 0) { System.out.println((i + 1) + "\t\t已借出\t\t" + "<<" + dvd.name[i] + ">>\t" + dvd.date[i]); } else { System.out.println((i + 1) + "\t\t可借\t\t" + "<<" + dvd.name[i] + ">>"); } } System.out .println("----------------------------------------------------------"); } /** * 新增DVD * * @param nameDVD名称 * */ public boolean addDVD(String name) { boolean flag = false; for (int i = 0; i < dvd.name.length; i++) { if (dvd.name[i] == null) { dvd.name[i] = name; dvd.state[i] = 1; flag = true; break; } } return flag; } /** * 删除DVD业务 * * @param i第i * -1张DVD */ public void deleteDVD(String name) { for (int i = 0; i < dvd.name.length; i++) { if (dvd.name[i].equals(name)) { if (dvd.state[i] == 1) { int j = i; boolean flag = false; while ((dvd.name[j] != null) && !flag) { dvd.name[j] = dvd.name[j + 1]; dvd.state[j] = dvd.state[j + 1]; dvd.date[j] = dvd.date[j + 1]; if (j == dvd.name.length - 1) { flag = true; } j++; } System.out.println("删除<<" + name + ">>成功!"); break; } else { System.out.println("此DVD己借出,不可删除"); break; } } } } /*** * 借出DVD业务处理 * * @param name */ public void lend(String name) { for (int i = 0; i < dvd.name.length; i++) { if (!dvd.name[i].equals(name)) { if (i == dvd.name.length - 1) { System.out.println("没有匹配信息!"); } continue;// ******break; } else if (dvd.state[i] == 1) { dvd.count[i]++; // 借出次数加1 dvd.state[i] = 0; SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); dvd.date[i] = sd.format(new Date()); // 标记借出时间 System.out.println("<<" + name + ">>" + "可借"); break; } else { System.out.println("<<" + name + ">>" + "已被借出"); break; } } } /** * 冒泡排行 * * @param arr */ public void list(int[] arr) { for (int i = 0; i < dvd.count.length - 1; i++) { for (int j = 0; j < dvd.count.length - i - 1; j++) { if (dvd.count[j] < dvd.count[j + 1]) { int countTemp = dvd.count[j]; dvd.count[j] = dvd.count[j + 1]; dvd.count[j + 1] = countTemp; String nameTemp = dvd.name[j]; dvd.name[j] = dvd.name[j + 1]; dvd.name[j + 1] = nameTemp; int stateTemp = dvd.state[j]; dvd.state[j] = dvd.state[j + 1]; dvd.state[j + 1] = stateTemp; String dateTemp = dvd.date[j]; dvd.date[j] = dvd.date[j + 1]; dvd.date[j + 1] = dateTemp; } } } System.out.println("****************************"); System.out.println("次数\t" + "名称"); for (int i = 0; i < arr.length; i++) { if (dvd.name[i] != null) { System.out.println(dvd.count[i] + "\t" + dvd.name[i]); } } } /** * 归还DVD业务 * * @param name归还DVD名称 * */ public void returnDVD(String name) { String dstr1 = null; String dstr2; boolean flag = false; SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < dvd.name.length; i++) { if (dvd.name[i].equals(name) && dvd.state[i] == 0) { dstr1 = dvd.date[i]; // 先获取借出时间 dvd.state[i] = 1; // 借出状态归1 dvd.date[i] = null; // 借出时间归空 flag = true; break; } } if (flag) { dstr2 = sd.format(new Date()); // 获取当前时间 long time = charge(dstr1, dstr2); int money = (int) time * 1; System.out.println("应付租金(元):" + money); } else { System.out.println("此书未曾借出!"); } } /** * 日期差算法 * * @param dstr1借出日期 * @param dstr2归还日期 * @return */ 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; }}
主类,程序入口
/** * 主类,程序入口 * * @author wql * */public class Start { public static void main(String[] args) { // TODO 自动生成的方法存根 DVDMgr dm = new DVDMgr(); dm.initial(); dm.startMenu(); }}
运行图
阅读全文
3 0
- DVD管理器
- DVD管理器
- 音像店迷你DVD管理器
- DVD管理器源代码分享
- DVD管理器源代码分享
- DVD管理器 第二版
- 迷你DVD管理器
- 迷你DVD管理器
- 迷你DVD管理器
- 迷你Dvd管理器案例
- 迷你DVD管理器
- 迷你 DVD管理器
- 加强版迷你DVD管理器
- 项目案例: 迷你DVD管理器
- 第十七章迷你DVD管理器
- 阶段测试:迷你DVD管理器
- JAVA之迷你DVD管理器
- java迷你DVD管理器源代码
- JDBC
- 菜鸟入门之路——Unity导航相关笔记
- BAT经典面试题:操作系统题目
- 张英泽 struts2+spring+hibernate整合步骤
- iOS视频编解码常用库比较
- DVD管理器
- 垃圾回收算法与 JVM 垃圾回收器综述
- Convert a List to a Comma-Separated String in Java 8
- Spring工作原理及其作用
- 【SCU
- 【SDN控制器分析之一】ONOS架构概述
- 琐记5:进制转换的程序实现
- BZOJ 2115: [Wc2011] Xor 线性基
- Eclipse常用快捷键