數(shù)據(jù)結(jié)構(gòu)與算法結(jié)構(gòu)體_第1頁
數(shù)據(jù)結(jié)構(gòu)與算法結(jié)構(gòu)體_第2頁
數(shù)據(jù)結(jié)構(gòu)與算法結(jié)構(gòu)體_第3頁
數(shù)據(jù)結(jié)構(gòu)與算法結(jié)構(gòu)體_第4頁
數(shù)據(jù)結(jié)構(gòu)與算法結(jié)構(gòu)體_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)結(jié)構(gòu)與算法結(jié)構(gòu)體第一頁,共四十二頁,編輯于2023年,星期六1結(jié)構(gòu)體類型的聲明

一個(gè)學(xué)生的數(shù)據(jù)實(shí)體可能要包含多項(xiàng)數(shù)據(jù)信息:學(xué)號(hào)、姓名、性別、年齡、成績、家庭地址處理的數(shù)據(jù)對(duì)象包含不同屬性的數(shù)據(jù)信息第二頁,共四十二頁,編輯于2023年,星期六1結(jié)構(gòu)體類型的聲明

一個(gè)學(xué)生的數(shù)據(jù)實(shí)體可能要包含多項(xiàng)數(shù)據(jù)信息:學(xué)號(hào)、姓名、性別、年齡、成績、家庭地址因所包含的成分類型不同,不能用數(shù)組來表示,也不便拆成多個(gè)獨(dú)立的單個(gè)數(shù)據(jù)項(xiàng),因?yàn)檫@樣會(huì)失去實(shí)體的整體性第三頁,共四十二頁,編輯于2023年,星期六1結(jié)構(gòu)體類型的聲明

一個(gè)學(xué)生的數(shù)據(jù)實(shí)體可能要包含多項(xiàng)數(shù)據(jù)信息:學(xué)號(hào)、姓名、性別、年齡、成績、家庭地址因所包含的成分類型不同,不能用數(shù)組來表示,也不便拆成多個(gè)獨(dú)立的單個(gè)數(shù)據(jù)項(xiàng),因?yàn)檫@樣會(huì)失去實(shí)體的整體性在C語言中,可用結(jié)構(gòu)體類型描述第四頁,共四十二頁,編輯于2023年,星期六【實(shí)訓(xùn)1】聲明一個(gè)存儲(chǔ)學(xué)生信息(學(xué)號(hào)、姓名、性別、成績)的結(jié)構(gòu)體類型。第五頁,共四十二頁,編輯于2023年,星期六聲明結(jié)構(gòu)體類型的步驟:(1)指定結(jié)構(gòu)體類型名。第六頁,共四十二頁,編輯于2023年,星期六聲明結(jié)構(gòu)體類型的步驟:(1)指定結(jié)構(gòu)體類型名。structStdType{

};第七頁,共四十二頁,編輯于2023年,星期六聲明結(jié)構(gòu)體類型的步驟:(1)指定結(jié)構(gòu)體類型名。(2)確定結(jié)構(gòu)體類型成員及其數(shù)據(jù)類型。structStdType

{

};第八頁,共四十二頁,編輯于2023年,星期六聲明結(jié)構(gòu)體類型的步驟:(1)指定結(jié)構(gòu)體類型名。(2)確定結(jié)構(gòu)體類型成員及其數(shù)據(jù)類型。structStdType

{intnum;

charname[20]; charsex; floatscore;

};第九頁,共四十二頁,編輯于2023年,星期六聲明結(jié)構(gòu)體類型的步驟:(1)指定結(jié)構(gòu)體類型名。(2)確定結(jié)構(gòu)體類型成員及其數(shù)據(jù)類型。聲明結(jié)構(gòu)體類型的代碼:structStdType

{intnum; charname[20]; charsex; floatscore;

};第十頁,共四十二頁,編輯于2023年,星期六聲明一個(gè)結(jié)構(gòu)體類型的一般格式struct

結(jié)構(gòu)體類型名{ 類型標(biāo)識(shí)符成員名列表 類型標(biāo)識(shí)符成員名列表

……

類型標(biāo)識(shí)符成員名列表};

第十一頁,共四十二頁,編輯于2023年,星期六2結(jié)構(gòu)體變量的定義和訪問

