C--語言程序設(shè)計實驗答案-數(shù)組、指針與字符串解析(共15頁)_第1頁
C--語言程序設(shè)計實驗答案-數(shù)組、指針與字符串解析(共15頁)_第2頁
C--語言程序設(shè)計實驗答案-數(shù)組、指針與字符串解析(共15頁)_第3頁
C--語言程序設(shè)計實驗答案-數(shù)組、指針與字符串解析(共15頁)_第4頁
C--語言程序設(shè)計實驗答案-數(shù)組、指針與字符串解析(共15頁)_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

4、6_1.cpp#include <iostream>using namespace std;void move(int matrix3)int temp;for(int i=0;i<3;i+)for(int j=0;j<i;j+)temp=matrixij;matrixij=matrixji;matrixji=temp;void main()int i,j,mat33;cout<<"輸入3×3矩陣"<<endl;for(i=0;i<3;i+)cout<<"第"<<i+

5、1<<"行:"for(j=0;j<3;j+) cin>>matij;cout<<"n輸入的3×3矩陣為:"<<endl;for(i=0;i<3;i+)for(j=0;j<3;j+)cout<<matij<<" "cout<<endl;move(mat);cout<<"轉(zhuǎn)置后的矩陣為:"<<endl;for(i=0;i<3;i+)for(j=0;j<3;j+)cout&l

6、t;<*(*(mat+i)+j)<<" "/指針形式cout<<endl;2.(編程,習(xí)題6-26)編寫n×n階矩陣轉(zhuǎn)置函數(shù),參數(shù)為整型指針。使用指針對數(shù)組元素進行操作,在main()函數(shù)中使用new操作符分配內(nèi)存生成動態(tài)數(shù)組。通過調(diào)試功能觀察指針的內(nèi)容及其所指的對象中的內(nèi)容。程序名:lab6_2.cpp。注:可使用一維動態(tài)數(shù)組,或二維動態(tài)數(shù)組。 程序及運行結(jié)果:(1) 使用一維動態(tài)數(shù)組表示方陣。/lab6_2.cpp#include <iostream>#include <iomanip>using name

7、space std;void move(int *matrix,int n)/矩陣為整型指針,對應(yīng)一維數(shù)組int temp;for(int i=0;i<n;i+)for(int j=0;j<i;j+)temp=matrixi*n+j;matrixi*n+j=matrixj*n+i;matrixj*n+i=temp;void main()int i,j,n,*mat;cout<<"輸入方陣的階數(shù):"cin>>n;mat=new intn*n;cout<<"輸入"<<n<<"&

8、#215;"<<n<<"矩陣"<<endl;for(i=0;i<n;i+)cout<<"第"<<i+1<<"行:"for(j=0;j<n;j+) cin>>mati*n+j;/數(shù)組形式cout<<"n輸入的矩陣為:"<<endl;for(i=0;i<n;i+)for(j=0;j<n;j+)cout<<setw(4)<<mati*n+j;cout<

9、<endl;move(mat,n);cout<<"轉(zhuǎn)置后的矩陣為:"<<endl;for(i=0;i<n;i+)for(j=0;j<n;j+)cout<<setw(4)<<*(mat+i*n+j);/指針形式cout<<endl;delete mat;(2) 使用二維動態(tài)數(shù)組表示方陣。(參考實驗提示)/lab6_2.cpp#include <iostream>#include <iomanip>using namespace std;void move(int *matri

10、x,int n)/矩陣為指向整型指針的指針,對應(yīng)二維數(shù)組int temp;for(int i=0;i<n;i+)for(int j=0;j<i;j+)temp=matrixij;matrixij=matrixji;matrixji=temp;void main()int i,j,n,*mat;cout<<"輸入方陣的階數(shù):"cin>>n;mat=new int*n;for(i=0;i<n;i+) mati=new intn;cout<<"輸入"<<n<<"×

11、"<<n<<"矩陣"<<endl;for(i=0;i<n;i+)cout<<"第"<<i+1<<"行:"for(j=0;j<n;j+) cin>>matij;/數(shù)組形式cout<<"n輸入的矩陣為:"<<endl;for(i=0;i<n;i+)for(j=0;j<n;j+)cout<<setw(4)<<matij;cout<<endl;mo

12、ve(mat,n);cout<<"轉(zhuǎn)置后的矩陣為:"<<endl;for(i=0;i<n;i+)for(j=0;j<n;j+)cout<<setw(4)<<*(*(mat+i)+j);/指針形式cout<<endl;delete mat;3.(編程)實現(xiàn)兩字符串的連接。聲明字符數(shù)組保存字符串,在程序中提示用戶輸入兩個字符串,實現(xiàn)兩個字符串的連接,最后用cout語句顯示輸出。程序名:lab6_3.cpp。用cin實現(xiàn)輸入,注意,字符串的結(jié)束標志是ASCII碼0,使用循環(huán)語句進行字符串間的字符拷貝。/ 字符

13、串的結(jié)束標志'0'參考運行結(jié)果: 程序及運行結(jié)果:/lab6_3.cpp#include <iostream>using namespace std;void strLL(char *a,char *b,char *c);void main()int i;char a10,b10,c20;cout<<"輸入一個字符串a(chǎn):" cin>>a;cout<<"顯示內(nèi)存中的字符串a(chǎn):" for(i=0;i<10;i+)if(ai) cout<<ai; /ai不為0elsecout&l

