一、實驗目的:
- 掌握函式過載的使用方法
- 深入理解指標的概念,掌握指標的使用方法
- 理解引用的概念,掌握引用作為函式引數的使用方法
二、實驗儀器或裝置:微型計算機
三、總體設計(設計原理、設計方案及流程等)
實驗內容:
1、設計一組過載函式add(),至少包括:
char add(char,int);
int add(int,int);
int add(int,int,int);
int add(int,int,double);
void add(char *,char *);//將兩個字串連線。
2、設計兩個數的交換函式
void swap(int *,int *)
void swap(int &,int&)
本實驗執行環境:Microsoft Visual c++ 2010學習版,採用結構化的程式設計方法。
四、實驗步驟(包括主要步驟、程式碼分析等)
(程式程式碼)實驗一:
1 #include<iostream> 2 3 #include<cstring> 4 5 using namespace std; 6 7 char add(char, int); 8 9 int add(int, int); 10 11 int add(int, int, int); 12 13 int add(int, int, double); 14 15 void add(char *, const char *); 16 17 int main() 18 19 { 20 21 char n; 22 23 int m; 24 25 int a1, a2; 26 27 int b1, b2, b3; 28 29 int c1, c2; 30 31 double c3; 32 33 char d1[100]; 34 35 char d2[100]; 36 37 char result[200]; 38 39 cout<<"輸入一個字元和一個整數"<<endl; 40 41 cin>>n>>m; 42 43 cout<<"它們的和為:"; 44 45 cout<< add( n, m)<<endl; 46 47 cout<<"輸入倆整數"<<endl; 48 49 cin>>a1>>a2; 50 51 cout<<"它們的和為:" ; 52 53 cout<< add( a1,a2)<<endl; 54 55 cout<<"輸入三個整數"<<endl; 56 57 cin>> b1>>b2>>b3; 58 59 cout<<"它們的和為:"; 60 61 cout<< add(b1,b2,b3)<<endl; 62 63 cout<<"輸入倆整數和一個浮點數"<<endl; 64 65 cin>> c1>>c2>>c3; 66 67 cout<<"它們的和為:"<<endl; 68 69 cout<< add(c1,c2,c3)<<endl; 70 71 cout << "輸入倆個字串" << endl; 72 73 cin >> d1 >> d2; 74 75 cout << "它倆連線為:" << endl; 76 77 result[0] = '\0'; 78 79 add(result, d1); // 首先將d1複製到result 80 81 add(result, d2); // 然後將d2附加到result的末尾 82 83 cout << result << endl; 84 85 return 0; 86 87 } 88 89 //字元與整數的相加 90 91 char add(char n, int m) 92 93 { 94 95 return (n + m); 96 97 } 98 99 //兩整數相加 100 101 int add(int n, int m) 102 103 { 104 105 return (n + m); 106 107 } 108 109 //三整數相加 110 111 int add(int n, int m, int x) 112 113 { 114 115 return (n + m + x); 116 117 } 118 119 //兩整數和一浮點數相加 120 121 int add(int n, int m, double x) 122 123 { 124 125 return (n + m + static_cast<int>(x)); 126 127 } 128 129 //兩字串連線 130 131 void add(char *dest, const char *src) 132 133 { 134 135 while (*dest != '\0') { 136 137 dest++; 138 139 } 140 141 while (*src != '\0') { 142 143 *dest = *src; 144 145 dest++; 146 147 src++; 148 149 } 150 151 *dest = '\0';// 在結果字串的末尾新增null終止符 152 153 }
實驗二:
#include <iostream> using namespace std; void swap(int *a ,int *b); void swap(int &a,int &b); int main () { int x=3,y=5; cout<<"交換前:x=" <<x<<" y="<<y<<endl; swap(&x,&y);//用指標交換 cout<<"交換後:x="<<x<<" y="<<y<<endl; swap(x,y);//用引用交換 cout<<"再次交換後:x="<<x<<" y="<<y<<endl; } void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } void swap(int &a, int &b) { int temp = a; a = b; b = temp; }
五、結果分析與總結
(執行結果截圖,簡短的體會總結)
實驗一截圖及簡短體會:該實驗運用到了函式的過載,以及用到了指標將字串得到連線,使程式更加的靈活。
實驗二截圖及簡短體會:用兩個swap
函式的定義,分別用於透過指標和引用交換兩個整數的值,可以看出兩者的差異和相似性。