Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 考试类型应用程序的数据结构_Oop_Object_Uml_Object Oriented Analysis - Fatal编程技术网

Oop 考试类型应用程序的数据结构

Oop 考试类型应用程序的数据结构,oop,object,uml,object-oriented-analysis,Oop,Object,Uml,Object Oriented Analysis,我正在尝试创建一个测试(考试)应用程序。然而,我在设计我的模型时遇到了困难。有人能推荐一个好的UML图来适应以下特性吗: 层次结构: 模块具有多个单元 单位有考试 考试有问题 问题类型:(对或错、识别、多项选择、匹配类型) 到目前为止,这是我的原创设计: 有了这种设计,我无法回答“匹配类型”的问题。此外,我怎样才能坚持我以前的考试并轻松检查正确答案?您可以像这样创建类图(使用创建) 但是类之间的关联取决于功能需求。例如,在本例中,一个考试只属于一个特定单元,但您可能需要属于0..N个不同单

我正在尝试创建一个测试(考试)应用程序。然而,我在设计我的模型时遇到了困难。有人能推荐一个好的UML图来适应以下特性吗:

层次结构:

  • 模块具有多个单元
  • 单位有考试
  • 考试有问题
  • 问题类型:(对或错、识别、多项选择、匹配类型)
到目前为止,这是我的原创设计:
有了这种设计,我无法回答“匹配类型”的问题。此外,我怎样才能坚持我以前的考试并轻松检查正确答案?

您可以像这样创建类图(使用创建)

但是类之间的关联取决于功能需求。例如,在本例中,一个考试只属于一个特定单元,但您可能需要属于0..N个不同单元的考试。这只是一个例子

此外,如何坚持和检查答案取决于进一步的功能需求。最简单的方法是将学生的答案与特定问题的链接存储起来


添加匹配类型问题会使事情变得复杂一些,以下是一些想法:

该模型使用泛化-
Option
是一个抽象类,包含两个继承类
ListOption
MatchingTypeOption
。当您需要存储有关答案的详细信息时,必须使用
SelectedOption
执行类似操作,因为您需要存储匹配类型的选定选项对


但是你也可以只存储信息
答案是否正确-是/否

当你不确定如何连接两个类时,想想,如果你应该在它们之间多使用一个类


不同的问题应设置为单独的问题。或者你违反了规则。你可以从大量现有的考试申请中得到一些启示,例如。另请参见:“请求家庭作业帮助的问题必须包括到目前为止您为解决问题所做工作的摘要,以及您解决问题的困难的描述。”我与xmojmr一样关注。恕我直言,如果有人为你工作,你希望从中得到什么呢?您好@xmojmr:对不起,我无法添加我最初的工作。我添加了我当前工作的屏幕截图。希望这能增加更多信息。双箭头是什么意思?UML标准中没有这样的东西。问题类型块就是一个不应该这样做的例子。你有什么类和接口?什么接口?UML类可以映射到SQL表。良好的OOP编程风格坚持使用接口/抽象类作为抽象,而不是类型/模式或类似的东西。顺便说一句,类型已经有了它的含义。当您将类(分析模型)映射到SQL数据库(技术实现)时,如何映射接口<代码>类型和
问题类型
不一样。@在第一个图表中的“答案”实体中,VDohnal是否指特定考试的可用选项/答案?或者学生给出的答案?我认为一个好的课堂模型应该只包含系统功能真正需要的课堂,而不是更多。因此,只有当您完全确定所需的关系为M:N.@VDohnal或缺少任务/现实生活中的某些必要主题时,才能添加额外的类。(我们应该区别学生给出的答案和正确答案)。另外,如果我们在OOP中,我们应该为多态性使用类,而不是模式/变体。请注意,单词Type已经有了它的含义,不要以其他方式使用它@VDohnal一个好的类模型就是这样的模型,它可以使您的类变得小而简单。你的任务不是让模型本身变小!我看到我们在这里有一个有趣的辩论:)我必须说,将几个类推广到一个接口(问题),而不指定特定于这些单独类的属性或关系对我来说似乎是误导。但我们已经离成功很远了。。。