主题:[讨论]向量类 高手看看
1 在C#中创建控制太应用程序L2
2 在程序中新建一个向量类CzVector,在其中定义一个double[]类型的私有字段_values,用于维护向量的各个元素值。
3 为CzVector定义三个公有属性Length,Sum,Prod,分别用于返回的长度,向量所有的元素的和以及向量所有元素的积。
4 在CzVector中定义一个索引函数,用于获取或设置向量各个元素的值
5 为CzVector定义两个构造函数,一个根据指定长度来对向量进行初始化(向量各元素取默认值0),另一个由指定的数组来构造向量并设置各元素值,参考代码如下:
public CzVector (int length)
{
_values = new double [length] ;
}
public CzVector (params double[] dArray)
{
_values = dArray ;
}
6 利用操作符重载来实现向量加法,减法,和乘法。这三种运算均要求两个向量的长度相等。以加法操作符重载为例,参考代码源如下:
public static CzVector operator +(CzVector V1,CzVertoc V2)
{
if (v1.length != v2.length)
return null ;
CzVector result = new CzVertoc(v1.length);
for (int i = 0 ; i <v1.length ; i++)
result [i] = v1[i] + v2[i];
return result ;
}
7 类似的,利用操作符重载来判断两个向量是否相等。向量相等的条件是;两个向量的长度相等,且各个位置上的对应元素值也相等。
8 为CzVector定义一个ConsoleOutput方法,用于在控制台一行输出向量所有元素,其之间以空格分隔。
9 在程序主方法中随机定义几个向量对象,并测试其运算结果。参考下面代码:
static void Main()
{
Czvector v1 = new Czvector (1,-5,9,6);
Czvector v2 = new Czvector (0,1,2,3);
Console . Write ("v1 =");
v1.ConsoleOutput();
Console. Write ("v2 =");
v2.ConsoleOutput();
Czvector v3 = v1+v2;
Console .Write ("v1+v2 =");
v3.ConsoleOutput();
Console. Write ("3 *(v1+v2 )=");
(v3*3).ConsoleOutput();
Console .WriteLine("v1*v2={0}",v1*v2);
}
只求完整代码
2 在程序中新建一个向量类CzVector,在其中定义一个double[]类型的私有字段_values,用于维护向量的各个元素值。
3 为CzVector定义三个公有属性Length,Sum,Prod,分别用于返回的长度,向量所有的元素的和以及向量所有元素的积。
4 在CzVector中定义一个索引函数,用于获取或设置向量各个元素的值
5 为CzVector定义两个构造函数,一个根据指定长度来对向量进行初始化(向量各元素取默认值0),另一个由指定的数组来构造向量并设置各元素值,参考代码如下:
public CzVector (int length)
{
_values = new double [length] ;
}
public CzVector (params double[] dArray)
{
_values = dArray ;
}
6 利用操作符重载来实现向量加法,减法,和乘法。这三种运算均要求两个向量的长度相等。以加法操作符重载为例,参考代码源如下:
public static CzVector operator +(CzVector V1,CzVertoc V2)
{
if (v1.length != v2.length)
return null ;
CzVector result = new CzVertoc(v1.length);
for (int i = 0 ; i <v1.length ; i++)
result [i] = v1[i] + v2[i];
return result ;
}
7 类似的,利用操作符重载来判断两个向量是否相等。向量相等的条件是;两个向量的长度相等,且各个位置上的对应元素值也相等。
8 为CzVector定义一个ConsoleOutput方法,用于在控制台一行输出向量所有元素,其之间以空格分隔。
9 在程序主方法中随机定义几个向量对象,并测试其运算结果。参考下面代码:
static void Main()
{
Czvector v1 = new Czvector (1,-5,9,6);
Czvector v2 = new Czvector (0,1,2,3);
Console . Write ("v1 =");
v1.ConsoleOutput();
Console. Write ("v2 =");
v2.ConsoleOutput();
Czvector v3 = v1+v2;
Console .Write ("v1+v2 =");
v3.ConsoleOutput();
Console. Write ("3 *(v1+v2 )=");
(v3*3).ConsoleOutput();
Console .WriteLine("v1*v2={0}",v1*v2);
}
只求完整代码