欢迎来到天天文库
浏览记录
ID:38746769
大小:174.00 KB
页数:12页
时间:2019-06-18
《作业二 函数模板与类模板》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《面向对象技术》实验报告学号:100801305姓名:高明行《面向对象技术》实验报告专业:计算机科学与技术学号:100801305姓名:高明行教师:周宇Page12《面向对象技术》实验报告学号:100801305姓名:高明行作业二函数模板与类模板一.实验目的l学习类模板的定义和使用l学习函数模板的定义和使用l链表的不同实现方法l所有标识符命名方式按照匈牙利命名法。二.实验内容第Ⅰ题:基本练习设计一个数组类的模板,具体要求如下:l数组的规模可以任意类型,任意大小。l重载构造函数实现不同种的初始化方式(自
2、拟)。l数组排序函数。l数组查找函数。l数组查找最大值/最小值函数。l对运算符[]重载,支持对该数组类模板对象的下标运算第Ⅱ题:基本练习(未必用类模板)设计一个循环链表,用来表示大整数,具体要求如下:l链表的头结点值为-1,其余结点依次存放数据,各结点最多放四位整数,如下图表示233238766:l利用上述数据结构解决大整数的表示,以及加法、减法运算(用两个链表表示操作数)。l将上述数据结构应用于10位以上求素数问题和阶乘问题。Page12《面向对象技术》实验报告学号:100801305姓名:高明行第
3、Ⅰ题:一设计分析:1.在主函数中可以任意改变数组大小和类型2.利用函数模板二程序清单:#include"iostream"#includeusingnamespacestd;template//类模板的首部,声明类模板的参数classArray//数组类{intsize;T*ap;public:Array(){size=s;ap=newT[s];}voidSetData();voidDisplay();voidsort();TMax();TMin();
4、intsearch(Tx);Toperator[](inti);~Array()//析构{delete[]ap;}};templatevoidArray::SetData()//模板类Carray的构造的输入函数{for(inti=0;i>ap[i];}templatevoidArray::Display()//模板类Carray的构造的输出函数Page12《面向对象技术》实验报告学号:10
5、0801305姓名:高明行{for(inti=0;ivoidArray::sort(){inti,j,t;for(i=0;iap[j+1]){t=ap[j];ap[j]=ap[j+1];ap[j+1]=t;}}templateTArray::Max(){
6、inti;Ttemp=ap[0];for(i=1;iap[i])?temp:ap[i];}returntemp;}templateTArray::Min(){inti;Ttemp=ap[0];for(i=1;i7、s>intArray::search(Tx){inti;for(i=0;iTArray::operator[](inti){returnap[i];}intmain(){intx;Arraya;cout<<"请输入整形数组(长度等于10)";a.SetData();a.sort();a.D8、isplay();cout<<"Max="<>x;a.search(x);system("pause");return0;}三运行结果:Page12《面向对象技术》实验报告学号:100801305姓名:高明行四思考问题:1.对模板类有点理解,但是主要局限于课上的内容拓展一下就不灵活第Ⅱ题:(百度的,不会写)一设计分析:1
7、s>intArray::search(Tx){inti;for(i=0;iTArray::operator[](inti){returnap[i];}intmain(){intx;Arraya;cout<<"请输入整形数组(长度等于10)";a.SetData();a.sort();a.D
8、isplay();cout<<"Max="<>x;a.search(x);system("pause");return0;}三运行结果:Page12《面向对象技术》实验报告学号:100801305姓名:高明行四思考问题:1.对模板类有点理解,但是主要局限于课上的内容拓展一下就不灵活第Ⅱ题:(百度的,不会写)一设计分析:1
此文档下载收益归作者所有