3

私は現在、学校で ADT を学んでおり、割り当てのために病院で ER をシミュレートする必要があります。現在、次のような患者クラスがあります。

public class Patient implements Comparable<Patient>{

    private String name;
    private int condition;

    public Patient( String n, int c ){
        this.name = name;
        this.condition = condition;
    }

    public String toString(){
        return name;
    }

    public int boundary(int condition) {
        if (condition > 17){
            return 17;
        }
        else if (condition < 1) {
            return 1;
        }
        return condition;
    }

    public int compareTo( Patient other ) {
        if( this.condition < that.condition ) {
            return -1;
        }
        else if( this.condition > that.condition ) {
            return +1;
        }
        else {
            return this.name.compareTo(that.name);
        }    
    }
}

そして、ER() というクラスを作成する必要があります...実装する必要がある多くのメソッドの 1 つは、次のような条件を持ちます。

public void addPatient(String name, int severity, Date time)
// Purpose: adds a person to the waiting list in the emergency 
//          room.  
// Preconditions: name is not null
//                severity is an integer in the range [1,17]
//                time is the current time
// Postconditions: the person is added to the emergency room
//                 waiting list.  The "priority" in the list is 
//                 based on severity (1 being least important and
//                 17 being most important) first and for patients
//                 with equal severity, based on time (FIFO).

私の質問は、各患者を正確にどこに作成し(名前と状態の重症度を割り当てる)、誰かが私を助けてくれるでしょうか(直接コードや回答を求めていないため、学びたいので説明してください)、優先順位付けの側面と、患者に優先順位を付ける方法を教えてください。到着時まで同じ重症度?

皆様のご協力やご意見をお寄せいただきありがとうございます。

4

1 に答える 1

1

のような特定のコントローラーの作成から始めFrontDeskController、このクラスではregister/ checkIn、などのメソッドを作成しますcheckOutCollectionここにすべての患者データを挿入/削除し、自分のケースに適していると思われるすべてのデータを1つに収集します。

キューに優先順位を付けるには、可能であればCollection処理するを分離する必要があるため、クイックソートなどの単純な並べ替えアルゴリズムを使用して並べ替え、並べ替えデータを別のコレクションeqに渡す必要がありQueueますStackERこのメソッドはクラスに入れるのが良いと思います。

于 2013-03-18T03:44:08.927 に答える