知識+看到 

原PO要求:

http://tw.knowledge.yahoo.com/question/question?qid=1011072703555

要幫書店設計程式,要能
有main menu
顯示全部的書
顯示缺貨的書
加新的書
update書的量
告訴使用者輸入的資料有誤

顯示最貴的書
顯示最便宜的書
尋找一本書
移除一本書
=============

我加了 可以供更改書本的價錢

預設我加了3本書進去test


書名:小叮噹  剩餘數量:500(本)  單價:100.8(元)
書名:火影忍者  剩餘數量:300(本)  單價:200.8(元)
書名:海賊王  剩餘數量:0(本)  單價:200.8(元)

不要的話自己從程式碼內刪掉

如果要更完整 例如說:依照輸入價錢 取得書籍 或是File TXT SQL等等的

可自行運用

================

bs1-4  

bs5-7  

bs8-9  

========================================storeMenu(主介面)

import java.util.Scanner;


public class storeMenu extends storeImplementation{

    public static void main(String[] args) {
        int chooseitem;//主選單所選
        bookdata.add(new bookData("小叮噹",100.8,500));
        bookdata.add(new bookData("火影忍者",200.8,300));
        bookdata.add(new bookData("海賊王",200.8,0));
        
        while(1<2){
            System.out.println("=============");
            System.out.println("1.顯示全部書籍資料\n"+"2.顯示缺貨書籍資料\n"+
                    "3.加入新的書籍\n"+"4.更新書籍的量\n"+"5.顯示最貴的書\n"+
                    "6.顯示最便宜的書\n"+"7.尋找書籍\n"+"8.移除書籍\n"+"9.更改價錢\n"+"10.離開");
            System.out.println("=============");
            Scanner scan =new Scanner(System.in);
            chooseitem=scan.nextInt();
            try{
                
                switch(chooseitem){
                    case 1://顯示全部書籍資料
                        printBookData();
                        break;
                    case 2://顯示缺貨的書籍
                        outOfStock();
                        break;
                    case 3://加入新的書籍
                        addBook();
                        break;
                    case 4://更新書籍的量
                        updataAmount();
                        break;
                    case 5://找最貴的書
                        MostexpensiveBook();
                        break;
                    case 6://找最便宜的書
                        CheapestBook();
                        break;
                    case 7://尋找書籍
                        searchBook();
                        break;
                    case 8://移除書籍
                        deleteBookData();
                        break;
                    case 9://更改價錢
                        updataMoney();
                        break;
                    case 10://離開
                        break;
                    default :
                        System.out.println("~~請輸入1到10~~");
                        break;
                }
                if(chooseitem==10){
                    break;
                }
            }catch(Exception e){
                    System.out.println("有無法辨識的錯誤");
                    System.out.println(e);
            }
                
        }//while
    }

}


========================================bookData(書籍資料)

public class bookData {
    protected  String  Name;//名稱
    protected  double Money;//價錢
    protected  int Amount;//數量    
    
    bookData(){
        
    }
    bookData(String name,double money,int amount){
        Name=name;        
        Money=money;
        Amount=amount;
    }
    protected void setName(String name){
        Name=name;
    }
    protected void setAmount(int amount){
        Amount=amount;
    }
    protected void setMoney(double money){
        Money=money;
    }
    
}
========================================storeImplementation(主介面實作)
import java.util.ArrayList;
import java.util.Scanner;


public class storeImplementation extends bookData{
    protected static ArrayList<bookData> bookdata =new ArrayList<bookData>();
    
    protected static void printBookData(){//顯示所有書籍資料
        for(int i=0;i<bookdata.size();i++){
            System.out.println("書名:"+bookdata.get(i).Name+
					  "  剩餘數量:"+bookdata.get(i).Amount+
                                          "(本)  單價:"+bookdata.get(i).Money+"(元)");
        
        }
    }
    
    protected static void  outOfStock(){//顯示缺貨書籍
        for(int i=0;i<bookdata.size();i++){
            if(bookdata.get(i).Amount==0){
                System.out.println("書名:"+bookdata.get(i).Name+
                                               "  單價:"+bookdata.get(i).Money+"(元)  庫存為:0本");
            }
        }        
                    
    }
    
    protected static void addBook(){//加入書籍
        Scanner scan =new Scanner(System.in);
        String  Name;//名稱
        double Money;//價錢
        int Amount;//數量    
        try{
            System.out.println("請輸入要加入的書籍名稱:");
            Name=scan.next();
            System.out.println("請輸入價錢(元):");
            Money=scan.nextDouble();
            System.out.println("請輸入數量(本):");
            Amount=scan.nextInt();
            bookdata.add(new bookData(Name,Money,Amount));
            System.out.println("資料加入成功");
        }catch(Exception e){
            System.out.println("輸入錯誤 請檢查有無輸入錯誤");
        }
        
    }
    
