java .簡易版的DVD管理系統


class DvdSet {

    //定義三個屬性
    String[] name = new String[50]; // 為保證數組足夠大
    String[] date = new String[50];// 借書的時間  
    int[]    state = new int[50];  // 借書的狀態 , 0表示借出 ,1.表示可以借。
    int[]    count = new int[50]; // 借書的次數
}
import java.util.*;
import java.text.*;
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;
    }

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

        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("*********************************");

        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("********歡迎進入借書頁面********");
        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){ //有書並且沒有被借出去
                    
                    //借書
                    //1.修改狀態
                    dvd.state[i] = 0;
                    System.out.println("請輸入借書的時間(年-月-日):");
                    Scanner inputDate = new Scanner(System.in);
                    dvd.date[i] = inputDate.next();
                    System.out.println("借書成功");
                    dvd.count[i]++;
                    break;

                }else if(dvd.name[i].equalsIgnoreCase(name) && dvd.state[i] == 0){
                    System.out.println("不好意思此借書已經被借出");
                    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("請輸入歸還書籍的時間(年-月-日):");
                    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();
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM