C語言程序設(shè)計(jì)實(shí)驗(yàn)答案_數(shù)組、指針與字符串解析_第1頁
C語言程序設(shè)計(jì)實(shí)驗(yàn)答案_數(shù)組、指針與字符串解析_第2頁
C語言程序設(shè)計(jì)實(shí)驗(yàn)答案_數(shù)組、指針與字符串解析_第3頁
C語言程序設(shè)計(jì)實(shí)驗(yàn)答案_數(shù)組、指針與字符串解析_第4頁
C語言程序設(shè)計(jì)實(shí)驗(yàn)答案_數(shù)組、指針與字符串解析_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)06數(shù)組、指針與字符串(4學(xué)時(shí))(第6章 數(shù)組、指針與字符串)一、實(shí)驗(yàn)?zāi)康?1) 學(xué)習(xí)使用數(shù)組數(shù)據(jù)對(duì)象。(2) 學(xué)習(xí)字符串?dāng)?shù)據(jù)的組織和處理。 學(xué)習(xí)標(biāo)準(zhǔn)C+庫的使用。(4) 掌握指針的使用方法。(5) 練習(xí)通過調(diào)試功能觀察指針的內(nèi)容及其所指的對(duì)象的內(nèi)容。(6) 練習(xí)通過動(dòng)態(tài)內(nèi)存分配實(shí)現(xiàn)動(dòng)態(tài)數(shù)組,并體會(huì)指針在其中的作用。(7) 分別使用字符數(shù)組和標(biāo)準(zhǔn) C+庫練習(xí)處理字符串的方法。二、實(shí)驗(yàn)任務(wù)6_1 (習(xí)題6-25)編寫并測試3X3矩陣轉(zhuǎn)置函數(shù),使用數(shù)組保存 3X3矩陣。6_2 (習(xí)題6-26)使用動(dòng)態(tài)內(nèi)存分配生成動(dòng)態(tài)數(shù)組來重新完成上題(n階方 陣),使用指針實(shí)現(xiàn)函數(shù)的功能。6_3編程實(shí)現(xiàn)兩字符

2、串的連接。要求使用字符數(shù)組保存字符串,不要使用系 統(tǒng)函數(shù)。1 C:VlND0fSsysteM32cBd. exe6_4 使用 string 類聲明字符串對(duì)象,重新實(shí)現(xiàn)上一小題。6_5 (習(xí)題 6-27)聲明一個(gè) Employee類。其中包括姓名、街道地址、城市和郵編等屬性, 以及change_name()和display。等函數(shù)。 display。顯示姓名、街道地址、城市和郵編等屬性,change_name()改變對(duì)象的姓名屬性,實(shí)現(xiàn)并測試這個(gè)類。6_6(習(xí)題 6-27)聲明包含 5 個(gè)元素的對(duì)象數(shù)組,每個(gè)元素都是 Employee 類型的對(duì)象。6_7修改實(shí)驗(yàn)4中的people (人員)類。具

3、有的屬性如下:姓名 char name11、編號(hào)char number7、性別char sex3、生日 birthday 、身份證號(hào) char i d 1 6 。其中“出生日期”聲明為一個(gè)“日期”類內(nèi)嵌子對(duì)象。用成員函數(shù)實(shí)現(xiàn)對(duì)人員信息的錄入和顯示。 要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、內(nèi)聯(lián)成員函數(shù)、聚集。在測試程序中聲明 people類的對(duì)象數(shù)組,錄入數(shù)據(jù)并顯示。三、實(shí)驗(yàn)步驟1. (編程,習(xí)題6-25)編寫矩陣轉(zhuǎn)置函數(shù),輸入?yún)?shù)為 3X3整型數(shù)組。使用循環(huán)語句實(shí)現(xiàn)矩陣元素的行列對(duì)調(diào), 注意在循環(huán)語句中究竟需要對(duì)哪些元素進(jìn)行操作,編寫 main()函數(shù)實(shí)現(xiàn)輸入輸出。程序名:Iab6_1.

