2011-08-26 100 views
0

在我的網站中,我將展示一個主要問題並附帶一些答案。如何在前端和後端實現問題回答邏輯

因此,如果用戶點擊其中一個答案,我會再次顯示一些問題的列表,並給出相應的答案。因此,每個答案都有一些問題。這個過程持續到有沒有問題的答案爲止。我怎樣才能做到最有效的服務器端在Java以及在HTML端。我如何在一些模型中存儲這個結構。

如果有人知道任何一種實現這個邏輯的開源項目,請幫忙。

+0

在您的示例中,您提到如果用戶單擊答案,則會顯示問題列表和答案。我想知道的是,當你點擊答案時,顯示的相應問題將如何相關?例如,他們是否會分享類似的話題,或者這些問題是根據答案提出的問題? –

+0

你是對的!但我不知道如何..? –

+0

我的意思並不是數據結構。我的意思是他們會分享一個類似的話題,或者這些問題是根據答案提出的問題嗎? –

回答

1

這聽起來好像你需要一棵樹:

  • 一個問題可表示爲一個節點
  • 的回答是一個問題導致另一個
  • 的答案不會導致邊緣到一個新的問題,只會將目標節點設置爲空。

在Java中,你將可以代表這樣說:

class Question { 

    // The question, for example "What is the color of the sky?" 
    String question; 

    // List of answer alternatives: For example 
    //  - Blue (with destination, "What is the color of the sun?") 
    //  - Red (with destination null) 
    List<Answer> answers; 

} 


class Answer { 

    // The answer, for example "Blue" 
    String answer; 

    // The next question (or null, if this answer is terminating) 
    Question destinationQuestion; 
} 

要創建這些對象的一個​​完整的樹,你需要或者

  • 提供構造每帶一個參數屬性

    在這種情況下,您需要從樹葉構建樹(因爲無法提供中間節點) eir參數,除非你已經創建了它們)

  • 創建「setter」方法,創建所有問題並將它們設置爲適當的孩子。 (這將允許您從根建立樹的葉子。)


其他替代方案:

  • 你可以使用DAG(有向無環圖),如果你想在幾個地方重用樹的部分(即,如果多個答案導致相同的答案)

  • 如果您希望允許問題系統中的循環,則可以使用普通有向圖。

無論哪種方式,我上面描述的兩個類都符合法案!

+0

亞我想過一次,但我是一個新手...看起來相當複雜的我..不知道如何開始...... :( –

+0

我發佈了一些代碼爲你 – aioobe

+0

答案也可以有多個問題。 –