设计一个词典类Dict,Dict中每个单词项(DictItem)包括英文单词及对应的中文含义,Dict有一个英汉翻译成员函数,通过查词典(只需要表达查询对应关系即可,不需要真实的数据)的方法将一段英语翻译成对应的汉语
/*********************************************************************************
*
* 功能描述: 英语类
*
* 作 者: 赵恒雍
*
* 修改日期: 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);
}
}
}