版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八
汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)C語(yǔ)言程序設(shè)計(jì)理解結(jié)構(gòu)體的定義理解結(jié)構(gòu)體變量的定義、引用、初始化理解結(jié)構(gòu)體數(shù)組的定義、引用、初始化理解指向結(jié)構(gòu)體變量的指針、結(jié)構(gòu)體數(shù)組的指針的使用知識(shí)目標(biāo)能靈活運(yùn)用結(jié)構(gòu)體類(lèi)型能靈活運(yùn)用結(jié)構(gòu)體變量解決實(shí)際問(wèn)題能靈活運(yùn)用結(jié)構(gòu)體數(shù)組解決實(shí)際問(wèn)題能力目標(biāo)項(xiàng)目八項(xiàng)目八01
一輛汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體變量)02多輛汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03多輛汽車(chē)數(shù)據(jù)的間接顯示(結(jié)構(gòu)體指針)引入:
在日常生活中,我們的很多數(shù)據(jù)需要包含多種數(shù)據(jù)類(lèi)型,那么以前的數(shù)據(jù)格式就不是很合適了,這個(gè)時(shí)候我們需要有新的數(shù)據(jù)類(lèi)型—結(jié)構(gòu)體01知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
從鍵盤(pán)輸入一輛貨車(chē)的信息包含車(chē)牌號(hào),車(chē)輛識(shí)別碼,載重噸數(shù),并輸出顯示。知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、結(jié)構(gòu)體類(lèi)型的定義
結(jié)構(gòu)體是一種數(shù)據(jù)類(lèi)型,它將互相聯(lián)系的不同類(lèi)型的數(shù)據(jù)組合成了一個(gè)整體。一般格式為struct結(jié)構(gòu)體類(lèi)型名{
數(shù)據(jù)類(lèi)型成員名1;數(shù)據(jù)類(lèi)型成員名2;
…
數(shù)據(jù)類(lèi)型成員n;};示例1:定義一個(gè)結(jié)構(gòu)體類(lèi)型為birthday,成員包含年、
月、日。structbirthday{
intyear;
intmonth;
intday;};知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、結(jié)構(gòu)體類(lèi)型的定義structstudent{intsno;
intname;
charsex[3];intage;charaddress[30];doublehight;doubleweight;};示例2:定義一個(gè)結(jié)構(gòu)體為student,成員包含學(xué)號(hào),姓名,性別,
年齡,家庭住址,身高,體重。知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、結(jié)構(gòu)體類(lèi)型的定義示例3:定義一個(gè)結(jié)構(gòu)體為student,成員包含學(xué)號(hào),姓名,性別,出生年月(結(jié)構(gòu)體包含年、月、日),家庭住址。structbirthday{intyear;
intmonth;
intday;};structstudent{intstuId;
intname;
charsex[3];intage;charaddress[30];doublehight;doubleweight;
structbirthdayli;};知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、結(jié)構(gòu)體類(lèi)型的定義注意結(jié)構(gòu)體類(lèi)型和基本類(lèi)型的區(qū)別:①結(jié)構(gòu)體類(lèi)型定義中的每一個(gè)成員項(xiàng),表示該結(jié)構(gòu)體的分量或稱(chēng)“域”。②基本數(shù)據(jù)類(lèi)型(如double,int,char等)是一個(gè)具體的數(shù)據(jù)類(lèi)型,一旦定義后說(shuō)明的變量就分配了固定的字節(jié),按指定的形式存放。而“結(jié)構(gòu)體類(lèi)型”只是一個(gè)抽象的數(shù)據(jù)類(lèi)型,它只表示“由若干個(gè)不同數(shù)據(jù)類(lèi)型數(shù)據(jù)項(xiàng)組成的復(fù)合類(lèi)型”,它由哪些成員項(xiàng)組成,占多少字節(jié)等信息。③與基本數(shù)據(jù)類(lèi)型不同,系統(tǒng)沒(méi)有預(yù)先定義結(jié)構(gòu)體類(lèi)型,凡需使用結(jié)構(gòu)體類(lèi)型數(shù)據(jù)的,都必須在程序中先行加以定義。知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉二、結(jié)構(gòu)體類(lèi)型變量的定義方法一:先進(jìn)行結(jié)構(gòu)體類(lèi)型的定義,然后進(jìn)行結(jié)構(gòu)體變量的定義示例4:定義兩個(gè)學(xué)生的結(jié)構(gòu)體變量structstudent{intstuId;charname[9];charsex[3];intage;charaddress[30];doublehight;doubleweight;};studentstudentstu1,stu2;知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉二、結(jié)構(gòu)體類(lèi)型變量的定義方法二:在定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體變量示例4:定義兩個(gè)學(xué)生的結(jié)構(gòu)體變量一般形式為:truct結(jié)構(gòu)體類(lèi)型名{
數(shù)據(jù)類(lèi)型
成員名1;
數(shù)據(jù)類(lèi)型
成員名2;…
數(shù)據(jù)類(lèi)型
成員名n;}結(jié)構(gòu)體變量名表;知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉二、結(jié)構(gòu)體類(lèi)型變量的定義示例5:定義兩個(gè)學(xué)生的結(jié)構(gòu)體變量structstudent{intstuId;charname[9];charsex[3];intage;charaddress[30];doublehight;doubleweight;}stu1,stu2;方法二:在定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體變量知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉三、結(jié)構(gòu)體類(lèi)型變量的初始化方法一:structbirthday{intyear;
intmonth;
intday;};structbirthdaystu1={1990,12,5};方法二:structbirthday{intyear;
intmonth;
intday;}stu1={1990,12,5};知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉四、結(jié)構(gòu)體類(lèi)型變量的引用1.定義結(jié)構(gòu)體時(shí),直接賦值#include"stdio.h"structbirthday{ intyear; intmonth; intday;}stu1={2019,11,20};voidmain(){ printf("出生年為%d,月為%d,日為%d",stu1.year,stu1.month,stu1.day);}知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉四、結(jié)構(gòu)體類(lèi)型變量的引用2.先定義結(jié)構(gòu)體,再賦值#include"stdio.h"structbirthday{ intyear; intmonth; intday;};voidmain(){structbirthdaystu1={2019,11,20};printf("出生年為%d,月為%d,日為%d",stu1.year,stu1.month,stu1.day);}知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉四、結(jié)構(gòu)體類(lèi)型變量的引用3.從鍵盤(pán)上輸入值#include"stdio.h"structbirthday{ intyear; intmonth; intday;};voidmain(){structbirthdaystu1; printf("請(qǐng)輸入出生的年"); scanf("%d",&stu1.year); printf("請(qǐng)輸入出生的月"); scanf("%d",&stu1.month); printf("請(qǐng)輸入出生的日"); scanf("%d",&stu1.day); printf("出生年為%d,月為%d,日為%d",stu1.year,stu1.month,stu1.day);}注意:1.不能將一個(gè)結(jié)構(gòu)體作為一個(gè)整體進(jìn)行輸入和輸出.2.如果成員本身又屬一個(gè)結(jié)構(gòu)體類(lèi)型,則要用若干個(gè)成員運(yùn)算符。任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉算法分析分析定義一個(gè)結(jié)構(gòu)體(Truct)有三個(gè)成員車(chē)牌號(hào)(Plate_Number)、車(chē)輛識(shí)別碼(VIN)、載重(Load)定義結(jié)構(gòu)體變量分別輸入成員信息輸出卡車(chē)信息從鍵盤(pán)輸入一輛貨車(chē)的信息包含車(chē)牌號(hào),車(chē)輛識(shí)別碼,載重噸數(shù),并輸出顯示。任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉程序代碼#include"stdio.h"structTruct{charPlate_Number[12];charVIN[18];intLoad;};#include"stdio.h"voidmain(){ structTructinfo; printf("請(qǐng)輸入貨車(chē)的信息\n"); printf("車(chē)牌號(hào)"); scanf("%s",info.Plate_Number); printf("車(chē)輛識(shí)別碼"); scanf("%s",info.VIN); printf("載重噸數(shù)"); scanf("%d",&info.Load); printf("卡車(chē)的信息為\n"); printf("車(chē)牌號(hào)%s\n",info.Plate_Number); printf("車(chē)輛識(shí)別碼%s\n",info.VIN); printf("載重噸數(shù)%d\n",info.Load);}THANKS!C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八項(xiàng)目八01
一輛卡車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體變量02多個(gè)汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03多個(gè)汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體指針)引入:
在日常生活中,我們的很多數(shù)據(jù)需要包含多種數(shù)據(jù)類(lèi)型,那么以前的數(shù)據(jù)格式就不是很合適了,這個(gè)時(shí)候我們需要有新的數(shù)據(jù)類(lèi)型—結(jié)構(gòu)體01項(xiàng)目八任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口問(wèn)題的提出
在實(shí)際生活中,車(chē)量有很多數(shù)據(jù)比如發(fā)動(dòng)機(jī)狀態(tài),曲軸轉(zhuǎn)速、燃料消耗率、定位等,我們需要按照車(chē)輛進(jìn)行數(shù)據(jù)統(tǒng)計(jì),那我們看看我們?nèi)绾谓鉀Q這些問(wèn)題。項(xiàng)目八任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例1定義一個(gè)結(jié)構(gòu)體名稱(chēng)為發(fā)動(dòng)機(jī)(DATA_ENGINE),包含三個(gè)成員,發(fā)動(dòng)機(jī)狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示發(fā)動(dòng)機(jī)的各項(xiàng)。算法過(guò)程:定義變量定義結(jié)構(gòu)體采用先定義結(jié)構(gòu)體再定義結(jié)構(gòu)體變量的方式輸出項(xiàng)目八任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例1定義一個(gè)結(jié)構(gòu)體名稱(chēng)為發(fā)動(dòng)機(jī)(DATA_ENGINE),包含三個(gè)成員,發(fā)動(dòng)機(jī)狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示發(fā)動(dòng)機(jī)的各項(xiàng)。#include"stdio.h"structDATA_ENGINE{charEngine_Status;intCrankshaft_Speed;doubleFuel_Consumption_Rate;};voidmain(){structDATA_ENGINEDATA_ENGINE01={'0',1500,10.5};printf("發(fā)動(dòng)機(jī)的狀態(tài)為\n");printf("狀態(tài)%c,曲軸轉(zhuǎn)速%d,燃料消耗率%lf",DATA_ENGINE01.Engine_Status,DATA_ENGINE01.Crankshaft_Speed,DATA_ENGINE01.Fuel_Consumption_Rate);}項(xiàng)目八任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例2定義一個(gè)結(jié)構(gòu)體名稱(chēng)為車(chē)輛位置(Data_Location),包含三個(gè)成員,定位狀態(tài)(GPS_Status),經(jīng)度(Longitude)緯度(Latitude),從鍵盤(pán)輸入車(chē)輛位置的信息,并輸出。算法過(guò)程:1. 定義結(jié)構(gòu)體2. 定義結(jié)構(gòu)體變量3. 輸入變量4. 輸出項(xiàng)目八任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例2定義一個(gè)結(jié)構(gòu)體名稱(chēng)為發(fā)動(dòng)機(jī)(DATA_ENGINE),包含三個(gè)成員,發(fā)動(dòng)機(jī)狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示發(fā)動(dòng)機(jī)的各項(xiàng)。#include"stdio.h"structData_Location{ charGPS_Status; intLongitude; intLatitude;};voidmain(){printf("車(chē)輛位置為%c,經(jīng)度為%d,緯度為%d",Data_Location1.GPS_Status,Data_Location1.Longitude,Data_Location1.Latitude);}項(xiàng)目八任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例3已知一名同學(xué)的信息如下圖所示,從鍵盤(pán)上輸入學(xué)生的信息,并輸出。算法過(guò)程:1. 定義結(jié)構(gòu)體2. 定義結(jié)構(gòu)體變量3. 輸入變量4. 輸出學(xué)號(hào)姓名性別出生日期身高(cm)電話(huà)年月日12345561李麗女200511316013790123444項(xiàng)目八任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例3已知一名同學(xué)的信息如下圖所示,從鍵盤(pán)上輸入學(xué)生的信息,并輸出。#include"stdio.h"structbirthday{intyear;intmonth;intday;};學(xué)號(hào)姓名性別出生日期身高(cm)電話(huà)年月日12345561李麗女200511316013790123444structstudent{charstuId[11];charname[9];charsex[3];structbirthdaybir;inthight;chartel[11];};voidmain(){structstudentstu1={"12345561","李麗","女",{2005,1,13},160,};printf("學(xué)生信息為");printf("學(xué)號(hào):%s\n",stu1.stuId);printf("姓名:%s\n",);printf("性別:%s\n",stu1.sex);printf("出生:%d年%d月%d日\(chéng)n",stu1.bir.year,stu1.bir.month,stu1.bir.day);printf("身高:%d\n",stu1.hight);printf("電話(huà):%s\n",stu1.tel);}C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八項(xiàng)目八01
一輛卡車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體變量02
多個(gè)汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03多個(gè)汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體指針)引入:當(dāng)需要的同類(lèi)型的結(jié)構(gòu)體變量超過(guò)2個(gè)及以上時(shí),C語(yǔ)言可以和之前一樣引入數(shù)組的概念,此時(shí)引入的就是結(jié)構(gòu)體數(shù)組。02知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
從鍵盤(pán)輸入三輛貨車(chē)的信息包含車(chē)牌號(hào),車(chē)輛識(shí)別碼,載重噸數(shù),并輸出顯示。知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法一:先定義結(jié)構(gòu)體類(lèi)型,再定義結(jié)構(gòu)體數(shù)組struct結(jié)構(gòu)體名
{成員類(lèi)型成員名1;
成員類(lèi)型成員名2;
成員類(lèi)型成員名3;…
成員類(lèi)型成員名n;};
struct結(jié)構(gòu)體名數(shù)組[容量];
例如:
structstudent{intnumber;charname[9];charsex[3];};structstudentstu[5];//定義結(jié)構(gòu)體數(shù)組知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法二:定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體數(shù)組structstudent{intnumber;charname[9];charsex[3];}stu[10];知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法三:定義無(wú)名結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體數(shù)組struct{intnumber;charname[9];charsex[3];inthight;intweight;structbirthdaydate_of_birth;charphone[12];charaddress[30];}stu[10];結(jié)構(gòu)體數(shù)組中各元素在內(nèi)存中也是連續(xù)存放的,如圖所示。任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉算法分析分析定義一個(gè)結(jié)構(gòu)體(Truct)有三個(gè)成員車(chē)牌號(hào)(Plate_Number)、車(chē)輛識(shí)別碼(VIN)、載重(Load)定義結(jié)構(gòu)體變量分別輸入成員信息輸出卡車(chē)信息從鍵盤(pán)輸入三輛貨車(chē)的信息包含車(chē)牌號(hào),車(chē)輛識(shí)別碼,載重噸數(shù),并輸出顯示。任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉程序代碼#include"stdio.h"structTruct{charPlate_Number[12];charVIN[18];intLoad;};voidmain(){structTructTruct[3]; inti;printf("請(qǐng)輸入貨車(chē)的信息\n");for(i=0;i<3;i++){printf("車(chē)牌號(hào)");scanf("%s",Truct[i].Plate_Number);printf("車(chē)輛識(shí)別碼");scanf("%s",Truct[i].VIN);printf("載重噸數(shù)");scanf("%d",&Truct[i].Load);}printf("卡車(chē)的信息為\n");for(i=0;i<3;i++){printf("車(chē)牌號(hào)%s\n",Truct[i].Plate_Number);printf("車(chē)輛識(shí)別碼%s\n",Truct[i].VIN);printf("載重噸數(shù)%d\n",Truct[i].Load);}}C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八項(xiàng)目八01
一輛卡車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體變量02
多個(gè)汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03多個(gè)汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體指針)引入:當(dāng)需要的同類(lèi)型的結(jié)構(gòu)體變量超過(guò)2個(gè)及以上時(shí),C語(yǔ)言可以和之前一樣引入數(shù)組的概念,此時(shí)引入的就是結(jié)構(gòu)體數(shù)組。02知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
從鍵盤(pán)輸入三輛貨車(chē)的信息包含車(chē)牌號(hào),車(chē)輛識(shí)別碼,載重噸數(shù),并輸出顯示。知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法一:先定義結(jié)構(gòu)體類(lèi)型,再定義結(jié)構(gòu)體數(shù)組struct結(jié)構(gòu)體名
{成員類(lèi)型成員名1;
成員類(lèi)型成員名2;
成員類(lèi)型成員名3;…
成員類(lèi)型成員名n;};
struct結(jié)構(gòu)體名數(shù)組[容量];
例如:
structstudent{intnumber;charname[9];charsex[3];};structstudentstu[5];//定義結(jié)構(gòu)體數(shù)組知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法二:定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體數(shù)組structstudent{intnumber;charname[9];charsex[3];}stu[10];知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法三:定義無(wú)名結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體數(shù)組struct{intnumber;charname[9];charsex[3];inthight;intweight;structbirthdaydate_of_birth;charphone[12];charaddress[30];}stu[10];結(jié)構(gòu)體數(shù)組中各元素在內(nèi)存中也是連續(xù)存放的,如圖所示。任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉算法分析分析定義一個(gè)結(jié)構(gòu)體(Truct)有三個(gè)成員車(chē)牌號(hào)(Plate_Number)、車(chē)輛識(shí)別碼(VIN)、載重(Load)定義結(jié)構(gòu)體變量分別輸入成員信息輸出卡車(chē)信息從鍵盤(pán)輸入一輛貨車(chē)的信息包含車(chē)牌號(hào),車(chē)輛識(shí)別碼,載重噸數(shù),并輸出顯示。任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉程序代碼#include"stdio.h"structTruct{charPlate_Number[12];charVIN[18];intLoad;}Truct[3];voidmain(){structTructTruct[3]; inti;printf("請(qǐng)輸入貨車(chē)的信息\n");for(i=0;i<3;i++){printf("車(chē)牌號(hào)");scanf("%s",Truct[i].Plate_Number);printf("車(chē)輛識(shí)別碼");scanf("%s",Truct[i].VIN);printf("載重噸數(shù)");scanf("%d",&Truct[i].Load);}printf("卡車(chē)的信息為\n");for(i=0;i<3;i++){printf("車(chē)牌號(hào)%s\n",Truct[i].Plate_Number);printf("車(chē)輛識(shí)別碼%s\n",Truct[i].VIN);printf("載重噸數(shù)%d\n",Truct[i].Load);}}項(xiàng)目八任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例1定義一個(gè)結(jié)構(gòu)體名稱(chēng)為發(fā)動(dòng)機(jī)(DATA_ENGINE),包含三個(gè)成員,發(fā)動(dòng)機(jī)狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示三輛汽車(chē)發(fā)動(dòng)機(jī)的各項(xiàng)。算法過(guò)程:定義變量定義結(jié)構(gòu)體采用先定義結(jié)構(gòu)體再定義結(jié)構(gòu)體變量的方式輸出項(xiàng)目八任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例1定義一個(gè)結(jié)構(gòu)體名稱(chēng)為發(fā)動(dòng)機(jī)(DATA_ENGINE),包含三個(gè)成員,發(fā)動(dòng)機(jī)狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示三輛汽車(chē)發(fā)動(dòng)機(jī)的各項(xiàng)。#include"stdio.h"structDATA_ENGINE{ charEngine_Status; intCrankshaft_Speed; doubleFuel_Consumption_Rate;}DATA_ENGINE[3];voidmain(){
structDATA_ENGINEDATA_ENGINE[3]={{'0',1500,150},{'0',1500,150},{'0',1500,150}};inti;for(i=0;i<3;i++)printf("發(fā)動(dòng)機(jī)狀態(tài)為%c\n曲軸轉(zhuǎn)速為%d,燃料消耗率為%lf\n",DATA_ENGINE[i].Engine_Status,DATA_ENGINE[i].Crankshaft_Speed,DATA_ENGINE[i].Fuel_Consumption_Rate);}項(xiàng)目八任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例2定義一個(gè)結(jié)構(gòu)體名稱(chēng)為車(chē)輛位置(Data_Location),包含三個(gè)成員,定位狀態(tài)(GPS_Status),經(jīng)度(Longitude)緯度(Latitude),從鍵盤(pán)輸入四車(chē)輛位置的信息,并輸出。算法過(guò)程:1. 定義結(jié)構(gòu)體2. 定義結(jié)構(gòu)體變量3. 輸入變量4. 輸出項(xiàng)目八任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例2定義一個(gè)結(jié)構(gòu)體名稱(chēng)為車(chē)輛位置(Data_Location),包含三個(gè)成員,定位狀態(tài)(GPS_Status),經(jīng)度(Longitude)緯度(Latitude),從鍵盤(pán)輸入三車(chē)輛位置的信息,并輸出。for(i=0;i<3;i++){printf("請(qǐng)輸入車(chē)輛狀態(tài),經(jīng)度,緯度信息\n");scanf("%c,%d,%d",&Data_Location[i].GPS_Status,&Data_Location[i].Longitude,&Data_Location[i].Latitude);}for(i=0;i<3;i++)printf("車(chē)輛狀態(tài)為%c,經(jīng)度%d,緯度%d\n",Data_Location[i].GPS_Status,Data_Location[i].Longitude,Data_Location[i].Latitude);}#include"stdio.h"structData_Location{ charGPS_Status; intLongitude; intLatitude;}Data_Location[3];voidmain(){ structData_LocationData_Location[3]; inti;C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八項(xiàng)目八01
一輛卡車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體變量02
多個(gè)汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03多個(gè)汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體指針)引入:
在日常生活中,我們的很多數(shù)據(jù)需要包含多種數(shù)據(jù)類(lèi)型,那么以前的數(shù)據(jù)格式就不是很合適了,這個(gè)時(shí)候我們需要有新的數(shù)據(jù)類(lèi)型—結(jié)構(gòu)體01項(xiàng)目八任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口問(wèn)題的提出
在實(shí)際生活中,車(chē)量有很多數(shù)據(jù)比如發(fā)動(dòng)機(jī)狀態(tài),曲軸轉(zhuǎn)速、燃料消耗率、定位等,我們需要按照車(chē)輛進(jìn)行數(shù)據(jù)統(tǒng)計(jì),那我們看看我們?nèi)绾谓鉀Q這些問(wèn)題。項(xiàng)目八任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例1定義一個(gè)結(jié)構(gòu)體名稱(chēng)為發(fā)動(dòng)機(jī)(DATA_ENGINE),包含三個(gè)成員,發(fā)動(dòng)機(jī)狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示三輛汽車(chē)發(fā)動(dòng)機(jī)的各項(xiàng)。算法過(guò)程:定義變量定義結(jié)構(gòu)體采用先定義結(jié)構(gòu)體再定義結(jié)構(gòu)體變量的方式輸出項(xiàng)目八任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例1定義一個(gè)結(jié)構(gòu)體名稱(chēng)為發(fā)動(dòng)機(jī)(DATA_ENGINE),包含三個(gè)成員,發(fā)動(dòng)機(jī)狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示三輛汽車(chē)發(fā)動(dòng)機(jī)的各項(xiàng)。#include"stdio.h"structDATA_ENGINE{ charEngine_Status; intCrankshaft_Speed; doubleFuel_Consumption_Rate;};voidmain(){
structDATA_ENGINEDATA_ENGINE[3]={{'0',1500,150},{'0',1500,150},{'0',1500,150}};inti;for(i=0;i<3;i++)printf("發(fā)動(dòng)機(jī)狀態(tài)為%c\n曲軸轉(zhuǎn)速為%d,燃料消耗率為%lf\n",DATA_ENGINE[i].Engine_Status,DATA_ENGINE[i].Crankshaft_Speed,DATA_ENGINE[i].Fuel_Consumption_Rate);}項(xiàng)目八任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例2定義一個(gè)結(jié)構(gòu)體名稱(chēng)為車(chē)輛位置(Data_Location),包含三個(gè)成員,定位狀態(tài)(GPS_Status),經(jīng)度(Longitude)緯度(Latitude),從鍵盤(pán)輸入三車(chē)輛位置的信息,并輸出。算法過(guò)程:1. 定義結(jié)構(gòu)體2. 定義結(jié)構(gòu)體變量3. 輸入變量4. 輸出項(xiàng)目八任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例2定義一個(gè)結(jié)構(gòu)體名稱(chēng)為車(chē)輛位置(Data_Location),包含三個(gè)成員,定位狀態(tài)(GPS_Status),經(jīng)度(Longitude)緯度(Latitude),從鍵盤(pán)輸入三車(chē)輛位置的信息,并輸出。for(i=0;i<3;i++){printf("請(qǐng)輸入車(chē)輛狀態(tài),經(jīng)度,緯度信息\n");scanf("%c,%d,%d",&Data_Location[i].GPS_Status,&Data_Location[i].Longitude,&Data_Location[i].Latitude);}for(i=0;i<3;i++)printf("車(chē)輛狀態(tài)為%c,經(jīng)度%d,緯度%d\n",Data_Location[i].GPS_Status,Data_Location[i].Longitude,Data_Location[i].Latitude);}#include"stdio.h"structData_Location{ charGPS_Status; intLongitude; intLatitude;};voidmain(){ structData_LocationData_Location[3]; inti;C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八項(xiàng)目八01
一輛卡車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體變量02多個(gè)汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03
多個(gè)汽車(chē)的數(shù)據(jù)顯示(結(jié)構(gòu)體指針)知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
從鍵盤(pán)輸入三輛貨車(chē)的信息包含車(chē)牌號(hào),車(chē)輛識(shí)別碼,載重噸數(shù),并輸出顯示。知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口一、概念一個(gè)結(jié)構(gòu)體變量的指針就是該變量所占據(jù)的內(nèi)存段的起始地址;設(shè)一個(gè)指針變量,用來(lái)指向一個(gè)結(jié)構(gòu)體變量,此時(shí)該指針變量的值是結(jié)構(gòu)體變量的起始地址。如圖所示。結(jié)構(gòu)體變量的指針和指向結(jié)構(gòu)體變量的指針變量知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉二、.示例voidmain(){structstudent*p,stu1={001,"李梅","女",1998,12,3,};p=&stu1;//指向結(jié)構(gòu)體變量的指針變量pprintf("-------------------------------------------------------------------\n");printf("學(xué)號(hào)姓名性別出生日期電話(huà)\n");printf("-------------------------------------------------------------------\n");printf("%-8d%-8s%-6s%d.%d.%-2d%s\n",(*p).number,(*p).name,(*p).sex,p->date_of_birth.year,p->date_of_birth.month,p->date_of_birth.day,p->phone);printf("-------------------------------------------------------------------\n");}#include<stdio.h>structbirthday{intyear;intmonth;intday;};structstudent{intnumber;charname[9];charsex[3];structbirthdaydate_of_birth;charphone[12];};知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉三、引用結(jié)構(gòu)體變量中成員有三種形式示例3:定義一個(gè)結(jié)構(gòu)體為student,成員包含學(xué)號(hào),姓名,性別,出生年月(結(jié)構(gòu)體包含年、月、日),家庭住址。①結(jié)構(gòu)體變量名·成員名②(*p)·成員名③p->成員名其中:“.”是成員運(yùn)算符?!?>”是指向運(yùn)算符。“p”是指向結(jié)構(gòu)體數(shù)據(jù)的指針變量。任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉算法分析分析定義一個(gè)結(jié)構(gòu)體(Truct)有三個(gè)成員車(chē)牌號(hào)(Plate_Number)、車(chē)輛識(shí)別碼(VIN)、載重(Load)定義結(jié)構(gòu)體變量分別輸入成員信息輸出卡車(chē)信息從鍵盤(pán)輸入一輛貨車(chē)的信息包含車(chē)牌號(hào),車(chē)輛識(shí)別碼,載重噸數(shù),并輸出顯示。任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉程序代碼#include"stdio.h"
structTruct{ charPlate_Number[12]; charVIN[18]; intLoad;}Truct[3],*p;
intmain(void){ structTructTruct[3]; structTruct*q; printf("請(qǐng)輸入貨車(chē)的信息\n");
for(p=Truct;p<Truct+3;p++){printf("車(chē)牌號(hào)"); scanf("%s",p->Plate_Number); printf("車(chē)輛識(shí)別碼"); scanf("%s",p->VIN); printf("載重噸數(shù)"); scanf("%d",&p->Load); } printf("卡車(chē)的信息為\n"); for(q=Truct;q<Truct+3;q++) { printf("車(chē)牌號(hào)%s\n",q->Plate_Number); printf("車(chē)輛識(shí)別碼%s\
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《眾人行管理咨詢(xún)網(wǎng)》課件
- 運(yùn)動(dòng)器材銷(xiāo)售工作總結(jié)
- 2013年高考語(yǔ)文試卷(湖北)(空白卷)
- 租車(chē)服務(wù)員工作總結(jié)
- 2006年江西高考語(yǔ)文真題及答案
- 驅(qū)動(dòng)未來(lái)新型汽車(chē)
- 2023年-2024年項(xiàng)目管理人員安全培訓(xùn)考試題附解析答案可打印
- 2023年-2024年項(xiàng)目部管理人員安全教育培訓(xùn)試題及參考答案【A卷】
- 2023-2024安全培訓(xùn)考試題及答案【名校卷】
- 2023年-2024年項(xiàng)目部安全培訓(xùn)考試題答案完美
- 組織學(xué)與胚胎學(xué)課程教學(xué)大綱
- 網(wǎng)絡(luò)傳播概論(第5版) 課件 第一章 網(wǎng)絡(luò)媒介的演變
- 2023-2024學(xué)年江西省鷹潭市余江區(qū)八年級(jí)(上)期末數(shù)學(xué)試卷(含解析)
- 2023北京西城六年級(jí)(上)期末英語(yǔ)試卷含答案
- 珠海金灣區(qū)2023-2024學(xué)年七年級(jí)上學(xué)期期末數(shù)學(xué)達(dá)標(biāo)卷(含答案)
- 京東五力模型分析報(bào)告
- XX學(xué)校2024年校長(zhǎng)務(wù)虛會(huì)講話(huà)稿范文
- 大學(xué)英語(yǔ)四級(jí)考試模擬試卷(附答案)
- 廣西壯族自治區(qū)欽州市浦北縣2023-2024學(xué)年七年級(jí)上學(xué)期期末歷史試題
- 法律英語(yǔ) 何家弘編 第四版課文翻譯(1-20課)
- 高級(jí)會(huì)計(jì)師 案例分析第五章 企業(yè)成本管理
評(píng)論
0/150
提交評(píng)論