C++编程例题.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:7 大小:38KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

C++编程例题.doc

C++编程例题.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

1.定义复数类,要求:(1)定义两个重载的构造函数,一个无参数,一个带有两个参数(2)用重载运算符“+”、“-”实现两个复数的加、减法(3)用重载运算符“<<”、“>>”实现复数的输入输出。1.#include<iostream>usingnamespacestd;classfushu{public:fushu(){shi=0.0;xu=0.0;}fushu(doublex,doubley){shi=x;xu=y;}friendfushuoperator+(fushu&,fushu&);friendfushuoperator-(fushu&,fushu&);friendstd::ostream&operator<<(std::ostream&oo,fushu&s1);friendstd::istream&operator>>(std::istream&oo,fushu&s1);protected:doubleshi;doublexu;};fushuoperator+(fushu&s1,fushu&s2){doublex1=s1.shi+s2.shi;doublex2=s1.xu+s2.xu;fushuresult(x1,x2);returnresult;}fushuoperator-(fushu&s1,fushu&s2){doublex1=s1.shi-s2.shi;doublex2=s1.xu-s2.xu;fushuresult(x1,x2);returnresult;}std::ostream&operator<<(std::ostream&oo,fushu&s1){if(s1.xu>=0)oo<<s1.shi<<'+'<<s1.xu<<'i';elseoo<<s1.shi<<s1.xu<<'i';returnoo;}std::istream&operator>>(std::istream&oo,fushu&s1){oo>>s1.shi;oo>>s1.xu;returnoo;}voidmain(){fushua(3,4);fushub(4,5);fushuc;c=a+b;cout<<c;}2.设计并测试一个简单的栈类Stack,数据按照先进后出的方法操作。提供如下功能:判断栈是否为空、出栈和入栈。栈中数据元素的类型不限。#include<iostream>usingnamespacestd;classStack{public:Stack(){top=-1;ps=0;}boolnull_stack(){if(top=-1)returnfalse;elsereturntrue;}voidpush(inte){ps=newint;top++;ps[top]=e;}boolinsert(){if(top=-1)returnfalse;else{top--;returntrue;}}protected:inttop;int*ps;};3.编写使用简单选择排序和直接插入排序方法进行排序的函数模版,并编制主函数分别对int型、char型数据进行排序。3、#include<iostream>usingnamespacestd;template<classT>voidcharu(Ta[],intn){intindex=0,inserter=0,i;for(i=1;i<n;i++){inserter=a[i];index=i-1;while(index>=0&&inserter<a[index]){a[index+1]=a[index];index--;}a[index+1]=inserter;}for(i=0;i<n;i++)cout<<a[i]<<"";cout<<endl;}template<classT>voidxuanze(Ta[],intn){inttemp,i,j,k;for(i=0;i<n-1;i++){j=i;for(k=i+1;k<n;k++)if(a[k]<a[i])j=k;if(i!=j){temp=a[i];a[i]=a[j];a[j]=temp;}}for(i=0;i<n;i++)