春第四次上机练习3月31日(模板练习题1)_第1页
春第四次上机练习3月31日(模板练习题1)_第2页
春第四次上机练习3月31日(模板练习题1)_第3页
春第四次上机练习3月31日(模板练习题1)_第4页
春第四次上机练习3月31日(模板练习题1)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品好资料学习推荐1. 建立函数模板FindX,完成在数组中查找给定值X的操作,数组与X作为函数形参;不能在数组中找到X时,返回-1;能找到X时,返回X的下标。在main()函数中,定义并初始化不同数据类型的数组(int, double ,char),然后输入需查找的值,利用函数模板实例化模板函数,进行查找,并输出查找结果。附加思考:自定义类Student(数据属性:学号,姓名,成绩),建立对象数组并初始化,利用函数模板实例化模板函数,按照学号或者姓名、成绩查找数组中相应的对象。 #includeusing namespace std;templateint FindX(T a,T X,int

2、 n)for(int i=0;in;i+)if(ai=X)return i;return -1;templatevoid output(T a,int n)for(int i=0;in;i+) coutai ;coutendl;return;int main()int a1=1,2,3,5,7,11,13,17,19,t1;double a2=1.23,2.45,3.14,4.56,5.89,6.23,t2;char a3=ABCDEfghij,t3;int n1=9,n2=6,n3=10;coutt1;coutFind t1 in a1:FindX(a1,t1,n1)endl;coutt2;

3、coutFind t2 in a2:FindX(a2,t2,n2)endl;coutt3;coutFind t3 in a3:FindX(a3,t3,n3)操作符。 bool operator(seqlist & s)。 与同类型的顺序表类对象s中的数组对比,本对象数组元素比s的数组元素大,返回ture,否则返回false。(7) 在main函数中测试以上成员函数和重载函数,并将测试结果输出,保存在文件result.txt。#include#includeusing namespace std;ofstream fout(result.txt);templateclass seqlistT s

4、listsize;int Maxsize;int last;public:seqlist()last=-1;Maxsize=size;int Length()constreturn last+1;bool Insert(T &x,int i);/*int Find(T &x)const;bool IsIn(T &x);bool Remove(T &x);int Next(T &x);int Prior(T &x);bool IsEmpty()return last=-1;bool IsFull()return last=Maxsize-1;T Get(int i)return ilast? e

5、xit(1):slisti;*/T& operator(int i);bool InsertBegin(T &x);bool DeleteEnd();bool ExchangeData(int i,int j);bool MoveDataToEnd(int i, int j);seqlist & LinkSeq(seqlist & s);bool operator(seqlist & s);void coutput()for(int i=0;i=last;i+) coutslisti ;coutendl;return;void foutput()for(int i=0;i=last;i+) f

6、outslisti ;foutendl;return;templatebool seqlist:Insert(T &x,int i)int j;if(ilast+1|last=Maxsize-1) return false;elselast+;for(j=last;ji;j-) slistj=slistj-1;slisti=x;return true;/*templateint seqlist:Find(T &x)constint i=0;while(ilast)return -1;else return i;templatebool seqlist:IsIn(T &x)int i=0;boo

7、l found=0;while(i=last&!found)if(slisti!=x)i+;else found=1;return found;templatebool seqlist:Remove(T &x)int i=Find(x),j;if(i=0)last-;for(j=i;j=last;j+) slistj=slistj+1;return true;return false;templateint seqlist:Next(T &x)int i=Find(x);if(i=0&ilast) return i+1;else return -1;templateint seqlist:Pr

8、ior(T &x)int i=Find(x);if(i0&i=last) return i-1;else return -1;*/templateT& seqlist:operator (int i)if(ilast+1|i=Maxsize)cout下标出界!last)last+;return slisti;templatebool seqlist:InsertBegin(T &x)if(last=Maxsize-1) return false;last+;for(int i=last;i0;i-) slisti=slisti-1;slist0=x;return true;templatebo

9、ol seqlist:DeleteEnd()if(last=-1) return false;last-;return true;templatebool seqlist:ExchangeData(int i,int j)if(ilast|jlast)coutError:Illegal position!endl; return false;T t;t=slisti;slisti=slistj;slistj=t;return true;templatebool seqlist:MoveDataToEnd(int i,int j)if(ilast|jlast|ij)coutError:Illeg

10、al range!endl; return false;T tsize;int k,q=0;for(k=i;k=j;k+) tq+=slistk;for(k=i;k=i+last-j-1;k+) slistk=slistk+j-i+1;q=0;for(k=i+last-j;k=last;k+) slistk=tq+;return true;template seqlist& seqlist:LinkSeq(seqlist & s)if(Length()+s.Length()Maxsize)coutError:Out of Maxsize!endl;exit(1);int i;for(i=0;i

11、s.Length();i+)slistlast+i+1=si;last+=s.Length();return *this;templatebool seqlist:operator(seqlist & s)int i=0;while(ilast&isi)return true;i+;return false;int main()seqlists1;seqlists2;int i,n,a15=2,3,5,7,11,a25=13,17,19,23,29;for(i=0;i5;i+) if(!s1.Insert(a1i,i)coutError!endl;break;for(i=0;i5;i+) if

12、(!s2.Insert(a2i,i)coutError!endl;break;couts1:; s1.coutput();couts2:; s2.coutput();fouts1:; s1.foutput();fouts2:; s2.foutput();s1.LinkSeq(s2);coutLink s2 to s1:; s1.coutput();foutLink s2 to s1:; s1.foutput();coutn;s1.InsertBegin(n);coutInsert to the begin of s1:; s1.coutput();foutInsert to the begin of s1:; s1.foutput();s1.DeleteEnd();coutDelete the end of s1:; s1.coutput();foutDelete the end of s1:; s1.foutput();docoutin;while(!s1.ExchangeData(i,n);coutExchange s1i and sn:; s1.coutput();foutEx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论