如何用Java實現DVD的一些功能

/*java

這個代碼中涉及到的知識點不少,你們要慢慢悟!!數組

*/orm

import java.util.*;對象

import java.text.*;排序

class DvdSet {遞歸

//定義三個屬性
String[] name = new String[50]; // 爲保證數組足夠大
String[] date = new String[50];// 借書的時間
int[] state = new int[50]; // 借書的狀態 , 0表示借出 ,1.表示能夠借。
int[] count = new int[50]; // 借書的次數
}get

class DvdMgr {

//建立一個DvdSet對象
DvdSet dvd = new DvdSet();

//1.第一個方法初始化三個DVD數據
public void initial(){
//初始化三個Dvd
dvd.name[0]= "羅馬假日";
dvd.state[0]=0;
dvd.count[0] = 30;
dvd.date[0]= "2016-11-18";
dvd.name[1]="風聲鶴唳";
dvd.state[1]=1;
dvd.name[2]= "浪漫滿屋";
dvd.state[2]=1;
dvd.count[2] = 10;
}input

//2.實現一個菜單切換
public void startMenu() {it

System.out.println("*********************************");
System.out.println("******歡迎使用迷你DVD管理器******");
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.DVD排行榜 ******");
System.out.println("****** 7.退出 ******");
System.out.println("*********************************");io

Scanner input = new Scanner(System.in);
System.out.println("請輸入您的操縱:");
int option = input.nextInt();

switch(option){

case 1 :
addDvd();
returnMenu();
break;

case 2 :
searchDvd();
returnMenu();
break;
case 3 :
deleteDvd();
returnMenu();
break;
case 4 :
lendDvd();
returnMenu();
break;
case 5 :
returnDvd();
returnMenu();
break;
case 6:
list();
returnMenu();

break;
case 7:
System.out.println("謝謝使用,歡迎下次在來");
break;
default:
System.out.println("輸入異常,程序已經嚇崩潰,正在重啓中...");
break;

}

}

//3.返回菜單
public void returnMenu() {
System.out.println("輸入0返回:");
Scanner input = new Scanner(System.in);

if(input.nextInt() == 0){

//在此進入菜單切換
startMenu();
}else {

System.out.println("輸入異常,請從輸入:");
returnMenu(); // 遞歸調用。
}

}

//4.查看的功能
public void searchDvd(){
System.out.println("******歡迎進入查看頁面*****");
//\t Tap
System.out.println("序號\t名稱\t\t狀態\t借出時間\t");
for(int i=0;i<dvd.name.length ; i++){
if(dvd.name[i] == null){

break;
}else if (dvd.state[i] == 0){
//表明已經借出
System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t已借出\t"+dvd.date[i]);
}else if(dvd.state[i] == 1){

//代沒有借出
System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t可借\t");
}
}

System.out.println("**************************************");

}

//5.新增Dvd
public void addDvd(){
System.out.println("******歡迎進入添加頁面*****");
System.out.println("請輸入您要添加的Dvd:");
Scanner input = new Scanner(System.in);
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] = 1;
System.out.println("<<"+name+">>dvd添加成功");
break;
}
}

}

//6.刪除dvd

public void deleteDvd(){
System.out.println("******歡迎進入刪除頁面*****");
System.out.println("請輸入您要刪除的Dvd名稱:");
Scanner input = new Scanner(System.in);
String name = input.next();

//1.沒有找到 : 提示沒有找到 請從新輸入
//2.找到 :
//1.已經借出去 : 不可以刪除
//2.沒有借出去 : 刪除

for(int i = 0;i<dvd.name.length;i++){
//查找是否存在
if(dvd.name[i] != null){

if(dvd.name[i].equalsIgnoreCase(name)){ //已經找到

//是否已經被借出
if(dvd.state[i] == 0){ // 借出
System.out.println("《"+name+"》已經被借出");
break;
}else if(dvd.state[i] == 1) {

//沒有借出須要刪除
//思路 : 1.用後面一個替換前面的。
//2.把最後面多餘的地方賦值爲null.

for(int j = i ;j<dvd.name.length;j++){

//作交換
if(dvd.name[j +1] != null){
dvd.name[j] = dvd.name[j+1];
dvd.state[j] = dvd.state[j+1];

}else{
//清空最後一個值
dvd.name[j] = null;
dvd.date[j] = null;
break;
}

}

System.out.println("刪除《"+name+"》成功");
break;
}
}

}else {

System.out.println("沒有您要刪除的dvd");
System.out.println("***********************************************");
break;
}
}

}


