C#实验1报告-福建农林大学 本文关键词:福建,农林,实验,报告,大学
C#实验1报告-福建农林大学 本文简介:实验报告学院:计算机与信息学院专业:计算机科学与技术年级:12级姓名:陈锦灿学号:3126010067实验室号:__田C513_计算机号:实验日期:2014年11月25日指导教师签字:成绩:报告退发(订正、重做)实验一类与对象一、实验目的:1、掌握类的成员设计。2、掌握属性的定义及使用。3、掌握索引
C#实验1报告-福建农林大学 本文内容:
实
验
报
告
学院:
计算机与信息学院
专业:
计算机科学与技术
年级:
12级
姓名:
陈锦灿
学号:
3126010067
实验室号:__田C513_
计算机号:
实验日期:
2014
年
11
月
25
日
指导教师签字:
成绩:
报告退发
(订正
、
重做)
实验一
类与对象
一、实验目的:
1、掌握类的成员设计。
2、掌握属性的定义及使用。
3、掌握索引器的定义及使用。
二、实验内容:
1、编写一个简单的英汉电子词典程序。能够将用户输入的英文单词翻译成相应的中文。假设一个英文单词的中文释义有多个。
要求如下:
(1)定义单词类Word,相关成员如下图所示。
(2)定义词典类Dictionary,相关成员如下图所示。在Dictionary类中定义一个索引器。该索引器能根据英文单词,返回中文释义。如果词典中无该单词,则提示“该单词无对应的中文释义!”。
(3)定义Test类,在其Main方法中,接收用户输入的英文单词,完成相应中文释义的查找及输出。下图为某次查询的输出结果。
2、整数集合是由多个不同的整数构成。请定义Set类,求两个整数集合的并集和交集。编程时,集合的元素保存在一个一维数组中。
要求如下:
(1)
在Set类中,定义私有的int型数组变量setA和setB,用于保存两个待求并集和交集的整数集合。
(2)
在Set类中定义构造方法。
(3)
在Set类中定义属性SetA和SetB。在set访问器中,提供参数合法性检查的代码,以保证成员变量setA和setB中的元素不重复。
(4)
在Set类中定义私有方法private
bool
IsRepeated(int[]
array),判断参数array中是否存在重复元素。
(5)
在Set类中定义私有方法private
bool
IsInSetA(int
element),判断集合SetA中是否存在元素element。
(6)
在Set类中定义GetUnion方法,返回两个集合的并集。
(7)
在Set类中定义GetIntersection方法,返回两个集合的交集。
(8)
定义Test类,在其Main方法中,完成相关测试。
三、实验环境
Visual
Studio
2008
四、实验步骤
1.
英汉电子词典程序
using
System;
class
Word
{
private
string
english;
private
string[]
chinese;
public
Word(string
english,string[]
chinese)
{
this.english
=
english;
this.chinese
=
chinese;
}
public
string[]
Chinese
{
get
{
return
chinese;
}
}
public
string
English
{
get
{
return
english;
}
}
}
public
class
Dictionary
{
private
Word[]
words;
public
Dictionary()
{
words
=
new
Word[]{
new
Word(“computer“,new
string[]{“计算机“,“电脑“}),new
Word(“news“,new
string[]{“新闻“,“消息“,“报导“}),new
Word(“translation“,new
string[]{“翻译“,“译文“,“转变“}),new
Word(“radio“,new
string[]{“无线电“,“收音机“})
};
}
public
string[]
this[string
english]
{
get
{
for(int
i
=
0;
i
<
words.Length;
i++)
{
if(words[i].English.equals[english])
return
words[i].Chinese;
}
return
new
string[]{“该单词无对应的中文释义!“};
}
}
}
class
Test
{
public
static
void
Main()
{
Dictionary
dic
=
new
Dictionary();
bool
ifContinue
=
true;
while
(ifContinue)
{
Console.Write(“请输入需要翻译的英文单词:“);
string
word
=
Console.ReadLine().ToLower();
string[]
meanings
=
dic[word];
foreach
(string
str
in
meanings)//输出查询结果
{
Console.WriteLine(str);
}
Console.WriteLine(@“是否继续?Y=
继续
,其他键=
退出查询
“);
if
(Console.ReadLine().ToLower()
==
“y“)
{
ifContinue
=
true;
}
else
{
ifContinue
=
false;
Console.WriteLine(“您选择了退出查询!“);
}
}
Console.ReadKey();
}
}
2.
求两个整数集合的并集和交集
using
System;
class
Set
{
private
int[]
setA;//整数集合1
private
int[]
setB;//整数集合2
public
Set(int[]
setA,int[]
setB)
{
//【代码一】:实现构造方法
SetA
=
setA;
SetB
=
setB;
}
public
int[]
SetA
{
//【代码二】:实现属性SetA
get
{
return
setA;
}
set
{
if(!IsRepeated(value))
setA
=
value;
}
}
public
int[]
SetB
{
//【代码三】:实现属性SetB
get
{
return
setB;
}
set
{
if(!IsRepeated(value))
setB
=
value;
}
}
//判断数组array中是否存在重复元素
private
bool
IsRepeated(int[]
array)
{
//【代码四】
for(int
i
=
0;
i
<
array.Length;
i++)
{
for(int
j
=
i+1;
j
<
array.Length;
j++)
{
if(array[i]
==
array[j])
return
true;
}
}
return
false;
}
//判断集合SetA中是否存在元素element
private
bool
IsInSetA(int
element)
{
//【代码五】
foreach(int
temp
in
setA)
{
if(temp
==
element)
return
true;
}
return
false;
}
//求并集
public
int[]
GetUnion()
{
//【代码六】
int
count
=
0;
foreach(int
temp
in
setB)
{
if
(!IsInSetA(temp))
count++;
}
int[]
union
=
new
int[setB.Length
+
count];
for(int
i=0;
i i++) { union[i] = setA[i]; } int index = 0; for(int i=0; i i++) { if (!IsInSetA(setB[i])) { union[setA.Length + index] = setB[i]; index++; } } return union; } //求交集 public int[] GetIntersection() { //【代码七】 int count = 0; int index = 0; foreach (int temp in setB) { if (IsInSetA(temp)) count++; } int[] intersection = new int[count]; for(int i=0; i i++) { if (IsInSetA(setB[i])) { intersection[index] = setB[i]; index++; } } return intersection; } } public class Test { public static void PrintArray(int[] myArray) { foreach (int element in myArray) { Console.Write(“{0}“,element); } Console.WriteLine(); } public static void Main(string[] args) { int[] a = { 2,5,6,8,10 }; int[] b = { 3,4,8,10,20 }; Set set = new Set(a,b); if (set.SetA == null) { Console.WriteLine(“集合A初始化失败!“); } else if (set.SetB == null) { Console.WriteLine(“集合B初始化失败!“); } else { int[] c1 = set.GetUnion(); int[] c2 = set.GetIntersection(); Console.WriteLine(“集合a:“); PrintArray(a); Console.WriteLine(“集合b:“); PrintArray(b); Console.WriteLine(“并集:“); PrintArray(c1); Console.WriteLine(“交集:“); PrintArray(c2); } Console.ReadKey(); } } 五、实验调试与结果分析 六、总结