首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >开发MCQ评分系统所需的帮助

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

Stack Overflow用户
提问于 2011-08-21 14:53:47
回答 1查看 482关注 0票数 2

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

我将在android应用程序中使用此系统。我对哪一种设计模式是完美的感到困惑。

因此,如果我得到它的任何代码样本或结构,那将是很好的。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-21 15:01:47

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

每当我听到“他们将会有X个,更多将在以后添加”的时候,我的思想立即转向战略模式(GoF,谷歌……为此很容易找到一些UML ),它主要定义了算法的接口。

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

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

编辑:哦,看看Schwartzbach & Frandsen的“多项选择的单一选择”--它在google上--这是做公平MCQ评分的最好方法,也是我在过去一年里一直在忍受的;)

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

代码语言:javascript
运行
复制
main(){
    ...
    if (difficulty == 1){
        [elaborate easy algorithm here...]
    else if(...){
        [slightly harder algorithm here...]

诸若此类。相反,创建一个辅助方法,比方说mark,并将其传递给算法实例:

代码语言:javascript
运行
复制
private int mark(GradingAlgorithmInterface algorithm, DataStructure paper){
    algorithm.markPaper(paper);
}

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

诸若此类。希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7136866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档