实验报告( 重载,引用,指针,交换,字符串的连接 )

  

 

一、实验目的:

  • 掌握函数重载的使用方法
  • 深入理解指针的概念,掌握指针的使用方法
  • 理解引用的概念,掌握引用作为函数参数的使用方法

二、实验仪器或设备:微型计算机

三、总体设计(设计原理、设计方案及流程等)

实验内容:

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函数的定义,分别用于通过指针和引用交换两个整数的值,可以看出两者的差异和相似性。

 

 

 

 

posted @ 2024-03-30 13:30  ZDhr  阅读(24)  评论(0编辑  收藏  举报