c++模板-数组类

el/2024/5/23 2:23:10

题目:编写一个程序,使用类模板对数组元素进行排序、倒置、查找和求和。

提示】:设计一个类模板。
Template
Class Array{

}
具有对数组元素进行排序、倒置、查找和求和功能,然后产生类型实参分别为int型和double类型的两个模板类,分别对整型数组和双精度数组完成所要求的操作

代码如下:

/*
编写一个程序,使用类模板对数组元素进行排序,倒置、查找和求和
具有对数组元素进行排序,倒置、查找和求和功能,
然后产生类型实参分别为int型和double型的两个模板类,
分别对整型数组与双精度数组完成所要求的操作
*/
#include<iostream>
using namespace std;
const int SIZE=100;//采用const只读变量当作全局变量//以下是模版类的定义和实现  
template <class Type>
class Array{
private:int l, z;Type a[SIZE];//模版变量
public:Array(Type *b, int n){int i;l = n;for(i=0;i<l;i++){a[i] = b[i];cout << a[i] << " "; } cout << endl;}void sort();void reverse();void find(Type t);void sum();    };template <class Type>
void Array<Type>::sort(){ Type c[SIZE];int i, j, m;for(i=0;i<l;i++){c[i] = a[i];    }// 排序 升序排序 for(j=0;j<l-1;j++){for(i=0;i<l-1;i++){if(c[i]>c[i+1]){m = c[i];c[i] = c[i+1];c[i+1] = m;}}}// 输出排序后的数据  for(i=0;i<l;i++){cout << c[i] << "  ";    }cout<< endl;}template <class Type>
void Array<Type>::reverse(){int i;Type d[SIZE];                // 声明数组 for(i=0;i<l;i++){// int d[i] = a[l-1-i];d[i] = a[l-1-i];cout << d[i] << "  ";}cout << endl;
}template <class Type>
void Array<Type>::find(Type t){int e = 0;int flag = 0;            // 0表示未找到 for(int i=0;i<l;i++){if(a[i]==t){flag = 1;cout << "是第" << i+1 << "个元素" << endl;e = i; break;    }}// 判断是否未找到该元素 if(flag==0){cout << "未找到该元素" << endl;}}template <class Type>
void Array<Type>::sum(){int i;Type res = 0;            // res应该初始化        for(i=0;i<l;i++){res += a[i];}cout << "数组和为:" << res <<endl;
}int main()
{int i, x, y, q;double p;// 构建初始数组 cout << "请输入两种类型数组元素个数: " << endl;cin >> x >> y;int *a;double *b;a = new int[x];b = new double[y];cout<<"请输入int型数组元素"<<endl;for(i=0;i<x;i++){cin >> a[i];}cout << "请输入double型数组元素" << endl;for(i=0;i<y;i++){cin >> b[i];}// 用初始数组初始化 模板类数组 Array<int> c(a,x);Array<double> d(b,y);// int型数组功能展示 cout << "int 型数组:" << endl;cout << "排序:" << endl;c.sort();cout << "倒置:" << endl;c.reverse();cout << "请输入要查找的元素: ";cin >> q;c.find(q);cout << "求和:" << endl;c.sum();// double型数组功能展示 cout << "double 型数组:" << endl;cout << "排序:" << endl;d.sort();cout << "倒置:" << endl;d.reverse();cout << "请输入要查找的元素: ";cin >> p;d.find(p);cout << "求和:" << endl;d.sum();// 清除数据 delete []a;delete []b;return 0;}

截图如下
在这里插入图片描述


http://www.ngui.cc/el/3419313.html

相关文章

类的继承—派生类的函数调用分析

题目&#xff1a;定义一个基类BaseClass&#xff0c;有整型成员变量Number&#xff0c;构造其派生类DerivedClass&#xff0c;观察构造函数和析构函数的执行情况。 代码如下&#xff1a; /*定义一个基类BaseClass&#xff0c;有整型成员变量Number&#xff0c;构造其派生类Der…

类的继承-多态-vehicle类/CStereoShape类/employee类

题目如下&#xff1a; 定义一个车&#xff08;vehicle&#xff09;基类&#xff0c;具有MaxSpeed、Weight等成员变量&#xff0c;run、stop等成员函数&#xff0c;由此派生出自行车&#xff08;bicycle&#xff09;类、汽车&#xff08;motorcar&#xff09;类。自行车&#xf…

win10上利用Anaconda安装tensorflow-问题整理

我的安装环境&#xff1a;win10 1803 /Anaconda 5.1.0/python 3.6.0 安装Tensorflow 安装Tensorflow时&#xff0c;需要从Anaconda仓库中下载&#xff0c;一般默认链接的都是国外镜像地址&#xff0c;下载肯定很慢&#xff0c;一般使用用国内清华镜像&#xff0c;需要改一下链…

c++语言基础—多态—重载运算符complex类

题目&#xff1a; 创建复数类complex&#xff0c;其中包含double类型数据成员real和image&#xff0c;分别表示复数的实域和虚域。为complex类重载运算符“”和“-”&#xff0c;用来实现两个复数的加法和减法运算。要求重载函数是友元函数。 代码实现&#xff1a; #include &…

面向对象的课程设计——成绩管理系统

c面向对象的课程设计 题目&#xff1a;学生成绩管理系统 输入一个班级的学生基本信息&#xff08;包括学号&#xff0c;姓名&#xff0c;性别&#xff0c;科目&#xff09;&#xff0c;对N门考试的成绩进行管理&#xff08;例N5&#xff09; 要求 用户录入每个学生每门课程的分…

python网络爬虫与信息提取实例

目录1.百度/360搜索关键词提交2.网络图片的爬取和存储3.中国大学排名定向爬虫1.百度/360搜索关键词提交 搜索引擎关键词提交接口 百度的关键词接口&#xff1a; http://www.baidu.com/s?wdkeyword 360的关键词接口&#xff1a; http://www.so.com/s?qkeyword 功能描述&#…

数学建模之预测模型简要分析

以下对数学建模常用的几种预测方法进行归纳总结&#xff1a; 1.灰色预测模型&#xff1a; 1.1 GM&#xff08;1,1&#xff09;预测模型实际操作 1&#xff09;数据检验与处理&#xff0c;判断数据列的级比是否都落在可容覆盖内&#xff0c;从而判断已知该数据列是否可进行灰色预…

MATLAB学习与使用:向量及其运算

1.MATLAB向量及其运算 (1)直接输入向量&#xff1a;a [1,2,3,4],b [2 1 4 5],c [1;2;3;4] a为行向量 b为行向量 c为列向量 (2)利用冒号表达式生成向量&#xff1a;a 1:2:12,b 1:5 默认间距为1 (3)线性等分向量的生成&#xff1a; y linspace(x1,x2)%默认生成100维的行向…

MATLAB学习与使用:使用矩阵绘制三维图形

MATLAB绘制三维图形 1.基本的绘图命令 1&#xff09;plot3函数 plot3(x,y,z)%x,y,z为向量或者矩阵 注意x,y,z全为向量时向量长度必须相同 plot3(x,y,z,b.,MarkerSize,0.5) % MarkerSize 表示点的大小&#xff0c;b.表示绿色的点。 eg.绘制三维螺旋线&#xff08;向量为参数&…

opencv学习与使用:图像边缘算法

图像边缘算法 numpy使用指南[菜鸟教程]http://www.runoob.com/numpy/numpy-tutorial.html opencv使用指南[官方文档]http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/tutorials.html 完整代码如下&#xff08;python3&#xff09; #-*- coding:utf-8 -*- #code…