2012C 程式設計實驗報告 14 1

2021-06-06 16:36:06 字數 1782 閱讀 7814

* 對任務及求解方法的描述部分

* 輸入描述:

* 問題描述:陣列是幾乎所支援的組織資料的方法。c和c++對陣列型別提供了內建支援,使我們利用陣列實現軟體中需要的各種實用的功能。但是,這種支援僅限於用來讀寫單個元素的機制。c++不支援陣列的抽象abstraction,也不支援對整個陣列的操作。例如:把乙個陣列賦值給另外乙個陣列,對兩個陣列進行相等比較或者想知道陣列的大小size,等等。對c++而言,陣列是從c語言中繼承來的,它反映了資料與對其進行操作的演算法的分離,有濃厚的過程化程式設計的特徵。陣列並不是c++語言的一等公民。所以在實際專案中,對乙個c++程式設計師,更多的是使用標準庫中提供的vector型別實現陣列功能。這個任務也將從物件導向角度重新審視和理解陣列,進而掃清自學vector等標準類中可能存在的障礙。

【題目】建立專門的陣列類處理有關陣列的操作

完成支援陣列操作的類的設計,增強c++內建陣列型別功能。

* 程式輸出:

* 程式頭部的注釋結束

*/源程式:

#include using namespace std;

class myarray

;//以下為類成員函式的定義

//建構函式

myarray::myarray(int sz)

size=sz; //將元素個數賦值給變數size

arr=new int[size];//動態分配記憶體,將size個int型別的元素空間分配出來

for(int i=0; isize-1)

return arr[n];

}bool myarray::operator == (myarray& a)

else

destptr++;

srcptr++;

} }return eq;//返回當前物件的引用

}myarray myarray::operator + (myarray& a)

myarray a(n); //指定size的陣列

for (int i = 0; i < size; i++)

return a;//返回當前物件的引用

}ostream& operator << (ostream& out, myarray& a)

out

}//取當前陣列大小

int myarray::getsize(void)const

//將陣列大小修改為sz

void myarray::resize(int sz)

if(sz==size)

return;

int *newlist=new int[sz];

for (int i = 0; i < sz; i++)

int n=(sz<=size)?sz:size;

int *srcptr=arr;

int *destptr=newlist;

while(n--)

delete arr;

arr=newlist;

size=sz;

}int main()

; int b[10]=;

myarray arr1(a,10);

myarray arr2(b,10);

myarray arr3(10);

cout

cout

cout

cout

return 0;

}

2012C 程式設計實驗報告 6 2

作 者 王琳 完成日期 2012年 3 月26日 版 本 號 6 2 對任務及求解方法的描述部分 輸入描述 指標,析構函式的運用 問題描述 程式輸出 程式頭部的注釋結束 源程式 a.用指標訪問物件 include using namespace std class a a int aa 定義建構函式...

2012C 程式設計實驗報告 9 3

對任務及求解方法的描述部分 問題描述 接第8周任務3,定義分數類中 和 運算子過載,實現分數的輸入輸出,改造原程式中對運算結果顯示方式,使程式讀起來更自然。程式頭部的注釋結束 源程式 include using namespace std class cfraction void simplify ...

2012C 程式設計實驗報告 8 3

對任務及求解方法的描述部分 問題描述 實現分數類中的運算子過載,在分數類中可以完成分數的加減乘除 運算後再化簡 求反 比較 6種關係 的運算。程式頭部的注釋結束 源程式 include using namespace std class cfraction void simplify void di...