实验报告( 重载,引用,指针,交换,字符串的连接 )
一、实验目的:
- 掌握函数重载的使用方法
- 深入理解指针的概念,掌握指针的使用方法
- 理解引用的概念,掌握引用作为函数参数的使用方法
二、实验仪器或设备:微型计算机
三、总体设计(设计原理、设计方案及流程等)
实验内容:
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
函数的定义,分别用于通过指针和引用交换两个整数的值,可以看出两者的差异和相似性。