實驗報告( 重載,引用,指針,交換,字符串的連接 )
一、實驗目的:
- 掌握函數重載的使用方法
- 深入理解指針的概念,掌握指針的使用方法
- 理解引用的概念,掌握引用作為函數參數的使用方法
二、實驗儀器或設備:微型計算機
三、總體設計(設計原理、設計方案及流程等)
實驗內容:
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函數的定義,分別用于通過指針和引用交換兩個整數的值,可以看出兩者的差異和相似性。



浙公網安備 33010602011771號