LunarMind/TestEditor/Question.cs

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LunarSF.SHomeWorkshop.LunarMind
{
    /**
 * 由BaseQuestion拆分而成,如果一个Base中只有一个填充项,则会被拆分成一个Question。
 * BaseQuestion的Body(题干)中有几个填空项,就应该有几个答案列表。
 *
 * @author YangZhenyv
 */
    public class Question
    {
        private List<ChoiceItem> choiceItems = new List<ChoiceItem>();

        public List<ChoiceItem> ChoiceItems
        {
            get { return this.choiceItems; }
        }

        private string answer = string.Empty;
        /// <summary>
        /// [只读]仅适用于选择题(包括判断题)、填空题。不适用于主观题。
        /// </summary>
        public string Answer
        {
            get
            {
                if (choiceItems.Count <= 0)
                {
                    if (string.IsNullOrEmpty(this.titleString)) return string.Empty;

                    //填空题
                    int startBracket = this.titleString.IndexOf("【");
                    int closeBracket = this.titleString.IndexOf("】");

                    if (startBracket < 0 || closeBracket < 0 || closeBracket < startBracket) return string.Empty;

                    return this.titleString.Substring(startBracket, closeBracket - startBracket);
                }

                return this.answer;
            }
        }

        public Question(string titleString)
        {
            this.titleString = titleString;
        }

        /// <summary>
        /// [构造方法]生成一道试题。适用于填空题(无答案)、选择题(有答案项、错项,)、判断题(特殊的选择题)。
        /// </summary>
        /// <param name="titleString">应传入由BaseQuestion.BuildQuestionTitles()方法生成的String[]的某个成员。
        /// 它的形式是一行带一个填空的文本。</param>
        /// <param name="bodyString">应传入每个试题的原文本的“答案”部分,
        /// 每个答案文本片段中应包含一个“答案”及一个或多个“错项”。</param>
        public Question(string titleString, string bodyString)
后面还有 147 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。