17章 迷你DVD管理
2016-09-23 16:22
260 查看
public 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]; } import java.sql.Date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Scanner; public 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-9-23"; 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; b123 } 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 = (Date) sd.parse(dstr1); Date d2 = (Date) sd.parse(dstr2); charge = (d2.getTime() - d1.getTime()) / (24 * 60 * 60 * 1000); } catch (ParseException e) { e.printStackTrace(); } return charge; } } public class Start { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub DVDMgr dm=new DVDMgr(); dm.initial(); dm.startMenu(); } }
相关文章推荐
- QT信号槽连接方式
- mysql 5.7.14 下载安装、配置与使用详细教程
- ABAP之声母韵母
- 实习日志一
- C# 各版本的新特性
- Easyui data方法扩展finder
- Python小程序
- MongoDB-分页,聚合函数,mapRedcue,游标
- JavaWeb核心基础面试知识深度详解
- 树莓派3中文环境设置
- IntelliJ IDEA 教程 - 常用快捷键总结
- 微信开通检测无需等待准确高的软件
- 关于ExpandableListAdapter
- php基础之函数入门
- 浏览器版本不同导致文件无法下载问题解决方法
- node npm grunt工具 package.json Gruntfile.js相关
- easyui 扩展layout的方法,支持动态添加删除块
- Android color资源
- scala的sliding window的多种实现和benchMark
- leetcode No65. Valid Number