14、t;<"'0'"/轉(zhuǎn)義break;cout<<endl;cout<<"n輸入另一個字符串b:" cin>>b;cout<<"顯示內(nèi)存中的字符串b:" cout<<b<<"'0'"<<endl;strLL(a,b,c);cout<<"n顯示內(nèi)存中的連接字符串c:" for(i=0;i<20;i+)if(ci)cout<<ci;else cout&l

15、t;<"'0'" break; cout<<endl;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類聲明字符串對象,實現(xiàn)兩字符串的連接。在string類中已重載了運算符“+=”實現(xiàn)字符串的連接,可以使用這個功能。程序名:lab6_4.cpp。 程序及運行結(jié)果:/lab6_4.cpp#include <string>/使用C+中的string#i

16、nclude <iostream>using namespace std;void main()string s1,s2;cout<<"輸入字符串s1:"cin>>s1;cout<<"輸入字符串s2:"cin>>s2;s1+=s2;cout<<"s1+s2 = "<<s1<<endl;5.(編程,習(xí)題6-27)聲明Employee類并應(yīng)用。在employee.h文件中聲明Employee類。Employee類具有姓名、街道地址、城市和郵編等

17、私有數(shù)據(jù)成員,都可以用字符數(shù)組來表示。成員函數(shù):構(gòu)造函數(shù) 用來初始化所有成員數(shù)組,對字符數(shù)組的賦值可以使用字符串拷貝函數(shù)strcpy(char *, char *name);display() 使用cout顯示姓名、街道地址、城市和郵編等屬性;change_name() 改變類中表示姓名屬性的字符數(shù)組類型的數(shù)據(jù)成員。在主程序中聲明這個類的對象并對其進行操作。程序名:lab6_5.cpp。參考運行結(jié)果: 程序及運行結(jié)果:/lab6_5employee.h#include <cstring>/使用C中的string#include <iostream>using names

18、pace std;class Employeeprivate:char name10,street20,city10,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(name,n); strcpy(street,s);strcpy(city,c); strcpy(mail,m);void Employee:displ

19、ay()cout<<"姓名:"<<name<<endl;cout<<"街道:"<<street<<endl;cout<<"城市:"<<city<<endl;cout<<"郵編:"<<mail<<endl;void Employee:change_name(char *n) strcpy(name,n); /lab6_5.cpp#include "lab6_5emp

20、loyee.h"void main()Employee emp("張山","海甸三西路13號","??谑?quot;,"");emp.display();emp.change_name("李世");cout<<endl;emp.display();6.(編程,習(xí)題6-27)使用上一小題中的Employee類聲明對象數(shù)組emp5。使用循環(huán)語句把數(shù)據(jù)顯示出來。程序名:lab6_6.cpp。參考運行結(jié)果: 程序及運行結(jié)果:/lab6_6.cpp#include "lab6_5em

21、ployee.h"#include <iostream>using namespace std;void main()Employee emp5= Employee("n1","s1","c1","m1"),Employee("n2","s2","c2","m2"),Employee("n3","s3","c3","m3"),Emplo

22、yee("n4","s4","c4","m4"),Employee("n5","s5","c5","m5") ;for(int i=0;i<5;i+)empi.display();cout<<endl;7.(編程)修改實驗4中的people(人員)類。程序名:lab6_7.cpp。參考運行結(jié)果: 程序及運行結(jié)果:(1) lab6_7.h:People(人員)類的聲明及成員函數(shù)的實現(xiàn)/lab6_7.h#include &

23、lt;iostream>#include <cstring>using namespace std;class 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 Setd

24、d(int d) dd=d; ;class Peopleprivate:char name11;/姓名,增添char number7;/編號,改為數(shù)組char sex3;/男或女,改為數(shù)組Date birthday;/出生日期char id16;/身份證號,改為數(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

25、Getbirthyy()const return birthday.Getyy(); int Getbirthmm()const return birthday.Getmm(); int Getbirthdd()const 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 Setbirt

26、hyy(int y) birthday.Setyy(y); void Setbirthmm(int m) birthday.Setmm(m); void Setbirthdd(int d) birthday.Setdd(d); void Setid(char d) strcpy(id,d); void input();void output();People:People(People &p):birthday(p.birthday)strcpy(name,);strcpy(number,p.number);strcpy(sex,p.sex);strcpy(id,p.id)

27、;inline void People:input()cout<<"姓名:"cin>>name;cout<<"編號:"cin>>number;cout<<"性別(男/女):"cin>>sex;cout<<"出生日期(年 月 日):"int y,m,d; cin>>y>>m>>d;Setbirthyy(y); Setbirthmm(m); Setbirthdd(d);cout<<&quo

28、t;身份證號:"cin>>id;inline void People:output()cout<<"姓名:"<<name<<"n編號:"<<number<<endl;cout<<"性別:"<<sex<<endl;cout<<"出生日期:"<<Getbirthyy()<<"年"<<Getbirthmm()<<"月"<<Getbirthdd()<<"日"<<endl;cout<<"身份證號:"<<id<<endl;(2) lab6_7.cpp:主函數(shù)(輸入、輸出和拷貝構(gòu)造函數(shù)測試)/lab6_7.cpp#include "lab6_7.h"void main()People p;p.inpu

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論