设计一个词典类Dict,Dict中每个单词项(DictItem)包括英文单词及对应的中文含义,Dict有一个英汉翻译成员函数,通过查词典(只需要表达查询对应关系即可,不需要真实的数据)的方法将一段英语翻译成对应的汉语
/********************************************************************************* * * 功能描述: 英语类 * * 作 者: 赵恒雍 * * 修改日期: 2012-8-9 * * 备 注: 英语单词************************************************************************************/namespace OOPDict{ using System; using System.Collections.Generic; using System.Linq; using System.Text; ////// 英语类 /// class English { ////// 英语单词 /// private string englishWord; ////// 封装字段 /// 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; ////// 汉语类 /// class Chinese { ////// 汉语意思 /// private string chineseMeaning; ////// 封装字段 /// 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; ////// 词典类 /// class Dict { //Dictionary建立,即词典的建立 static Dictionarydictionary = new Dictionary (); //将每个单词和它对应的中文含义封装起来,放入单词项DictItem中 //1,保存单词 //2,保存中文含义 //3,放入Dictionary中 /// /// 存入单词 /// /// 英语单词 /// 汉语含义 ///词典 public DictionaryDicItem(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; ////// 测试类 /// class Program { ////// 程序入口处 /// /// args 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(); } ////// 预先放入一些单词项进入字典,用来测试 /// 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); } }}