【實(shí)訓(xùn)2】聲明一個(gè)結(jié)構(gòu)體類型,并輸入和輸出學(xué)生的信息(學(xué)號(hào)、姓名、性別、成績)。第十二頁,共四十二頁,編輯于2023年,星期六編程步驟(1)聲明結(jié)構(gòu)體類型。(2)定義結(jié)構(gòu)體變量。(3)在屏幕上顯示提示輸入信息。(4)輸入一個(gè)學(xué)生的信息(學(xué)號(hào)、姓名、性別、成績)。(5)輸出學(xué)生的信息。第十三頁,共四十二頁,編輯于2023年,星期六程序代碼main(){ structStdType {intnum;charname[20];charsex;floatscore;};structStdTypestu;第十四頁,共四十二頁,編輯于2023年,星期六程序代碼

printf("Pleasestudentinfo:");

scanf("%d",&stu.num); scanf("%s",);scanf("%c",&stu.sex);scanf("%f",&stu.score);

printf("Thestudentinfo:\n");printf("%d,%s,%c,%.2f.\n",

stu.num,,stu.sex,stu.score);}第十五頁,共四十二頁,編輯于2023年,星期六【實(shí)訓(xùn)3】編寫程序,輸出已有的學(xué)生信息(學(xué)號(hào)、姓名、性別、成績)。編程步驟:(1)聲明結(jié)構(gòu)體類型。(2)定義結(jié)構(gòu)體類型的兩個(gè)變量stu1、stu2,并用初始化方法存儲(chǔ)兩個(gè)學(xué)生的信息到stu1,stu2。(3)輸出兩個(gè)學(xué)生的信息。第十六頁,共四十二頁,編輯于2023年,星期六程序代碼main(){ structStdType {intnum;charname[15];charsex;floatscore;}stu1={102,"ZhangPing",'M',78.95},stu2={103,"HeFang",'F',92.5};

printf("%d,%-15s,%c,%.2f\n",stu1.num,,stu1.sex,stu1.score);printf("%d,%-15s,%c,%.2f\n",stu2.num,,stu2.sex,stu2.score);}第十七頁,共四十二頁,編輯于2023年,星期六【實(shí)訓(xùn)4】定義一個(gè)結(jié)構(gòu)體變量,求這個(gè)變量所占的內(nèi)存大?。催@個(gè)結(jié)構(gòu)體類型數(shù)據(jù)的長度)。編程步驟:(1)定義一個(gè)結(jié)構(gòu)體變量stu。(2)輸出結(jié)構(gòu)體變量的數(shù)據(jù)長度。第十八頁,共四十二頁,編輯于2023年,星期六程序代碼main(){struct{intnum;charname[20];charsex;floatscore;}stu={1001,"wangping",'M',98.50};printf("%d+%d+%d+%d=%d\n",sizeof(stu.num),sizeof(),sizeof(stu.sex),sizeof(stu.score),sizeof(stu));}stunumsexscore

1001wangpingM98.50name4個(gè)字節(jié)20個(gè)字節(jié)1個(gè)字節(jié)4個(gè)字節(jié)沒有結(jié)構(gòu)體類型名第十九頁,共四十二頁,編輯于2023年,星期六【實(shí)訓(xùn)5】編寫程序,在已有的學(xué)生信息(學(xué)號(hào)、姓名、性別、年齡、成績)中,每位學(xué)生年齡增加一歲,并計(jì)算平均成績。編程步驟:(1)聲明結(jié)構(gòu)體類型。(2)定義結(jié)構(gòu)體類型的兩個(gè)變量。(3)用初始化方法存儲(chǔ)學(xué)生信息。(4)每個(gè)學(xué)生年齡加1。(5)計(jì)算平均成績。(6)輸出更新后的學(xué)生信息。(7)輸出平均成績。第二十頁,共四十二頁,編輯于2023年,星期六程序代碼main(){ structStdType{intnum;charname[15];charsex;intage;floatscore;}stu1={102,"ZhangPing",'M',23,78.95}, stu2={103,"HeFang",'F',22,92.5};

floataver=0.0;第二十一頁,共四十二頁,編輯于2023年,星期六程序代碼

stu1.age++;stu2.age++;aver=(stu1.score+stu2.score)/2;printf("%d,%-15s,%c,%d,%.2f\n", stu1.num,,stu1.sex, stu1.age,stu1.score);printf("%d,%-15s,%c,%d,%.2f\n", stu2.num,,stu2.sex, stu2.age,stu2.score);

printf("aver=%.2f\n",aver);}第二十二頁,共四十二頁,編輯于2023年,星期六【實(shí)訓(xùn)6】編寫程序,在已有的兩個(gè)學(xué)生信息(學(xué)號(hào)、姓名、性別、成績)中選擇其中一個(gè)學(xué)生的信息存儲(chǔ)到第三個(gè)學(xué)生信息中,然后輸出所有學(xué)生的信息。編程步驟:(1)聲明結(jié)構(gòu)體類型。(2)定義結(jié)構(gòu)體類型的兩個(gè)變量stu1,stu2,stu3。(3)用初始化方法存儲(chǔ)兩個(gè)學(xué)生的信息到stu1,stu2。(4)將stu2的信息存儲(chǔ)到stu3。(5)輸出所有學(xué)生的信息。第二十三頁,共四十二頁,編輯于2023年,星期六程序代碼main(){ structStdType { intnum;charname[15];charsex;floatscore;}stu1={102,"ZhangPing",'M',78.95},stu2={103,"HeFang",'F',92.5},stu3;第二十四頁,共四十二頁,編輯于2023年,星期六程序代碼

stu3=stu2;

printf("%d,%-15s,%c,%.2f\n", stu1.num,,stu1.sex,stu1.score);printf("%d,%-15s,%c,%.2f\n",stu2.num,,stu2.sex,stu2.score);printf("%d,%-15s,%c,%.2f\n", stu3.num,,stu3.sex,stu3.score);}各成員依次賦值第二十五頁,共四十二頁,編輯于2023年,星期六【實(shí)訓(xùn)7】編寫程序,輸出學(xué)生的信息(包括姓名、性別、出生日期、身份證號(hào)、住址、電話號(hào)碼)。信息如下:姓名:王明;性別:男;出生日期:1980年10月18日;身份證號(hào)住址:北京路;電話號(hào)碼:01012345678。第二十六頁,共四十二頁,編輯于2023年,星期六編程步驟(1)聲明所需結(jié)構(gòu)體類型。(2)定義結(jié)構(gòu)體類型的變量stu。(3)存儲(chǔ)學(xué)生信息到變量stu。(4)用printf函數(shù)輸出該學(xué)生的信息。第二十七頁,共四十二頁,編輯于2023年,星期六程序代碼structDate{ intmonth;intday;intyear;};structStdType{ charname[15];charsex;

structDate

birthday;

charid[20];charaddr[40];charphone[12];};嵌套聲明第二十八頁,共四十二頁,編輯于2023年,星期六程序代碼main(){ structStdTypestu;

strcpy(,"wangming");

stu.sex='M';stu.birthday.year=1980;stu.birthday.month=10;stu.birthday.day=18;strcpy(stu.id,);strcpy(stu.addr,"BeijingRoad");strcpy(stu.phone,"01012345678");printf("%s,%c\n%d/%d/%d\n%s\n%s\n%s\n",

,stu.sex,stu.birthday.year,stu.birthday.month,stu.birthday.day,stu.id,stu.addr,stu.phone);}第二十九頁,共四十二頁,編輯于2023年,星期六【實(shí)訓(xùn)8】改寫實(shí)訓(xùn)3。通過指針變量輸出已有的學(xué)生信息(學(xué)號(hào)、姓名、性別、成績)。編程步驟:(1)聲明結(jié)構(gòu)體類型。(2)定義結(jié)構(gòu)體類型的兩個(gè)變量stu1、stu2和同一結(jié)構(gòu)體類型的指針變量p,并用初始化方法存儲(chǔ)兩個(gè)學(xué)生的信息到stu1,stu2。(3)通過指針變量輸出兩個(gè)學(xué)生的信息。第三十頁,共四十二頁,編輯于2023年,星期六程序代碼main(){ structStdType {intnum;charname[15];charsex;floatscore;}stu1={102,"ZhangPing",'M',78.95},stu2={103,"HeFang",'F',92.5},*p;第三十一頁,共四十二頁,編輯于2023年,星期六程序代碼

p=&stu1;printf("%d,%-15s,%c,%.2f",(*p).num,(*p).name,(*p).sex,(*p).score);

p=&stu2;printf("%d,%-15s,%c,%.2f\n",p->num,p->name,p->sex,p->score);}

