




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南通智能裝備制造基地建設(shè)合作合同
- 報(bào)警器安裝施工合同
- 個(gè)人居間合同
- 借款合同抵押與擔(dān)保
- 民間借貸抵押合同年
- 冬季水果供應(yīng)鏈管理服務(wù)合同
- 森林資源培育與利用合作合同
- 沈陽科技學(xué)院《推銷理論與實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州城市理工學(xué)院《科研實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 雙手向后拋實(shí)心球的練習(xí) 教學(xué)設(shè)計(jì)-2023-2024學(xué)年高一上學(xué)期體育與健康人教版必修第一冊(cè)
- 高中課程表模板1
- tlc-jc dy001通信用高頻開關(guān)電源系統(tǒng)檢驗(yàn)報(bào)告模板va
- 閥門噪聲計(jì)算程序(IEC)(帶公式)
- 2022年RDA5807m+IIC收音機(jī)51單片機(jī)C程序上課講義
- 雅馬哈貼片機(jī)_修機(jī)_調(diào)機(jī)的經(jīng)驗(yàn)之談1
- 全自動(dòng)咖啡機(jī)基本結(jié)構(gòu)及原理教程課件
- 金屬風(fēng)管支架重量計(jì)算表
- 正負(fù)零以下基礎(chǔ)施工方案(44頁)
- 簡愛人物形象分析(課堂PPT)
- 義務(wù)教育《勞動(dòng)》課程標(biāo)準(zhǔn)(2022年版)
- 從業(yè)務(wù)骨干到管理者(課堂PPT)
評(píng)論
0/150
提交評(píng)論