gpt4 book ai didi

java - 开发 MCQ 评分系统开发所需的帮助

转载 作者:行者123 更新时间:2023-11-30 09:46:27 25 4
gpt4 key购买 nike

我正在考虑开发一个 MCQ 评分系统。将有三种模式,简单,中级和困难。以后可能会引入任何新模式。每个正确答案的标记取决于模式。每种模式都有自己的标记系统实现。会有一些加分系统,比如一次答对三个,加分会加到总分上。中级和困难模式将有负面标记系统。这就是我的基本结构。

我将在 Android 应用程序中使用该系统。我对哪个设计模式是完美的感到困惑。

因此,如果我能得到任何代码示例或结构,那就太好了。

提前致谢。

最佳答案

嗯,这个问题似乎有多个方面;我会回答你的第一个也是主要的问题:

每当我听到“将有 X 个,稍后再添加”这句话时,我的想法立即转向策略模式(GoF、google...很容易找到一些 UML),它主要定义算法的接口(interface)。

在这种情况下,您将实现此接口(interface)的 3 个实例,稍后定义和添加另一个算法不会有问题 - 它只会使用相同的接口(interface)。

我把这个方法想象成这样:public int markPaper(DataStructure mcq),如果这对你有任何帮助的话。

编辑:哦,看看 Schwartzbach 和 Frandsen 的“多项选择的单一选择” - 它在谷歌上 - 进行公平 MCQ 标记的最巧妙方法,也是我在过去一年中一直遭受的痛苦; )

EDIT2:好的,让这更明确一点;在您的主要控制流程中,您可能有一个“markPaper()”方法。因为我们希望它是模块化的,所以我们将采用所有这些功能,将其移动到一个实现分级算法接口(interface)的类中。你可能倾向于这样写:

main(){
...
if (difficulty == 1){
[elaborate easy algorithm here...]
else if(...){
[slightly harder algorithm here...]

等等。相反,制作一个辅助方法,比如标记,并将该算法的实例传递给它:

private int mark(GradingAlgorithmInterface algorithm, DataStructure paper){
algorithm.markPaper(paper);
}

main(){
...
if(difficulty == 1){
mark(new ConcreteEasyAlgorithm(), paper);
} else if () {...

等等。希望这会有所帮助。

关于java - 开发 MCQ 评分系统开发所需的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7136866/

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