版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目錄一、課程設(shè)計目的及要求21.1設(shè)計目的21.2設(shè)計要求21.2.1封裝一個完善的字符串,實現(xiàn)字符串的基本操作21.2.2.利用C+中的類實現(xiàn)線性鏈表的常見操作21.2.3 編寫一個銀行ATM自動取款機模擬程序3二、課程設(shè)計具體實現(xiàn)32.1封裝一個完善的字符串,實現(xiàn)字符串的基本操作32.1.1總體設(shè)計(總的任務(wù)畫出總體設(shè)計圖,總體設(shè)計方案及主要設(shè)計原理;(算法的設(shè)計)32.1.2詳細設(shè)計(要求詳細寫出每個模塊的功能實現(xiàn),關(guān)鍵技術(shù),關(guān)鍵代碼解釋等。)42.1.3調(diào)試及問題解決62.2利用C+中的類實現(xiàn)線性鏈表的常見操作62.2.1總體設(shè)計62.2.2詳細設(shè)計62.2.3調(diào)試及問題解決62.3編
2、寫一個銀行ATM自動取款機模擬程序62.2.1總體設(shè)計62.2.2詳細設(shè)計62.2.3調(diào)試及問題解決6三、結(jié)束語(包括感想、致謝、設(shè)計總結(jié))6四、源代碼(代碼要加注釋)64.1封裝一個完善的字符串,實現(xiàn)字符串的基本操作64.2利用C+中的類實現(xiàn)線性鏈表的常見操作94.3編寫一個銀行ATM自動取款機模擬程序194.3.1面向過程的程序設(shè)計194.3.2面向?qū)ο蟮某绦蛟O(shè)計24一、課程設(shè)計目的及要求1.1設(shè)計目的軟件工程專業(yè)所開設(shè)的C+課程設(shè)計是教學實踐環(huán)節(jié)中一項重要內(nèi)容,進行此課程設(shè)計的旨在:1. 提高和加強學生的計算機應(yīng)用與軟件開發(fā)能力,使學生由初學者向?qū)I(yè)的程序員過渡。2. 培養(yǎng)學生獨立分析問
3、題、解決問題、查閱資料以及自學能力,以適應(yīng)計算機產(chǎn)業(yè)日新月異發(fā)展的形勢。3. 學習和掌握C+程序設(shè)計方法以及上機調(diào)試技巧,為今后學習其它專業(yè)課程打好基礎(chǔ)。 本次課程設(shè)計是以學生獨立思考解決問題為主,教師指導(dǎo)為輔,結(jié)合上機操作,完成指定的任務(wù),作出設(shè)計報告。1.2設(shè)計要求1.2.1封裝一個完善的字符串,實現(xiàn)字符串的基本操作要求如下:l 定義一個串類CMyString,建立適當?shù)臉?gòu)造函數(shù)l 字符串使用指針保存字符串l 必須實現(xiàn)如下操作,字符串比較、求串的長度、判斷串是否為空、將串置空、字符串賦值(包括兩個字符串類復(fù)制,一個字符串賦值到CmyString對象)、求字符串中的一個字符或改變字符串中的一
4、個字符(采用重載),完成串的賦值與合并(重載+),得到表示字符串的指針地址l 在字符串類的基礎(chǔ)上封裝彩色字符串類。(學會使用繼承和多態(tài))可選1.2.2.利用C+中的類實現(xiàn)線性鏈表的常見操作 l 帶表頭結(jié)點(存放的是該線性鏈表的長度),結(jié)點存放的是整型數(shù)值; l 實現(xiàn)以下操作 :n 置空MakeEmpty()n 求長度Length() n 插入Insert(int x,int i): 將x插入到第i個結(jié)點(不含頭結(jié)點)的之后; n 刪除Delete(int x):刪除鏈表中值為x的結(jié)點,成功返回1,否則返回0; n 刪除 ReMove(int i):刪除鏈表中第i個結(jié)點,成功返回1,否則返回0;
5、 n 搜索 Find(int x):在鏈表中查找數(shù)值為x的結(jié)點,成功返回1,否則返回0;n 顯示 Display():顯示整個鏈表各結(jié)點的數(shù)值。 l 寫出類的構(gòu)造函數(shù)、復(fù)制構(gòu)造函數(shù)及析構(gòu)函數(shù) l 編寫一個函數(shù),使用戶通過選擇進行相關(guān)鏈表操作。1.2.3 編寫一個銀行ATM自動取款機模擬程序?qū)崿F(xiàn)ATM取款機的基本功能,如給用戶提供查詢余額、取款、修改密碼、吃卡、退出系統(tǒng)等服務(wù),可根據(jù)實際情況添加(如繳費、轉(zhuǎn)賬等服務(wù))。 l 對于用戶要求輸入相應(yīng)的帳號和密碼,如果三次出錯則將卡吃掉并打印出相應(yīng)憑條。 l 若輸入的取款金額超出賬戶余額,則提示用戶輸入有誤并提供更正功能 二、課程設(shè)計具體實現(xiàn)2.1封裝
6、一個完善的字符串,實現(xiàn)字符串的基本操作2.1.1總體設(shè)計(總的任務(wù)畫出總體設(shè)計圖,總體設(shè)計方案及主要設(shè)計原理;(算法的設(shè)計)CMyString-string: char *-length: int +CMyString():+ CMyString(s :char *):+ CMyString(s : CMyString &):+getlength(): int +getcontents(): void +setcontents(s : char *): void + friend void strcompare(str1:CMyString, str2:CMyString): + strjud
7、ge(): void+ operator(n : int) : char &+friend CMyString operator +( CMyString &st1, CMyString &st2):+void operator =(const CMyString &s):圖1-1-1字符串類的類圖 通過類來實現(xiàn)字符串的封裝,用成員函數(shù)和友元函數(shù)、運算符的重載來實現(xiàn)字符串的基本操作。2.1.2詳細設(shè)計(要求詳細寫出每個模塊的功能實現(xiàn),關(guān)鍵技術(shù),關(guān)鍵代碼解釋等。)操作模式:功能實現(xiàn):用一個主函數(shù),把許多功能融入集中關(guān)鍵代碼:void main()char str2100;for(int i=0;
8、i2;i+)cout第i+1stri;CMyString str1(str0),str2(str1);cout第一個字符串的長度:str1.getlength()endl;cout第二個字符串的長度:str2.getlength()endl;cout兩個字符串的比較:;strcompare(str1,str2);cout判斷字符串是否為空,并置空:endl;cout第一個字符串;str1.strjudge();cout第二個字符串;str2.strjudge();str1.setcontents(liyushan);str2.setcontents( studies hard.); CMySt
9、ring str3(chengjingui);/字符串的賦值(調(diào)用帶一個參數(shù)的構(gòu)造函數(shù))cout第三個對象的內(nèi)容:;str3.getcontents();cout輸入一個小于等于str3.getlength()j;cout輸出第j個字符是:str3j-1endl;str3=str1+str2;cout第三個字符串的長度為:str3.getlength()endl;cout0) couts1.string大于s2.stringendl;else if(s0) couts1.string小于s2.stringendl;else couts1.string等于s2.stringendl;注意:1.
10、運用到類的成員函數(shù)的類外定義2. 運用到string.h 頭文件中的strcmp()字符串的長度:代碼:void getcontents()/求字符串的內(nèi)容coutstring0) couts1.string大于s2.stringendl;else if(s0) couts1.string小于s2.stringendl;else couts1.string等于s2.stringendl;注意:1. 運用友元函數(shù)并類外定義:先聲明再定義(不要加限定符)2. 要加關(guān)鍵字:friend 函數(shù)參數(shù)為對象3. 運用函數(shù):strcmp()置空且賦值:功能的實現(xiàn):是先用delete 來置空,再分配內(nèi)存進行賦
11、值代碼:void setcontents(char *s)/先置空,再重置字符串的內(nèi)容length=strlen(s);coutstring被置空endl;delete string;string=new charlength+1;strcpy(string,s);cout重置后:stringlength-1)cout整數(shù)下標越界endl;return ch;else return *(string+n);注意:下標運算符的重載:返回類型是char &完成串的賦值與合并:實現(xiàn):重載+關(guān)鍵代碼:CMyString operator +( CMyString &st1, CMyString &st
12、2)/運算符+重載的實現(xiàn)(友元函數(shù)):實現(xiàn)兩個字符串的連接CMyString t;t.length=st1.length+st2.length;/連接時:先計算長度,t.string=new chart.length+1;/再重新分配內(nèi)存strcpy(t.string,st1.string);/先拷貝 再連接strcat(t.string,st2.string);return t;/返回類型是對象t注意:先分配再拷貝鏈接void operator =(const CMyString &s)/運算符=的重載delete string;string=new charstrlen(s.string+
13、1);strcpy(string,s.string);注意:參數(shù)為類的引用得到表示字符串的指針地址:void getaddress()/得到字符串的指針地址cout字符串的指針地址:&stringendl;2.1.3調(diào)試及問題解決問題1:出現(xiàn)亂碼,內(nèi)存為空解決:析構(gòu)與置空同時運用,使內(nèi)存出現(xiàn)2次刪除,出現(xiàn)錯誤 運用默認構(gòu)造函數(shù)問題2:拷貝構(gòu)造函數(shù)的深淺拷貝問題解決:定義拷貝構(gòu)造函數(shù)問題3:運算符的重載問題解決:要對=進行重載 解決問題2.2利用C+中的類實現(xiàn)線性鏈表的常見操作2.2.1總體設(shè)計Nodeint Data; Node *next;圖2-2-1鏈表結(jié)構(gòu)體list-Node *head
14、; -int length;+list(); +list(list &l); +void create(); +list()delete head; +void MakeEmpty(); +int Length(); +void Insert(int x,int i);/將x插入到第i個結(jié)點(不含頭結(jié)點)的之后 +int Delete(int x); /刪除鏈表中值為x的結(jié)點,成功返回1,否則返回0 +int ReMove(int i); /刪除鏈表中第i個結(jié)點,成功返回1,否則返回0 +int Find(int x); /在鏈表中查找數(shù)值為x的結(jié)點,成功返回1,否則返回0 +void Dis
15、play(); /顯示整個鏈表各結(jié)點的數(shù)值圖2-2-2鏈表類2.2.2詳細設(shè)計登錄模式:功能的實現(xiàn):用主函數(shù):開始出現(xiàn)功能代碼 1、創(chuàng)建一個鏈表 2、在第i個結(jié)點處插入值為x的結(jié)點 3、求鏈表的長度 4、刪除值為x的結(jié)點 5、刪除第i個結(jié)點 6.搜索結(jié)點 7. 顯示所有的結(jié)點 8、置空結(jié)點 9. 退出函數(shù) 分別在其中調(diào)用各自的函數(shù)關(guān)鍵代碼:void main()int a;list b;cout*需要先創(chuàng)建一個鏈表再操作*endl;while(1)cout 選擇你所需要的服務(wù)endl;cout1.創(chuàng)建一個鏈表endl;cout2.在第i個結(jié)點后插入值為x的結(jié)點endl;cout3.求鏈表長度e
16、ndl;cout4.刪除值為x結(jié)點endl;cout5.刪除第i個結(jié)點endl;cout6.搜索結(jié)點endl;cout7.顯示所有結(jié)點endl;cout8.置空結(jié)點endl;cout9.退出程序endl;cout請輸入功能代碼:a;if(a=1)b.create();b.Display();else if(a=2) int x,i;cout分別輸入要插入的數(shù)、位置ixi;b.Insert(x,i);b.Display();else if(a=3)cout為鏈表長度:b.Length()endl;else if(a=4)cout請鍵入你所要刪除的數(shù)字c;b.Delete(c);b.Display
17、();else if(a=5) cout請鍵入你所要刪除的位置i;b.ReMove(i);b.Display(); else if(a=6)cout請鍵入要查詢的數(shù)e;b.Find(e); else if(a=7)b.Display();else if(a=8)b.MakeEmpty();b.Display();else if(a=9)coutBYEBYE!謝謝使用!endl;exit(1);else cout你輸入有誤.endl;continue;/結(jié)束本次循環(huán),進行下一次的循環(huán)(continue 只能用于循環(huán)語句中的)cout循環(huán)結(jié)束了。endl;注意:循環(huán)的運用 Break contin
18、ue return exit()的不同和運用創(chuàng)建一個鏈表:功能的實現(xiàn):運用類的成員函數(shù)關(guān)鍵代碼:void list:create()Node *p,*tail;int data,i;cout輸入鏈表的數(shù)據(jù)和長度datai;if(i=0)head=NULL;cout創(chuàng)建一個空的鏈表。endl;cout重新創(chuàng)造個鏈表endl;create();/遞歸調(diào)用elsewhile(lengthData=data;elsep=new Node;p-Data=data;tail-next=p;tail=p;cout輸入下一個結(jié)點的值data; tail-next=NULL;length-;注意:先確定插入的鏈
19、表數(shù) 當是0時:我運用了遞歸讓其建立一個不為空的鏈表 當不為0時,我先建立一個頭文件,再在尾部加入新的結(jié)點,從而建立一個鏈表在第i個結(jié)點處插入值為x的結(jié)點: 功能的實現(xiàn):需要找到第i個節(jié)點再插入x,不過要注意i的值l length:提示錯誤,用循環(huán)重寫l iData=x;while(1)s-Data=x; /新結(jié)點的數(shù)據(jù)是:xif(ilength)cout輸入有誤,請重新輸入:endl;coutxi;continue;elsefor(int j=1;jnext)/查找第i個結(jié)點j+;p=t; /p指向第i個結(jié)點,q指向第i+1個結(jié)點q=p-next;if(p=NULL)head=s;s-nex
20、t=NULL;elseif(p-next!=NULL)s-next=q;p-next=s;elsep-next=s;s-next=NULL;break;求鏈表的長度:功能的實現(xiàn):通過遍歷鏈表來得到鏈表的長度 關(guān)鍵代碼:int list:Length()/求鏈表的長度(結(jié)點數(shù))Node *p=head;if(p=NULL)cout該鏈表是空的。next!=NULL;p=p-next)length+;/長度return length; 注意:函數(shù)類型為int 刪除值為x的結(jié)點功能的實現(xiàn):從頭往后找值為x的結(jié)點,找到后將其刪除關(guān)鍵代碼: int list:Delete(int x)/刪除鏈表中值為x
21、的結(jié)點,成功返回1,否則返回0Node *p=head,*q;/p用于指向結(jié)點x,q指向結(jié)點x的前一個結(jié)點(刪除值為x的結(jié)點p)if(p=NULL) /若是空表cout這是個空的鏈表,刪除失敗!Data=x)/若是第一個結(jié)點head=p-next;delete p;cout刪除第一個結(jié)點,值為xData!=x&p-next!=NULL)/查找值為x的結(jié)點p;q=p;p=p-next;if(p-Data=x)/如果有值為x的結(jié)點,返回1q-next=p-next;delete p;cout刪除了值為x的結(jié)點,刪除成功。endl;return 1;elsecout沒有該結(jié)點,刪除失?。ndl;r
22、eturn 0;/沒有,返回0 刪除第i個結(jié)點功能的實現(xiàn):找到結(jié)點將其刪除關(guān)鍵代碼:int list:ReMove(int i) /刪除鏈表中第i個結(jié)點,成功返回1,否則返回0Node *p,*q,*t=head;for(int j=1;jnext)/查找第i個結(jié)點j+;p=t; /p指向第i個結(jié)點,q指向第i+1個結(jié)點 q=p-next;if(i=1)head=p-next;delete p;cout刪除第i個結(jié)點,刪除成功!1&inext=p-next;delete p;cout刪除第i個結(jié)點,刪除成功!endl;return 1;else cout鏈表中無該結(jié)點,刪除失??!Data!=x
23、)length+;p=p-next;if(p-Data=x)cout找到第length個結(jié)點是:xendl;return 1;elsecout沒有找到數(shù)據(jù)是:x的結(jié)點endl;return 0;顯示所有的結(jié)點功能的實現(xiàn):考慮空鏈表與非空的兩種情況關(guān)鍵代碼:void list:Display()/顯示整個鏈表各結(jié)點的數(shù)值并輸出鏈表的長度Node *p=head;length=0;if(head=NULL)cout這是一個空的鏈表endl;elsecout該鏈表是:;while(p!=NULL)coutDatanext;length+; coutendl;cout該鏈表的長度為:lengthnex
24、t; head=p-next; delete p;p=head;關(guān)鍵代碼:void list:MakeEmpty()/置空函數(shù)Node *p=head;if(p=NULL)cout這個鏈表是空的。next!=NULL;p=p-next)head=p-next;delete p;p=head;delete p;head=NULL;return; 退出函數(shù)功能的實現(xiàn):用exit()函數(shù)關(guān)鍵代碼:else if(a=9)coutBYEBYE!謝謝使用!endl;exit(1);注意:本操作要退出程序:就需要退出循環(huán),退出主函數(shù),則用exit()或break或return 注意他們的區(qū)別!exit()
25、重要2.2.3調(diào)試及問題解決問題1:鏈表的設(shè)計怎么吧?答:需要先創(chuàng)建一個非空鏈表再進行其他的操作。問題2:缺少頭函數(shù)?答:在用exit()時缺少頭文件。需要加上頭文件#include,從而解決問題。問題3:創(chuàng)建一個鏈表時,當為空時不能繼續(xù)進行?答:采用直接遞歸調(diào)用,實現(xiàn)創(chuàng)建一個非空的鏈表。2.3編寫一個銀行ATM自動取款機模擬程序2.2.1總體設(shè)計開始登陸界面輸入選擇代碼i判斷i的值i=ii=2i=3i=4i=5i=6i=7i為其他2.2.2詳細設(shè)計登陸模塊:功能的實現(xiàn):通過7個代碼實現(xiàn)功能之間的選擇1.開戶 2.存款3.取款 4.查詢余額5.轉(zhuǎn)賬6.更改密碼7.退出關(guān)鍵代碼:void mai
26、n() int i;while(1)couttt*nendl;couttt* 歡迎使用自動取款機 *nendl;couttt-nendl; couttt請選擇您要辦理的手續(xù):n;couttttt1.開戶n;couttttt2.存款n; couttttt3.取款n; couttttt4.查詢余額n; couttttt5.轉(zhuǎn)賬n;couttttt6.更改密碼n; couttttt7.退出n; couti;if(7=6)break;switch(i)case 1:openAccount();/開戶break;case 2:saveMoney();/存款break;case 3:takeMoney()
27、;/取款break;case 4:check();/查詢余額break;case 5:transfer();/轉(zhuǎn)賬break;case 6:changepassword();break;default:coutaaatt你的輸入有誤,請輸入1-7之間的數(shù)!n;開戶:功能的實現(xiàn):創(chuàng)建一個賬號,用于下面的操作關(guān)鍵代碼:/開戶函數(shù)void openAccount()couttt歡迎開戶::n;coutname;coutcardID;coutpassword;coutmoney;couttt恭喜您,開戶成功!n;吃卡:功能的實現(xiàn):如果密碼三次輸入錯誤,就吃卡,退出系統(tǒng)關(guān)鍵代碼:void eatcard
28、()long cid;char password120;for( int i=0;i3;i+)coutcid;coutpassword1;if(cid=cardID&strcmp(password1,password)=0)couttt輸入正確!endl;return;elseswitch(i)case 0:case 1:cout*卡號密碼輸入有誤*ntt請重新輸入:endl;break;case 2:cout*吃卡*endl;exit(1);存款:功能的實現(xiàn):先輸入密碼,進入存款關(guān)鍵代碼:/存款void saveMoney()int money1;couttt歡迎使用取款業(yè)務(wù):n;eatca
29、rd();coutmoney1;money=money+money1;couttt取款成功,卡上余額為:moneyendl;取款:功能的實現(xiàn):先輸入密碼,進行存款關(guān)鍵代碼:/取款void takeMoney()int money1;couttt歡迎您使用取款業(yè)務(wù)n; eatcard();coutmoney1;if(money1money)cout取款超過存款金額(money),請重新輸入:;elsemoney=money-money1;couttt取款成功,您卡上余額為:moneyendl;return;查詢余額:先輸入密碼,進行查詢余額功能的實現(xiàn):關(guān)鍵代碼:/查詢void check() c
30、outtt歡迎進行查詢業(yè)務(wù)n;eatcard();couttt卡上余額為:moneyendl;轉(zhuǎn)帳:功能的實現(xiàn):先輸入密碼,再轉(zhuǎn)帳關(guān)鍵代碼:/轉(zhuǎn)賬void transfer()long bcid;int money1;couttt歡迎使用轉(zhuǎn)賬業(yè)務(wù)nendl; eatcard();coutbcid;coutmoney1;if(money1money)cout轉(zhuǎn)賬金額超過存款金額(money),請重新輸入:;elsemoney=money-money1;couttt轉(zhuǎn)賬成功,您卡上余額為:moneyendl;return;修改密碼:功能的實現(xiàn):輸入密碼,再改密碼關(guān)鍵代碼:void changepa
31、ssword()char password120,password220;couttt歡迎修改密碼ttendl;eatcard();while(1)coutpassword1;coutpassword2;if(strcmp(password1,password2)=0)strcpy(password,password1);cout密碼修改成功!endl;return;elsecout*更改密碼不一致*n重新輸入:;退出:功能的實現(xiàn):用break退出循環(huán)從而退出系統(tǒng)關(guān)鍵代碼:if(i=7)break;2.2.3調(diào)試及問題解決問題1:吃卡問題答:通過三次的判斷,來解決問題三、結(jié)束語(包括感想、致謝
32、、設(shè)計總結(jié))通過前一段時間的學習,我們對c+有了一定的基礎(chǔ),我們也會編寫一些小的程序。我認為自己已經(jīng)學得不錯了。但事實并非如此,我只是眼高手低。我認識到了自己許多的不足,我認識到了C+的重要性。經(jīng)過兩三星期的課程設(shè)計,我深有感觸。我發(fā)現(xiàn)了許多,也認識到許多。我生氣自己的不足,我放棄過,我傷心過,我思索過。經(jīng)過激烈的奮斗,我戰(zhàn)勝了自己,終于完成了一個又一個的程序。我是非常的喜悅,我的努力沒有白費。我有加深了自己對知識的了解,我將更加的努力。我更深刻地明白了一個道理:我們不要害怕,我們要行動,把我們的想法寫出了,去慢慢的實現(xiàn)。只有敢于行動,敢于下手,我們才有機會成功。我發(fā)現(xiàn)自己有一個不足:只敢想不
33、敢做。我總認為想法不對,就不敢去行動了,從而失敗了許多次。經(jīng)過耐心的思考,我發(fā)現(xiàn)了自己的缺點,我要努力改變自己。在設(shè)計中,我也認識到許多基礎(chǔ)知識的重要性。不然會漏洞百出,我一定會抓住基礎(chǔ),基礎(chǔ)是成功的關(guān)鍵。更重要的是:我要多思考,多動手,只有這樣,我們才能獲得許多。四、源代碼(代碼要加注釋)4.1封裝一個完善的字符串,實現(xiàn)字符串的基本操作/*1.封裝一個,完善字符串,字符串的基本操作要求如下: 定義一個串類CMyString,建立適當?shù)臉?gòu)造函數(shù) 字符串使用指針保存字符串 必須實現(xiàn)如下操作,字符串比較、求串的長度、判斷串是否為空、將串置空、字符串賦值(包括兩個字符串類復(fù)制,一個字符串賦值到Cmy
34、String對象)、求字符串中的一個字符或改變字符串中的一個字符(采用重載),完成串的賦值與合并(重載+),得到表示字符串的指針地址 在字符串類的基礎(chǔ)上封裝彩色字符串類。(學會使用繼承和多態(tài))可選*/#include#includeclass CMyString/類的定義char *string;/字符串的內(nèi)容int length;/字符串的長度public:CMyString()/不帶參數(shù)的構(gòu)造函數(shù)length=0;string=NULL;CMyString(char *s)/帶一個參數(shù)的構(gòu)造函數(shù)length=strlen(s);string=new charlength+1;strcpy(
35、string,s); CMyString(CMyString &s)/拷貝構(gòu)造函數(shù):來實現(xiàn)對象之間的拷貝length=s.length;string=s.string;int CMyString:getlength()/求字符串的長度return length; void getcontents()/求字符串的內(nèi)容coutstringendl; void setcontents(char *s)/先置空,再重置字符串的內(nèi)容length=strlen(s);coutstring被置空endl;delete string;string=new charlength+1;strcpy(string,
36、s);cout重置后:stringendl;friend void strcompare(CMyString str1,CMyString str2);/友元函數(shù)實現(xiàn)兩個字符串對象的比較void strjudge()/判斷字符串是否為空if(string!=NULL) cout不為空.endl;else cout為空.length-1)cout整數(shù)下標越界endl;return ch;else return *(string+n);friend CMyString operator +( CMyString &st1, CMyString &st2);/運算符+號的重載的聲明void oper
37、ator =(const CMyString &s)/運算符=的重載delete string;string=new charstrlen(s.string+1);strcpy(string,s.string);void getaddress()/得到字符串的指針地址cout字符串的指針地址:&string0) couts1.string大于s2.stringendl;else if(s0) couts1.string小于s2.stringendl;else couts1.string等于s2.stringendl;CMyString operator +( CMyString &st1, C
38、MyString &st2)/運算符+重載的實現(xiàn)(友元函數(shù)):實現(xiàn)兩個字符串的連接CMyString t;t.length=st1.length+st2.length;/連接時:先計算長度,t.string=new chart.length+1;/再重新分配內(nèi)存strcpy(t.string,st1.string);/先拷貝 再連接strcat(t.string,st2.string);return t;/返回類型是對象t/*主函數(shù)*/void main()char str2100;for(int i=0;i2;i+)cout第i+1stri;CMyString str1(str0),str2(str1);cout第一個字符串的長度:str1.getlength()endl;cout第二個字符串的長度:str2.getlength()endl;cout兩個字符串的比較:;strcompare(str1,str2);cout判斷字符串是否為空,并置空:endl;c
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度某旅游度假區(qū)水電暖系統(tǒng)設(shè)計與安裝合同2篇
- 2025版五星級酒店客房服務(wù)員勞動合同9篇
- 2025版企業(yè)食堂管理承包合同模板3篇
- 二零二五版多場景物聯(lián)網(wǎng)技術(shù)應(yīng)用合同3篇
- 醫(yī)院醫(yī)療設(shè)備管理與發(fā)展規(guī)劃知識考核試卷
- 土地利用規(guī)劃中的城鄉(xiāng)水源地保護考核試卷
- 2025年合資協(xié)議書參考樣本
- 2025年勞動仲裁裁決和解協(xié)議
- 2025年加盟商業(yè)合同
- 2025年大數(shù)據(jù)智能分析合作協(xié)議
- 物業(yè)民法典知識培訓(xùn)課件
- 2023年初中畢業(yè)生信息技術(shù)中考知識點詳解
- 2024-2025學年八年級數(shù)學人教版上冊寒假作業(yè)(綜合復(fù)習能力提升篇)(含答案)
- 《萬方數(shù)據(jù)資源介紹》課件
- 醫(yī)生定期考核簡易程序述職報告范文(10篇)
- 第一章-地震工程學概論
- 《中國糖尿病防治指南(2024版)》更新要點解讀
- 交通運輸類專業(yè)生涯發(fā)展展示
- 2024年山東省公務(wù)員錄用考試《行測》試題及答案解析
- 老年護理學-老年人與人口老齡化-課件
- 元代文學緒論
評論
0/150
提交評論