0

クラスと CD クラスをCDException作成しました。次に、他のクラスを実行するためのドライバー クラスを作成しようとしています。私はしなければならない

  • ユーザーからアーティスト名を読み取る
  • ユーザーからアルバム名を読み取る
  • ユーザーから価格を読み取る
  • ユーザーから在庫数を読み取る

そして、彼らが書いたものを印刷しますが、有効なエントリのみを印刷します。空白だけを入力すると、他のエントリは印刷時に無視されます。

CD クラス:

import java.text.*;
public class CD {

private String sArtist;
private String sAlbum;
private double dPrice = 0;
private int inStock = 0;
String decimalFormats = "$##.##";   

    public CD(String sArtist, String sAlbum, double dPrice, int inStock) throws Exception{//constructors

        this.setArtist(sArtist);
        this.setAlbum(sAlbum);
        this.setPrice(dPrice);
        this.setinStock(inStock);
    }
        public String toString( ){//to string method

            DecimalFormat df = new DecimalFormat(decimalFormats);   //Formats the price
            String s = "Album: " + sAlbum + "\nArtist: " + sArtist +
                "\nPrice: " + df.format(dPrice);

            if(inStock == 0)
                return "Album: " + sAlbum + "\nArtist: " + sArtist +
                "\nPrice: $" + dPrice + "\nNot in Stock"; 
            else
                return s + "\nCurrently " + inStock + " in stock";
        }

        //mutator methods
        public void setArtist(String newArtist)throws Exception{
            if(newArtist.length( ) == 0){
                CDException cde = new CDException( );
                cde.setMessage("Artist name contains no characters" + "\nCannot create CD");
                throw cde;
            }
            else{
                this.sArtist = newArtist;
            }
        }
        public void setAlbum(String newAlbum) throws Exception{
            if(newAlbum.length( ) == 0){
                CDException cde = new CDException( );
                cde.setMessage("Album name contains no characters" + "\nCannot create CD");
                throw cde;
            }
            else{
                this.sAlbum = newAlbum;
            }
        }
        public void setPrice(double newPrice)throws Exception{
            if(newPrice < 0){
                CDException cde = new CDException( );
                cde.setMessage("CD Price cannot be negative" + "\nCannot create CD");
                throw cde;
            }
            else{
                this.dPrice = newPrice;
            }
        }
        public void setinStock(int newInStock)throws Exception{
            if(newInStock < 0){
                CDException cde = new CDException( );
                cde.setMessage("In stock cannot be negative" + "\nCannot create CD");
                throw cde;
            }
            else{
                this.inStock = newInStock;
            }
        }



        public String getsArtist( ){
            return this.sArtist;
        }
        public String getsAlbum( ){
            return this.sAlbum;
        }
        public double getdPrice( ){
            return this.dPrice;
        }
        public int getinStock( ){
            return this.inStock;
        }

    }   
}

そして、これは私のCDExceptionクラスのためです

public class CDException extends Exception {

   private String message = "Cannot create CD";

   public CDException( ){

   }
   public String getMessage( ){
    return this.message;
   }
   public void setMessage (String message){
    this.message = message;
   }
 }

これがドライバー クラスのこれまでの内容ですが、アーティスト名、アルバム タイトル、CD の価格、在庫数をユーザーに尋ねて読み取ることができるように変更する必要があります。ArrayList、しかしもちろん最初にラップしてから追加しArrayListます。

 public class CDStore2{

  public static void main (String[ ] arg) throws Exception{

   ArrayList (CD) CD = new ArrayList( );

   try{
         CD cd1 = new CD("Muse", "The Resistance", 11.99, 20);
         System.out.println(cd1.toString( ));
         System.out.println("=========================");
   }
   catch(CDException cde){
        System.out.println(cde.getMessage( ));
        System.out.println("=========================");
   }

  try{
       CD cd2 = new CD("Yanni", "The Live at the Acropolis", 11.99, 0);
       System.out.println(cd2.toString( ));
       System.out.println("=========================");
   }
  catch(CDException cde){
      System.out.println(cde.getMessage( ));
      System.out.println("=========================");
  }


  try{
       CD cd3 = new CD("Muse", "Black Holes and Revelations", 10.99, 15);
       System.out.println(cd3.toString( ));
       System.out.println("=========================");
   }
  catch(CDException cde){
       System.out.println(cde.getMessage( ));
       System.out.println("=========================");
 }

 try{ 
      CD cd4 = new CD("Paul Mc Cartney", "All the Best", -0.99, 12);
      System.out.println(cd4.toString( ));  
      System.out.println("=========================");
   }
 catch(CDException cde){
      System.out.println(cde.getMessage( ));
      System.out.println("=========================");
  }

  try{
      CD cd5 = new CD("Lady Gaga", "The Fame Monster", 14.99, 44);
      System.out.println(cd5.toString( ));
      System.out.println("=========================");
   }
  catch(CDException cde){
      System.out.println(cde.getMessage( ));
      System.out.println("=========================");
  }    



  try{
      CD cd6 = new CD("", "California Gurls", 1.29, 4);
      System.out.println(cd6.toString( ));
      System.out.println("=========================");
   }
  catch(CDException cde){
      System.out.println(cde.getMessage( ));
      System.out.println("=========================");
  }    

try{   
      CD cd7 = new CD("Pitbull", "", 11.99, 12);
      System.out.println(cd7.toString( ));
      System.out.println("=========================");
   }
 catch(CDException cde){
      System.out.println(cde.getMessage( ));
      System.out.println("=========================");
   }    

  }//main method ends

 } //program ends

ユーザーにタイトル、アルバム、価格、在庫数を入力するように求めるメッセージは、どのように、どこに書き込めばよいですか? それを CD クラスとドライバ クラスのどちらに書くのですか? そして、どのように使用してそこに書き込むのでしょうArrayListsか?

4

0 に答える 0