4、cpp。參考運(yùn)行結(jié)果:3陣3 屯23 17 12 36 95 o4 77 nn入的3 X?矩陣為:丑寳:逬H姿験鶴縊總滾程序及運(yùn)行結(jié)果:lab6_1.cpp#in elude using namespace std;void move( int matrix3)int temp;for(int i=0;i3;i+)for (i nt j=0;ji;j+)temp=matrixij; matrixij=matrixji; matrixji=temp;void mai n()int i,j,mat33;cout 輸入 3 X3 矩陣endl;for(i=0;i3;i+)cout 第i+1行:;fo

5、r (j=0;j matij;cout n 輸入的 3 X3 矩陣為:endl;for(i=0;i3;i+)for(j=0;j3;j+) coutmatij ;coute ndl;move(mat);cout 轉(zhuǎn)置后的矩陣為:endl; for(i=0;i3;i+)for(j=0;j3;j+)cout*(*(mat+i)+j)”; 指針形式coute ndl;2. (編程,習(xí)題6-26)編寫nxn階矩陣轉(zhuǎn)置函數(shù),參數(shù)為整型指針使用指針對(duì)數(shù)組元素進(jìn)行操作,在main()函數(shù)中使用new操作符分配內(nèi)存生成動(dòng)態(tài)數(shù)Iab6_2.cpp。組。通過調(diào)試功能觀察指針的內(nèi)容及其所指的對(duì)象中的內(nèi)容。程序名:注:

6、可使用一維動(dòng)態(tài)數(shù)組,或二維動(dòng)態(tài)數(shù)組。程序及運(yùn)行結(jié)果:(1)使用一維動(dòng)態(tài)數(shù)組表示方陣。lab6_2.cpp#in clude #i nclude using namespace std;void move( int *matrix, int n) /矩陣為整型指針,對(duì)應(yīng)一維數(shù)組int temp;for(i nt i=0;i n ;i+)for (i nt j=0;ji;j+)temp=matrixi* n+j;matrixi* n+j=matrixj* n+i;matrixj n+i=temp;void mai n()int i,j, n,*mat;cout 輸入方陣的階數(shù):;cinn;mat=

7、 new intn*n;cout 輸入n 乂* 矩陣endl;for(i=0;i n;i+)cout 第i+1行:;for (j=0;j n;j+)ci nmati* n+j;/ 數(shù)組形式cout n輸入的矩陣為:endl;for(i=0;i n;i+)for(j=0;j n;j+)coutsetw(4)mati* n+j; coute ndl;move(mat, n);cout 轉(zhuǎn)置后的矩陣為:endl;for(i=0;i n;i+)for(j=0;j n;j+)coutsetw(4)*(mat+i*n+j);/ 指針形式coute ndl;delete mat;1323334721址八牙I

8、牛L融入4X4矩陣12S232424112-131置后前去醉九11 2131412 22敗 413 2333 勺14 24陽彳寅 C: 11700|syKt32itbdlere343444(2)使用二維動(dòng)態(tài)數(shù)組表示方陣。(參考實(shí)驗(yàn)提示)3L 32 詬 3弓lab6_2.cpp#in elude #i nclude using namespace std;void move( int *matrix, int n) /矩陣為指向整型指針的指針,對(duì)應(yīng)二維數(shù)組int temp;for(i nt i=0;i n ;i+)for (i nt j=0;ji;j+)temp=matrixij;matrixi

9、j=matrixji; matrixji=temp;void mai n()int i,j, n, *mat;cout 輸入方陣的階數(shù):;cinn;mat= new int*n;for(i=0;in;i+) mati=new intn;cout 輸入n 乂* 矩陣endl;for(i=0;i n;i+)cout 第i+1行:;for (j=0;j n;j+)ci nmatij;/ 數(shù)組形式cout n輸入的矩陣為:endl;for(i=0;i n;i+)for(j=0;j n;j+)coutsetw(4)matij;coute ndl;move(mat, n);cout 轉(zhuǎn)置后的矩陣為:end

10、l; for(i=0;i n;i+)/指針形式for(j=0;j n;j+)coutsetw(4)*(*(mat+i)+j); coute ndl;delete mat;c:t C: TTWDOS ffysir3?rrad艮耳e-i Jx 1 i 陣4丄2 3 、丿、/丄2 J 44 4 44 12 32 3 3 3 取 1 2 S灌入的夕辭為:111213144t43冷置后的矩陣為1131441443. (編程)實(shí)現(xiàn)兩字符串的連接。聲明字符數(shù)組保存字符串, 在程序中提示用戶輸入兩個(gè)字符串,實(shí)現(xiàn)兩個(gè)字符串的連接,最后用cout語句顯示輸出。程序名:Iab6_3.cpp。用cin實(shí)現(xiàn)輸入,注意,

11、字符串的結(jié)束標(biāo)志是ASCII碼0,使用循環(huán)語句進(jìn)行字符串間的字符拷貝。字符串的結(jié)束標(biāo)志0參考運(yùn)行結(jié)果:程序及運(yùn)行結(jié)果:lab6_3.cpp#in elude using namespace std;void strLL( char *a, char *b, char *c);void mai n()int i;char a10,b10,c20;couta;cout 顯示內(nèi)存中的字符串a(chǎn):;for(i=0;i10;i+)if(ai) coutai;ai不為 0elsecout 0 ;/ 轉(zhuǎn)義break ;coute ndl;coutb;cout 顯示內(nèi)存中的字符串b:;coutb 0 endl;

12、strLL(a,b,c);cout n顯示內(nèi)存中的連接字符串c:for(i=0;i20;i+)if(ci) coutci;else cout 0 ; break ; coute ndl; void strLL( char *a, char *b, char *c)int i,j;for(i=0;ai;i+) ci=ai;/ 循環(huán)直到 ai為 0for(j=0;bj;i+,j+) ci=bj; ci=0;4. (編程)使用string類聲明字符串對(duì)象,實(shí)現(xiàn)兩字符串的連接在string類中已重載了運(yùn)算符“ += ”實(shí)現(xiàn)字符串的連接,可以使用這個(gè)功能。程序名:Iab6_4.cpp。程序及運(yùn)行結(jié)果:l

13、ab6_4.cpp#include / 使用 C+ 中的 string#in clude using namespace std;void mai n()stri ng s1,s2;cout s1;cout s2;s1+=s2;cout s1+s2 = s1endl;195.(編程,習(xí)題6-27)聲明Employee類并應(yīng)用在employee.h文件中聲明 Employee類。Employee類具有姓名、街道地址、城市和郵編等私有數(shù)據(jù)成員,都可以用字符數(shù)組來表示。成員函數(shù):構(gòu)造函數(shù)用來初始化所有成員數(shù)組,對(duì)字符數(shù)組的賦值可以使用字符串拷貝函數(shù)strcpy(char *, char *name)

14、;display。使用cout顯示姓名、街道地址、城市和郵編等屬性; change_name()改變類中表示姓名屬性的字符數(shù)組類型的數(shù)據(jù)成員。在主程序中聲明這個(gè)類的對(duì)象并對(duì)其進(jìn)行操作。程序名:lab6_5.cpp。參考運(yùn)行結(jié)果:殖山右蘭三西路前號(hào) 海口市570228衙道;海倒二西路13號(hào) ”“貢:??谑朽]:蝙:578226請(qǐng)按任意鍵繼續(xù)程序及運(yùn)行結(jié)果:/Iab6_5employee.h#include / 使用 C 中的 string#in elude using namespace std;class Employeeprivate :char name10,street20,city10,

