河北工业大学-C++实验报告实验五

更新时间:2024-04-26 15:32:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、已知下列主函数: int main() {

cout<

声明求3个数中最小者的函数模板,并写出调用此函数模板的完整程序。

#include using namespace std; template T min(T a,T b,T c) { T min; if(a<=b) min=a; else min=b; if(min>=c) min=c; return min; }

int main() {

cout<

2、编写一个求任意类型数组中最大元素和最小元素的程序,要求将求最大元素和最小元素的函数设计成函数模板,并写出调用此函数模板的完整程序,使

得函数调用时,数组的类型可以是整型也可以是双精度类型。

#include using namespace std; template

void GetMaxMin(T *a, int theSize) {

T tmpMax = a[0]; T tmpMin = a[0];

for (int i = 0; i < theSize; ++i) {

if (a[i] > tmpMax) {

tmpMax = a[i]; }

if (a[i] < tmpMin) {

tmpMin = a[i]; } }

cout<<\ cout<<\}

int c[]={1,2,3};

double b[]={1.1,2.2,3.3}; char d[]={'a','b','c'}; void main() {

GetMaxMin(c,3); GetMaxMin(b,3); GetMaxMin(d,3); }

3、编写一个函数模板,使用冒泡排序将数组内容由小到大排列并打印出来,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整型也

可以是双精度型。 #include using namespace std; template class paixu { t* set; int n; public:

paixu(t* data,int m):set(data),n(m){} void sort(); };

template void paixu::sort() { t temp;

for(int i=0;iset[j+1]) { temp=set[j]; set[j]=set[j+1]; set[j+1]=temp; }

for(int j=0;j

int a[]={1,3,2,7,5,9};

double b[]={6.6,9.9,7.7,8.8,4.4,2.2}; paixup1(a,6); p1.sort();

paixu p2(b,6); p2.sort();

char c[]={'a','c','r','b'}; paixup3(c,4); p3.sort(); return 0; }

4、编写一个程序,使用类模板对数组元素进行排序、倒置、查找和求和。 【提示】 设计一个类模板 template class Array {

…… };

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

#include

#include

template

class Array { T *set; int n; public:

Array(T *data,int i){set=data;n=i;}

~Array(){}

void sort(); // 排序

int seek(T key); // 查找指定的元素

T sum(); // 求和

void disp(); // 显示所有的元素 };

template

void Array::sort() {

int i,j; T temp;

for(i=1;i

for(j=n-1;j>=i;j--)

if(set[j-1]>set[j]) {

temp=set[j-1];set[j-1]=set[j];set[j]=temp; } }

template

int Array::seek(T key) { int i;

for(i=0;i

if(set[i]==key)

return i;

return -1; }

template

T Array::sum() {

T s=0;int i;

for(i=0;i

template

void Array::disp() { int i;

for(i=0;i

cout<

cout<

void main() {

int a[]={6,3,8,1,9,4,7,5,2};

double b[]={2.3,6.1,1.5,8.4,6.7,3.8};

Arrayarr1(a,9);

Arrayarr2(b,6);

cout<< \

cout<< \原序列:\

cout<< \在arr1中的位置:\

arr1.sort();

cout<< \排序后:\

cout<<\

cout<< \原序列:\

cout<< \在arr2中的位置:\

arr2.sort();

cout<< \排序后:\

}5、编写一个程序,求输入数的平方根。设置异常处理,对输入负数的情况给出提示。

#include #include using namespace std; void main() {

double number;

cout<<\请输入一个数: \ cin>>number; try

{ }

catch(double) { } }

cout<<\输入数为负数,错误!\ if(number<0)

throw number;

cout << \平方根是\

本文来源:https://www.bwwdw.com/article/nyup.html

Top