2017-04-12 7 views
-2

私はjavaを初めて使用しており、この問題は一日中発生しています。 私はFCFSスケジューラを実装しようとしていますが、ユーザがプロセスの数を文字列の形式で入力するように要求されています。オブジェクトの配列を関数に解析する

また、プロセスタイプの配列を宣言し、ストリングをバースト時間と到着時間を表す整数に切り詰める関数を作成しました。

これまでのところは良いが、私は値を印刷しようとすると、何かが、私は出力が数字1と2であることが予想

public class Process { 

private static int BT; 
private static int AT; 


Process(){ 
    AT=0; 
    BT=0; 
} 
Process(int burst, int arrival){ 
    BT=burst; 
    AT=arrival; 
} 
//GETS and SETS 
public static void setBT(int burst){ 
    BT=burst; 
} 
public int getBT(){ 

    return BT; 
} 
public static void setAT(int arrival){ 
    AT=arrival; 
} 
public int getAT(){ 

    return AT; 
} 

}

public static void main(String[] args) { 

    Process pArray[]=new Process[10]; 

    System.out.println("Choose the Scheduler \n 1-FCFS"); 
    Scanner input =new Scanner(System.in); 
    int schedulerType = input.nextInt(); 

    switch(schedulerType){ 
    case 1: 
     System.out.println("You have choosen FCFS Scheduler"); 
     System.out.println("Now enter the Process each seperated by a semicolon where the first number is the Burst time, and the second is the Arrival time separated by a comma"); 
     System.out.println("EX: 1,2;3,4;"); 

     stringcutter(pArray); 

     System.out.println(pArray[0].getBT()); 
     System.out.println(pArray[0].getAT()); 


     break; 

    default: 
     System.out.println("You have entered a wrong scheduler Type"); 
    } 




public static void stringcutter(Process[] processArray){ 
    String pString="1,2;3,4;"; 

    String[] array=pString.split(";"); 
    int processesNumber=array.length; 

    for(int i=0;i<processesNumber;i++){ 
     String[] oneProcess =array[i].split(","); 
     int burstTime = Integer.parseInt(oneProcess[0]); 
     int arrivalTime = Integer.parseInt(oneProcess[1]); 

     processArray[i] =new Process(burstTime,arrivalTime); 

    } 
} 

}

うまくいきません、代わりに私は3と4を​​得ています

もデバッガを実行しましたが、p汚れ。

+0

@RAZ_Muh_Taz問題は、私が複数のスタティック変数 Thanskをあなたの助けに使っていたことでした。 – AhmedWael

答えて

0

変数ATBTにはstatic修飾子が使用されています。静的変数のインスタンスは1つだけです。したがって、静的変数の代わりに非静的フィールドを使用してください。

private int BT; 
private int AT; 
+0

うん、うまくいって、ありがとう。 – AhmedWael

関連する問題