2016-03-30 19 views
0

私はホンダの車種の例を入力し、Hondaクラスにアクセスするようにユーザに要求するプログラムを作成しています。ユーザーがモデルを入力すると、Hondaモデルの例「Civic」を選択するように求められます。彼が "Civic"とタイプすると、別の年が2000,2013などになる。彼はその車に関する情報よりも一年を選ぶ。Java - 配列にアクセスして情報を出力するユーザ入力を受け取ります。

私はすでに車のモデルを入力してクラスにアクセスするようにユーザーに求めています。私は多くの情報を追加しようとしていません、これは私が取り組んでいるプロジェクトです。

import java.util.Scanner; 

public class carMain { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     Honda hondaMain = new Honda("civic"); 

     System.out.println("Welcome to GoAuto. Search from thousands of cars. \n"); 
     System.out.println("Please enter the brand of car you would like to search:"); 
     String carBrand = input.nextLine(); 

     if (carBrand.equalsIgnoreCase("Honda") == true) { 

      System.out.println("You are now in the Honda class"); 
      //model type 
      String carBrand1 = input.nextLine(); 
     } 
    } 
} 

私は車のモデルと年の情報を格納するための配列を作成する必要があるだろうと仮定していますが、私はこれを実行するかどうかはわかりません。手始めに

public class Honda { 
    String c; 
    Honda(String civi) { 
     c = civi; 
    } 

    void simplemsg() { 
     System.out.println("You are now in Honda Database"); 
    } 
} 
+0

何らかの種類のデータベースに情報を保存することは可能ですか?あなたがデータにアクセスしてユーザーに表示することを容易にします – LearningPhase

+1

私はスコープの問題のためにこの質問をします:これは宿題やプロダクションのためのものですか?データ構造はかなり大きいので、配列を使用しません。なぜなら、それは維持不能になるからです。先ほど触れた@LearningPhaseのように、データベースはこの質問の解決策の一部です。 – KevinO

+0

トピックはありませんが、 'if(boolean == true)'は不要です。 'if(boolean)'と書くだけです。 – Gendarme

答えて

0

、私はあなたが各レベルを表すクラスを作成したいと思います。たとえば...

public class Make(){ 
    //Add class properties 
    List<Models> models = new ArrayList(); 


    public function Model get_model_by_name(String name) { 
     //int index = search for matching Model.name.. 
     return this.models(index) 
} 

public class Model(){ 
    //Add class properties 
    List<Years> years = new ArrayList(); 


    public function Model get_year_by_name(String name) { 
     //int index = search for matching Year.name.. 
     return this.models(index) 
} 

public class Year(){ 
    //Add class properties 
    String info; 
    String info2; 
} 

が次にmainメソッドでは、あなたがそうのような値を初期化したいと思う..

//Initialize database 
List<Make> database = new arrayList(); 
Make ford = new Make(<insert values for all properties>) 
database.add(ford); 

// Access ford.. 
System.out.println(ford.get_year_by_name(<whatever value user passed in>) 

は明らかにこれは擬似コードであり、あなたは何のコンストラクタを追加する必要がありますし、適切なゲッタとセッタだけでなく、必要なプロパティ理想的な状況は、データベースルックアップまたは何らかの種類の列挙ファイルを使用することです。あなたは2次元配列に見て、アレイ内の両方の年と車の情報保存したい場合は

+0

奇妙なJava構文;) –

0

あなたのequalsIgnoreCase

if(carBrand.equalsIgnoreCase("Honda")){ 

後==真配置する必要はありません。他の答えとして、これをコード化するいくつかのより密接な方法を調べることができますが

関連する問題