15、mail7;/ 姓名、街道、城市、郵編public :Employee( char *n, char *s, char *c, char *m);void display。;void change_name( char *n);Employee:Employee( char *n, char *s, char *c, char *m)strcpy (n ame ,n); strcpy(street,s);strcpy(city,c); strcpy(mail,m);void Employee:display()cout 姓名:nameendl;cout 街道:streetendl;cout 城

16、市:cityendl;cout 郵編:mailendl;void Employee:cha nge n ame(char *n) strcpy( name, n); lab6_5.cpp#in clude lab6_5employee.hvoid mai n()Employee emp(張山,海甸三西路 13 號(hào),海口市,570228);emp.display();emp.change_name(李世);coute ndl;emp.display();口1冥1號(hào) + 13 二市陽繼 世甸口他槌 軸按 肆.Hc:, C: TlNI)OS syfitR32G(i. t?jre6.(編程,習(xí)題6-2

17、7)使用上一小題中的Employee類聲明對(duì)象數(shù)組emp5使用循環(huán)語句把數(shù)據(jù)顯示出來。程序名:Iab6_6.cpp。參考運(yùn)行結(jié)果:請(qǐng)按任意槌繼續(xù).程序及運(yùn)行結(jié)果:/Iab6_6.cpp#in elude Iab6_5employee.h#in elude using namespace std;void mai n()Employee emp5= Employee( n1 ,s1 ,c1 ,m1),Employee( n2,”s2 ,c2,m2),Employee( n3 ,s3 ,c3,m3),Employee( n4 ,s4 ,c4,m4),Employee( n5,”s5 ,c5,m5)

