C 上機實驗報告 實驗四-2023修改整理_第1頁
C 上機實驗報告 實驗四-2023修改整理_第2頁
C 上機實驗報告 實驗四-2023修改整理_第3頁
C 上機實驗報告 實驗四-2023修改整理_第4頁
C 上機實驗報告 實驗四-2023修改整理_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

千里之行,始于足下讓知識帶有溫度。第第2頁/共2頁精品文檔推薦C上機實驗報告實驗四試驗四數(shù)組、指針與字符串

1.試驗目的

1.學習使用數(shù)組

2.學習字符串數(shù)據(jù)的組織和處理

3.學習標準C++庫的使用

4.把握指針的使用辦法

5.練習通過Debug觀看指針的內容及其所指的對象的內容

6.聯(lián)系通過動態(tài)內存分配實現(xiàn)動態(tài)數(shù)組,并體味指針在其中的作用

7.分離使用字符數(shù)組和標準C++庫練習處理字符串的辦法

2.試驗要求

1.編寫并測試3*3矩陣轉置函數(shù),使用數(shù)組保存3*3矩陣。

2.使用動態(tài)內存分配生成動態(tài)數(shù)組來重新完成上題,使用指針實現(xiàn)函數(shù)的功能。

3.編程實現(xiàn)兩字符串的銜接。要求使用字符數(shù)組保存字符串,不要使用系統(tǒng)函數(shù)。

4.使用string類定義字符串對象,重新實現(xiàn)上一小題。

5.定義一個Employee類,其中包括姓名、街道地址、城市和郵編等屬性,以及change_name()和display()等函數(shù)。Display()顯示姓名、街道地址、城市和郵編等屬性,change_name()轉變對象的姓名屬性。實現(xiàn)并測試這個類。

6.定義包含5個元素的對象數(shù)組,每個元素都是Employee類型的對象。

7.(選做)修改試驗4中的選做試驗中的people(人員)類。具有的屬性如下:姓名charname[11]、編號charnumber[7]、性別charsex[3]、生日birthday、身份證號charid[16]。其中“誕生日期”定義為一個“日期”類內嵌對象。用成員函數(shù)實現(xiàn)對人員信息的錄入和顯示。要求包括:構造函數(shù)和析構函數(shù)、拷貝構造函數(shù)、內聯(lián)成員函數(shù)、聚攏。在測試程序中定義people類的對象數(shù)組,錄入數(shù)據(jù)并顯示。

3.試驗內容及試驗步驟

1.編寫矩陣轉置函數(shù),輸入?yún)?shù)為3*3整形數(shù)組,使用循環(huán)語句實現(xiàn)矩陣元素的行列對調,注重在循環(huán)語句中畢竟需要對哪些元素舉行操作,編寫main()函數(shù)實現(xiàn)輸入、輸出。程序名:lab6_1.cpp。

2.改寫矩陣轉置函數(shù),參數(shù)為整型指針,使用指針對數(shù)組元素舉行操作,在main()函數(shù)中使用new操作符分配內存生成動態(tài)數(shù)組。通過Debug觀看指針的內容及其所指的對象中的內容。程序名:lab6_2.cpp。

3.編程實現(xiàn)兩字符串的銜接。定義字符數(shù)組保存字符串,在程序中提醒用戶輸入兩個字符串,實現(xiàn)兩個字符串的銜接,最后用cout語句顯示輸出。程序名:lab6_3.cpp。用cin實現(xiàn)輸入,注重,字符串的結束標志是ASCII碼0,使用循環(huán)語句舉行字符串間的字符拷貝。

4.使用string類定義字符串對象,編程實現(xiàn)兩字符串的銜接。在string類中已重載了運算符“+=”實現(xiàn)字符串的銜接,可以使用這個功能。程序名:lab6_4.cpp。

5.在employee.h文件中定義Employee類。Employee類具有姓名、街道地址、城市和郵編等私有數(shù)據(jù)成員,在成員函數(shù)中,構造函數(shù)用來初始化全部數(shù)據(jù)成員;display()中使用cout顯示姓名、街道地址、城市和郵編等屬性,change_name()轉變類中表示姓名屬性的數(shù)據(jù)成員。在主程序中定義這個類的對象并對其舉行操作。程序名:lab6_5.cpp。

6.使用上一小題中定義的Employee類定義對象數(shù)組emp[5],使用循環(huán)語句把數(shù)據(jù)顯示出來。程序名:lab6_6.cpp。

