首页 > 其他分享 >实验报告( 重载,引用,指针,交换,字符串的连接 )

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

时间:2024-03-30 13:33:10浏览次数:14  
标签:cout int void char dest add 重载 实验报告 指针

  

 

一、实验目的:

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

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

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

实验内容:

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

 

 

 

 

标签:cout,int,void,char,dest,add,重载,实验报告,指针
From: https://www.cnblogs.com/LCGJ/p/18103049

相关文章

  • 天下三分明月夜,独有快慢指针法(链表面试题篇)
    本篇会加入个人的所谓‘鱼式疯言’❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言而是理解过并总结出来通俗易懂的大白话,小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.......
  • leetcode-面试经典150题-42-接雨水(双指针c++)
    第一遍做的时候(没有看题解)我想到的思路就是遍历每一个凹下去的部分,计算能接到的雨水数量,然后累加,left,right分别是凹点的左右边界下面是代码:classSolution{public:inttrap(vector<int>&height){intn=height.size();intans=0;for(int......
  • js简单实现函数重载
    函数重载在前端开发中,JavaScript并不支持像其他语言(如C++或Java)中那样的函数重载,其中可以根据参数的不同来调用不同的函数。在JavaScript中,函数名是唯一的标识符,而不是函数签名。因此,定义具有相同名称但不同参数数量或类型的多个函数将会覆盖前面的定义。但是,你可......
  • 第11章 使用类——运算符重载(一)一个简单的运算符重载示例(Time类对象的加法)
    本文章是作者根据史蒂芬·普拉达所著的《C++PrimerPlus》而整理出的读书笔记,如果您在浏览过程中发现了什么错误,烦请告知。另外,此书由浅入深,非常适合有C语言基础的人学习,感兴趣的朋友可以自行阅读此书籍。运算符重载我们先了解下函数重载的概念,函数重载,也叫函数多态,指的是用......
  • 指针和const修饰符
    详解指针(1)什么是指针指针类型指针运算1指针在生活之中,我们每个人的家中都有门牌号,而正因为有了门牌号我们才能够正确而快速的找到自己的家,这个门牌号就相当于我们的地址。而在C语言之中也有这么一种东西----地址,我们可以通过地址找到存储在该内存单元的数......
  • 使用函数指针实现转移表
    用函数指针实现简单的计算器功能。使用函数指针模拟实现计算器的功能大大减少了代码量,只需要创建一个函数指针数组,zi’azia其中存放着四钟加减乘除的算法。代码如下#include<stdio.h>intadd(inta,intb){ returna+b;}intsub(inta,intb){ returna-b;......
  • C++从入门到精通——函数重载
    函数重载前言一、函数重载概念二、函数重载的分类参数类型不同的函数重载参数个数不同的函数重载参数类型顺序不同的函数重载三、函数重载的具体代码展示main.cpp四、为什么为什么C++支持函数重载,而C语言不支持函数重载呢前言函数重载是指在同一个作用域内,可以定......
  • C++取经之路(其二)——含数重载,引用。
    含数重载:函数重载是指:在c++中,在同一作用域,函数名相同,形参列表不相同(参数个数,或类型,或顺序)不同,C语言不支持。举几个例子:1.参数类型不同intAdd(intleft,intright){ cout<<"intAdd(intleft,intright)"<<endl; returnleft+right;}doubleAdd(doublele......
  • 操作符重载(operator overloading)
    操作符重载(operatoroverloading)成员函数所有的成员函数一定带着一个隐藏的参数示例代码:inlinecomplex&complex::operator+=(constcomplex&r){//调用者就是this,这是一个指针.+=符号作用在左边的数,左边的数就是this.->编译器自动会传入c2的指针//this......
  • Class with pointer member(s) -> 带指针的类
    Classwithpointermember(s)->带指针的类String字符串为讲解对象设计一个Class先设计头文件示例代码:#pragmaonce​//防卫式声明#ifndef__STRING__#define__STRING__​#include<string.h>​//头文件定义classString{public://设计构造函数->这里只是定义了......