    protected static void updataAmount(){//更新書籍的量
        Scanner scan=new Scanner(System.in);
        String  Name;//名稱
        int Amount;//數量
        int index=-1;
        try{
            System.out.println("請輸入要更新的書籍名稱:");
            Name=scan.next();
            for(int i=0;i<bookdata.size();i++){
                if(bookdata.get(i).Name.equals(Name)){
                    index=i;
                    break;
                }
            }
            if(index==-1){//找不到書籍名稱
                System.out.println("找不到此書籍名稱");
            }else{
                System.out.println("書名:"+bookdata.get(index).Name+
						"  現有數量:"+bookdata.get(index).Amount+"(本)");
                System.out.println("請輸入新的數量(本):");
                Amount=scan.nextInt();
                bookdata.get(index).setAmount(Amount);
                System.out.println("資料更新成功");
            }
            
        }catch(Exception e){
            System.out.println("輸入錯誤 請檢查有無輸入錯誤");
        }
        
        
    }
    
    protected static void MostexpensiveBook(){//找最貴的書
        int mostIndex=0;//最貴的書所在的索引
        double mostTemp=0;
        for(int i=0;i<bookdata.size();i++){
            if(bookdata.get(i).Money>mostTemp){
                mostTemp=bookdata.get(i).Money;
                mostIndex=i;                
            }
        }
        System.out.println("目前最貴的書為:"+bookdata.get(mostIndex).Name+
                                        " 價錢為:"+bookdata.get(mostIndex).Money+
                                         "(元)  庫存為:"+bookdata.get(mostIndex).Amount+"(本)");
    }
    
    protected static void CheapestBook(){//找最便宜的書
        int mostIndex=0;//最便宜的書所在的索引
        double mostTemp=bookdata.get(0).Money;//以第一本書暫時當作最便宜價錢
        for(int i=0;i<bookdata.size();i++){
            if(bookdata.get(i).Money<mostTemp){
                mostTemp=bookdata.get(i).Money;
                mostIndex=i;                
            }
        }
        System.out.println("目前最便宜的書為:"+bookdata.get(mostIndex).Name+
                                      " 價錢為:"+bookdata.get(mostIndex).Money+
                                         "(元)  庫存為:"+bookdata.get(mostIndex).Amount+"(本)");
    }
    
    protected static void searchBook(){//尋找書籍
        Scanner scan=new Scanner(System.in);
        String name;//要尋找的書籍名稱
        int index=-1;//書的索引
        System.out.println("請輸入書籍名稱:");
        name=scan.next();
        for(int i=0;i<bookdata.size();i++){
            if(bookdata.get(i).Name.equals(name)){
                index=i;
            }
        }
        if(index==-1){
            System.out.println("找不到此書籍");
        }else{
            System.out.println("書名:"+bookdata.get(index).Name+
                    " 價錢為:"+bookdata.get(index).Money+
                    "(元)  庫存為:"+bookdata.get(index).Amount+"(本)");
        }
    }
    
    protected static void deleteBookData(){//刪除書籍資料
        Scanner scan=new Scanner(System.in);
        String name;//要尋找的書籍名稱
        int index=-1;//書的索引
        System.out.println("請輸入要刪除的書籍名稱:");
        name=scan.next();
        for(int i=0;i<bookdata.size();i++){
            if(bookdata.get(i).Name.equals(name)){
                index=i;
            }
        }
        
        if(index==-1){
            System.out.println("找不到此書籍");
        }else{
            bookdata.remove(index);
            System.out.println("資料刪除成功");
        }
    }
    protected static void updataMoney(){//更新書籍的價錢
        Scanner scan=new Scanner(System.in);
        String  Name;//名稱
        double Money;//價錢
        int index=-1;
        try{
            System.out.println("請輸入要更新的書籍名稱:");
            Name=scan.next();
            for(int i=0;i<bookdata.size();i++){
                if(bookdata.get(i).Name.equals(Name)){
                    index=i;
                    break;
                }
            }
            if(index==-1){//找不到書籍名稱
                System.out.println("找不到此書籍名稱");
            }else{
                System.out.println("書名:"+bookdata.get(index).Name+
                                               "  價錢(元):"+bookdata.get(index).Money);
                System.out.println("請輸入更新後的價錢(元):");
                Money=scan.nextDouble();
                bookdata.get(index).setMoney(Money);
                System.out.println("資料更新成功");
            }
            
        }catch(Exception e){
            System.out.println("輸入錯誤 請檢查有無輸入錯誤");
        }
    }
    
}

 


文章標籤
創作者介紹

Mazs's Notes

cookiesp 發表在 痞客邦 PIXNET 留言(0) 人氣()