Exemple #1
0
        private void CreateFIBQuestion(SectionBaseInfo info, Section section)
        {
            valuesStruct valueMC = new valuesStruct(20); //题干展示的值

            //随即获得数值
            this.GetRandomValues(info, ref valueMC);

            //生产题干文本
            string questionText = QuestionText(valueMC);

            FIBQuestion fibQuestion = new FIBQuestion();

            fibQuestion.Content.Content     = questionText;
            fibQuestion.Content.ContentType = ContentType.Text;
            section.QuestionCollection.Add(fibQuestion);

            QuestionBlank blank = new QuestionBlank();

            QuestionContent blankContent = new QuestionContent();

            blankContent.Content     = valueMC.answer.ToString();
            blankContent.ContentType = ContentType.Text;
            blank.ReferenceAnswerList.Add(blankContent);

            fibQuestion.QuestionBlankCollection.Add(blank);

            fibQuestion.Content.Content += blank.PlaceHolder;

            StringBuilder strBuilder = new StringBuilder();

            //解题步骤
            string Steps = SolveSteps(valueMC);

            strBuilder.AppendLine(Steps);

            fibQuestion.Solution.Content = strBuilder.ToString();
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            //题干
            string calSteps = "";

            for (int i = 0; i < valueMC.number; i++)
            {
                calSteps += valueMC.values[i].ToString();
                if (i != valueMC.number - 1)
                {
                    calSteps += "+";
                }
            }

            //解题步骤

            //第一步
            calSteps += "=";
            calSteps += valueMC.valueMedian.ToString();
            calSteps += "×";
            calSteps += valueMC.number.ToString();

            //第二步
            calSteps += "=";
            decimal answer = valueMC.valueMedian * valueMC.number;

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }
            calSteps += valueMC.answer.ToString();

            calSteps += ",是正确答案。";

            return(calSteps);
        }