18、 ; for(int i=0;i5;i+)empi.display(); cout7.(編程)修改實(shí)驗(yàn)4中的people (人員)類程序名:Iab6_7.cpp。1_99日年3月汨199nO3H1993 3 3邑 Cz WlMDGVSXajsta32d. xe參考運(yùn)行結(jié)果:3al: s 張盹聶號(hào) :日證EJ:張山:0001性別F曷出生日鼠19弼年3月3日 身份證號(hào)t 19930303 畜按任意鍵繼續(xù) - 程序及運(yùn)行結(jié)果:Iab6_7.h : People (人員)類的聲明及成員函數(shù)的實(shí)現(xiàn) lab6_7.h#in elude #in elude using namespaee std;class

19、 Dateprivate :int yy,mm,dd;public :Date() /增添Date(Date &d): yy(d.yy),mm(d.mm),dd(d.dd)Date() int Getyy() const return yy; int Getmm() const return mm; int Getdd()const return dd; void Setyy( int y) yy=y; void Setmm( int m) mm=m; void Setdd( int d) dd=d; ;class Peopleprivate :char n ame11;/ 姓名,增添char

20、 number7;/編號(hào),改為數(shù)組char sex3;/男或女,改為數(shù)組Date birthday;/ 出生日期char id16;/身份證號(hào),改為數(shù)組public :People()People(People &p);People()void Getname( char na) strcpy(na,name); void Getnumber( char nu) strcpy(nu,number); void Getsex( char se)strcpy(se,sex); int Getbirthyy() con st retur n birthday.Getyy(); int Getbirt

21、hmm() con st return birthday.Getmm(); int Getbirthdd() con st return birthday.Getdd(); void Getid( char d) strcpy(d,id); void Setname( char na) strcpy(name,na); void Setnumber( char nu) strcpy(number,nu); void Setsex( char se)strcpy(sex,se); void Setbirthyy( int y) birthday.Setyy(y); void Setbirthmm

22、( int m) birthday.Setmm(m); void Setbirthdd( int d) birthday.Setdd(d); void Setid( char d) strcpy(id,d); void in put();void output();People:People(People &p):birthday(p.birthday)strcpy( name,p. name);strcpy(number ,p.number);strcpy(sex,p.sex); strcpy(id,p.id);inline void People:input()cout 姓名:;cinname;cout 編號(hào):;cinnumber;coutsex;cout md;Setbirthyy(y); Setbirthmm(m); Setbirthdd(d);coutid;inline void People:output()cout 姓名:name n 編號(hào):numberendl;cout 性別:sexendl;cout 出生日期:Getbirthyy()年”Getbirthmm() 月Getbirthdd() 日endl;cout 身份證號(hào):idendl;(2) Iab6_7.cpp :主函數(shù)(輸入、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論