第三十二頁,共四十二頁,編輯于2023年,星期六成員的表示方法有如下3種結(jié)構(gòu)體變量名.成員名(*指針變量名).成員名指針變量名->成員名第三十三頁,共四十二頁,編輯于2023年,星期六3結(jié)構(gòu)體應(yīng)用舉例

P186第三十四頁,共四十二頁,編輯于2023年,星期六【實(shí)訓(xùn)10】改寫實(shí)訓(xùn)3。調(diào)用函數(shù)給第三個(gè)學(xué)生賦信息,該學(xué)生學(xué)號(hào)是108,姓名是LiuLei,性別是男,而成績正好是前兩個(gè)學(xué)生的平均成績。編程步驟:(1)聲明結(jié)構(gòu)體類型。(2)定義結(jié)構(gòu)體類型的三個(gè)變量stu1、stu2和stu3,并用初始化方法存儲(chǔ)前兩個(gè)學(xué)生的信息到stu1,stu2。(3)調(diào)用函數(shù)給第三個(gè)學(xué)生賦信息。(4)輸出三個(gè)學(xué)生的信息。第三十五頁,共四十二頁,編輯于2023年,星期六程序代碼#include<string.h>structStdType{ intnum;charname[15];charsex;floatscore;};第三十六頁,共四十二頁,編輯于2023年,星期六程序代碼voidthirdstu(structStdTypes1,structStdTypes2,structStdType*s3);main(){ structStdTypestu1={102,"ZhangPing",'M',78.95},stu2={103,"HeFang",'F',92.5},stu3;

thirdstu(stu1,stu2,&stu3);printf("%d,%-15s,%c,%.2f\n",stu1.num,,stu1.sex,stu1.score);printf("%d,%-15s,%c,%.2f\n",stu2.num,,stu2.sex,stu2.score);printf("%d,%-15s,%c,%.2f\n",stu3.num,,stu3.sex,stu3.score);}第三十七頁,共四十二頁,編輯于2023年,星期六程序代碼voidthirdstu(structStdTypes1,structStdTypes2,structStdType*s3){ s3->num=108; strcpy(s3->name,"LiuLei");s3->sex='M';s3->score=(s1.score+s2.score)/2;}第三十八頁,共四十二頁,編輯于2023年,星期六num

102ZhangPin

溫馨提示

  • 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)論