0

Java api クラスまたはメソッドを使用せずに空のデータベースを作成する public StudentDatabase() を作成することになっています。データベースにレコードを追加するメソッド public boolean add(String macid, int Exam1, int Exam2) があるはずです。MacID が macid である学生がすでにデータベースに存在する場合、このメソッドはその学生の成績を試験 1 と試験 2 で更新し、false を返します。それ以外の場合は、macid、exam1、exam 2 をデータベースに新しいレコードとして作成し、true を返します。私はここまで来ました:

    public class StudentDatabase
    {
public StudentDatabase()
{
   Map<String, Set<int>> = new HashMap<String,List<int>>();
}

public boolean add(String macid, int exam1, int exam2)
{
    remove(0);
    return false;
}

public int getExam1(String macid)
{
if (sdb.macid("ID_") = macid);
else
    return -1;
}

public int getExam2(String macid)
{
    return -1;
}

public boolean remove(String macid)
{

            if (StudentDatabase.macid == macid[]) { 
                for (int j = i; j < (size - 1); j++) 
                {
                    ARRAY[j] = ARRAY[j + 1]; //shift elements left
                }

            return true;
        }

    return false;
}

public int query(int exam1Low, int exam1High, int exam2Low, int exam2High)
{
    return 0;
}
}

Map を使用してデータベースを作成する方法がわかりません。どんな助けでも大歓迎です。ありがとうございました

4

2 に答える 2

0

検査の数がわかっているので、整数のリストの代わりに ExamRecord を保存することをお勧めします。

ExamRecord implements Comparable<ExamRecord>, Serializable {
    private int exam1;
    private int exam2;

    public int compareTo(ExamRecord other) { }

    public int hashCode() { }
}

Map<String, ExamRecord>

Map を使用してデータベースを作成する方法については、すべての生徒の名前 (キー) をリストする "index" というファイルが 1 つ必要です。次に、生徒と同じ名前のファイルを生徒ごとに 1 つ作成します (つまり、"John Smith" は "John Smith.dat" または "John_Smith.dat" などに保存されます); このファイルには、学生のシリアル化された ExamRecord が含まれているか、または試験スコアのリストが含まれています (たとえば、学生の ExamRecord が Exam1=50、exam2=80 の場合、50;80 を保存し、これらの値を解析してデータベースをメモリに読み込むときの ExamRecord )。

別のオプションは、データベース全体をシリアル化/逆シリアル化することですが、クラス プロジェクトでこれを行う場合、教授はこれが不正行為であると考える可能性があります。

于 2013-04-25T00:07:08.690 に答える
0

マップ クラスについて適切に考えていないと思います。マップの作成をこれに変えたほうがいいと思います。

Map<String,List<int>> index = new HashMap<String,List<int>>();

そこから、hashmap メソッドを使用して学生を追加および削除できます。 ここにある HashMap API
これがコードの始まりです

public boolean inIndex(String key)
    {
        return index.containsKey(key);
    }
public void index(String val,int res1,int res2)
    {   
            List<Integer> intList = new LinkedList<Integer>();         

            if(inIndex(val)==false)
            {
            index.put(val,intList);                                    
            }
            index.get(val).add(res1);
            index.get(val).add(res2);  
        }

    }
于 2013-04-24T23:56:45.883 に答える