gpt4 book ai didi

c# - 动态问卷

转载 作者:行者123 更新时间:2023-11-30 16:04:39 25 4
gpt4 key购买 nike

我正在尝试使用 ASP.Net 和 C# 制作问卷这是一个问题列表,根据每个答案会出现另一个问题(例如,这是 X 还是 Y?如果您从单选按钮列表中选择 X,您将得到另一个问题“x 的颜色是什么”,如果您选择 Y“hos”快是 Y")

到目前为止我所做的是我制作了大约 7 个带有单选按钮列表的标签(问题数量),将它们设置为不可见,并且根据第一个问题的答案我使第二个标签和单选按钮列表可见,并更改文本到我想要的问题。

protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e) //first question
{
//selected value =0 => No || selected value= 1 => Yes
if (RadioButtonList1.SelectedValue == "1")
{
Label1.Visible = true;
Label1.Text = "Question number 2 based on answer a"; //show the second question
RadioButtonList2.Visible = true; //show the second question options

}
else {
Label1.Text = "Question number 2 based on answer b";
Label1.Visible = true; //show the second question
RadioButtonList2.Visible = true; //show the second question options
}
}

protected void RadioButtonList2_SelectedIndexChanged(object sender, EventArgs e) //2nd question
{
if (RadioButtonList1.SelectedValue == "1" && RadioButtonList2.SelectedValue == "1") //1st question answer was yes &2nd is yes
{
//some logic here
}

使用这个逻辑到目前为止它工作正常,但是还有比这个更简洁的逻辑吗?例如在回答了第 7 个问题后,我对第 4 个问题进行了修改,我怎样才能让回答的问题 (5,6,7) 再次被清除和隐藏?!!!

最佳答案

我无法提供这方面的代码,但这是一个可能对您有用的想法。

根据您的描述,我想到了一种数据结构。 。看起来您的问题可以通过将您的问题实现到 Tree 数据结构中来使用面向对象编程来实现。

树中的每个节点都可以有一个唯一的标识符(即 ID),这可以将您的单选按钮与树链接起来。

如果我们有问题A和问题B,并且B依赖于问题A,那么B 问题将是 A 问题的子问题。

因此您可以根据用户的选择通过将每个访问过的节点标记为 Visited 来遍历树,这将帮助您跟踪用户当前正在遵循的“路径”。

这是您的树节点的可能(草稿)结构:

internal class Node
{
private int ID { get; private set; }
private string NodeQuestion { public get; public set; }
private int State { public get; public set; } // 0 for Non-Visited, 1 for Visited
private Node Left { public get; public set; }
private Node Right { public get; public set; }

public Node(...)
{
....
}
.
.
.
}

关于c# - 动态问卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34776320/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com