收藏 分销(赏)

c++作业——类与模板.docx

上传人:pc****0 文档编号:7236012 上传时间:2024-12-28 格式:DOCX 页数:7 大小:53.01KB 下载积分:10 金币
下载 相关 举报
c++作业——类与模板.docx_第1页
第1页 / 共7页
c++作业——类与模板.docx_第2页
第2页 / 共7页


点击查看更多>>
资源描述
编写一个使用类模板对数组中元素进行排序和求和的程序。 【提示】在模板中完成排序和求和的操作。 #include<iostream> using namespace std; //类模板 template<class T> class vector { public: void sort(T a[],int n); T sum(T a[],int n); int search(T e, T a[], int n); }; //排序 template<class T> void vector<T>::sort(T a[],int n) { T temp; bool exchange; for(int i = 1; i < n; i++) { exchange = false; for(int j = n-1; j >= i; j--) if(a[j] < a[j-1]) { temp = a[j]; a[j] = a[j-1]; a[j-1] = temp; exchange = true; } if(!exchange) return; } } //求和 template<class T> T vector<T>::sum(T a[],int n) { T sum = a[0]; for(int i = 1; i < n; i++) sum += a[i]; return sum; } //查找 template<class T> int vector<T>::search(T e, T a[], int n) { for(int i = 0; i < n; i++) if(a[i] == e) return i; return -1; } void main() { int data[5] = {5,4,3,2,1}; vector<int> obj; cout<<"数组和:"<<obj.sum(data,5)<<endl; cout<<"数字4数组位置:"<<obj.search(4,data,5)<<endl; cout<<"排序前数组各元素:"<<endl; for(int i = 0; i < 5; i++) cout<<data[i]<<" "; cout<<endl; } 一、实验目的及要求 学习完整的 C++程序开发过程。 l 理解结构化程序设计的基本方法。 l 掌握程序的三种基本控制结构及其语法。 l 掌握 break、continue、goto 语句的执行过程并熟练使用。 l 掌握标识符常量与变量的概念和定义方法。 l 掌握各种运算符的功能、优先级和结合性。 二、实验环境 DEV-C++ 三、实验内容 设计一个数组类的模板,完成如下功能: (1) 数组的规模可以任意类型,任意大小。 (2) 重载构造函数实现不同种的初始化方式(自拟)。 (3) 数组排序函数。 (4) 数组查找函数。 (5) 数组查找最大值/最小值函数。 (6) 对运算符[]重载,支持对该数组类模板对象的下标运算 #include <iostream> #include <typeinfo> using namespace std; //模版类定义,一个是虚拟类型T,用来给定数组元素的类型,一个是整型值size,用来给定数组的大小,即元素个数 //此类是一个万能数组,数组类型可以任意给定,数组大小可任意给定 //模板类不仅可以传递类型T,也可以传递数值size template <class T,int size> class Array { public: Array() { int i; cout<<"请输如"<<size<<"个"<<typeid(T).name()<<"值,对数组成员赋值:"<<endl; for(i=0;i<size;i++) //对数组元素值进行输入 cin>>array[i]; } void display() { int i; cout<<"输出"<<size<<"数组成员值:"<<endl; for(i=0;i<size;i++) //对数组元素值进行输出 cout<<array[i]<<" "; cout<<endl; } private: T array[size]; }; int main() { Array<int,5> array_int; //给出模板的参数化值,使其生成具体类,然后定义类对象 //当前数组类中数组元素类型为int,数组大小为5 array_int.display(); Array<char,3> array_char; //给出模板的参数化值,使其生成具体类,然后定义类对象 //当前数组类中数组元素类型为char,数组大小为3 array_char.display(); Array<float,4> array_float; //给出模板的参数化值,使其生成具体类,然后定义类对象 //当前数组类中数组元素类型为int,数组大小为5 array_float.display(); return 0; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服