Exemple #3
0
        private void GetRandomValues(SectionBaseInfo info, ref valuesStruct valueABC)
        {
            int minValue = 10;
            int maxValue = 100;

            if (info is SectionValueRangeInfo)
            {
                SectionValueRangeInfo rangeInfo = info as SectionValueRangeInfo;
                minValue = decimal.ToInt32(rangeInfo.MinValue);
                maxValue = decimal.ToInt32(rangeInfo.MaxValue);
            }

            if (minValue < 16)
            {
                minValue = 16;
            }

            if (maxValue < 100)
            {
                maxValue = 100;
            }

            Random rand = new Random((int)DateTime.Now.Ticks);

            valueABC.number = 2;// rand.Next(10, 100 + 1);
            valueABC.answer = 0;

            int     tmpMaxValue = rand.Next(minValue, maxValue + 1);
            decimal B           = rand.Next(minValue, maxValue + 1);
            decimal A           = rand.Next(decimal.ToInt32(B) + 11, maxValue + decimal.ToInt32(B) + 12);

            //把被减数A和减数B存入数组
            valueABC.values[0] = A;
            valueABC.values[1] = B;
            valueABC.answer    = A - B;
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";
            //题干
            int num = valueMC.number;
            int i, j;

            //for (i = 0; i < num - 1; i++)
            {
                calSteps += valueMC.values[0].ToString();
                calSteps += "÷";
            }
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1, A2;
            int n = valueMC.baseNum;

            if (valueMC.posMul == 0)
            {
                A1 = decimal.ToInt32(valueMC.values[0]);
                A2 = decimal.ToInt32(valueMC.values[1]);
            }
            else
            {
                A2 = decimal.ToInt32(valueMC.values[0]);
                A1 = decimal.ToInt32(valueMC.values[1]);
            }

            int baseNum = 1000;
            int a1      = (A1 % baseNum) / 100;
            int b1      = ((A1 % baseNum) % 100) / 10;
            int c1      = ((A1 % baseNum) % 100) % 10;
            int a2      = (A2 % baseNum) / 100;
            int b2      = ((A2 % baseNum) % 100) / 10;
            int c2      = ((A2 % baseNum) % 100) % 10;
            int d1      = A1 / 1000;
            int d2      = A2 / 1000;

            int m = 2;// A2 / n;
            int a = A1 % 100;
            int A = A1 - a;

            //第一步
            //calSteps += "=(";
            //calSteps += A.ToString();
            //calSteps += "+";
            //calSteps += a.ToString();
            //calSteps += ")÷";
            //calSteps += A2.ToString();

            ////第二步
            //int x1 = A / A2;
            //int x2 = a + A % A2;
            //calSteps += "=";
            //calSteps += x1.ToString();
            //calSteps += "+";
            //calSteps += x2.ToString();
            //calSteps += "÷";
            //calSteps += A2.ToString();

            ////第三步
            //int x3 = x1 + x2 / A2;
            ////int x2 = a + x1 % A2;
            ////calSteps += "=";
            ////calSteps += x1.ToString();
            ////calSteps += "+";
            ////calSteps += x2.ToString();
            ////calSteps += "÷";
            ////calSteps += A2.ToString();

            //decimal answer = 0;
            //answer = x1 + x2;

            ////第四步

            //if (answer != valueMC.answer)
            //{
            //    calSteps += "Error!";
            //}

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";
            //题干
            int num = valueMC.number;
            int i, j;

            //for (i = 0; i < num - 1; i++)
            {
                calSteps += valueMC.values[0].ToString();
                calSteps += "×";
            }
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1, A2;

            if (valueMC.posMul == 0)
            {
                A1 = decimal.ToInt32(valueMC.values[0]);
                A2 = decimal.ToInt32(valueMC.values[1]);
            }
            else
            {
                A2 = decimal.ToInt32(valueMC.values[0]);
                A1 = decimal.ToInt32(valueMC.values[1]);
            }

            int baseNum = 1000;
            int a1      = (A1 % baseNum) / 100;
            int b1      = ((A1 % baseNum) % 100) / 10;
            int c1      = ((A1 % baseNum) % 100) % 10;
            int a2      = (A2 % baseNum) / 100;
            int b2      = ((A2 % baseNum) % 100) / 10;
            int c2      = ((A2 % baseNum) % 100) % 10;
            int d1      = A1 / 1000;
            int d2      = A2 / 1000;

            int baseNum2 = 100;
            int bs       = 100 - A2;

            //第一步
            int A21 = (b2 + 1) * 10;

            calSteps += "=";
            calSteps += A1.ToString();
            calSteps += "×";
            calSteps += c2.ToString();
            calSteps += "+";
            calSteps += A1.ToString();
            calSteps += "×";
            calSteps += b2.ToString();
            calSteps += "×10";
            calSteps += "+";
            calSteps += A1.ToString();
            calSteps += "×";
            calSteps += a2.ToString();
            calSteps += "×100";

            //第二步
            int A1c2 = A1 * c2;
            int A1b2 = A1 * b2 * 10;
            int A1a2 = A1 * a2 * 100;

            calSteps += "=";
            calSteps += A1c2.ToString();
            calSteps += "+";
            calSteps += A1b2.ToString();
            calSteps += "+";
            calSteps += A1a2.ToString();

            //第三步

            decimal answer = 0;

            answer = A1c2 + A1b2 + A1a2;

            //第四步

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string  calSteps = "";
            decimal A        = decimal.ToInt32(valueMC.values[0]);
            decimal B        = decimal.ToInt32(valueMC.values[1]);
            decimal C        = decimal.ToInt32(valueMC.values[2]);
            decimal answer   = 0;
            decimal A_C;

            //题干
            calSteps += A.ToString();
            switch (valueMC.mode)
            {
            case 0:     //两个加
                calSteps += "+(";
                calSteps += B.ToString();
                calSteps += "+";
                calSteps += C.ToString();
                calSteps += ")";

                //第一步:去括号
                calSteps += "=";
                calSteps += A.ToString();
                calSteps += "+";
                calSteps += B.ToString();
                calSteps += "+";
                calSteps += C.ToString();

                //第二步:移位
                calSteps += "=";
                calSteps += A.ToString();
                calSteps += "+";
                calSteps += C.ToString();
                calSteps += "+";
                calSteps += B.ToString();

                //第三步:去括号
                A_C       = A + C;
                calSteps += "=";
                calSteps += A_C.ToString();
                calSteps += "+";
                calSteps += B.ToString();

                answer = A_C + B;
                break;

            case 1:     //一加一减
                calSteps += "+(";
                calSteps += B.ToString();
                calSteps += "-";
                calSteps += C.ToString();
                calSteps += ")";

                //第一步:去括号
                calSteps += "=";
                calSteps += A.ToString();
                calSteps += "+";
                calSteps += B.ToString();
                calSteps += "-";
                calSteps += C.ToString();

                //第二步:移位
                calSteps += "=";
                calSteps += A.ToString();
                calSteps += "-";
                calSteps += C.ToString();
                calSteps += "+";
                calSteps += B.ToString();

                //第三步:去括号
                A_C       = A - C;
                calSteps += "=";
                calSteps += A_C.ToString();
                calSteps += "+";
                calSteps += B.ToString();

                answer = A_C + B;
                break;

            case 2:     //一减一加
                calSteps += "-(";
                calSteps += B.ToString();
                calSteps += "+";
                calSteps += C.ToString();
                calSteps += ")";

                //第一步:去括号
                calSteps += "=";
                calSteps += A.ToString();
                calSteps += "-";
                calSteps += B.ToString();
                calSteps += "-";
                calSteps += C.ToString();

                //第二步:移位
                calSteps += "=";
                calSteps += A.ToString();
                calSteps += "-";
                calSteps += C.ToString();
                calSteps += "-";
                calSteps += B.ToString();

                //第三步:去括号
                A_C       = A - C;
                calSteps += "=";
                calSteps += A_C.ToString();
                calSteps += "-";
                calSteps += B.ToString();

                answer = A_C - B;
                break;

            case 3:     //两个减
                calSteps += "-(";
                calSteps += B.ToString();
                calSteps += "-";
                calSteps += C.ToString();
                calSteps += ")";

                //第一步:去括号
                calSteps += "=";
                calSteps += A.ToString();
                calSteps += "-";
                calSteps += B.ToString();
                calSteps += "+";
                calSteps += C.ToString();

                //第二步:移位
                calSteps += "=";
                calSteps += A.ToString();
                calSteps += "+";
                calSteps += C.ToString();
                calSteps += "-";
                calSteps += B.ToString();

                //第三步:去括号
                A_C       = A + C;
                calSteps += "=";
                calSteps += A_C.ToString();
                calSteps += "-";
                calSteps += B.ToString();

                answer = A_C - B;
                break;

            default:
                calSteps += "+(";
                calSteps += B.ToString();
                calSteps += "+";
                calSteps += C.ToString();
                calSteps += ")";

                //第一步:去括号
                calSteps += "=";
                calSteps += A.ToString();
                calSteps += "+";
                calSteps += B.ToString();
                calSteps += "+";
                calSteps += C.ToString();

                //第二步:移位
                calSteps += "=";
                calSteps += A.ToString();
                calSteps += "+";
                calSteps += C.ToString();
                calSteps += "+";
                calSteps += B.ToString();

                //第三步:去括号
                A_C       = A + C;
                calSteps += "=";
                calSteps += A_C.ToString();
                calSteps += "+";
                calSteps += B.ToString();

                answer = A_C + B;
                break;
            }

            //第四步
            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";

            //题干
            calSteps += valueMC.values[0].ToString();
            calSteps += "×";
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1 = decimal.ToInt32(valueMC.values[0]);
            int A2 = decimal.ToInt32(valueMC.values[1]);

            //if (valueMC.posMul == 1)
            //{
            //    A1 = decimal.ToInt32(valueMC.values[1]);
            //    A2 = decimal.ToInt32(valueMC.values[0]);
            //}

            int baseNum1 = 100;
            int baseNum2 = 10;

            //int a1 = A1 / baseNum1;
            //int b1 = (A1 / baseNum2) % 10;
            //int c1 = A1 % 10;
            //int a2 = A2 / baseNum1;
            //int b2 = (A2 / baseNum2) % 10;
            //int c2 = A2 % 10;
            decimal answer = 0;

            int a      = decimal.ToInt32(A2) / 11;
            int b      = 0;
            int bitNum = 0;

            if (A2 > 10000)
            {
                bitNum = 5;
            }
            else if (A2 > 1000)
            {
                bitNum = 4;
            }
            else
            {
                bitNum = 3;
            }

            if (a > 10000)
            {
                b = a / 10000;
            }
            else if (a > 1000)
            {
                b = a / 1000;
            }
            else if (a > 100)
            {
                b = a / 100;
            }
            else if (a > 10)
            {
                b = a / 10;
            }
            else
            {
                b = a;
            }

            //第一步
            calSteps += "=";
            calSteps += A1.ToString();
            calSteps += "×(";
            int A2a = A2 - a;

            calSteps += A2a.ToString();
            calSteps += "+";
            calSteps += a.ToString();
            calSteps += ")";

            //第二步
            calSteps += "=";
            if (A2 > 10000)
            {
                bitNum    = 5;
                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "0000+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "000+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "00+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "0+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "000+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "00+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "0+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();

                //第三步
                calSteps += "=";
                int sum1 = A1 * b * 10000;
                int sum2 = A1 * b * 1000 * 2;
                int sum3 = A1 * b * 100 * 2;
                int sum4 = A1 * b * 10 * 2;
                int sum5 = A1 * b * 1;
                calSteps += sum1.ToString();
                calSteps += "+";
                calSteps += sum2.ToString();
                calSteps += "+";
                calSteps += sum3.ToString();
                calSteps += "+";
                calSteps += sum4.ToString();
                calSteps += "+";
                calSteps += sum5.ToString();

                answer = sum1 + sum2 + sum3 + sum4 + sum5;
            }
            else if (A2 > 1000)
            {
                bitNum    = 4;
                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "000+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "00+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "0+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "00+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "0+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();

                //第三步
                calSteps += "=";
                int sum1 = A1 * b * 1000;
                int sum2 = A1 * b * 100 * 2;
                int sum3 = A1 * b * 10 * 2;
                int sum4 = A1 * b * 1;
                calSteps += sum1.ToString();
                calSteps += "+";
                calSteps += sum2.ToString();
                calSteps += "+";
                calSteps += sum3.ToString();
                calSteps += "+";
                calSteps += sum4.ToString();

                answer = sum1 + sum2 + sum3 + sum4;
            }
            else
            {
                bitNum    = 3;
                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "00+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "0+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();
                calSteps += "0+";

                calSteps += A1.ToString();
                calSteps += "×";
                calSteps += b.ToString();

                //第三步
                calSteps += "=";
                int sum1 = A1 * b * 100;
                int sum2 = A1 * b * 10 * 2;
                int sum3 = A1 * b * 1;
                calSteps += sum1.ToString();
                calSteps += "+";
                calSteps += sum2.ToString();
                calSteps += "+";
                calSteps += sum3.ToString();

                answer = sum1 + sum2 + sum3;
            }

            //第三步


            //第四步
            //int tmp0 = 0;
            //int tmp1 = 0;
            //int tmp2 = 0;
            ////
            //answer = tmp0 + tmp1 - tmp2;

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
Exemple #8
0
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";
            //题干
            int num = valueMC.number;
            int i, j;

            //for (i = 0; i < num - 1; i++)
            {
                calSteps += valueMC.values[0].ToString();
                calSteps += "÷";
            }
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1, A2;
            int n = valueMC.baseNum;

            if (valueMC.posMul == 0)
            {
                A1 = decimal.ToInt32(valueMC.values[0]);
                A2 = decimal.ToInt32(valueMC.values[1]);
            }
            else
            {
                A2 = decimal.ToInt32(valueMC.values[0]);
                A1 = decimal.ToInt32(valueMC.values[1]);
            }

            int baseNum = 1000;
            int a1      = (A1 % baseNum) / 100;
            int b1      = ((A1 % baseNum) % 100) / 10;
            int c1      = ((A1 % baseNum) % 100) % 10;
            int a2      = (A2 % baseNum) / 100;
            int b2      = ((A2 % baseNum) % 100) / 10;
            int c2      = ((A2 % baseNum) % 100) % 10;
            int d1      = A1 / 1000;
            int d2      = A2 / 1000;

            int baseNum2 = 100;
            int a        = baseNum2 - A2;

            //第一步
            calSteps += "=";
            calSteps += A1.ToString();
            calSteps += "÷(";
            calSteps += baseNum2.ToString();
            calSteps += "-";
            calSteps += a.ToString();
            calSteps += ")";

            //第二步
            int x1 = A1 / baseNum2;
            int x2 = A1 % baseNum2;
            int x3 = a * x1;

            calSteps += "=";
            calSteps += x1.ToString();
            calSteps += "+(";
            calSteps += x2.ToString();
            calSteps += "+";
            calSteps += x3.ToString();
            calSteps += ")÷(";
            calSteps += baseNum2.ToString();
            calSteps += "-";
            calSteps += a.ToString();
            calSteps += ")";

            //第三步
            int x23 = x2 + x3;
            int x4  = ((A1 / A2 - x1) * 100 - x23) / a;

            calSteps += "=";
            calSteps += x1.ToString();
            calSteps += "+(";
            calSteps += x23.ToString();
            calSteps += "+";
            calSteps += x4.ToString();
            calSteps += "×";
            calSteps += a.ToString();
            calSteps += ")÷100";

            int x5 = (x23 + x4 * a) / 100;

            calSteps += "=";
            calSteps += x1.ToString();
            calSteps += "+";
            calSteps += x5.ToString();

            decimal answer = 0;

            answer = x1 + x5;

            //第四步

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";
            //题干
            int num = valueMC.number;
            int i, j;

            //for (i = 0; i < num - 1; i++)
            {
                calSteps += valueMC.values[0].ToString();
                calSteps += "÷";
            }
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1, A2;
            int n = valueMC.baseNum;

            if (valueMC.posMul == 0)
            {
                A1 = decimal.ToInt32(valueMC.values[0]);
                A2 = decimal.ToInt32(valueMC.values[1]);
            }
            else
            {
                A2 = decimal.ToInt32(valueMC.values[0]);
                A1 = decimal.ToInt32(valueMC.values[1]);
            }

            int baseNum = 1000;
            int a1      = (A1 % baseNum) / 100;
            int b1      = ((A1 % baseNum) % 100) / 10;
            int c1      = ((A1 % baseNum) % 100) % 10;
            int a2      = (A2 % baseNum) / 100;
            int b2      = ((A2 % baseNum) % 100) / 10;
            int c2      = ((A2 % baseNum) % 100) % 10;
            int d1      = A1 / 1000;
            int d2      = A2 / 1000;

            int m = 2;// A2 / n;
            int a = A2 % 11;

            //第一步
            //calSteps += "=(";
            //calSteps += A1.ToString();
            //calSteps += "×";
            //calSteps += m.ToString();
            //calSteps += ")÷(";
            //calSteps += A2.ToString();
            //calSteps += "×";
            //calSteps += m.ToString();
            //calSteps += ")";

            //           //calSteps += "×";
            ////calSteps += A1.ToString();
            //////calSteps += "×2";
            ////第二步
            //int n1000 = A1 * m;
            //int A22 = A2 * m;
            //int a77 = a * 91;
            //int n2 = n * 4;
            //calSteps += "=";
            //calSteps += n1000.ToString();
            //calSteps += "÷";
            //calSteps += A22.ToString();

            ////第三步

            //decimal answer = 0;
            //answer = n1000 / A22;

            ////第四步

            //if (answer != valueMC.answer)
            //{
            //    calSteps += "Error!";
            //}

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += "(折半";
            calSteps += n.ToString();
            calSteps += "次),是正确答案。";

            return(calSteps);
        }
        private void GetRandomValues(SectionBaseInfo info, ref valuesStruct valueABC)
        {
            int minValue = 1;
            int maxValue = 100;

            if (info is SectionValueRangeInfo)
            {
                SectionValueRangeInfo rangeInfo = info as SectionValueRangeInfo;
                minValue = decimal.ToInt32(rangeInfo.MinValue);
                maxValue = decimal.ToInt32(rangeInfo.MaxValue);
            }

            Random rand = new Random((int)DateTime.Now.Ticks);

            valueABC.number = rand.Next(10, 100 + 1);

            ////只能偶数个加数
            //if (valueABC.number % 2 != 0)
            //{
            //    valueABC.number++;
            //}

            int i = 0;

            valueABC.answer = 0;

            valueABC.valueStart = rand.Next(minValue, maxValue + 1);
            if (valueABC.valueStart % 2 != 0)
            {
                valueABC.valueStart++;
            }
            valueABC.values[i]   = valueABC.valueStart;
            valueABC.answer     += valueABC.values[i];
            valueABC.valueOffset = 2;// rand.Next(1, 15 + 1); //等差值
            decimal curValue = valueABC.values[i];

            //前3个数
            for (i = 1; i < 3; i++)
            {
                valueABC.values[i] = valueABC.values[i - 1] + valueABC.valueOffset;
                curValue          += 2;
                valueABC.answer   += valueABC.values[i];// valueABC.values[i];
            }

            decimal first = valueABC.values[i - 1], second = 0;

            for (i = 3; i < valueABC.number - 3; i++)
            {
                second           = first + valueABC.valueOffset;
                first            = second;
                curValue        += 2;
                valueABC.answer += second;// valueABC.values[i];
            }

            //最后3个数
            valueABC.values[3] = second + valueABC.valueOffset;
            curValue          += 2;
            valueABC.answer   += valueABC.values[3];
            for (i = 4; i < 6; i++)
            {
                valueABC.values[i] = valueABC.values[i - 1] + valueABC.valueOffset;
                curValue          += 2;
                valueABC.answer   += valueABC.values[i];
            }

            valueABC.valueLast = curValue;
        }
        private void GetRandomValues(SectionBaseInfo info, ref valuesStruct valueABC)
        {
            int minValue = 10;
            int maxValue = 100;

            if (info is SectionValueRangeInfo)
            {
                SectionValueRangeInfo rangeInfo = info as SectionValueRangeInfo;
                minValue = decimal.ToInt32(rangeInfo.MinValue);
                maxValue = decimal.ToInt32(rangeInfo.MaxValue);
            }

            if (minValue < 1)
            {
                minValue = 1;
            }

            if (maxValue > 1000)
            {
                maxValue = 1000;
            }

            Random rand = new Random((int)DateTime.Now.Ticks);

            valueABC.number = rand.Next(3, 6);
            valueABC.answer = 0;

            //decimal A1, A2 = 0;

            int times = rand.Next(1, 10);
            int a1    = 0;                // rand.Next(1, 10); //百位数
            int b1    = rand.Next(1, 10); //十位数
            int c1    = rand.Next(1, 10); //个位数
            int a2    = 0;                // rand.Next(1, 10); //百位数
            int b2    = 0;                // rand.Next(1, 10); //十位数
            int c2    = rand.Next(1, 10); //个位数
            int d1    = 0;
            int d2    = 0;

            decimal[] As      = new decimal[10];
            int       posRand = rand.Next(0, 3);

            if (posRand == 0)
            {
                As[1] = rand.Next(1, 10) * 5;
                As[0] = rand.Next(minValue, maxValue + 1);
                As[2] = rand.Next(1, 10) * 2;
            }
            else if (posRand == 1)
            {
                As[0] = rand.Next(minValue, maxValue + 1);
                As[1] = rand.Next(1, 10) * 5;
                As[2] = rand.Next(1, 10) * 2;
            }
            else
            {
                As[0] = rand.Next(minValue, maxValue + 1);
                As[2] = rand.Next(1, 10) * 2;
                As[1] = rand.Next(1, 10) * 5;
            }

            for (int i = 3; i < valueABC.number; i++)
            {
                int rand52 = rand.Next(0, 3);//
                if (rand52 == 0)
                {
                    As[i] = rand.Next(1, 10) * 5;
                }
                else if (rand52 == 1)
                {
                    As[i] = rand.Next(minValue, maxValue + 1);
                }
                else
                {
                    As[i] = rand.Next(1, 10) * 2;
                }
            }

            valueABC.answer = 1;
            for (int j = 0; j < valueABC.number; j++)
            {
                valueABC.values[j] = As[j];
                valueABC.answer   *= As[j];
            }
        }
