版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言程序設(shè)計項目八汽車數(shù)據(jù)顯示(結(jié)構(gòu)體)C語言程序設(shè)計項目八
汽車數(shù)據(jù)顯示(結(jié)構(gòu)體)C語言程序設(shè)計理解結(jié)構(gòu)體的定義理解結(jié)構(gòu)體變量的定義、引用、初始化理解結(jié)構(gòu)體數(shù)組的定義、引用、初始化理解指向結(jié)構(gòu)體變量的指針、結(jié)構(gòu)體數(shù)組的指針的使用知識目標能靈活運用結(jié)構(gòu)體類型能靈活運用結(jié)構(gòu)體變量解決實際問題能靈活運用結(jié)構(gòu)體數(shù)組解決實際問題能力目標項目八項目八01
一輛汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體變量)02多輛汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03多輛汽車數(shù)據(jù)的間接顯示(結(jié)構(gòu)體指針)引入:
在日常生活中,我們的很多數(shù)據(jù)需要包含多種數(shù)據(jù)類型,那么以前的數(shù)據(jù)格式就不是很合適了,這個時候我們需要有新的數(shù)據(jù)類型—結(jié)構(gòu)體01知識儲備C語言程序設(shè)計
(2)行進中的分叉路口任務(wù)目標
從鍵盤輸入一輛貨車的信息包含車牌號,車輛識別碼,載重噸數(shù),并輸出顯示。知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉一、結(jié)構(gòu)體類型的定義
結(jié)構(gòu)體是一種數(shù)據(jù)類型,它將互相聯(lián)系的不同類型的數(shù)據(jù)組合成了一個整體。一般格式為struct結(jié)構(gòu)體類型名{
數(shù)據(jù)類型成員名1;數(shù)據(jù)類型成員名2;
…
數(shù)據(jù)類型成員n;};示例1:定義一個結(jié)構(gòu)體類型為birthday,成員包含年、
月、日。structbirthday{
intyear;
intmonth;
intday;};知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉一、結(jié)構(gòu)體類型的定義structstudent{intsno;
intname;
charsex[3];intage;charaddress[30];doublehight;doubleweight;};示例2:定義一個結(jié)構(gòu)體為student,成員包含學(xué)號,姓名,性別,
年齡,家庭住址,身高,體重。知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉一、結(jié)構(gòu)體類型的定義示例3:定義一個結(jié)構(gòu)體為student,成員包含學(xué)號,姓名,性別,出生年月(結(jié)構(gòu)體包含年、月、日),家庭住址。structbirthday{intyear;
intmonth;
intday;};structstudent{intstuId;
intname;
charsex[3];intage;charaddress[30];doublehight;doubleweight;
structbirthdayli;};知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉一、結(jié)構(gòu)體類型的定義注意結(jié)構(gòu)體類型和基本類型的區(qū)別:①結(jié)構(gòu)體類型定義中的每一個成員項,表示該結(jié)構(gòu)體的分量或稱“域”。②基本數(shù)據(jù)類型(如double,int,char等)是一個具體的數(shù)據(jù)類型,一旦定義后說明的變量就分配了固定的字節(jié),按指定的形式存放。而“結(jié)構(gòu)體類型”只是一個抽象的數(shù)據(jù)類型,它只表示“由若干個不同數(shù)據(jù)類型數(shù)據(jù)項組成的復(fù)合類型”,它由哪些成員項組成,占多少字節(jié)等信息。③與基本數(shù)據(jù)類型不同,系統(tǒng)沒有預(yù)先定義結(jié)構(gòu)體類型,凡需使用結(jié)構(gòu)體類型數(shù)據(jù)的,都必須在程序中先行加以定義。知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉二、結(jié)構(gòu)體類型變量的定義方法一:先進行結(jié)構(gòu)體類型的定義,然后進行結(jié)構(gòu)體變量的定義示例4:定義兩個學(xué)生的結(jié)構(gòu)體變量structstudent{intstuId;charname[9];charsex[3];intage;charaddress[30];doublehight;doubleweight;};studentstudentstu1,stu2;知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉二、結(jié)構(gòu)體類型變量的定義方法二:在定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量示例4:定義兩個學(xué)生的結(jié)構(gòu)體變量一般形式為:truct結(jié)構(gòu)體類型名{
數(shù)據(jù)類型
成員名1;
數(shù)據(jù)類型
成員名2;…
數(shù)據(jù)類型
成員名n;}結(jié)構(gòu)體變量名表;知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉二、結(jié)構(gòu)體類型變量的定義示例5:定義兩個學(xué)生的結(jié)構(gòu)體變量structstudent{intstuId;charname[9];charsex[3];intage;charaddress[30];doublehight;doubleweight;}stu1,stu2;方法二:在定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體變量知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉三、結(jié)構(gòu)體類型變量的初始化方法一:structbirthday{intyear;
intmonth;
intday;};structbirthdaystu1={1990,12,5};方法二:structbirthday{intyear;
intmonth;
intday;}stu1={1990,12,5};知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉四、結(jié)構(gòu)體類型變量的引用1.定義結(jié)構(gòu)體時,直接賦值#include"stdio.h"structbirthday{ intyear; intmonth; intday;}stu1={2019,11,20};voidmain(){ printf("出生年為%d,月為%d,日為%d",stu1.year,stu1.month,stu1.day);}知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉四、結(jié)構(gòu)體類型變量的引用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);}知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉四、結(jié)構(gòu)體類型變量的引用3.從鍵盤上輸入值#include"stdio.h"structbirthday{ intyear; intmonth; intday;};voidmain(){structbirthdaystu1; printf("請輸入出生的年"); scanf("%d",&stu1.year); printf("請輸入出生的月"); scanf("%d",&stu1.month); printf("請輸入出生的日"); scanf("%d",&stu1.day); printf("出生年為%d,月為%d,日為%d",stu1.year,stu1.month,stu1.day);}注意:1.不能將一個結(jié)構(gòu)體作為一個整體進行輸入和輸出.2.如果成員本身又屬一個結(jié)構(gòu)體類型,則要用若干個成員運算符。任務(wù)分析與實踐C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉算法分析分析定義一個結(jié)構(gòu)體(Truct)有三個成員車牌號(Plate_Number)、車輛識別碼(VIN)、載重(Load)定義結(jié)構(gòu)體變量分別輸入成員信息輸出卡車信息從鍵盤輸入一輛貨車的信息包含車牌號,車輛識別碼,載重噸數(shù),并輸出顯示。任務(wù)分析與實踐C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉程序代碼#include"stdio.h"structTruct{charPlate_Number[12];charVIN[18];intLoad;};#include"stdio.h"voidmain(){ structTructinfo; printf("請輸入貨車的信息\n"); printf("車牌號"); scanf("%s",info.Plate_Number); printf("車輛識別碼"); scanf("%s",info.VIN); printf("載重噸數(shù)"); scanf("%d",&info.Load); printf("卡車的信息為\n"); printf("車牌號%s\n",info.Plate_Number); printf("車輛識別碼%s\n",info.VIN); printf("載重噸數(shù)%d\n",info.Load);}THANKS!C語言程序設(shè)計項目八汽車數(shù)據(jù)顯示(結(jié)構(gòu)體)C語言程序設(shè)計項目八項目八01
一輛卡車的數(shù)據(jù)顯示(結(jié)構(gòu)體變量02多個汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03多個汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體指針)引入:
在日常生活中,我們的很多數(shù)據(jù)需要包含多種數(shù)據(jù)類型,那么以前的數(shù)據(jù)格式就不是很合適了,這個時候我們需要有新的數(shù)據(jù)類型—結(jié)構(gòu)體01項目八任務(wù)一C語言程序設(shè)計
(2)行進中的分叉路口問題的提出
在實際生活中,車量有很多數(shù)據(jù)比如發(fā)動機狀態(tài),曲軸轉(zhuǎn)速、燃料消耗率、定位等,我們需要按照車輛進行數(shù)據(jù)統(tǒng)計,那我們看看我們?nèi)绾谓鉀Q這些問題。項目八任務(wù)一C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例1定義一個結(jié)構(gòu)體名稱為發(fā)動機(DATA_ENGINE),包含三個成員,發(fā)動機狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示發(fā)動機的各項。算法過程:定義變量定義結(jié)構(gòu)體采用先定義結(jié)構(gòu)體再定義結(jié)構(gòu)體變量的方式輸出項目八任務(wù)一C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例1定義一個結(jié)構(gòu)體名稱為發(fā)動機(DATA_ENGINE),包含三個成員,發(fā)動機狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示發(fā)動機的各項。#include"stdio.h"structDATA_ENGINE{charEngine_Status;intCrankshaft_Speed;doubleFuel_Consumption_Rate;};voidmain(){structDATA_ENGINEDATA_ENGINE01={'0',1500,10.5};printf("發(fā)動機的狀態(tài)為\n");printf("狀態(tài)%c,曲軸轉(zhuǎn)速%d,燃料消耗率%lf",DATA_ENGINE01.Engine_Status,DATA_ENGINE01.Crankshaft_Speed,DATA_ENGINE01.Fuel_Consumption_Rate);}項目八任務(wù)一C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例2定義一個結(jié)構(gòu)體名稱為車輛位置(Data_Location),包含三個成員,定位狀態(tài)(GPS_Status),經(jīng)度(Longitude)緯度(Latitude),從鍵盤輸入車輛位置的信息,并輸出。算法過程:1. 定義結(jié)構(gòu)體2. 定義結(jié)構(gòu)體變量3. 輸入變量4. 輸出項目八任務(wù)一C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例2定義一個結(jié)構(gòu)體名稱為發(fā)動機(DATA_ENGINE),包含三個成員,發(fā)動機狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示發(fā)動機的各項。#include"stdio.h"structData_Location{ charGPS_Status; intLongitude; intLatitude;};voidmain(){printf("車輛位置為%c,經(jīng)度為%d,緯度為%d",Data_Location1.GPS_Status,Data_Location1.Longitude,Data_Location1.Latitude);}項目八任務(wù)一C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例3已知一名同學(xué)的信息如下圖所示,從鍵盤上輸入學(xué)生的信息,并輸出。算法過程:1. 定義結(jié)構(gòu)體2. 定義結(jié)構(gòu)體變量3. 輸入變量4. 輸出學(xué)號姓名性別出生日期身高(cm)電話年月日12345561李麗女200511316013790123444項目八任務(wù)一C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例3已知一名同學(xué)的信息如下圖所示,從鍵盤上輸入學(xué)生的信息,并輸出。#include"stdio.h"structbirthday{intyear;intmonth;intday;};學(xué)號姓名性別出生日期身高(cm)電話年月日12345561李麗女200511316013790123444structstudent{charstuId[11];charname[9];charsex[3];structbirthdaybir;inthight;chartel[11];};voidmain(){structstudentstu1={"12345561","李麗","女",{2005,1,13},160,};printf("學(xué)生信息為");printf("學(xué)號:%s\n",stu1.stuId);printf("姓名:%s\n",);printf("性別:%s\n",stu1.sex);printf("出生:%d年%d月%d日\n",stu1.bir.year,stu1.bir.month,stu1.bir.day);printf("身高:%d\n",stu1.hight);printf("電話:%s\n",stu1.tel);}C語言程序設(shè)計項目八汽車數(shù)據(jù)顯示(結(jié)構(gòu)體)C語言程序設(shè)計項目八項目八01
一輛卡車的數(shù)據(jù)顯示(結(jié)構(gòu)體變量02
多個汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03多個汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體指針)引入:當(dāng)需要的同類型的結(jié)構(gòu)體變量超過2個及以上時,C語言可以和之前一樣引入數(shù)組的概念,此時引入的就是結(jié)構(gòu)體數(shù)組。02知識儲備C語言程序設(shè)計
(2)行進中的分叉路口任務(wù)目標
從鍵盤輸入三輛貨車的信息包含車牌號,車輛識別碼,載重噸數(shù),并輸出顯示。知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法一:先定義結(jié)構(gòu)體類型,再定義結(jié)構(gòu)體數(shù)組struct結(jié)構(gòu)體名
{成員類型成員名1;
成員類型成員名2;
成員類型成員名3;…
成員類型成員名n;};
struct結(jié)構(gòu)體名數(shù)組[容量];
例如:
structstudent{intnumber;charname[9];charsex[3];};structstudentstu[5];//定義結(jié)構(gòu)體數(shù)組知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法二:定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體數(shù)組structstudent{intnumber;charname[9];charsex[3];}stu[10];知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法三:定義無名結(jié)構(gòu)體類型的同時定義結(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ù)分析與實踐C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉算法分析分析定義一個結(jié)構(gòu)體(Truct)有三個成員車牌號(Plate_Number)、車輛識別碼(VIN)、載重(Load)定義結(jié)構(gòu)體變量分別輸入成員信息輸出卡車信息從鍵盤輸入三輛貨車的信息包含車牌號,車輛識別碼,載重噸數(shù),并輸出顯示。任務(wù)分析與實踐C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉程序代碼#include"stdio.h"structTruct{charPlate_Number[12];charVIN[18];intLoad;};voidmain(){structTructTruct[3]; inti;printf("請輸入貨車的信息\n");for(i=0;i<3;i++){printf("車牌號");scanf("%s",Truct[i].Plate_Number);printf("車輛識別碼");scanf("%s",Truct[i].VIN);printf("載重噸數(shù)");scanf("%d",&Truct[i].Load);}printf("卡車的信息為\n");for(i=0;i<3;i++){printf("車牌號%s\n",Truct[i].Plate_Number);printf("車輛識別碼%s\n",Truct[i].VIN);printf("載重噸數(shù)%d\n",Truct[i].Load);}}C語言程序設(shè)計項目八汽車數(shù)據(jù)顯示(結(jié)構(gòu)體)C語言程序設(shè)計項目八項目八01
一輛卡車的數(shù)據(jù)顯示(結(jié)構(gòu)體變量02
多個汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03多個汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體指針)引入:當(dāng)需要的同類型的結(jié)構(gòu)體變量超過2個及以上時,C語言可以和之前一樣引入數(shù)組的概念,此時引入的就是結(jié)構(gòu)體數(shù)組。02知識儲備C語言程序設(shè)計
(2)行進中的分叉路口任務(wù)目標
從鍵盤輸入三輛貨車的信息包含車牌號,車輛識別碼,載重噸數(shù),并輸出顯示。知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法一:先定義結(jié)構(gòu)體類型,再定義結(jié)構(gòu)體數(shù)組struct結(jié)構(gòu)體名
{成員類型成員名1;
成員類型成員名2;
成員類型成員名3;…
成員類型成員名n;};
struct結(jié)構(gòu)體名數(shù)組[容量];
例如:
structstudent{intnumber;charname[9];charsex[3];};structstudentstu[5];//定義結(jié)構(gòu)體數(shù)組知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法二:定義結(jié)構(gòu)體類型的同時定義結(jié)構(gòu)體數(shù)組structstudent{intnumber;charname[9];charsex[3];}stu[10];知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉一、結(jié)構(gòu)體數(shù)組的定義方法三:定義無名結(jié)構(gòu)體類型的同時定義結(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ù)分析與實踐C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉算法分析分析定義一個結(jié)構(gòu)體(Truct)有三個成員車牌號(Plate_Number)、車輛識別碼(VIN)、載重(Load)定義結(jié)構(gòu)體變量分別輸入成員信息輸出卡車信息從鍵盤輸入一輛貨車的信息包含車牌號,車輛識別碼,載重噸數(shù),并輸出顯示。任務(wù)分析與實踐C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉程序代碼#include"stdio.h"structTruct{charPlate_Number[12];charVIN[18];intLoad;}Truct[3];voidmain(){structTructTruct[3]; inti;printf("請輸入貨車的信息\n");for(i=0;i<3;i++){printf("車牌號");scanf("%s",Truct[i].Plate_Number);printf("車輛識別碼");scanf("%s",Truct[i].VIN);printf("載重噸數(shù)");scanf("%d",&Truct[i].Load);}printf("卡車的信息為\n");for(i=0;i<3;i++){printf("車牌號%s\n",Truct[i].Plate_Number);printf("車輛識別碼%s\n",Truct[i].VIN);printf("載重噸數(shù)%d\n",Truct[i].Load);}}項目八任務(wù)二C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例1定義一個結(jié)構(gòu)體名稱為發(fā)動機(DATA_ENGINE),包含三個成員,發(fā)動機狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示三輛汽車發(fā)動機的各項。算法過程:定義變量定義結(jié)構(gòu)體采用先定義結(jié)構(gòu)體再定義結(jié)構(gòu)體變量的方式輸出項目八任務(wù)二C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例1定義一個結(jié)構(gòu)體名稱為發(fā)動機(DATA_ENGINE),包含三個成員,發(fā)動機狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示三輛汽車發(fā)動機的各項。#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ā)動機狀態(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);}項目八任務(wù)二C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例2定義一個結(jié)構(gòu)體名稱為車輛位置(Data_Location),包含三個成員,定位狀態(tài)(GPS_Status),經(jīng)度(Longitude)緯度(Latitude),從鍵盤輸入四車輛位置的信息,并輸出。算法過程:1. 定義結(jié)構(gòu)體2. 定義結(jié)構(gòu)體變量3. 輸入變量4. 輸出項目八任務(wù)二C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例2定義一個結(jié)構(gòu)體名稱為車輛位置(Data_Location),包含三個成員,定位狀態(tài)(GPS_Status),經(jīng)度(Longitude)緯度(Latitude),從鍵盤輸入三車輛位置的信息,并輸出。for(i=0;i<3;i++){printf("請輸入車輛狀態(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("車輛狀態(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語言程序設(shè)計項目八汽車數(shù)據(jù)顯示(結(jié)構(gòu)體)C語言程序設(shè)計項目八項目八01
一輛卡車的數(shù)據(jù)顯示(結(jié)構(gòu)體變量02
多個汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03多個汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體指針)引入:
在日常生活中,我們的很多數(shù)據(jù)需要包含多種數(shù)據(jù)類型,那么以前的數(shù)據(jù)格式就不是很合適了,這個時候我們需要有新的數(shù)據(jù)類型—結(jié)構(gòu)體01項目八任務(wù)二C語言程序設(shè)計
(2)行進中的分叉路口問題的提出
在實際生活中,車量有很多數(shù)據(jù)比如發(fā)動機狀態(tài),曲軸轉(zhuǎn)速、燃料消耗率、定位等,我們需要按照車輛進行數(shù)據(jù)統(tǒng)計,那我們看看我們?nèi)绾谓鉀Q這些問題。項目八任務(wù)二C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例1定義一個結(jié)構(gòu)體名稱為發(fā)動機(DATA_ENGINE),包含三個成員,發(fā)動機狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示三輛汽車發(fā)動機的各項。算法過程:定義變量定義結(jié)構(gòu)體采用先定義結(jié)構(gòu)體再定義結(jié)構(gòu)體變量的方式輸出項目八任務(wù)二C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例1定義一個結(jié)構(gòu)體名稱為發(fā)動機(DATA_ENGINE),包含三個成員,發(fā)動機狀態(tài)(Engine_Status)=0,曲軸轉(zhuǎn)速(Crankshaft_Speed)=1500r/min,燃料消耗率(Fuel_Consumption_Rate)=10L,顯示三輛汽車發(fā)動機的各項。#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ā)動機狀態(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);}項目八任務(wù)二C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例2定義一個結(jié)構(gòu)體名稱為車輛位置(Data_Location),包含三個成員,定位狀態(tài)(GPS_Status),經(jīng)度(Longitude)緯度(Latitude),從鍵盤輸入三車輛位置的信息,并輸出。算法過程:1. 定義結(jié)構(gòu)體2. 定義結(jié)構(gòu)體變量3. 輸入變量4. 輸出項目八任務(wù)二C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉典型案例2定義一個結(jié)構(gòu)體名稱為車輛位置(Data_Location),包含三個成員,定位狀態(tài)(GPS_Status),經(jīng)度(Longitude)緯度(Latitude),從鍵盤輸入三車輛位置的信息,并輸出。for(i=0;i<3;i++){printf("請輸入車輛狀態(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("車輛狀態(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語言程序設(shè)計項目八汽車數(shù)據(jù)顯示(結(jié)構(gòu)體)C語言程序設(shè)計項目八項目八01
一輛卡車的數(shù)據(jù)顯示(結(jié)構(gòu)體變量02多個汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體數(shù)組)03
多個汽車的數(shù)據(jù)顯示(結(jié)構(gòu)體指針)知識儲備C語言程序設(shè)計
(2)行進中的分叉路口任務(wù)目標
從鍵盤輸入三輛貨車的信息包含車牌號,車輛識別碼,載重噸數(shù),并輸出顯示。知識儲備C語言程序設(shè)計
(2)行進中的分叉路口一、概念一個結(jié)構(gòu)體變量的指針就是該變量所占據(jù)的內(nèi)存段的起始地址;設(shè)一個指針變量,用來指向一個結(jié)構(gòu)體變量,此時該指針變量的值是結(jié)構(gòu)體變量的起始地址。如圖所示。結(jié)構(gòu)體變量的指針和指向結(jié)構(gòu)體變量的指針變量知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉二、.示例voidmain(){structstudent*p,stu1={001,"李梅","女",1998,12,3,};p=&stu1;//指向結(jié)構(gòu)體變量的指針變量pprintf("-------------------------------------------------------------------\n");printf("學(xué)號姓名性別出生日期電話\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];};知識儲備C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉三、引用結(jié)構(gòu)體變量中成員有三種形式示例3:定義一個結(jié)構(gòu)體為student,成員包含學(xué)號,姓名,性別,出生年月(結(jié)構(gòu)體包含年、月、日),家庭住址。①結(jié)構(gòu)體變量名·成員名②(*p)·成員名③p->成員名其中:“.”是成員運算符?!?>”是指向運算符。“p”是指向結(jié)構(gòu)體數(shù)據(jù)的指針變量。任務(wù)分析與實踐C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉算法分析分析定義一個結(jié)構(gòu)體(Truct)有三個成員車牌號(Plate_Number)、車輛識別碼(VIN)、載重(Load)定義結(jié)構(gòu)體變量分別輸入成員信息輸出卡車信息從鍵盤輸入一輛貨車的信息包含車牌號,車輛識別碼,載重噸數(shù),并輸出顯示。任務(wù)分析與實踐C語言程序設(shè)計
(2)行進中的分叉路口(1)樹生長程中的分叉程序代碼#include"stdio.h"
structTruct{ charPlate_Number[12]; charVIN[18]; intLoad;}Truct[3],*p;
intmain(void){ structTructTruct[3]; structTruct*q; printf("請輸入貨車的信息\n");
for(p=Truct;p<Truct+3;p++){printf("車牌號"); scanf("%s",p->Plate_Number); printf("車輛識別碼"); scanf("%s",p->VIN); printf("載重噸數(shù)"); scanf("%d",&p->Load); } printf("卡車的信息為\n"); for(q=Truct;q<Truct+3;q++) { printf("車牌號%s\n",q->Plate_Number); printf("車輛識別碼%s\
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技園區(qū)門衛(wèi)招聘協(xié)議
- 醫(yī)藥企業(yè)運營總監(jiān)聘用協(xié)議
- 市場部個人培訓(xùn)小結(jié)
- 旅游設(shè)施建設(shè)合同樣本
- 傳統(tǒng)產(chǎn)業(yè)用地預(yù)審管理辦法
- 移動通信公司安全管理實施辦法
- 2022年大學(xué)物理學(xué)專業(yè)大學(xué)物理二期末考試試卷A卷-含答案
- 2022年大學(xué)機械專業(yè)大學(xué)物理二期末考試試卷D卷-含答案
- 互聯(lián)網(wǎng)企業(yè)協(xié)議休假管理辦法
- 2022年大學(xué)航空航天專業(yè)大學(xué)物理二月考試題D卷-含答案
- 中國食物成分表2018年(標準版)第6版
- 科普類公園設(shè)計方案
- 小學(xué)英語就業(yè)能力展示
- “安全風(fēng)險分級管控”工作制度(2篇)
- 心肌病和心肌炎課件
- 《艾滋病毒》課件
- 平陽港區(qū)西灣作業(yè)區(qū)防浪導(dǎo)流堤工程海域使用論證報告書
- 管道保溫計算公式
- 錄音行業(yè)的就業(yè)生涯發(fā)展報告
- 報廢汽車拆解工藝流程
- 生化報告解讀
評論
0/150
提交評論