//7.借dvd的功能
public void lendDvd(){
System.out.println("********歡迎進入借DVD頁面********");
System.out.println("請輸入您要借的dvd名稱:");
Scanner input = new Scanner(System.in);
String name = input.next();

//1.判斷有沒有dvd
//1.又沒有被借出去。
for(int i = 0;i<dvd.name.length;i++){

if(dvd.name[i] != null){ // 有dvd

if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 1){ //有DVD而且沒有被借出去

//借DVD
//1.修改狀態
dvd.state[i] = 0;
System.out.println("請輸入借DVD的時間(年-月-日):");
Scanner inputDate = new Scanner(System.in);
dvd.date[i] = inputDate.next();
System.out.println("借DVD成功");
dvd.count[i]++;
break;

}else if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){
System.out.println("很差意思此借DVD已經被借出");
break;
}

}else { // dvd

System.out.println("沒有您要找的DVD");
break;
}
}

}

//8.還Dvd 計算價格
public void returnDvd(){

System.out.println("********歡迎進入還DVD頁面******************");
System.out.println("請輸入還dvd的名稱:");
Scanner input = new Scanner(System.in);
double price = 0.0;
String name = input.next();
for(int i = 0;i<dvd.name.length;i++){

if(dvd.name[i]!=null){ //有

if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){ //以借出就能夠歸還
dvd.state[i] = 1;
System.out.println("請輸入歸還DVD的時間(年-月-日):");
Scanner inputDate = new Scanner(System.in);
//獲取時間差
long charge = charge(dvd.date[i],inputDate.next());
price = charge * 1;
System.out.println("《"+dvd.name[i]+"》歸還成功");
System.out.println("您應付"+price+"元");
//清空時間
dvd.date[i] = null;
break;

}

}else{
System.out.println("沒有找到匹配的信息");
break;
}
}
System.out.println("************************************************");

}

public long charge(String date1,String date2){

//作時間差
//將String轉爲Date作計算
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
long charge = 0;
try{
Date d1 = sd.parse(date1);
Date d2 = sd.parse(date2);
//時間也是以毫秒爲單位。
charge = (d2.getTime() - d1.getTime()) / (1000*24*60*60);
}catch(ParseException e){
System.out.println(e);
}

return charge;
}


//排行榜
public void list(){

System.out.println("歡迎進入Dvd排行榜");
//排序
for(int i = 0 ; i <dvd.name.length-1;i++){

if(dvd.name[i] != null){

for(int j = 0; j<dvd.name.length-1-i;j++){

if(dvd.name[j] != null){

if(dvd.count[j] < dvd.count[j+1]){

int temp = dvd.count[j];
dvd.count[j] = dvd.count[j+1];
dvd.count[j+1]= temp;

String name1 = dvd.name[j];
dvd.name[j] = dvd.name[j+1];
dvd.name[j+1] = name1;

String date1= dvd.date[j];
dvd.date[j] = dvd.date[j+1];
dvd.date[j+1] = date1;

int state1= dvd.state[j];
dvd.state[j] = dvd.state[j+1];
dvd.state[j+1] = state1;

}
}else {
break;
}


}

}else{
break;
}
}
System.out.println("序號\t名稱\t\t狀態\t借出時間\t");
for(int i=0;i<dvd.name.length ; i++){
if(dvd.name[i] == null){

break;
}else if (dvd.state[i] == 0){
//表明已經借出
System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t已借出\t"+dvd.date[i]);
}else if(dvd.state[i] == 1){

//代沒有借出
System.out.println(i+1+"\t"+"<<"+dvd.name[i]+">>\t可借\t");
}
}

System.out.println("**************************************");

}

class DvdMain{

public static void main (String[] args){

DvdMgr dvd = new DvdMgr();
//初始化dvd
dvd.initial();

//開始進入切換菜單
dvd.startMenu();
}
}

}

相關文章
相關標籤/搜索