Asp.net 我如何确定;“正确”;问卷中使用分支的步骤数?

Asp.net 我如何确定;“正确”;问卷中使用分支的步骤数?,asp.net,Asp.net,我有一个潜在的数学/公式/算法问题,我想得到帮助 我已经在ASP.Net中编写了一个调查问卷应用程序,它让人们浏览一系列页面。我引入了条件处理或分支,因此可以根据答案跳过某些页面,例如,如果您超过某个年龄,您将跳过有青少年音乐选择的页面,直接转到黄金老歌页面 我希望显示某个人在调查问卷中所占的百分比。假设我有10页要看,我的第一个答案直接带我到第9页。从技术上讲,我现在已经完成了90%的问卷调查,但用户可以认为自己在第2页(共3页):开始页(带分支问题)、第9页,然后是结束页(第10页) 当我在

我有一个潜在的数学/公式/算法问题,我想得到帮助

我已经在ASP.Net中编写了一个调查问卷应用程序,它让人们浏览一系列页面。我引入了条件处理或分支,因此可以根据答案跳过某些页面,例如,如果您超过某个年龄,您将跳过有青少年音乐选择的页面,直接转到黄金老歌页面

我希望显示某个人在调查问卷中所占的百分比。假设我有10页要看,我的第一个答案直接带我到第9页。从技术上讲,我现在已经完成了90%的问卷调查,但用户可以认为自己在第2页(共3页):开始页(带分支问题)、第9页,然后是结束页(第10页)

当我在第9页(共10页)上时,我如何显示我在66%而不是90%上

有关更多信息,每个页面上都可以有许多问题,这些问题上可以有一个或多个条件,将用户发送到另一个页面。默认情况下,下一页将是集合中的下一页,但这可能会被覆盖(例如,可以跳过整个页面集)


有什么想法吗-简单的答案是你不能。从你所说的,你将不知道,直到你到达了最后,用户将看到多少页,所以你不能真正显示一个准确的结果

在您的示例中,为了获得更好的结果,您可以做的是假设他们正在浏览所有剩余的页面。在这种情况下,您可以在任何页面上看到:

  • 到目前为止已浏览的页面数,包括当前页面(已访问的页面)
  • 当前页面的编号(页面位置)
  • 总页数(总页数)
  • 现在最大页数为:

    max_pages = total_pages - page_position + visited_pages
    
    您可以将total_pages-page_position视为剩余访问的页面数,这使得max_页面非常直观

    因此,在10页的示例中,您给出了访问页面数=2(第1页和第9页),页面位置=9,总页面数=10

    所以最大页数=10-9+2=3

    然后通过你所做的来计算出距离

    progress = visited_pages/max_pages*100
    

    需要注意的一点是,如果你进入第1、2、3、4、9、10页,那么你的进度将是10%、20%、30%、40%、83%、100%,所以你仍然会得到一个奇怪的跳跃,可能会让人困惑。但这几乎是不可避免的。

    从逻辑上讲,除非用户的问题图是预先确定的,否则您无法预先确定他们的完成百分比

    话虽如此

    你所能做的就是根据你所知道的信息建立一个完整的用户预期路径图:他们已经完成了什么问题,他们必须回答什么问题,然后简单地计算一个百分比

    这可能会涉及一个数据结构,比如一个链表,用来计算它们在哪里,以及用户剩下来完成什么,这个实现取决于您


    这里的主要警告是,您必须接受这样一个事实:如果用户的问题图表发生变化,那么他们的完成百分比也会发生变化。理论上,他们可以显示90%,然后它会改变,他们会显示50%。

    hmm,好吧,看起来是这样:-)我必须跟踪我有多少真正访问过的页面,因为在他们来回回答问题时,这些页面可能会改变。我缺少的一点是“假设他们正在浏览所有剩余的页面”,我没有想到这一点。。。谢谢,我明天会试试这个:-)如果他们可以回去更改答案,使他们已经回答的页面无效,这将变得复杂。我倾向于计算任何被回答的页面,即使不在他们当前的路径中,因为如果他们要更改回确实需要它的路径,他们大概不需要再次填写它。在这种情况下,你只需要考虑一下你想要百分比说什么,然后适当地编码就行了。嗨,克里斯,如果他们通过问卷“改变路径”,我会删除之前回答过的页面,他们会接受改变后的百分比。我想知道问卷上的某种通知是否有帮助?无论如何,我已经把它标记为答案,再次感谢你的帮助。