2013-11-21 16 views
1

我正在寫這個學期的最終課程,我想得到一些意見。我將創建一個GUI,讓用戶嘗試解決基本的數學問題。我正在考慮使用hashmap,因爲它包含一個鍵和一個值。我的想法是我可以向用戶顯示問題,然後將其與給出的答案進行比較。問題必須隨機出現。那麼你們認爲hashmap是否應該走,或者你認爲可以通過更好的方式來實現它? 謝謝使用hashmap進行問答程序?

+1

通常這種問題不太適合堆棧溢出。它可以工作,但是再一次可能有一百種可怕的做法,最終都歸結爲個人意見。 – ApproachingDarknessFish

+0

包含一個自定義類的列表有什麼問題,該類包含一個'字符串方程;'和'雙重答案;'並且隨機從該列表中檢索一個問題?寫下你的選擇,看看他們如何比較彼此。 –

+1

不清楚如何擁有一個關鍵和價值有助於隨機挑選問題並將給定答案與預期答案進行比較。你有什麼考慮?代碼在哪裏? –

回答

1

如果您想要測試用戶的基本數學問題,我會推薦動態地提出問題數據(並且評估答案也是一樣)。如果你有不同類型的問題(比如說除法,指數,對數等),你應該爲這些問題編寫類。他們都可以繼承一個抽象的Question類。

因此,像:

public abstract class Question{ 
    // ... general question fields and methods. 
    String question; 
    double answer; 

    public boolean evaluate(double input){ 
     if (input == this.answer) { return true; } 
     else { return false; } 
    } 
} 

public class LogarithmQ extends Question{ 

    // Declare relevant fields such as x, y, ... , answer 

    // Define a constructor that generates random numbers to populate fields 
    // so that every question 'object' is different. 

    // also have an "evaluate()" method that 
    // takes as input the user's answer 
    // and returns true/false based on the correct answer value 
} 

public class AdditionQ extends Question{ 
    // similar stuff here 
} 

,如果你希望你的應用程序自動生成新的數據會在每次運行時這種方法是有用的。

現在對於GUI,您可以實例化幾種不同類型的問題對象並將它們存儲在列表中。由於每個對象都包含問題和答案,並且擴展了抽象類,所以您將擁有一個合適且易於使用的界面。

這當然只是一個建議。這種方法會有幾種不同的觀點。

+0

嘖嘖嘖嘖,我沒想到這一切。謝謝。我正在挖掘Java API。這是我的第二個學期,也是我們第一個學期在那裏檢查的東西。再次感謝 –

1

我認爲最好使用存儲問題和答案的類,而不是有一個列表。所以你也可以封裝例程來測試答案是否正確以及你需要的其他東西。

相關問題