1.函式過載程式設計練習
實驗要求:編寫過載函式add(),實現對int型,double型,complex型資料的加法。在main()函式中定義不同型別資料,呼叫測試。
1 #include2實驗結果如下:using
namespace
std;
3 typedef struct
complex;
7int add(int, int
); 8
double add(double, double);9
complex add(complex, complex);
10int
main()
1127
int add(int h, int i)//
整數相加函式
2831
double add(double j,double k)//
小數相加函式 32
35 complex add(complex l,complex m)//
複數相加函式
36
2.函式模板程式設計練習
實驗要求:編寫實現快速排序函式模板,並在main()函式中,定義不同型別資料,呼叫測試。
1 #include2實驗結果如下:using
namespace
std;
3 template //
實現函式模板
4void quicksort(t a,int left,int
right)520
while(q//
從左邊開始乙個個比較大小,同上
21 q++;
22if(q
2327
}28 a[q]=array;
29 quicksort(a,left,q-1);//
以第一次選中的值為中間值初步排序之後,進行第二次排序
30 quicksort(a,q+1
,right);31}
32}33int
main()34;
37double b[10]=;
38 quicksort(a,0,9
);39 quicksort(b,0,9
);40 cout<
整數陣列a由小到大排序的順序為:";
41for(n=0;n<10;n++)
42 cout
43 cout<
44 cout<
小數陣列b由小到大排序的順序為:";
45for(n=0;n<10;n++)
46 cout
47return0;
48 }
3.類的定義、實現和使用程式設計練習
實驗要求:設計並實現乙個使用者類user,並在主函式中使用和測試這個類。每乙個使用者有使用者名稱(name), 密碼(passwd),聯絡郵箱(email)三個屬性。 支援設定使用者資訊setinfo()。允許設定資訊時密碼預設為6個1,聯絡郵箱預設為空串。 支援列印使用者資訊printinfo()。列印使用者名稱、密碼、聯絡郵箱。其中,密碼以6個*方式顯示。 支援修改密碼changepasswd()。在修改密碼前,要求先輸入舊密碼,驗證無誤後,才允許修改。 如果輸入舊密碼時,連續三次輸入錯誤,則提示使用者稍後再試,暫時退出修改密碼程式。 在main()函式中建立user類例項,測試user類的各項操作(設定使用者資訊,修改密碼,列印使用者資訊)
1 #include 2 #include實驗結果如下:3using
namespace
std;
4class
user;
15void user::setinfo(string name1,string password1,string
email1)
1630 cout<
31 cin>>email1;
32 name=name1;
33 password=password0;
34 email=email1;35}
36void
user::changeemail()
3749
if(a!=2)50
55} 56}
57void
user::changepassword()
5873
else
74 78}
79if(originalpassword==password)
8084}85
void
user::printinfo()
8691
intmain()
92
參考**:
實驗小結:
對於本次實驗中三個程式,第乙個程式存在結構體方面知識的缺陷,第二個程式的演算法比較複雜,第三個程式不斷完整的過程中,通過類這個結構還可以將程式各方面更加完整。
程式一:在complex上糾結了很久,輸入實部虛部再進行相加的時候要帶上定義的conplex,反覆好幾次,錯誤都出現在complex上使得整個函式過載出現了問題,但是之後重新學習了一遍c中的結構體,發現只是在定義上出現了問題,以後可以注意!
程式二:這個程式一開始嘗試書寫的時候,是先看了氣泡排序,因為快速排序是氣泡排序的公升級,但是演算法上存在問題,也是由於演算法掌握不夠,現在這個程式還不算達到了實驗要求,這個程式還可以有很多優化,這是我自己的錯誤和不足,水平有限,希望能得到同學的提點斧正。
程式三:該程式再書寫的結構上不存在問題,只是有些語句的位置一開始錯了,接著就發現程式不按照自己既定的方向實現,更改多次後,還算完成了要求。之後學習中希望能夠有修改的機會!
C 筆記函式過載函式模板
include using namespace std class student void display 定義公用函式display 在函式的後面加上不加 結果都是一樣的一句話的結束符號 不影響函式的執行在c 中也允許函式的過載,即函式的一物多。include include using nam...
C 函式過載和函式模板
過載 不同的東西在不同場合有不同的含義,一物多用 例如 和 可以是移位運算子,在c 也是輸入輸出運算子 cout 和cin 函式過載 同名函式實現不同功能。函式過載實現方式 引數型別和引數個數至少乙個不同即可。優點 函式過載將相同或類似功能的函式用乙個函式名,但仍然要定義每個函式,於是函式模板派上用...
C 函式模板的過載
當需要對不同的型別使用同一種演算法 同乙個函式體 時,為了避免定義多個功能重複的函式,可以使用模板。然而,並非所有的型別都使用同一種演算法,有些特定的型別需要單獨處理,為了滿足這種需求,c 允許對函式模板進行過載,程式設計師可以像過載常規函式那樣過載模板定義。在 c 函式模板 一節中我們定義了 sw...