注册 登录
编程论坛 C++教室

求助高手

asd4179601 发布于 2008-05-16 10:56, 598 次点击
有道相当难的题目,想了3天3夜也没想出来啊,有高手会吗?帮下忙啊,如果不会的话那也不用勉强自己了,谢谢。
C++设计一个float类型的数组类CFltArray,要求CFltArray可以进行如下操作:
1. 可以重置数组的大小(Resize)
2. 可以通过下标返回数组元素,并对下标越界情况进行检查
3. 可以利用已知数组对象对整个数组赋值和初始化
4. 可以返回当前数组的大小(Size)
最后用数据验证你所设计的类

[[it] 本帖最后由 asd4179601 于 2008-5-16 11:19 编辑 [/it]]
7 回复
#2
asd555552008-05-16 11:33
public class CFltArray
{
private int size = 0;
private float[] value;

public void reSize(int size)
{
if(size <= this.size)
{
this.size = size;
}
else
{
float[] tmp = new float[size];
for(int i=0;i < this.size;i++)
{
tmp[i] = value[i];
}

this.value = tmp;
this.size = size;
}
}

public int getSize()
{
return size;
}

public float get(int index) throws IllegalArgumentException
{
if(index < 0 || index >= size)
{
throw new IllegalArgumentException(String.valueOf(index));
}

return value[index];
}

public void set(float[] value)
{
this.size = value.length;
this.value = value;
}

public String toString()
{
StringBuilder tmp = new StringBuilder("[");
for(int i=0;i< size;i++)
{
if(i>0)
{
tmp.append(",");
}
tmp.append(value[i]);
}
tmp.append("]");

return tmp.toString();
}

public static void main(String args[])
{
CFltArray array = new CFltArray();
System.out.println(array);

array.set(new float[]{2.4f,43.3f,3.3f});
System.out.println(array);
System.out.println(array.get(2));

array.reSize(2);
System.out.println(array);

array.reSize(5);
System.out.println(array);

System.out.println(array.get(100));

}


}
#3
asd555552008-05-16 11:34
#4
asd555552008-05-16 11:35
小样,强吧
#5
asd555552008-05-16 11:35
我顶顶
#6
asd41796012008-05-16 11:45
大叔,你这网上复制过来的吧。
#7
asd41796012008-05-16 11:53
不能用啊
#8
忘记喧嚣2008-05-16 13:17
老大  以后懒别找借口
1