迷你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管理器的更多相关文章
- 迷你DVD管理器项目
package chapter5; import java.util.*; public class MiniDVD { public static void main(String[] args){ ...
- java 迷你DVD管理器
1.DvdSet类 package dvd_01; /** * 定义dvd的一些属性 * @author Administrator * */ public class DvdSet { String ...
- 迷你DVD管理器(Java版)
import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;class Test { pub ...
- DVD管理器集合版
利用所学的集合写出的DVD管理系统,运用到了所学到集合基础. import java.text.ParseException; import java.text.SimpleDateFormat; i ...
- 运用集合来做一个DVD管理器(全代码)
package DVD;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Array ...
- java模拟DVD管理器
import java.util.*;import java.text.*;class DVDSet{ String[] name = new String[50]; //名字 int[] ...
- 控制台输出<迷你DVD管理>
使用顺序.选择.循环.跳转语句 数组 功能实现菜单显示和切换 输入的数字不符合要求直接退出程序 用户可以选择新增.查看. 删除.借出.归还.退出 思路分析 使用switch语句实现菜单选择 使用do- ...
- JAVA基础代码分享--DVD管理
问题描述 为某音像店开发一个迷你DVD管理器,最多可存6张DVD,实现碟片的管理. 管理器具备的功能主要有: 1.查看DVD信息. 菜单选择查看功能,展示DVD的信息. 2.新增DVD信息 选择新增功 ...
- java基础<迷你DVD系统>
一.写在main方法中 import java.util.*; public class MyDVDMgr { public static void main(String[] args){ Scan ...
随机推荐
- JAVA-android 更改APP名称与图标
首先要在你的资源文件放入你想换的图标图片拖到drawable-XX文件夹下,然后你打开AndroidManifest.xml这个配置清单文件找到application标签里的这句android:ico ...
- python enumerate函数用法
enumerate函数用于遍历序列中的元素以及它们的下标 i = 0 seq = ['one', 'two', 'three'] for element in seq: print i, seq[i] ...
- 使用::before和::after来完成尖角效果
一.目标 目标完成下图效果: 二.完成 1.分析 在::before和::after伪元素的用法一文中有说到使用::befrore和::after可以完成一个六边形.这个案例是用一个#star-six ...
- MySQL基础学习总结
1.MySQL基础概念 mysql逻辑架构如下: 每个客户端连接都会在服务器中拥有一个线程,这个连接的查询只会在这个单独的线程中执行. MySQL是分层的架构.上层是服务器层的服务和查询执行引擎,下层 ...
- USACO1.1Broken Necklace[环状DP作死]
题目描述 你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里是 n=29 的二个例子: 第一和第二个珠子在图片中已经被作记号. 图片 A ...
- Android驱动入门-LED--测试APP编写③
硬件平台: FriendlyARM Tiny4412 Cortex-A9 操作系统: UBUNTU 14.04 LTS 时间:2016-09-24 10:47:03 在Android Studio中 ...
- [No000026]365种创业、办公、和生活成长的精华资源
只需要具备以下技能,人人都可以成为企业家:经得起失败的考验,思维活跃,新点子不断,能够脚踏实地把新点子转化为产品,并在这个过程中坚持不懈,百折不挠,即使跌倒了,也要及时从失败中学习,迅速投入到下一次冒 ...
- java 24 - 10 GUI 之 四则预算的数据校验
我想要在校验的过程中,如果输入到操作数中的不是数字,则弹出提醒框: 类 JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的标准对话框 方法名 描述 showConfirmDial ...
- 《ASP.NET MVC 5 高级编程(第5版)》
第1章.入门 本章主要内容: ASP.NET MVC 5概述 其应用程序的创建方法 其应用程序的及结构 概述:将MVC设计模式应用于ASP.NET框架 ASP.NET 1.0支持两层抽象: Syste ...
- Linq语法详细(转)
原文地址:http://www.cnblogs.com/knowledgesea/p/3897665.html 开门见山 读这篇文章之前,我先说下,每一种搜索结果集,我都以三种方式变现出来,为啦更好的 ...