字典功能的簡單實現

設計一個詞典類DictDict中每一個單詞項(DictItem)包括英文單詞及對應的中文含義,Dict有一個英漢翻譯成員函數,經過查詞典(只須要表達查詢對應關係便可,不須要真實的數據)的方法將一段英語翻譯成對應的漢語c#

/*********************************************************************************
 *
 * 功能描述:    英語類
 *
 * 做    者:    趙恆雍
 *
 * 修改日期:    2012-8-9
 * 
 * 備    注:    英語單詞
************************************************************************************/

namespace OOPDict
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    /// <summary>
    /// 英語類
    /// </summary>
    class English
    {
        /// <summary>
        /// 英語單詞
        /// </summary>
        private string englishWord;

        /// <summary>
        /// 封裝字段
        /// </summary>
        public string EnglishWord
        {
            get { return englishWord; }
            set { englishWord = value; }
        }


    }
}

/*********************************************************************************
 *
 * 功能描述:    漢語類
 *
 * 做    者:    趙恆雍
 *
 * 修改日期:    2012-8-9
 * 
 * 備    注:    中文含義
************************************************************************************/

namespace OOPDict
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    /// <summary>
    /// 漢語類
    /// </summary>
    class Chinese
    {
        /// <summary>
        /// 漢語意思
        /// </summary>
        private string chineseMeaning;

        /// <summary>
        /// 封裝字段
        /// </summary>
        public string ChineseMeaning
        {
            set
            {
                chineseMeaning = value;
            }

            get
            {
                return chineseMeaning;
            }
        }
    }
}

/*********************************************************************************
 *
 * 功能描述:    詞典類
 *
 * 做    者:    趙恆雍
 *
 * 修改日期:    2012-8-9
 * 
 * 備    注:    設計一個詞典類Dict,Dict中每一個單詞項(DictItem)包括英文單詞及對應的中文含義,
 *               Dict有一個英漢翻譯成員函數,經過查詞典(只須要表達查詢對應關係便可,
 *               不須要真實的數據)的方法將一段英語翻譯成對應的漢語
************************************************************************************/

namespace OOPDict
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    /// <summary>
    /// 詞典類
    /// </summary>
    class Dict
    {
        //Dictionary創建,即詞典的創建
        static Dictionary<string, string> dictionary = new Dictionary<string, string>();


        //將每一個單詞和它對應的中文含義封裝起來,放入單詞項DictItem中
        //1,保存單詞
        //2,保存中文含義
        //3,放入Dictionary中

        /// <summary>
        /// 存入單詞
        /// </summary>
        /// <param name="english">英語單詞</param>
        /// <param name="chinese">漢語含義</param>
        /// <returns>詞典</returns>
        public Dictionary<string, string> DicItem(English english, Chinese chinese)
        {
            

            //取得英語單詞
            string englishWord = english.EnglishWord;

            //取得中文含義
            string chineseMeaning = chinese.ChineseMeaning;
 
            //判斷單詞是否存在於字典中
            if (dictionary.ContainsKey(englishWord))//存在
            {
                dictionary[englishWord] = chineseMeaning;
            }
            else
            {
                //不存在
                dictionary.Add(englishWord, chineseMeaning);
            }

            return dictionary;
        }

        //翻譯部分,即經過單詞來查出他的漢語,函數名爲:GetChineseTranslationByEnglish
        //1,把輸入的語句經過空格號來分割成一個字符串數組(暫時只考慮一句話)
        //2,依次在DictItem中查找出對應漢語的意思並依次進行想加 ,能夠利用字符串
        //3,返回字符串給調用該方法的用戶

        public string GetChineseTranslationByEnglish(string myEnglishString)
        {
            //經過空格來劃分出單詞
            string[] mySplit = myEnglishString.Split(' ');

            //中文含義字符串
            string myChineseMeaning = string.Empty;

            //遍歷
            foreach (string myEnglishWord in mySplit)
            {
                //判斷該單詞是否存在於字典中
                if (dictionary.ContainsKey(myEnglishWord))//包含
                {
                    //獲取對應的中文含義
                    myChineseMeaning = myChineseMeaning + dictionary[myEnglishWord];

                    continue;
                }
                else
                { 
                    //不存在
                    continue;
                }
            }

            return myChineseMeaning;
        }
    }
}

/*********************************************************************************
 *
 * 功能描述:    測試類
 *
 * 做    者:    趙恆雍
 *
 * 修改日期:    2012-8-9
 * 
 * 備    注:    測試
************************************************************************************/

namespace OOPDict
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    /// <summary>
    /// 測試類
    /// </summary>
    class Program
    {
        /// <summary>
        /// 程序入口處
        /// </summary>
        /// <param name="args">args</param>
        static void Main(string[] args)
        {
            //放入單詞項
            PutDictItem();

            Console.WriteLine("因爲各類緣由,單詞項並很少,只能輸入hello和world");

            Console.WriteLine("請輸入一句英語:");

            //讀取控制檯輸入
            string str = Console.ReadLine();

            Dict dict = new Dict();
            string myChineseMeaning = dict.GetChineseTranslationByEnglish(str);

            Console.WriteLine(myChineseMeaning);

            Console.ReadLine();
        }

        /// <summary>
        /// 預先放入一些單詞項進入字典,用來測試
        /// </summary>
        public static void PutDictItem()
        { 
            //建立字典對象
            Dict dict = new Dict();

            //建立英語單詞
            English english1 = new English();
            english1.EnglishWord = "hello";

            English english2 = new English();
            english2.EnglishWord = "world";

            //建立對應中文含義
            Chinese chinese1 = new Chinese();
            chinese1.ChineseMeaning = "你好";

            Chinese chinese2 = new Chinese();
            chinese2.ChineseMeaning = "世界";

            //預先放入幾個單詞項
            dict.DicItem(english1, chinese1);
            dict.DicItem(english2, chinese2);
        }
    }
}
相關文章
相關標籤/搜索