Exemple #12
0
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";

            //题干
            calSteps += valueMC.values[0].ToString();
            calSteps += "×";
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int     A      = decimal.ToInt32(valueMC.values[0]);
            int     B      = decimal.ToInt32(valueMC.values[1]);
            int     a      = A / 10;
            int     b      = A % 10;
            int     c      = B / 10;
            int     d      = B % 10;
            decimal answer = 0;

            //第一步
            calSteps += "=100×[";
            calSteps += a.ToString();
            calSteps += "×";
            calSteps += c.ToString();
            calSteps += "+(";
            calSteps += a.ToString();
            calSteps += "+";
            calSteps += c.ToString();
            calSteps += ")÷2]+25";

            //第二步
            int a_c = a * c;

            calSteps += "=100×(";
            calSteps += a_c.ToString();
            calSteps += "+";
            int a_c2 = (a + c) / 2;

            calSteps += a_c2.ToString();
            calSteps += ")+25";

            //第三步
            int a_c_100 = 100 * (a_c + a_c2);

            calSteps += "=";
            calSteps += a_c_100.ToString();
            calSteps += "+25";

            //第四步
            int tmp1 = a_c_100;
            int tmp2 = 25;
            int tmp0 = 0;

            //
            answer = tmp0 + tmp1 + tmp2;

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";
            //题干
            int num = valueMC.number;
            int i, j;

            //for (i = 0; i < num - 1; i++)
            {
                calSteps += valueMC.values[0].ToString();
                calSteps += "×";
            }
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1, A2;
            int n = valueMC.baseNum;

            if (valueMC.posMul == 0)
            {
                A1 = decimal.ToInt32(valueMC.values[0]);
                A2 = decimal.ToInt32(valueMC.values[1]);
            }
            else
            {
                A2 = decimal.ToInt32(valueMC.values[0]);
                A1 = decimal.ToInt32(valueMC.values[1]);
            }

            int baseNum = 1000;
            int a1      = (A1 % baseNum) / 100;
            int b1      = ((A1 % baseNum) % 100) / 10;
            int c1      = ((A1 % baseNum) % 100) % 10;
            int a2      = (A2 % baseNum) / 100;
            int b2      = ((A2 % baseNum) % 100) / 10;
            int c2      = ((A2 % baseNum) % 100) % 10;
            int d1      = A1 / 1000;
            int d2      = A2 / 1000;

            n = A1 / 14;
            int a = A1 % 14;

            //第一步
            calSteps += "=";
            calSteps += A1.ToString();
            calSteps += "×20+";
            calSteps += A1.ToString();
            //calSteps += "×2";

            //第二步
            int n100 = A1 * 20;
            int n2   = A1;// *2;

            calSteps += "=";
            calSteps += n100.ToString();
            calSteps += "+";
            calSteps += n2.ToString();

            //第三步

            decimal answer = 0;

            answer = n100 + n2;

            //第四步

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";

            //题干
            calSteps += valueMC.values[0].ToString();
            calSteps += "×";
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1 = decimal.ToInt32(valueMC.values[0]);
            int A2 = decimal.ToInt32(valueMC.values[1]);

            //if (valueMC.values[0] < valueMC.values[1])
            //{
            //    A1 = decimal.ToInt32(valueMC.values[1]);
            //    A2 = decimal.ToInt32(valueMC.values[0]);
            //}

            int baseNum1 = 100;
            int baseNum2 = 10;

            int     a1     = A1 / baseNum1;
            int     b1     = (A1 / baseNum2) % 10;
            int     c1     = A1 % 10;
            int     a2     = A2 / baseNum1;
            int     b2     = (A2 / baseNum2) % 10;
            int     c2     = A2 % 10;
            decimal answer = 0;

            int c1_10 = 10 - c1;
            int c2_10 = 10 - c2;

            //if (A1 >= 1000 && A2 >= 1000)
            //{
            //    baseNum = 1000;
            //}

            //第一步
            calSteps += "=(";
            calSteps += A1.ToString();
            calSteps += "+1)×(";
            calSteps += A2.ToString();
            calSteps += "+1)-(";
            calSteps += A1.ToString();
            calSteps += "+1)-(";
            calSteps += A2.ToString();
            calSteps += "+1)+1";

            //第二步
            int A11 = A1 + 1;
            int A21 = A2 + 1;

            calSteps += "=";
            calSteps += A11.ToString();
            calSteps += "×";
            calSteps += A21.ToString();
            calSteps += "-";
            calSteps += A11.ToString();
            calSteps += "-";
            calSteps += A21.ToString();
            calSteps += "+1";

            //第三步
            int A1_2 = A11 * A21;

            calSteps += "=";
            calSteps += A1_2.ToString();
            calSteps += "-";
            int A12 = A11 + A21;

            calSteps += A12.ToString();
            calSteps += "+1";

            int A112 = A1_2 - A12;

            calSteps += "=";
            calSteps += A112.ToString();
            calSteps += "+1";

            // int a_b_2 = a_a_100 - b_b;

            //第四步
            int tmp0 = A112;
            int tmp1 = 1;
            int tmp2 = 0;

            //
            answer = tmp0 + tmp1 + tmp2;

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
Exemple #15
0
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";
            //题干
            int num = valueMC.number;
            int i, j;

            //for (i = 0; i < num - 1; i++)
            {
                calSteps += "(";
                calSteps += valueMC.values[0].ToString();
                calSteps += "×";
                calSteps += valueMC.values[1].ToString();
                calSteps += ")÷(";
                calSteps += valueMC.values[2].ToString();
                calSteps += "×";
            }
            calSteps += valueMC.values[3].ToString();
            calSteps += ")";

            //解题步骤
            int A1, A2, A3, A4;
            int n = valueMC.baseNum;

            if (valueMC.posMul == 0)
            {
                A1 = decimal.ToInt32(valueMC.values[0]);
                A2 = decimal.ToInt32(valueMC.values[1]);
                A3 = decimal.ToInt32(valueMC.values[2]);
                A4 = decimal.ToInt32(valueMC.values[3]);
            }
            else
            {
                A1 = decimal.ToInt32(valueMC.values[0]);
                A2 = decimal.ToInt32(valueMC.values[1]);
                A4 = decimal.ToInt32(valueMC.values[2]);
                A3 = decimal.ToInt32(valueMC.values[3]);
            }

            int baseNum = 1000;
            int a1      = (A1 % baseNum) / 100;
            int b1      = ((A1 % baseNum) % 100) / 10;
            int c1      = ((A1 % baseNum) % 100) % 10;
            int a2      = (A2 % baseNum) / 100;
            int b2      = ((A2 % baseNum) % 100) / 10;
            int c2      = ((A2 % baseNum) % 100) % 10;
            int d1      = A1 / 1000;
            int d2      = A2 / 1000;

            int baseNum2 = 100;
            int a        = baseNum2 - A2;
            //第一步
            int d10 = d1 * 10 + c1;

            calSteps += "=(";
            calSteps += A1.ToString();
            calSteps += "÷";
            calSteps += A3.ToString();
            calSteps += ")×(";
            calSteps += A2.ToString();
            calSteps += "÷";
            calSteps += A4.ToString();
            calSteps += ")";

            //第二步
            int x1 = A1 / A3;
            int x2 = A2 / A4;

            calSteps += "=";
            calSteps += x1.ToString();
            calSteps += "×";
            calSteps += x2.ToString();

            ////第三步
            //int x23 = x1 + b1;
            //int x4 = x2 / A2;
            //calSteps += "=";
            //calSteps += x23.ToString();
            //calSteps += "+";
            //calSteps += x4.ToString();

            //int x5 = (x23 + x4 * a) / 100;
            //calSteps += "=";
            //calSteps += x1.ToString();
            //calSteps += "+";
            //calSteps += x5.ToString();

            decimal answer = 0;

            answer = x1 * x2;

            //第四步

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
Exemple #16
0
        private void GetRandomValues(SectionBaseInfo info, ref valuesStruct valueABC)
        {
            int minValue = 10;
            int maxValue = 100;

            if (info is SectionValueRangeInfo)
            {
                SectionValueRangeInfo rangeInfo = info as SectionValueRangeInfo;
                minValue = decimal.ToInt32(rangeInfo.MinValue);
                maxValue = decimal.ToInt32(rangeInfo.MaxValue);
            }

            if (minValue < 10)
            {
                minValue = 10;
            }

            if (maxValue > 1000000)
            {
                maxValue = 1000000;
            }

            Random rand = new Random((int)DateTime.Now.Ticks);

            valueABC.number = 2;// rand.Next(3, 6);
            valueABC.answer = 0;

            //decimal A1, A2 = 0;

            //int times = rand.Next(1, 10);
            int d1 = rand.Next(1, 9);   //千位数;
            int a1 = rand.Next(d1, 10); //百位数
            int b1 = a1;                // 9;// rand.Next(0, 3); //十位数
            int c1 = a1 - d1;           // rand.Next(5, 10); //个位数
            int d2 = 0;
            int a2 = rand.Next(4, 10);  //百位数
            int b2 = rand.Next(7, 10);  //十位数
            int c2 = rand.Next(1, 10);  //个位数

            decimal A1 = 0, A2 = 0, A3 = 0, A4 = 0;
            int     posRand = rand.Next(0, 2);

            valueABC.posMul = posRand;
            int n       = rand.Next(2, 11);
            int baseNum = 37;     // a1 * 100 + b1 * 10 + c1;

            valueABC.baseNum = n; // a1 * 100 + b1 * 10 + c1;

            if (posRand == 0)
            {
                A4 = rand.Next(minValue + 1, maxValue); // / baseNum) * baseNum; //1000 * d1 + 100 * a1 + 10 * b1 + c1;
                A3 = rand.Next(minValue + 1, maxValue); // / baseNum) * baseNum; //1000 * d1 + 100 * a1 + 10 * b1 + c1;
                A1 = A3 * rand.Next(1, 12);
                A2 = A4 * rand.Next(1, 12);;            // *(rand.Next(minValue + 1, maxValue + 1) / 5);// (decimal)System.Math.Pow(5, n);// 1000 * d2 + 100 * a2 + 10 * b2 + c2;
            }
            else
            {
                A4 = rand.Next(minValue + 1, maxValue); // / baseNum) * baseNum; //1000 * d1 + 100 * a1 + 10 * b1 + c1;
                A3 = rand.Next(minValue + 1, maxValue); // / baseNum) * baseNum; //1000 * d1 + 100 * a1 + 10 * b1 + c1;
                A2 = A3 * rand.Next(1, 12);
                A1 = A4 * rand.Next(1, 12);;            // *(rand.Next(minValue + 1, maxValue + 1) / 5);// (decimal)System.Math.Pow(5, n);// 1000 * d2 + 100 * a2 + 10 * b2 + c2;
            }

            valueABC.values[0] = A1;
            valueABC.values[1] = A2;
            valueABC.values[2] = A3;
            valueABC.values[3] = A4;
            valueABC.answer    = (A1 * A2) / (A3 * A4);
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";

            //题干
            calSteps += valueMC.values[0].ToString();
            calSteps += "×";
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A = decimal.ToInt32(valueMC.values[0]);
            int B = decimal.ToInt32(valueMC.values[1]);

            if (valueMC.values[0] < valueMC.values[1])
            {
                A = decimal.ToInt32(valueMC.values[1]);
                B = decimal.ToInt32(valueMC.values[0]);
            }

            int     a      = A / 10;
            int     b      = A % 10;
            int     c      = B / 10;
            int     d      = B % 10;
            decimal answer = 0;
            int     a10    = 10 * a;
            int     b_b    = b * b;

            //第一步
            calSteps += "=";
            calSteps += A.ToString();
            calSteps += "×(";
            calSteps += B.ToString();
            calSteps += "-1)";
            calSteps += "+";
            calSteps += A.ToString();

            //第二步
            int B1 = B - 1;

            calSteps += "=";
            calSteps += A.ToString();
            calSteps += "×";
            calSteps += B1.ToString();
            calSteps += "+";
            calSteps += A.ToString();

            //第三步
            calSteps += "=";
            calSteps += a10.ToString();
            calSteps += "×";
            calSteps += a10.ToString();
            calSteps += "-";
            calSteps += b.ToString();
            calSteps += "×";
            calSteps += b.ToString();
            calSteps += "+";
            calSteps += A.ToString();

            int a_a_100 = a10 * a10;

            calSteps += "=";
            calSteps += a_a_100.ToString();
            calSteps += "-";
            calSteps += b_b.ToString();
            calSteps += "+";
            calSteps += A.ToString();

            int a_b_2 = a_a_100 - b_b;

            //第四步
            int tmp1 = a_b_2;
            int tmp2 = A;
            int tmp0 = 0;

            //
            answer = tmp0 + tmp1 + tmp2;

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";

            //题干
            calSteps += valueMC.values[0].ToString();
            calSteps += "×";
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1 = decimal.ToInt32(valueMC.values[0]);
            int A2 = decimal.ToInt32(valueMC.values[1]);

            if (valueMC.posMul == 1)
            {
                A1 = decimal.ToInt32(valueMC.values[1]);
                A2 = decimal.ToInt32(valueMC.values[0]);
            }

            int a = valueMC.a;
            int b = valueMC.b;

            int baseNum1 = 100;
            int baseNum2 = 10;

            int     a1     = A1 / baseNum1;
            int     b1     = (A1 / baseNum2) % 10;
            int     c1     = A1 % 10;
            int     a2     = A2 / baseNum1;
            int     b2     = (A2 / baseNum2) % 10;
            int     c2     = A2 % 10;
            decimal answer = 0;

            int c1_10 = 10 - c1;
            int c2_10 = 10 - c2;

            //if (A1 >= 1000 && A2 >= 1000)
            //{
            //    baseNum = 1000;
            //}

            //第一步
            calSteps += "=";
            calSteps += A1.ToString();
            calSteps += "×";
            calSteps += a.ToString();
            calSteps += "×";
            //calSteps += A1.ToString();
            //calSteps += "+1)-(";
            calSteps += b.ToString();
            //calSteps += "+1)+1";

            //第二步
            int A11 = A1 * a;

            calSteps += "=";
            calSteps += A11.ToString();
            calSteps += "×";
            calSteps += b.ToString();

            //第三步


            //第四步
            int tmp0 = A11 * b;
            int tmp1 = 0;
            int tmp2 = 0;

            //
            answer = tmp0 + tmp1 + tmp2;

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";

            //题干
            calSteps += valueMC.values[0].ToString();
            calSteps += "×";
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int     A      = decimal.ToInt32(valueMC.values[0]);
            int     B      = decimal.ToInt32(valueMC.values[1]);
            int     a      = A / 10;
            int     b      = A % 10;
            int     c      = B % 10;
            decimal answer = 0;
            int     a10    = a * 10;

            //第一步
            calSteps += "=(";
            calSteps += A.ToString();
            calSteps += "+";
            calSteps += c.ToString();
            calSteps += ")×(";
            calSteps += B.ToString();
            calSteps += "-";
            calSteps += c.ToString();
            calSteps += ")+";
            calSteps += b.ToString();
            calSteps += "×";
            calSteps += c.ToString();

            //第二步
            int A_c = A + c;
            int B_c = B - c;
            int b_c = b * c;

            calSteps += "=";
            calSteps += A_c.ToString();
            calSteps += "×";
            calSteps += B_c.ToString();
            calSteps += "+";
            calSteps += b_c.ToString();

            //第三步
            int tmp1 = A_c * B_c;
            int tmp2 = b_c;

            calSteps += "=";
            calSteps += tmp1.ToString();
            calSteps += "+";
            calSteps += tmp2.ToString();
            //
            answer = tmp1 + tmp2;

            //第四步
            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
Exemple #20
0
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";

            //题干
            calSteps += valueMC.values[0].ToString();
            calSteps += "×";
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1 = decimal.ToInt32(valueMC.values[0]);
            int A2 = decimal.ToInt32(valueMC.values[1]);

            if (valueMC.values[0] < valueMC.values[1])
            {
                A1 = decimal.ToInt32(valueMC.values[1]);
                A2 = decimal.ToInt32(valueMC.values[0]);
            }

            int baseNum1 = 100;
            int baseNum2 = 10;

            int     a1     = A1 / baseNum1;
            int     b1     = (A1 / baseNum2) % 10;
            int     c1     = A1 % 10;
            int     a2     = A2 / baseNum1;
            int     b2     = (A2 / baseNum2) % 10;
            int     c2     = A2 % 10;
            decimal answer = 0;

            int c1_10 = 10 - c1;
            int c2_10 = 10 - c2;

            //if (A1 >= 1000 && A2 >= 1000)
            //{
            //    baseNum = 1000;
            //}

            //第一步
            //calSteps += "=100×(";
            //calSteps += b1.ToString();
            //calSteps += "×";
            //calSteps += b1.ToString();
            //calSteps += "-1)+99";
            ////calSteps += A1.ToString();
            ////calSteps += "+1)-(";
            ////calSteps += A2.ToString();
            ////calSteps += "+1)+1";

            ////第二步
            //int A11 = b1 * b1 - 1;
            //calSteps += "=100×";
            //calSteps += A11.ToString();
            //calSteps += "+99";

            ////第三步
            //int A1_2 = A11 * 100;
            //calSteps += "=";
            //calSteps += A1_2.ToString();
            //calSteps += "+99";

            //int A112 = A1_2 + 99;

            //// int a_b_2 = a_a_100 - b_b;

            ////第四步
            //int tmp0 = A112;
            //int tmp1 = 0;
            //int tmp2 = 0;
            ////
            //answer = tmp0 + tmp1 + tmp2;

            //if (answer != valueMC.answer)
            //{
            //    calSteps += "Error!";
            //}

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            //题干
            string calSteps = "";
            int    i;

            //显示前三个数
            for (i = 0; i < 3; i++)
            {
                calSteps += valueMC.values[i].ToString();
                calSteps += "+";
            }

            calSteps += "......+";

            //显示最后三个数
            for (i = 3; i < 6; i++)
            {
                calSteps += valueMC.values[i].ToString();

                if (i != 6 - 1)
                {
                    calSteps += "+";
                }
                else
                {
                    calSteps += "=";
                }
            }

            //解题步骤

            //第一步
            decimal a     = valueMC.valueLast;
            decimal a_1   = a / 2;
            decimal a_1_2 = a_1 + 1;

            calSteps += "=(";
            calSteps += a.ToString();
            calSteps += "÷2)";
            calSteps += "×(";
            calSteps += a.ToString();
            calSteps += "÷2";
            calSteps += "+1)";

            decimal b     = valueMC.valueStart - 2;
            decimal b_1   = b / 2;
            decimal b_1_2 = b_1 + 1;

            calSteps += "=-(";
            calSteps += b.ToString();
            calSteps += "÷2)";
            calSteps += "×(";
            calSteps += b.ToString();
            calSteps += "÷2";
            calSteps += "+1)";


            //第二步
            calSteps += "=";
            calSteps += a_1.ToString();
            calSteps += "×";
            calSteps += a_1_2.ToString();
            calSteps += "-";
            calSteps += b_1.ToString();
            calSteps += "×";
            calSteps += b_1_2.ToString();

            //第三步
            calSteps += "=";
            decimal first  = a_1 * a_1_2;
            decimal second = b_1 * b_1_2;

            calSteps += first.ToString();
            calSteps += "-";
            calSteps += second.ToString();

            //第四步
            decimal answer = first - second;

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();

            calSteps += ",是正确答案。";

            return(calSteps);
        }
