OOP
- 设计一个词典类Dic,每个单词包括英文单词及对应的中文含义,并有一个英汉翻译成员函数,通过查词典的方式将一段英语翻译成对应的汉语。
思路: 字典项类DicItem包括EngLish(英语单词)、Chinese(对应中文含义)数据成员,字典类包括一个字典项类的列表,包含Add()(添加单词)和trans(英汉翻译)成员函数。
源代码:package 接口与抽象类;
class Dic
{ fanyi[] arrays=new fanyi[5];//数组初始化
int size=0;
void add(String english ,String chinese)//增加单词
{
int p=chack(english);
if(p!=-1)
{
arrays[p].chinese=chinese;
}else {
resize();
this.arrays[size]=new fanyi(english,chinese);
size++;
}
System.out.println("增加单词:"+english+": "+chinese);
}
void tras(String english)//翻译
{ int f=0;
for(int i=0;i<size;i++)
{
if(arrays[i].english.equals(english))
{ f=1;
System.out.println(english+" 意思是:"+arrays[i].chinese);
}
}
if(f==0) {
System.out.println("字典中没有此单词!!!");}
}
int chack(String english)//检查单词是否重复
{
int i;
for(i=0;i<this.size;i++)
{
if(arrays[i].english.equals(english))
{
return i;
}
}
return -1;
}
void resize()//扩容
{
if(arrays.length==size)
{
fanyi[] newarrays=new fanyi[arrays.length*3/2+1];
System.arraycopy(arrays, 0, newarrays, 0, size);
arrays=newarrays;
}
}
void show()//打印数组所有成员
{
for(int i=0;i<this.size;i++)
System.out.println(arrays[i].english+" "+arrays[i].chinese);
}
private class fanyi//内部类
{
String english;
String chinese;
public fanyi(String english, String chinese) {
this.english = english;
this.chinese = chinese;
}
}
}
public class 词典 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Dic dic=new Dic();
dic.add("am", "是");
dic.add("facebook", "脸书");
dic.add("book", "书");