Example #1
0
 public override void WriterAddAttribute(XmlWriter writer)
 {
     writer.WriteAttributeString("FirstNumber", FirstNumber.ToString());
     writer.WriteAttributeString("LastNumber", LastNumber.ToString());
     writer.WriteAttributeString("StepNumber", StepNumber.ToString());
     base.WriterAddAttribute(writer);
 }
Example #2
0
        public string NumberToThaiWord(double InputNumber)
        {
            string result;

            if (InputNumber == 0)
            {
                result = "ศูนย์บาทถ้วน";
                return(result);
            }

            string NewInputNumber;

            NewInputNumber = InputNumber.ToString("###0.00");
            if (Convert.ToDouble(NewInputNumber) >= 10000000000000)
            {
                result = "";
                return(result);
            }

            string[] tmpNumber = new string[2];
            string   FirstNumber;
            string   LastNumber;

            tmpNumber   = NewInputNumber.Split(Convert.ToChar("."));
            FirstNumber = tmpNumber[0];
            LastNumber  = tmpNumber[1];

            int nLength = 0;

            nLength = Convert.ToInt32(FirstNumber.Length);

            int    CNumber     = 0;
            int    CNumberBak  = 0;
            string strNumber   = "";
            string strPosition = "";
            string FinalWord   = "";
            int    CountPos    = 0;

            for (int i = nLength; i >= 1; i--)
            {
                CNumberBak = CNumber;
                CNumber    = Convert.ToInt32(FirstNumber.Substring(CountPos, 1));

                if (CNumber == 0 && i == 7)
                {
                    strPosition = "ล้าน";
                }
                else if (CNumber == 0)
                {
                    strPosition = "";
                }
                else
                {
                    strPosition = PositionToText(i);
                }

                if (CNumber == 2 && strPosition == "สิบ")
                {
                    strNumber = "ยี่";
                }
                else if (CNumber == 1 && strPosition == "สิบ")
                {
                    strNumber = "";
                }
                else if (CNumber == 1 && strPosition == "ล้าน" && nLength >= 8)
                {
                    if (CNumberBak == 0)
                    {
                        strNumber = "หนึ่ง";
                    }
                    else
                    {
                        strNumber = "เอ็ด";
                    }
                }
                else if (CNumber == 1 && strPosition == "" && nLength > 1)
                {
                    strNumber = "เอ็ด";
                }
                else
                {
                    strNumber = NumberToText(CNumber);
                }

                CountPos  = CountPos + 1;
                FinalWord = FinalWord + strNumber + strPosition;
            }

            CountPos   = 0;
            CNumberBak = 0;
            nLength    = Convert.ToInt32(LastNumber.Length);

            string Stang      = "";
            string FinalStang = "";

            if (Convert.ToDouble(LastNumber) > 0)
            {
                for (int i = nLength; i >= 1; i--)
                {
                    CNumberBak = CNumber;
                    CNumber    = Convert.ToInt32(LastNumber.Substring(CountPos, 1));
                    if (CNumber == 1 && i == 2)
                    {
                        strPosition = "สิบ";
                    }
                    else if (CNumber == 0)
                    {
                        strPosition = "";
                    }
                    else
                    {
                        strPosition = PositionToText(i);
                    }

                    if (CNumber == 2 && strPosition == "สิบ")
                    {
                        Stang = "ยี่";
                    }
                    else if (CNumber == 1 && i == 2)
                    {
                        Stang = "";
                    }
                    else if (CNumber == 1 && strPosition == "" && nLength > 1)
                    {
                        if (CNumberBak == 0)
                        {
                            Stang = "หนึ่ง";
                        }
                        else
                        {
                            Stang = "เอ็ด";
                        }
                    }
                    else
                    {
                        Stang = NumberToText(CNumber);
                    }

                    CountPos   = CountPos + 1;
                    FinalStang = FinalStang + Stang + strPosition;
                }

                FinalStang = FinalStang + "สตางค์";
            }
            else
            {
                FinalStang = "";
            }

            string SubUnit;

            if (FinalStang == "")
            {
                SubUnit = "บาทถ้วน";
            }
            else
            {
                if (Convert.ToDouble(FirstNumber) != 0)
                {
                    SubUnit = "บาท";
                }
                else
                {
                    SubUnit = "";
                }
            }

            result = FinalWord + SubUnit + FinalStang;
            return(result);
        }
        public void ConfirmAnswer()
        {
            if (PlusToggle.IsChecked == false && MinusToggle.IsChecked == false & MultiplyToggle.IsChecked == false)

            {
                //没有选择运算法则
                SetAlgorithmDialog();
            }
            else
            {
                if (PuzzleText.Text.Substring(PuzzleText.Text.Length - 1) == "?")
                {
                    //正在显示问题,user提交答案
                    if (InputBox.Text != "")
                    {
                        int    result = 0;
                        string sym    = "";
                        switch (Symbol)
                        {
                        case 1:    //加法
                            result = FirstNumber + LastNumber;
                            sym    = "+";
                            break;

                        case 2:    //减法
                            result = FirstNumber - LastNumber;
                            sym    = "-";
                            break;

                        case 3:
                            result = FirstNumber * LastNumber;
                            sym    = "×";
                            break;
                        }


                        if (InputBox.Text == result.ToString())
                        {
                            //验证为正确答案
                            formula.AddHistory(FirstNumber.ToString()
                                               + sym
                                               + LastNumber.ToString()
                                               + "=" + result.ToString());

                            DidPuzzle(true);//做对
                            InputBox.Text = "";
                            //刷新题目
                            RefreshPuzzle();
                        }
                        else
                        {
                            //验证为错误答案
                            formula.AddHistory(FirstNumber.ToString()
                                               + sym
                                               + LastNumber.ToString()
                                               + "=" + result.ToString()
                                               + " !");

                            DidPuzzle(false);
                            InputBox.Text = "";
                            //显示正确答案
                            PuzzleText.Text = FirstNumber.ToString() + sym + LastNumber.ToString() + "=" + result.ToString();
                        }
                    }
                }
                else
                {
                    //已显示答案,刷新题目
                    RefreshPuzzle();
                }
            }
        }