4.思量題

1.如何存儲和處理字符串?

(1)可以利用字符數(shù)組存儲和處理字符串;

(2)利用系統(tǒng)提供的string類存儲和處理字符串。

2.頭文件和頭文件有何區(qū)分?

包含頭文件后,可以使用系統(tǒng)的字符串處理函數(shù),如strcat(銜接).strcpy(復制).strcmp(比較).strlen(求長度).strlwr(轉換為小寫).strupr(轉換為大寫)等等;而包含頭文件后,則可以定義string類,并且使用系統(tǒng)提供的string類操作符對string類型的對象舉行處理。

3.有幾種辦法來表示和處理數(shù)組元素?

(1)數(shù)組下標辦法,如a[i]

(2)指針的辦法,如int*p=

inta[3][3];

voidshowTrans()

{

inti,j;

cout>a[i][j];

}

}

}

intmain()

{

input();

showTrans();

return0;

}

2.lab6_2.cpp

#includeusingnamespacestd;

int*p[9];

voidshowTrans()

{

inti,j;

cout>n;

p[i]=newint(n);

}

}

intmain()

{

input();

showTrans();

inti;

for(i=0;i

//不使用系統(tǒng)自帶函數(shù)strcpyusingnamespacestd;

chara[20]={"/0"},b[20]={"/0"},c[45]={"/0"};intmain()

{

inti,j,k;

cout

#include

usingnamespacestd;

chara[20]={"/0"},b[20]={"/0"};

intmain()

{

cout

#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>postcode;

}

voidEmployee::display()

{

cout

#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>postcode;

}

voidEmployee::display()

{

cout

#include

usingnamespacestd;

//Date類

classDate

{

private:

intyear;

intmonth;

intday;

public:

Date();

Date(inty,intm,intd);

Date(Date

~Date();

voidsetDate();

voidshowDate();

};

//People類,其中含Date類型的數(shù)據(jù)classPeople

{

private:

charname[11];

charnumber[7];

charsex[3];

Datebirthday;

charid[16];

public:

People();

People(char*n,char*nu,char*s,Dateb,char*i);

People(People

~People();

voidsetName();

voidsetNumber();

voidsetSex();

voidsetId();

voidshowPeople();

};

//Date構造函數(shù)

Date::Date(){}

Date::Date(inty,intm,intd)

{

year=y;

month=m;

day=d;

}

Date::Date(Date

month=p.month;

day=p.day;

}

//析構

inlineDate::~Date(){}

//Date成員函數(shù),設置誕生年代日voidDate::setDate()

{

inty,m,d;

cout>y;

cout>m;

cout>d;

year=y;

month=m;

day=d;

}

//Date內聯(lián)成員函數(shù),輸出年代日

inlinevoidDate::showDate()

{

cout<<"Birthdayis"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;

}

//People構造函數(shù)

People::People(){};

People::People(char*n,char*nu,char*s,Dateb,char*i)

{

strcpy(name,n);

strcpy(number,nu);

strcpy(sex,s);

birthday=b;

strcpy(id,i);

}

People::People(People

strcpy(number,p.number);

birthday=p.birthday;

strcpy(id,p.id);

}

//People析構

inlinePeople::~People(){}

//People成員函數(shù),設置各類數(shù)據(jù)

voidPeople::setName()

{

cout<<"Pleaseinputtheperson'sname:";

cin.getline(name,11,'\n');

}

voidPeople::setNumber()

{

cout<<"Inputnumber:";

cin.getline(number,7,'\n');

}

voidPeople::setSex()

{

cout<<"Inputsex:";

cin.getline(sex,3,'\n');

}

voidPeople::setId()

{

cout<<"Inputid:";

cin.getline(id,16,'\n');

}

//People內聯(lián)成員函數(shù),輸出人員信息

inlinevoidPeople::showPeople()

{

cout<<"Name:"<<name<<endl;

cout<<"Number:"<<number<<endl;

cout<<"Sex:"<<sex<<endl;

cout<<"ID:"<<id<<endl;

}

intmain()

{

inti;

charspaceA;

//生成3個Date類型的對象

Datedate[3]={Date(0,0,0),Date(0,0,0),Date(0,0,0)};

//生成3個People類型的對象

Peopleperson[3]={People("0","0","0",date[0],"0"),People("0","0","0",date[1],"0"),People("0","0","0",date[2],"0")};

//設置這3個對象的各

溫馨提示

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

評論

0/150

提交評論