![C++上機實驗報告實驗四_第1頁](http://file4.renrendoc.com/view/97db8691eb34ae6d0beae5f15d067311/97db8691eb34ae6d0beae5f15d0673111.gif)
![C++上機實驗報告實驗四_第2頁](http://file4.renrendoc.com/view/97db8691eb34ae6d0beae5f15d067311/97db8691eb34ae6d0beae5f15d0673112.gif)
![C++上機實驗報告實驗四_第3頁](http://file4.renrendoc.com/view/97db8691eb34ae6d0beae5f15d067311/97db8691eb34ae6d0beae5f15d0673113.gif)
![C++上機實驗報告實驗四_第4頁](http://file4.renrendoc.com/view/97db8691eb34ae6d0beae5f15d067311/97db8691eb34ae6d0beae5f15d0673114.gif)
![C++上機實驗報告實驗四_第5頁](http://file4.renrendoc.com/view/97db8691eb34ae6d0beae5f15d067311/97db8691eb34ae6d0beae5f15d0673115.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
-.z.實驗四數組、指針與字符串實驗目的1.學習使用數組2.學習字符串數據的組織和處理3.學習標準C++庫的使用4.掌握指針的使用方法5.練習通過Debug觀察指針的容及其所指的對象的容6.聯系通過動態(tài)存分配實現動態(tài)數組,并體會指針在其中的作用7.分別使用字符數組和標準C++庫練習處理字符串的方法實驗要求1.編寫并測試3*3矩陣轉置函數,使用數組保存3*3矩陣。2.使用動態(tài)存分配生成動態(tài)數組來重新完成上題,使用指針實現函數的功能。3.編程實現兩字符串的連接。要求使用字符數組保存字符串,不要使用系統(tǒng)函數。4.使用string類定義字符串對象,重新實現上一小題。5.定義一個Employee類,其中包括、街道地址、城市和等屬性,以及change_name()和display()等函數。Display()顯示、街道地址、城市和等屬性,change_name()改變對象的屬性。實現并測試這個類。6.定義包含5個元素的對象數組,每個元素都是Employee類型的對象。7.〔選做〕修改實驗4中的選做實驗中的people〔人員〕類。具有的屬性如下:charname[11]、編號charnumber[7]、性別charse*[3]、生日birthday、號charid[16]。其中“出生日期〞定義為一個“日期〞類嵌對象。用成員函數實現對人員信息的錄入和顯示。要求包括:構造函數和析構函數、拷貝構造函數、聯成員函數、聚集。在測試程序中定義people類的對象數組,錄入數據并顯示。實驗容及實驗步驟1.編寫矩陣轉置函數,輸入參數為3*3整形數組,使用循環(huán)語句實現矩陣元素的行列對調,注意在循環(huán)語句中終究需要對哪些元素進展操作,編寫main〔〕函數實現輸入、輸出。程序名:lab6_1.cpp。2.改寫矩陣轉置函數,參數為整型指針,使用指針對數組元素進展操作,在main〔〕函數中使用new操作符分配存生成動態(tài)數組。通過Debug觀察指針的容及其所指的對象中的容。程序名:lab6_2.cpp。3.編程實現兩字符串的連接。定義字符數組保存字符串,在程序中提示用戶輸入兩個字符串,實現兩個字符串的連接,最后用cout語句顯示輸出。程序名:lab6_3.cpp。用cin實現輸入,注意,字符串的完畢標志是ASCII碼0,使用循環(huán)語句進展字符串間的字符拷貝。4.使用string類定義字符串對象,編程實現兩字符串的連接。在string類中已重載了運算符“+=〞實現字符串的連接,可以使用這個功能。程序名:lab6_4.cpp。5.在employee.h文件中定義Employee類。Employee類具有、街道地址、城市和等私有數據成員,在成員函數中,構造函數用來初始化所有數據成員;display()中使用cout顯示、街道地址、城市和等屬性,change_name()改變類中表示屬性的數據成員。在主程序中定義這個類的對象并對其進展操作。程序名:lab6_5.cpp。6.使用上一小題中定義的Employee類定義對象數組emp[5],使用循環(huán)語句把數據顯示出來。程序名:lab6_6.cpp。4.思考題1.如何存儲和處理字符串?〔1〕可以利用字符數組存儲和處理字符串;〔2〕利用系統(tǒng)提供的string類存儲和處理字符串。2.頭文件<string.h>和頭文件<string>有何區(qū)別?包含頭文件<string.h>后,可以使用系統(tǒng)的字符串處理函數,如strcat〔連接〕.strcpy〔復制〕.strcmp〔比擬〕.strlen〔求長度〕.strlwr〔轉換為小寫〕.strupr〔轉換為大寫〕等等;而包含頭文件<string>后,則可以定義string類,并且使用系統(tǒng)提供的string類操作符對string類型的對象進展處理。3.有幾種方法來表示和處理數組元素?〔1〕數組下標方法,如a[i]〔2〕指針的方法,如int*p=&a[0]5.源程序*include<iostream>usingnamespacestd;inta[3][3];voidshowTrans(){inti,j;cout<<"Thetranspositionmatri*is:"<<endl;for(j=0;j<3;j++){for(i=0;i<3;i++){cout<<a[i][j];cout<<"";}cout<<endl;}}voidinput(){inti,j;cout<<"Pleaseinputyour3*3matri*:"<<endl;for(i=0;i<3;i++){for(j=0;j<3;j++){cin>>a[i][j];}}}intmain(){input();showTrans();return0;}*include<iostream>usingnamespacestd;int*p[9];voidshowTrans(){inti,j;cout<<"Thetranspositionmatri*is:"<<endl;for(i=0;i<3;i++){for(j=i;j<9;j=j+3){cout<<*p[j];cout<<"";}cout<<endl;}}voidinput(){inti,n;cout<<"Pleaseinputyour3*3matri*:"<<endl;for(i=0;i<9;i++){cin>>n;p[i]=newint(n);}}intmain(){input();showTrans();inti;for(i=0;i<9;i++){deletep[i];}return0;}*include<iostream>//不使用系統(tǒng)自帶函數strcpyusingnamespacestd;chara[20]={"/0"},b[20]={"/0"},c[45]={"/0"};intmain(){inti,j,k;cout<<"Inputthefirststring:"<<endl;cin.getline(a,20,'\n');cout<<"Inputthesecondstring:"<<endl;cin.getline(b,20,'\n');intm=0,n=0;//將數組a中的字符串拷貝到數組c中for(k=0;k<45,a[m]!='\0';k++,m++){c[k]=a[m];}//將數組b中的字符串接著a,拷貝到數組c中for(;k<45,b[n]!='\0';k++,n++){c[k]=b[n];}cout<<c;return0;}lab6_4.cpp*include<iostream>*include<cstring>usingnamespacestd;chara[20]={"/0"},b[20]={"/0"};intmain(){cout<<"Inputthefirststring:"<<endl;cin.getline(a,20,'\n');cout<<"Inputthesecondstring:"<<endl;cin.getline(b,20,'\n');strings1=a;strings2=b;strings3=s1+s2;cout<<s3;return0;}Employee.h*ifndefEmployee_H_INCLUDED*defineEmployee_H_INCLUDEDclassEmployee{private:charname[15];charaddress[25];charcity[10];intpostcode;public:Employee();Employee(charn,chara,charc,intp);~Employee();voidchange_name();voidchange_address();voidchange_city();voidchange_postcode();voiddisplay();};*endif//Employee_H_INCLUDEDEmployee.cpp*include<iostream>*include"Employee.h"usingnamespacestd;Employee::Employee(){}Employee::Employee(charn,chara,charc,intp){name[0]=n;name[1]='\0';address[0]=a;address[1]='\0';city[0]=c;city[1]='\0';postcode=p;}Employee::~Employee(){}voidEmployee::change_name(){cout<<"Pleaseinputyourchangedname:"<<endl;cin.getline(name,15,'\n');}voidEmployee::change_address(){cout<<"Pleaseinputyourchangedaddress:"<<endl;cin.getline(address,25,'\n');}voidEmployee::change_city(){cout<<"Pleaseinputyourchangedcity:"<<endl;cin.getline(city,10,'\n');}voidEmployee::change_postcode(){cout<<"Pleaseinputyourchangedpostcode:"<<endl;cin>>postcode;}voidEmployee::display(){cout<<"Yourinformationshowsasfollow:"<<endl;cout<<"name:"<<name<<endl;cout<<"address:"<<address<<endl;cout<<"city:"<<city<<endl;cout<<"postcode:"<<postcode<<endl;}intmain(){Employeeperson(1,1,1,1);person.display();person.change_name();person.change_address();person.change_city();person.change_postcode();person.display();return0;}*ifndefEmployee_H_INCLUDED*defineEmployee_H_INCLUDEDclassEmployee{private:charname[15];charaddress[25];charcity[10];intpostcode;public:Employee();Employee(charn,chara,charc,intp);~Employee();voidchange_name();voidchange_address();voidchange_city();voidchange_postcode();voiddisplay();};*endif//Employee_H_INCLUDEDEmployee.cpp*include<iostream>*include"Employee.h"usingnamespacestd;Employee::Employee(){}Employee::Employee(charn,chara,charc,intp){name[0]=n;name[1]='\0';address[0]=a;address[1]='\0';city[0]=c;city[1]='\0';postcode=p;}Employee::~Employee(){}voidEmployee::change_name(){cout<<"Pleaseinputyourchangedname:"<<endl;cin.getline(name,15,'\n');}voidEmployee::change_address(){cout<<"Pleaseinputyourchangedaddress:"<<endl;cin.getline(address,25,'\n');}voidEmployee::change_city(){cout<<"Pleaseinputyourchangedcity:"<<endl;cin.getline(city,10,'\n');}voidEmployee::change_postcode(){cout<<"Pleaseinputyourchangedpostcode:"<<endl;cin>>postcode;}voidEmployee::display(){cout<<"Yourinformationshowsasfollow:"<<endl;cout<<"name:"<<name<<endl;cout<<"address:"<<address<<endl;cout<<"city:"<<city<<endl;cout<<"postcode:"<<postcode<<endl;}intmain(){Employeeemp[5]={Employee(1,1,1,1),Employee(2,2,2,2),Employee(3,3,3,3),Employee(4,4,4,4),Employee(5,5,5,5)};inti;for(i=0;i<5;i++){emp[i].display();emp[i].change_name();emp[i].change_address();emp[i].change_city();emp[i].change_postcode();cin.get();}for(i=0;i<5;i++){cout<<"Theemp"<<i<<"";emp[i].display();}return0;}7.*include<iostream>*include<cstring>usingnamespacestd;//Date類classDate{private: intyear; intmonth; intday;public: Date(); Date(inty,intm,intd); Date(Date&p); ~Date(); voidsetDate(); voidshowDate();};//People類,其中含Date類型的數據classPeople{private: charname[11]; charnumber[7]; charse*[3]; Datebirthday; charid[16];public: People(); People(char*n,char*nu,char*s,Dateb,char*i); People(People&p); ~People(); voidsetName(); voidsetNumber(); voidsetSe*(); voidsetId(); voidshowPeople();};//Date構造函數Date::Date(){}Date::Date(inty,intm,intd) { year=y; month=m; day=d; }Date::Date(Date&p){ year=p.year; month=p.month; day=p.day;}//析構inlineDate::~Date(){}//Date成員函數,設置出生年月日voidDate::setDate() { inty,m,d; cout<<"Inputtheyear:"; cin>>y; cout<<"Inputthemonth:"; cin>>m; cout<<"Inputtheday:"; cin>>d; year=y; month=m; day=d; }//Date聯成員函數,輸出年月日inlinevoidDate::showDate() { cout<<"Birthdayis"<<year<<"年"<<month<<"月"<<day<<"日"<<endl; }//People構造函數People::People(){};People::People(char*n,char*nu,char*s,Dateb,char*i){strcpy(name,n); strcpy(number,nu); strcpy(se*,s); birthday=b; strcpy(id,i);}People::People(People&p){ strcpy(name,); strcpy(number,p.number); birthday=p.birthday; strcpy(id,p.id);}//People析構inlinePeople::~People(){}//People成員函數,設置各類數據voidPeople::setName(){ cout<<"Pleaseinputtheperson'sname:"; cin.getline(name,11,'\n');}voidPeople::setNumber(){ cout<<"Inputnumber:"; cin.getline(number,7,'\n');}voidPeople::setSe*(){cout<<"Inputse*:"; cin.getlin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冀中職業(yè)學院《新中國特色社會主義理論與實踐研究》2023-2024學年第二學期期末試卷
- 菏澤職業(yè)學院《醫(yī)學生物信息學》2023-2024學年第二學期期末試卷
- 廣東海洋大學《工藝技能訓練》2023-2024學年第二學期期末試卷
- 對外經濟貿易大學《生物信息學基礎》2023-2024學年第二學期期末試卷
- 蘇州幼兒師范高等專科學?!兜叵虏傻V學》2023-2024學年第二學期期末試卷
- 人形機器人分類與應用領域
- 統(tǒng)編版語文六年級下冊第一單元任務群整體公開課一等獎創(chuàng)新教學設計
- 云南中醫(yī)藥大學《電力電子與電機系統(tǒng)集成》2023-2024學年第二學期期末試卷
- 2025年PTFE再生料合作協議書
- 2024年02月安徽2024安徽天長民生村鎮(zhèn)銀行招考筆試歷年參考題庫附帶答案詳解
- 2025屆高考語文一輪復習知識清單:古代詩歌鑒賞
- 醫(yī)療器材申請物價流程
- 我的消防文員職業(yè)規(guī)劃
- 人教PEP版2025年春季小學英語三年級下冊教學計劃
- 2025年公司品質部部門工作計劃
- 2024年世界職業(yè)院校技能大賽高職組“市政管線(道)數字化施工組”賽項考試題庫
- 華為研發(fā)部門績效考核制度及方案
- CSC資助出國博士聯合培養(yǎng)研修計劃英文-research-plan
- 《環(huán)境管理學》教案
- 2025年蛇年年度營銷日歷營銷建議【2025營銷日歷】
- (一模)寧波市2024學年第一學期高考模擬考試 數學試卷(含答案)
評論
0/150
提交評論