Exemple #22
0
        private void GetRandomValues(SectionBaseInfo info, ref valuesStruct valueABC)
        {
            int minValue = 10;
            int maxValue = 100;

            if (info is SectionValueRangeInfo)
            {
                SectionValueRangeInfo rangeInfo = info as SectionValueRangeInfo;
                minValue = decimal.ToInt32(rangeInfo.MinValue);
                maxValue = decimal.ToInt32(rangeInfo.MaxValue);
            }

            //if (minValue < 1000)
            {
                minValue = 100;
            }

            //if (maxValue < 10000)
            {
                maxValue = 1000;
            }

            Random rand = new Random((int)DateTime.Now.Ticks);

            valueABC.number = 2;
            valueABC.answer = 0;

            decimal A1, A2;

            int bitNum = 2;                // rand.Next(3, 5);
            int a1     = 0;                // rand.Next(1, 10); //百位数
            int b1     = rand.Next(1, 10); //十位数
            int c1     = rand.Next(1, 10); //个位数
            int a2     = 0;                // rand.Next(1, 10); //百位数
            int b2     = 1;                // rand.Next(1, 10); //十位数
            int c2     = rand.Next(1, 10); //个位数
            int d1     = 0;
            int d2     = 0;

            if (bitNum == 2) //
            {
                A1 = 100 * a1 + 10 * b1 + c1;
                A2 = 100 * a2 + 10 * b2 + c2;
            }
            else if (bitNum == 3) //
            {
                A1 = 100 * a1 + 10 * b1 + c1;
                A2 = 100 * a2 + 10 * b2 + c2;
            }
            else
            {
                A1 = 1000 * a1 + 100 * b1 + 10 * c1 + d1;
                A2 = 1000 * a2 + 100 * b2 + 10 * c2 + d2;
            }

            //int posRand = rand.Next(0, 2);
            //if (posRand == 0)
            //{
            //    A = 10 * a + b;
            //    B = 10 * c + d;
            //}
            //else
            //{
            //    B = 10 * a + b;
            //    A = 10 * c + d;
            //}

            valueABC.values[0] = A1;
            valueABC.values[1] = A2;
            valueABC.answer    = A1 * A2;
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";
            //题干
            int num = valueMC.number;
            int i, j;

            for (i = 0; i < num - 1; i++)
            {
                calSteps += valueMC.values[i].ToString();
                calSteps += "×";
            }
            calSteps += valueMC.values[num - 1].ToString();

            //解题步骤
            //按5、2倍数规律交换、结合各个因数
            decimal[] As = new decimal[num];
            decimal[] bs = new decimal[num];
            for (i = 0; i < num; i++)
            {
                bs[i] = valueMC.values[0] % 10;
            }

            decimal tmp;

            if (bs[0] == 5 && bs[2] == 2)
            {
                As[0] = valueMC.values[0];
                As[1] = valueMC.values[2];
                As[2] = valueMC.values[1];
            }
            else if (bs[1] == 5 && bs[2] == 2)
            {
                As[0] = valueMC.values[1];
                As[1] = valueMC.values[2];
                As[2] = valueMC.values[0];
            }
            else// (bs[0] == 5 && bs[1] == 2)
            {
                As[0] = valueMC.values[2];
                As[1] = valueMC.values[1];
                As[2] = valueMC.values[0];
            }

            if (num == 4)
            {
                As[3] = valueMC.values[3];
            }

            if (num == 5)
            {
                //if (bs[3] == 5 && bs[4] == 2
                As[3] = valueMC.values[3];
                As[4] = valueMC.values[4];
            }

            int A1 = decimal.ToInt32(valueMC.values[0]);
            int A2 = decimal.ToInt32(valueMC.values[1]);

            //第一步
            calSteps += "=(";
            calSteps += As[0].ToString();
            calSteps += "×";
            calSteps += As[1].ToString();
            calSteps += ")×";
            calSteps += As[2].ToString();
            if (num == 4)
            {
                calSteps += "×";
                calSteps += As[3].ToString();
            }
            if (num == 5)
            {
                if ((bs[3] == 5 && bs[4] == 2) || (bs[3] == 2 && bs[4] == 5))
                {
                    calSteps += "×(";
                    calSteps += As[3].ToString();
                    calSteps += "×";
                    calSteps += As[4].ToString();
                    calSteps += ")";
                }
                else
                {
                    calSteps += "×";
                    calSteps += As[3].ToString();
                    calSteps += "×";
                    calSteps += As[4].ToString();
                }
            }

            //第二步
            calSteps += "=";
            decimal As01 = As[0] * As[1];

            calSteps += As01.ToString();
            calSteps += "×";
            calSteps += As[2].ToString();
            if (num == 4)
            {
                calSteps += "×";
                calSteps += As[3].ToString();
            }

            decimal As34 = 1;

            if (num == 5)
            {
                As34 = As[3] * As[4];
                if ((bs[3] == 5 && bs[4] == 2) || (bs[3] == 2 && bs[4] == 5))
                {
                    calSteps += "×";
                    calSteps += As34.ToString();
                }
                else
                {
                    calSteps += "×";
                    calSteps += As[3].ToString();
                    calSteps += "×";
                    calSteps += As[4].ToString();
                }
            }

            //第三步
            calSteps += "=";
            decimal As012 = As01 * As[2];

            if (num == 4)
            {
                calSteps += As012.ToString();
                calSteps += "×";
                calSteps += As[3].ToString();

                //
                calSteps += "=";
                As012    *= As[3];
            }
            if (num == 5)
            {
                calSteps += As012.ToString();
                if ((bs[3] == 5 && bs[4] == 2) || (bs[3] == 2 && bs[4] == 5))
                {
                    calSteps += "×";
                    calSteps += As34.ToString();

                    //
                    calSteps += "=";
                    As012    *= As34;
                }
                else
                {
                    calSteps += "×";
                    calSteps += As[3].ToString();
                    calSteps += "×";
                    calSteps += As[4].ToString();

                    //
                    calSteps += "=";
                    As012    *= As[3];
                    calSteps += As012.ToString();
                    calSteps += "×";
                    calSteps += As[4].ToString();

                    //
                    calSteps += "=";
                    As012    *= As[4];
                }
            }

            //第四步
            int tmp0 = decimal.ToInt32(As012);
            int tmp1 = 0;
            int tmp2 = 0;
            //
            decimal answer = tmp0 + tmp1 + tmp2;

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            //calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
Exemple #24
0
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";

            //题干
            calSteps += valueMC.values[0].ToString();
            calSteps += "×";
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1 = decimal.ToInt32(valueMC.values[0]);
            int A2 = decimal.ToInt32(valueMC.values[1]);

            //if (valueMC.values[0] < valueMC.values[1])
            //{
            //    A = decimal.ToInt32(valueMC.values[1]);
            //    B = decimal.ToInt32(valueMC.values[0]);
            //}
            int baseNum1 = 100;
            int baseNum2 = 10;

            int     a1     = A1 / baseNum1;
            int     b1     = (A1 / baseNum2) % 10;
            int     c1     = A1 % 10;
            int     a2     = A2 / baseNum1;
            int     b2     = (A2 / baseNum2) % 10;
            int     c2     = A2 % 10;
            decimal answer = 0;

            //if (A1 >= 1000 && A2 >= 1000)
            //{
            //    baseNum = 1000;
            //}

            //第一步
            calSteps += "=10×(";
            calSteps += A1.ToString();
            calSteps += "+";
            calSteps += b1.ToString();
            calSteps += "×";
            calSteps += c2.ToString();
            calSteps += ")+";
            calSteps += c1.ToString();
            calSteps += "×";
            calSteps += c2.ToString();

            //第二步
            int A1b1c2 = A1 + b1 * c2;

            calSteps += "=10×";
            calSteps += A1b1c2.ToString();
            int c1c2 = c1 * c2;

            calSteps += "+";
            calSteps += c1c2.ToString();
            //calSteps += ")+(";
            //int a1c2 = baseNum1 * a1 * c2;
            //calSteps += a1c2.ToString();
            //calSteps += "+";
            //int a2c1 = baseNum1 * a2 * c1;
            //calSteps += a2c1.ToString();
            //calSteps += ")+(";
            //int b1a2 = 10 * b1 * 100 * a2;
            //calSteps += b1a2.ToString();
            //int b1c2 = 10 * b1 * c2;
            //calSteps += "+";
            //calSteps += b1c2.ToString();
            //calSteps += ")";

            //第三步
            int A1b1c2_10 = 10 * A1b1c2;

            calSteps += "=";
            calSteps += A1b1c2_10.ToString();
            calSteps += "+";
            calSteps += c1c2.ToString();

            //int a_a_100 = a10 * a10;
            //calSteps += "=";
            //calSteps += a_a_100.ToString();
            //calSteps += "-";
            //calSteps += b_b.ToString();
            //calSteps += "-";
            //calSteps += A.ToString();

            // int a_b_2 = a_a_100 - b_b;

            //第四步
            int tmp0 = A1b1c2_10;
            int tmp1 = c1c2;
            int tmp2 = 0;

            //
            answer = tmp0 + tmp1 + tmp2;

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private void GetRandomValues(SectionBaseInfo info, ref valuesStruct valueABC)
        {
            int minValue = 10;
            int maxValue = 100;

            if (info is SectionValueRangeInfo)
            {
                SectionValueRangeInfo rangeInfo = info as SectionValueRangeInfo;
                minValue = decimal.ToInt32(rangeInfo.MinValue);
                maxValue = decimal.ToInt32(rangeInfo.MaxValue);
            }

            if (minValue < 10)
            {
                minValue = 10;
            }

            if (maxValue > 100000000)
            {
                maxValue = 100000000;
            }

            Random rand = new Random((int)DateTime.Now.Ticks);

            valueABC.number = 2;// rand.Next(3, 6);
            valueABC.answer = 0;

            //decimal A1, A2 = 0;

            //int times = rand.Next(1, 10);
            int a1 = 0;                // rand.Next(0, 5); //百位数
            int b1 = rand.Next(0, 5);  //十位数
            int c1 = 5;                // rand.Next(7, 10); //个位数
            int a2 = rand.Next(4, 10); //百位数
            int b2 = rand.Next(7, 10); //十位数
            int c2 = rand.Next(1, 10); //个位数
            int d1 = 0;
            int d2 = 0;

            decimal A1 = 0, A2 = 0;
            int     posRand = 0;// rand.Next(0, 2);

            valueABC.posMul = posRand;
            int n       = rand.Next(2, 11);
            int baseNum = (int)System.Math.Pow(2, n); //a1 * 100 + b1 * 10 + c1;

            valueABC.baseNum = n;                     // a1 * 100 + b1 * 10 + c1;

            if (posRand == 0)
            {
                A1 = (rand.Next(baseNum * 2, maxValue + 1) / baseNum) * baseNum; //1000 * d1 + 100 * a1 + 10 * b1 + c1;
                A2 = baseNum;                                                    // *(rand.Next(minValue + 1, maxValue + 1) / 5);// (decimal)System.Math.Pow(5, n);// 1000 * d2 + 100 * a2 + 10 * b2 + c2;
            }
            else
            {
                //A2 = (decimal)System.Math.Pow(5, n); //1000 * d1 + 100 * a1 + 10 * b1 + c1;
                //A1 = (decimal)System.Math.Pow(2, n); ;// 1000 * d2 + 100 * a2 + 10 * b2 + c2;
                A2 = (rand.Next(minValue, maxValue + 1) / 3) * 3; //1000 * d1 + 100 * a1 + 10 * b1 + c1;
                A1 = 667;                                         // *(rand.Next(minValue + 1, maxValue + 1) / 5);// (decimal)System.Math.Pow(5, n);// 1000 * d2 + 100 * a2 + 10 * b2 + c2;
            }

            valueABC.values[0] = A1;
            valueABC.values[1] = A2;
            valueABC.answer    = A1 / A2;
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";
            //题干
            int num = valueMC.number;
            int i, j;

            //for (i = 0; i < num - 1; i++)
            {
                calSteps += valueMC.values[0].ToString();
                calSteps += "×";
            }
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1, A2;

            if (valueMC.values[0] > valueMC.values[1])
            {
                A1 = decimal.ToInt32(valueMC.values[0]);
                A2 = decimal.ToInt32(valueMC.values[1]);
            }
            else
            {
                A2 = decimal.ToInt32(valueMC.values[0]);
                A1 = decimal.ToInt32(valueMC.values[1]);
            }

            int baseNum = 1000;
            int a1      = (A1 % baseNum) / 100;
            int b1      = ((A1 % baseNum) % 100) / 10;
            int c1      = ((A1 % baseNum) % 100) % 10;
            int a2      = (A2 % baseNum) / 100;
            int b2      = ((A2 % baseNum) % 100) / 10;
            int c2      = ((A2 % baseNum) % 100) % 10;
            int d1      = A1 / 1000;
            int d2      = A2 / 1000;

            int baseNum2 = 100;
            int bs       = 100 - A2;

            //第一步
            int b1c1 = 10 * b1 + c1;
            int c1_1 = 10 - c1;
            int A1_1 = A1 + c1_1;

            calSteps += "=";
            calSteps += "10000-";
            calSteps += b1c1.ToString();
            calSteps += "×";
            calSteps += b1c1.ToString();

            //第二步
            int b1c12 = b1c1 * b1c1;

            calSteps += "=10000-";
            calSteps += b1c12.ToString();

            //第三步
            //decimal AA11 = A100 + a100bs;
            //decimal cc11 = b10bs;
            //calSteps += "=";
            //calSteps += AA11.ToString();
            //calSteps += "-";
            //calSteps += cc11.ToString();

            decimal answer = 0;

            answer = 10000 - b1c12;

            //第四步

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
        private void GetRandomValues(SectionBaseInfo info, ref valuesStruct valueABC)
        {
            int minValue = 10;
            int maxValue = 100;

            if (info is SectionValueRangeInfo)
            {
                SectionValueRangeInfo rangeInfo = info as SectionValueRangeInfo;
                minValue = decimal.ToInt32(rangeInfo.MinValue);
                maxValue = decimal.ToInt32(rangeInfo.MaxValue);
            }

            if (minValue < 10)
            {
                minValue = 10;
            }

            if (maxValue < 100)
            {
                maxValue = 100;
            }

            Random rand = new Random((int)DateTime.Now.Ticks);

            valueABC.number = 3;        // rand.Next(10, 100 + 1);
            valueABC.answer = 0;
            int mode = rand.Next(0, 4); //三项加减混合式,0是两个加,1是一加一减,2是一减一加,3是两个减

            valueABC.mode = mode;

            decimal A, B, C;

            if (mode == 0) //两个加号
            {
                B = rand.Next(minValue, maxValue + 1);
                C = rand.Next(minValue + 1, maxValue + 1);
                int c = decimal.ToInt32(C) % 100;
                int a = 100 - c;
                A  = rand.Next(minValue, maxValue + 1);
                A -= decimal.ToInt32(A) % 100;
                A += a;

                valueABC.values[0] = A;
                valueABC.values[1] = B;
                valueABC.values[2] = C;
                valueABC.answer    = A + (B + C);
            }
            else if (mode == 1) //一加一减
            {
                C = rand.Next(minValue, maxValue + 1);
                int cInt = decimal.ToInt32(C);
                B = rand.Next(cInt + 1, maxValue + cInt + 2);
                int c = decimal.ToInt32(C) % 100;
                int a = c;
                A  = rand.Next(cInt + 1, maxValue + cInt + 2);
                A -= decimal.ToInt32(A) % 100;
                A += 100;
                A += a;

                valueABC.values[0] = A;
                valueABC.values[1] = B;
                valueABC.values[2] = C;
                valueABC.answer    = A + (B - C);
            }
            else if (mode == 2) //一减一加
            {
                C = rand.Next(minValue, maxValue + 1);
                int cInt = decimal.ToInt32(C);
                B = rand.Next(minValue + 1, maxValue + 1);
                int bInt = decimal.ToInt32(B);
                int c    = decimal.ToInt32(C) % 100;
                int a    = c;
                A  = rand.Next(cInt + bInt + 1, maxValue + cInt + bInt + 2);
                A -= decimal.ToInt32(A) % 100;
                A += 100;
                A += a;

                valueABC.values[0] = A;
                valueABC.values[1] = B;
                valueABC.values[2] = C;
                valueABC.answer    = A - (B + C);
            }
            else if (mode == 3) //两个减
            {
                C = rand.Next(minValue, maxValue + 1);
                int cInt = decimal.ToInt32(C);
                B = rand.Next(cInt + 1, maxValue + cInt + 2);
                int bInt = decimal.ToInt32(B);
                int c    = decimal.ToInt32(C) % 100;
                int a    = 100 - c;
                A  = rand.Next(bInt + 1, maxValue + bInt + 2);
                A -= decimal.ToInt32(A) % 100;
                A += 100;
                A += a;

                valueABC.values[0] = A;
                valueABC.values[1] = B;
                valueABC.values[2] = C;
                valueABC.answer    = A - (B - C);
            }
        }
Exemple #28
0
        private void GetRandomValues(SectionBaseInfo info, ref valuesStruct valueABC)
        {
            int minValue = 10;
            int maxValue = 100;

            if (info is SectionValueRangeInfo)
            {
                SectionValueRangeInfo rangeInfo = info as SectionValueRangeInfo;
                minValue = decimal.ToInt32(rangeInfo.MinValue);
                maxValue = decimal.ToInt32(rangeInfo.MaxValue);
            }

            if (minValue < 10)
            {
                minValue = 10;
            }

            if (maxValue > 10000000)
            {
                maxValue = 10000000;
            }

            Random rand = new Random((int)DateTime.Now.Ticks);

            valueABC.number = 2;// rand.Next(3, 6);
            valueABC.answer = 0;

            //decimal A1, A2 = 0;

            //int times = rand.Next(1, 10);
            int a1 = 0;                // rand.Next(1, 9); //百位数
            int b1 = rand.Next(5, 10); //十位数
            int c1 = rand.Next(7, 10); //个位数
            int a2 = rand.Next(1, 9);  //百位数
            int b2 = 9;                // rand.Next(0, 10); //十位数
            int c2 = 9 - a2;           // rand.Next(1, 10); //个位数
            int d1 = 0;
            int d2 = 0;

            decimal A1 = 0, A2 = 0;
            int     posRand = 0;// rand.Next(0, 2);

            valueABC.posMul = posRand;
            int n = rand.Next(0, 4);

            valueABC.baseNum = 9;

            if (posRand == 0)
            {
                A1 = 123456789;            // rand.Next(minValue, maxValue); //1000 * d1 + 100 * a1 + 10 * b1 + c1;
                A2 = 9 * rand.Next(1, 10); //(1000 * d2 + 100 * a2 + 10 * b2 + c2);
            }
            else
            {
                A2 = rand.Next(minValue, maxValue); //1000 * d1 + 100 * a1 + 10 * b1 + c1;
                A1 = 9 * (1000 * d2 + 100 * a2 + 10 * b2 + c2);
            }

            valueABC.values[0] = A1;
            valueABC.values[1] = A2;
            valueABC.answer    = A1 * A2;
        }
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";
            //题干
            int num = valueMC.number;
            int i, j;

            //for (i = 0; i < num - 1; i++)
            {
                calSteps += valueMC.values[0].ToString();
                calSteps += "×";
            }
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            int A1, A2;

            if (valueMC.values[0] > 1000)
            {
                A1 = decimal.ToInt32(valueMC.values[0]);
                A2 = decimal.ToInt32(valueMC.values[1]);
            }
            else
            {
                A2 = decimal.ToInt32(valueMC.values[0]);
                A1 = decimal.ToInt32(valueMC.values[1]);
            }

            int baseNum = 1000;
            int a1      = (A1 % baseNum) / 100;
            int b1      = ((A1 % baseNum) % 100) / 10;
            int c1      = ((A1 % baseNum) % 100) % 10;
            int a2      = (A2 % baseNum) / 100;
            int b2      = ((A2 % baseNum) % 100) / 10;
            int c2      = ((A2 % baseNum) % 100) % 10;
            int d1      = A1 / 1000;
            int d2      = A2 / 1000;

            int m  = 1000 - A1;
            int n  = 1000 - A2;
            int mn = m * n;

            //第一步
            calSteps += "=(";
            calSteps += A1.ToString();
            calSteps += "-";
            calSteps += n.ToString();
            calSteps += ")×(";
            calSteps += A2.ToString();
            calSteps += "+";
            calSteps += n.ToString();
            calSteps += ")+";
            calSteps += m.ToString();
            calSteps += "×";
            calSteps += n.ToString();

            //第二步
            decimal A1n = A1 - n;
            decimal A2n = A2 + n;

            calSteps += "=";
            calSteps += A1n.ToString();
            calSteps += "×";
            calSteps += A2n.ToString();
            calSteps += "+";
            calSteps += mn.ToString();

            //第三步
            decimal kk2 = A1n * A2n;

            calSteps += "=";
            calSteps += kk2.ToString();
            calSteps += "+";
            calSteps += mn.ToString();

            decimal answer = 0;

            answer = kk2 + mn;

            //第四步

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }
Exemple #30
0
        private String SolveSteps(valuesStruct valueMC)
        {
            string calSteps = "";
            //题干
            int num = valueMC.number;
            int i, j;

            //for (i = 0; i < num - 1; i++)
            {
                calSteps += valueMC.values[0].ToString();
                calSteps += "×";
            }
            calSteps += valueMC.values[1].ToString();

            //解题步骤
            decimal A1, A2;
            decimal n = valueMC.baseNum;

            if (valueMC.posMul == 0)
            {
                A1 = decimal.ToInt32(valueMC.values[0]);
                A2 = decimal.ToInt32(valueMC.values[1]);
            }
            else
            {
                A2 = decimal.ToInt32(valueMC.values[0]);
                A1 = decimal.ToInt32(valueMC.values[1]);
            }

            //int baseNum = 1000;
            //int a1 = (A1 % baseNum) / 100;
            //int b1 = ((A1 % baseNum) % 100) / 10;
            //int c1 = ((A1 % baseNum) % 100) % 10;
            //int a2 = (A2 % baseNum) / 100;
            //int b2 = ((A2 % baseNum) % 100) / 10;
            //int c2 = ((A2 % baseNum) % 100) % 10;
            //int d1 = A1 / 1000;
            //int d2 = A2 / 1000;
            //int c21 = 10 - c2;
            //int A21 = A2 + c21;

            n = A2 / 9;

            //第一步
            calSteps += "=";
            calSteps += A1.ToString();
            calSteps += "×(9×";
            calSteps += n.ToString();
            calSteps += ")";

            //第二步
            //calSteps += "=";
            //calSteps += A1.ToString();
            //calSteps += "×";
            //calSteps += A21.ToString();
            //calSteps += "-";
            //calSteps += A1.ToString();
            //calSteps += "×";
            //calSteps += c21.ToString();

            ////第三步
            //calSteps += "=";
            //int A1A21 = A1 * A21;
            //int A1c21 = A1 * c21;
            //calSteps += A1A21.ToString();
            //calSteps += "-";
            //calSteps += A1c21.ToString();
            //calSteps += "=";
            //int b10b20 = b10 * b20;
            //int c1c2 = c1 * c2;
            //int bc10 = (b1 * c2 + b2 * c1) * 10;
            //calSteps += b10b20.ToString();
            //calSteps += "+";
            //calSteps += c1c2.ToString();
            //calSteps += "+";
            //calSteps += bc10.ToString();

            decimal answer = 0;

            answer = A1 * 9 * n;

            //第四步

            if (answer != valueMC.answer)
            {
                calSteps += "Error!";
            }

            calSteps += "=";
            calSteps += valueMC.answer.ToString();
            calSteps += ",是正确答案。";

            return(calSteps);
        }