C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件) 課件 項(xiàng)目八 汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)_第1頁(yè)
C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件) 課件 項(xiàng)目八 汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)_第2頁(yè)
C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件) 課件 項(xiàng)目八 汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)_第3頁(yè)
C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件) 課件 項(xiàng)目八 汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)_第4頁(yè)
C語(yǔ)言項(xiàng)目化教程(基于智能制造軟件) 課件 項(xiàng)目八 汽車(chē)數(shù)據(jù)顯示(結(jié)構(gòu)體)_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論