![第十章類模板課后編程題目答案_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/d387489d-00e6-4df5-829a-b635995d8b8e/d387489d-00e6-4df5-829a-b635995d8b8e1.gif)
![第十章類模板課后編程題目答案_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/d387489d-00e6-4df5-829a-b635995d8b8e/d387489d-00e6-4df5-829a-b635995d8b8e2.gif)
![第十章類模板課后編程題目答案_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/d387489d-00e6-4df5-829a-b635995d8b8e/d387489d-00e6-4df5-829a-b635995d8b8e3.gif)
![第十章類模板課后編程題目答案_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/d387489d-00e6-4df5-829a-b635995d8b8e/d387489d-00e6-4df5-829a-b635995d8b8e4.gif)
![第十章類模板課后編程題目答案_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/10/d387489d-00e6-4df5-829a-b635995d8b8e/d387489d-00e6-4df5-829a-b635995d8b8e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上1。設(shè)計一個類模板,其中包含數(shù)據(jù)成員Tan以及對其進行排序的成員函數(shù)Sort(),模板參數(shù)T可實例化成字符串。解;如果T僅僅可以實例化成基本數(shù)據(jù)類型與char*類型的字符串,可通過重載sort()實現(xiàn),程序如下:#include <iostream.h>#include <string.h>template <class T,int n>class Arrayprivate:T an;public:void sort(double) for (int i=0;i<n-1;i+)for (int j=i+1;j<n;j+)
2、if (ai>aj)T t;t=ai;ai=aj;aj=t;void sort(char *)for (int i=0;i<n-1;i+)for (int j=i+1;j<n;j+)if (aj=NULL|(ai!=NULL&& strcmp(ai,aj)>0)T t;t=ai;ai=aj;aj=t;void disp()for (int i=0;i<n-1;i+)if (ai!=NULL)cout<<ai<<",t"elsecout<<",t"if (ai!=NULL)c
3、out<<ai<<endl;elsecout<<endl;Array(T a)for (int i=0;i<n;i+)this->ai=ai;void main()float f=1.2,2.3,7.7,4,3,4,2.3;Array<float,6> a1(f);a1.sort(f0);a1.disp();char * a6="a","abc","ABC","abcd" Array<char *,6> a2(a);a2.sort(a0);a2
4、.disp();char c='a','b','C','2'Array<char,6> a3(c);a3.sort(c0);a3.disp();如果T的類型可以實例化成自定義的字符串類String類型,需要重載賦值運算符=,插入運算符<<,比較運算符>,分別用于進行字符串賦值,輸出,比較。程序如下:#include <iostream>#include <string>using namespace std;class Stringprivate:char *Str;int l
5、en;public:String(int n=0)Str=NULL;len=n;String(const char *p)len=strlen(p);Str=NULL;if (len!=0)Str=new charlen+1;strcpy(Str,p);String(String & r)len=r.len;if(len>0)Str=new charlen+1;strcpy(Str,r.Str);String()if (len>0)delete Str;String &operator=(const String & r)if (len>0)delet
6、e Str;Str=NULL;len=r.len;if(len>0)Str=new charlen+1;strcpy(Str,r.Str);return *this;bool operator >(const String &r)if (Str=NULL)return false;if (Str!=NULL && r.Str=NULL)return true;int n=(len>r.len?len:r.len);for (int i=0;i<n;i+)if (Stri<r.Stri)return false;if (Stri>r.S
7、tri)return true;return false;friend ostream &operator<<(ostream &output,const String &s)if (s.Str!=NULL)output<<s.Str;return output;template <class T,int n>class Arrayprivate:T an;public:void sort() for (int i=0;i<n-1;i+)for (int j=i+1;j<n;j+)if (ai>aj)T t;t=ai
8、;ai=aj;aj=t;void disp()for (int i=0;i<n-1;i+)cout<<ai<<",t"cout<<ai<<endl;Array(T a)for (int i=0;i<n;i+)this->ai=ai;void main()float f=1.2,2.3,7.7,4,3,4,2.3;Array<float,6> a1(f);a1.sort();a1.disp();String a6="a","abc","ABC&quo
9、t;,"abcd" Array<String,6> a2(a);a2.sort();a2.disp();2.設(shè)計一個類模板,其中包括數(shù)據(jù)成員T an以及在其中進行查找數(shù)據(jù)元素的函數(shù)int search(T)模板參數(shù)T可實例化成字符串。#include <iostream>#include <string>using namespace std;class Stringprivate:char *Str;int len;public:String(int n=0)Str=NULL;len=n;String(const char *p)len
10、=strlen(p);Str=NULL;if (len!=0)Str=new charlen+1;strcpy(Str,p);String(String & r)len=r.len;if(len>0)Str=new charlen+1;strcpy(Str,r.Str);String()if (len>0)delete Str;String &operator=(const String & r)if (len>0)delete Str;Str=NULL;len=r.len;if(len>0)Str=new charlen+1;strcpy(St
11、r,r.Str);return *this;bool operator =(const String &r)if (len!=r.len) return false;if (len=0) return true;for (int i=0;i<len;i+) if (Stri!=r.Stri)return false;return true;friend ostream &operator<<(ostream &output,const String &s)if (s.Str!=NULL)output<<s.Str;return ou
12、tput;template <class T,int n>class Arrayprivate:T an;public:int search(T key) for (int i=0;i<n;i+)if (ai=key)return i;return -1;void disp()for (int i=0;i<n-1;i+)cout<<ai<<",t"cout<<ai<<endl;Array(T a)for (int i=0;i<n;i+)this->ai=ai;void main()float
13、 f=1.2,2.3,7.7,4,3,4,2.3;Array<float,6> a1(f);cout<<a1.search (2.3)<<endl;String a6="a","abc","ABC","abcd" Array<String,6> a2(a);cout<<a2.search("");3.完善本章的Student類模板,使之可以添加,刪除,查詢學(xué)生記錄,對學(xué)生成績進行排序。#include <iostream>#
14、include <string>using namespace std;class Stringprivate:char *Str;int len;public:String(int n=0)Str=NULL;len=n;String(const char *p)len=strlen(p);Str=NULL;if (len!=0)Str=new charlen+1;strcpy(Str,p);String(String & r)len=r.len;if(len>0)Str=new charlen+1;strcpy(Str,r.Str);String()if (len&
15、gt;0)delete Str;String &operator=(const String & r)if (len>0)delete Str;Str=NULL;len=r.len;if(len>0)Str=new charlen+1;strcpy(Str,r.Str);return *this;bool operator =(const String &r)if (len!=r.len) return false;if (len=0) return true;for (int i=0;i<len;i+) if (Stri!=r.Stri)return
16、 false;return true;friend ostream &operator<<(ostream &output,const String &s)if (s.Str!=NULL)output<<s.Str;return output;template <class TNO,class TScore,int num>class Studentprivate:int n;TNO StudentIDnum;TScore scorenum;public:void append(TNO ID,TScore s);void Delete
17、(TNO ID);int search(TNO);void sort();void DispAll();Student() n=0;template <class TNO,class TScore,int num>void Student<TNO,TScore,num>:append(TNO ID,TScore s)if(n<num)StudentIDn=ID;scoren=s;n+;template <class TNO,class TScore,int num>void Student<TNO,TScore,num>:Delete(TN
18、O ID) for(int i=0;i<n;i+)if (StudentIDi=ID)for(int j=i;j<n;j+)StudentIDj=StudentIDj+1;scorej=scorej+1;n-;template <class TNO,class TScore,int num>int Student<TNO,TScore,num>:search(TNO no)for (int i=0;i<n;i+)if (StudentIDi=no)return i+1;return 0;template <class TNO,class TSco
19、re,int num>void Student<TNO,TScore,num>:sort()for(int i=0;i<n-1;i+)for (int j=i+1;j<n;j+)if (scorei<scorej)TScore ts;TNO tn;ts=scorei;tn=StudentIDi;scorei=scorej;StudentIDi=StudentIDj;scorej=ts;StudentIDj=tn;template <class TNO,class TScore,int num>void Student<TNO,TScore,
20、num>:DispAll()for (int i=0;i<n;i+)cout<<StudentIDi<<"t"<<scorei<<endl;void main()Student<char *,float,100> computer1; computer1.append("",70.5);computer1.append("",85);computer1.append("",69);computer1.append("",92
21、);cout<<"before sort"<<endl;computer1.DispAll();computer1.sort();cout<<"after sort"<<endl;computer1.DispAll();Student<String,float,100> computer2;String S1(""); String S2("");computer2.append(S1,70.5);computer2.append(S2,85);compu
22、ter2.append("",69);computer2.append("",92);cout<<"before sort"<<endl;computer2.DispAll();computer2.sort();cout<<"after sort"<<endl;computer2.DispAll();cout<<"after delete"<<S1<<"t"<<S2<<
23、endl;computer2.Delete(S1);computer2.Delete(S2);computer2.DispAll();cout<<computer2.search(S2);4,設(shè)計一個單向鏈表類模板,節(jié)點數(shù)據(jù)域中數(shù)據(jù)從小到大排列,并設(shè)計插入,刪除節(jié)點的成員函數(shù)。#include <iostream>using namespace std;template <class TYPE>class ListNode private:TYPE data;ListNode * next; static ListNode * CurNode; static
24、 ListNode * head; public:ListNode():next(NULL) head=CurNode=this;ListNode(TYPE NewData):data(NewData),next(NULL)void InsertNode(TYPE NewNode);void DeleteNode(TYPE NewNode);void DispList();void DelList();template <class TYPE>ListNode<TYPE> * ListNode<TYPE>:CurNode;template <class
25、 TYPE>ListNode<TYPE> * ListNode<TYPE>:head;template <class TYPE>void ListNode<TYPE>:InsertNode(TYPE NewData)ListNode *PreNode,*TempNode;PreNode=head;CurNode=PreNode->next;while(CurNode!=NULL&&CurNode->data<NewData)PreNode=CurNode;CurNode=CurNode->next;i
26、f (CurNode=NULL)PreNode->next=new ListNode(NewData);elseTempNode=new ListNode(NewData);TempNode->next=CurNode;PreNode->next=TempNode;template <class TYPE>void ListNode<TYPE>:DeleteNode(TYPE NewData)ListNode *PreNode;PreNode=head;CurNode=PreNode->next;while(CurNode!=NULL&&
27、amp;CurNode->data<NewData)PreNode=CurNode;CurNode=CurNode->next;while(CurNode!=NULL&&CurNode->data=NewData)PreNode->next=CurNode->next;delete CurNode;CurNode=PreNode->next;template <class TYPE>void ListNode<TYPE>:DispList()CurNode=head->next;while(CurNode!
28、=NULL)cout<<CurNode->data<<endl;CurNode=CurNode->next;template <class TYPE>void ListNode<TYPE>:DelList()ListNode *q; CurNode=head->next;while(CurNode!=NULL) q=CurNode->next; delete CurNode; CurNode=q; head->next=NULL;void main() ListNode<char> CList; CLis
29、t.InsertNode('B'); CList.InsertNode('A'); CList.InsertNode('C'); CList.InsertNode('A'); CList.DispList(); CList.DeleteNode('A'); cout<<"after delet 'A'"<<endl; CList.DispList();5,利用Stack類模板計算不含括號的四則運算式的值。#include<iostream>us
30、ing namespace std;template <class T>class Stack private: int size; int top; T* space; public: Stack(int=10); Stack() delete space; bool push(const T&); T pop(); bool IsEmpty() const return top=size; bool IsFull() const return top=0; ;template <class T>Stack <T>:Stack(int size)
31、this->size=size; space=new Tsize; top=size;template <class T>bool Stack <T>:push(const T& element) if(!IsFull() space-top=element; return true; return false;template <class T>T Stack <T>:pop() if(!IsEmpty() return spacetop+; return 0;template <class T>T str2num(char *str)char tmpstr20;strcpy(tmpstr,str);int i=0;while(tmpstri<='9'&&tmpstri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023三年級英語上冊 Module 1 Getting to know you Unit 3 Are you Kitty說課稿 牛津滬教版(三起)
- 21《古詩三首》說課稿-2024-2025學(xué)年語文四年級上冊統(tǒng)編版001
- 6《摸一摸》說課稿-2024-2025學(xué)年科學(xué)一年級上冊青島版
- 2024-2025學(xué)年高中生物 第3章 植物的激素調(diào)節(jié) 第1節(jié) 植物生長素的發(fā)現(xiàn)說課稿 新人教版必修3001
- 2024年五年級英語下冊 Module 7 Unit 2 I will be home at seven oclock說課稿 外研版(三起)
- 2025住宅裝修物業(yè)管理合同(合同范本)
- 8《池子與河流》(說課稿)-2023-2024學(xué)年統(tǒng)編版語文三年級下冊
- 2025鍋爐拆除安全施工合同
- 2025有關(guān)電梯廣告的合同范本
- Unit 6 Disaster and Hope Understanding ideas 說課稿-2023-2024學(xué)年外研版高中英語(2019)必修第三冊
- 玻璃反應(yīng)釜安全操作及保養(yǎng)規(guī)程
- 高中英語新課標詞匯表(附詞組)
- 2023年心理咨詢師之心理咨詢師基礎(chǔ)知識考試題庫附完整答案【有一套】
- 證券公司信用風(fēng)險和操作風(fēng)險管理理論和實踐中金公司
- 一級建造師繼續(xù)教育最全題庫及答案(新)
- 2022年高考湖南卷生物試題(含答案解析)
- GB/T 20909-2007鋼門窗
- GB/T 17854-1999埋弧焊用不銹鋼焊絲和焊劑
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
- 直線加速器專項施工方案
- 儲能設(shè)備項目采購供應(yīng)質(zhì)量管理方案
評論
0/150
提交評論