C++面向物件程式設計50道程式設計題(第04題)
阿新 • • 發佈:2018-11-29
C++面向物件程式設計50道程式設計題(第04題)
摘要:C++程式設計實習是為學生提供了一個既動手又動腦,獨立實踐的機會,將課本上的理論知識和實際有機的結合起來,鍛鍊學生的分析問題和解決問題的能力,提高學生運用所學知識解決實際問題的能力。
本專輯為程式設計入門者、高校計算機軟體專業學習或複習提供C++程式設計題庫。
讀者請先獨立思考哦,再與參考程式進行比對檢查。
一、問題描述
二、考察內容
基本面向物件概念,如何建立類、物件,對類資料成員和成員函式的理解,簡單的排序演算法。
三、難度等級
難度等級:★☆☆☆☆
四、參考程式
#include <iostream.h> #include <string.h> class String{ char * str1,* str2; char *str; public: String(char*ptr1,char*ptr2); void dele( ); void sort( ); void show( ); ~String(){delete[]str1;delete[]str2;delete[]str;} }; String::String(char*ptr1,char*ptr2) { str1=new char[strlen(ptr1)+1]; strcpy(str1,ptr1);//對記憶體空間賦值 str2=new char[strlen(ptr2)+1]; strcpy(str2,ptr2); str=new char[strlen(ptr1)+strlen(ptr2)+1]; strcpy(str,ptr1);strcat(str,ptr2); } void String::dele( ){ char*ptr1=str,*ptr2=str; while(*ptr1){ if(*ptr1!=' ')*ptr2++=*ptr1; ptr1++; } *ptr2='\0'; } void String::sort( ){ char*ptr1=str,*ptr2,temp; //注14 ptr1 和ptr2保證成員指標不移動 while(*ptr1) { for(ptr2=ptr1;*ptr2;ptr2++) if(*ptr1>*ptr2){ temp=*ptr1;*ptr1=*ptr2;*ptr2=temp; } ptr1++; } } void String::show( ){ cout<<"str1="<<str1<<endl; cout<<"str2="<<str2<<endl; cout<<"str="<<str<<endl; } void main( ){ String str("da b","4 1"); str.show(); str.dele(); str.sort(); str.show(); }
五、心得感受
可以在評論處寫下思考和程式設計此題的感受