C语言项目化教程(基于智能制造软件) 教案 项目八任务1一辆汽车的数据显示(结构体变量)_第1页
C语言项目化教程(基于智能制造软件) 教案 项目八任务1一辆汽车的数据显示(结构体变量)_第2页
C语言项目化教程(基于智能制造软件) 教案 项目八任务1一辆汽车的数据显示(结构体变量)_第3页
C语言项目化教程(基于智能制造软件) 教案 项目八任务1一辆汽车的数据显示(结构体变量)_第4页
C语言项目化教程(基于智能制造软件) 教案 项目八任务1一辆汽车的数据显示(结构体变量)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGE课题任务8.1一辆汽车的数据显示(结构体变量)课型讲练授课班级授课时数2教学目标1.熟悉结构体变量定义2.能根据程序要求灵活应用结构体变量教学重点能根据程序要求灵活应用结构体变量教学难点能根据程序要求灵活应用结构体变量学情分析学生已经有了整型、字符型、数组类型得基础。教学效果教后记项目八汽车数据显示(结构体)学习目标知识目标理解结构体的定义。理解结构体变量的定义、引用、初始化。理解结构体数组的定义、引用、初始化。理解指向结构体变量的指针、结构体数组的指针的使用。能力目标能灵活运用结构体类型。能灵活运用结构体变量解决实际问题。能灵活运用结构体数组解决实际问题。任务8.1一辆汽车的数据显示(结构体变量)图8-1程序运行结果8.1.1图8-1程序运行结果。程序运行结果如8-1所示。8.1.2知识储备通过前文,我们学习了变量,数组,字符串等类型,但是我们不能利用这几个类型解决所有的问题。当我们遇到的数据需要包含多种不同的类型时,如包含整型、实型、字符型等,C语言中允许用户建立由不同类型数据组成的组合型的数据结构,它被称为“结构体”。一、结构体类型的定义结构体是一种数据类型,它将互相联系的不同类型的数据组合成了一个整体。定义结构体的语法格式为:struct结构体类型名{数据类型成员名1;数据类型成员名2;…数据类型成员n;};结构体类型和基本类型的区别如下。(1)结构体类型定义中的每一个成员项,表示该结构体的分量(又被称为“域”)。(2)基本数据类型(如double、int、char等)是一个具体的数据类型,一旦定义后,说明的变量就分配了固定的字节,按指定的形式存放。而“结构体类型”只是一个抽象的数据类型,它只表示“由若干个不同数据类型数据项组成的复合类型”,并且由哪些成员项组成,占多少字节等信息。(3)与基本数据类型不同,系统没有预先定义结构体类型,凡是需要使用结构体类型数据的,都必须在程序中先定义后使用。示例1:定义一个结构体类型为birthday,成员包含年、月、日。structbirthday{intyear;intmonth;intday;};示例2:定义一个结构体为student,成员包含学号,姓名,性别,年龄,家庭住址,身高,体重。structstudent{intstuId;intname;charsex(3);intage;charaddress(30);doublehight;doubleweight;};示例3:定义一个结构体为student,成员包含学号、姓名、性别、出生年月(结构体包含年、月、日)、家庭住址。structbirthday{intyear;intmonth;intday;};structstudent{intstuId;intname;charsex(3);structbirthdaybir;charaddress(30);};二、结构体类型变量的定义定义结构体类型主要有以下的3种方法。方法一:先进行结构体类型的定义,再进行结构体变量的定义。示例4:定义两个学生的结构体变量。structstudent{intstuId;charname[9];charsex[3];intage;charaddress[30];doublehight;doubleweight;};studentstu1,stu2;方法二:在定义结构体类型的同时定义结构体变量。其语法格式为:truct结构体类型名{数据类型成员名1;数据类型成员名2;…数据类型成员名n;}结构体变量名表;示例5:定义两个学生的结构体变量。structstudent{intstuId;charname[9];charsex[3];intage;charaddress[30];doublehight;doubleweight;}stu1,stu2;方法三:直接定义结构体类型变量。其语法格式为:struct{数据类型成员名1;数据类型成员名2;…数据类型成员名n;}结构体变量名表示例6:定义两个学生的结构体变量。struct{intstuId;charname[8];charsex[3];intage;charaddress[30];doublehight;doubleweight;}stu1,stu2;注意:方法三与方法二相比较,只是省略了结构体类型名student,因此就不能再定义其他变量的类型。三、结构体类型变量的初始化方法一:structbirthday{intyear;intmonth;intday;};structstu1={1990,12,5};方法二:structbirthday{intyear;intmonth;intday;}stu1={1990,12,5};四、结构体类型变量的引用给结构体赋值有以下3种方法。方法一:当定义结构体时,直接赋值。#include"stdio.h"structbirthday{intyear;intmonth;intday;}stu1={2019,11,20};voidmain(){printf("出生年为%d,月为%d,日为%d",stu1.year,stu1.month,stu1.day);}方法二:先定义结构体,再赋值。#include"stdio.h"structbirthday{intyear;intmonth;intday;};voidmain(){structbirthdaystu1={2019,11,20};printf("出生年为%d,月为%d,日为%d",stu1.year,stu1.month,stu1.day);}方法三:从键盘上输入值。#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);}方法三运行结果如图8-2所示。图8-2赋值方法三运行截图注意:(1)不能将一个结构体作为一个整体进行输入和输出。(2)如果成员本身又属于一个结构体类型,则要用若干个成员运算符。8.1.3典型案例典型案例1:定义一个结构体,名称为发动机(DATA_ENGINE),包含3个成员,发动机状态(Engine_Status)=0、曲轴转速(Crankshaft_Speed)=1500r/min、燃料消耗率(Fuel_Consumption_Rate)=10L,输出发动机的各项数据。代码如下:#include"stdio.h"structDATA_ENGINE{charEngine_Status;intCrankshaft_Speed;doubleFuel_Consumption_Rate;};voidmain(){structDATA_ENGINEDATA_ENGINE01={'0',1500,10.5};printf("发动机的状态为\n");printf("状态%c,曲轴转速%d,燃料消耗率%lf",DATA_ENGINE01.Engine_Status,DATA_ENGINE01.Crankshaft_Speed,DATA_ENGINE01.Fuel_Consumption_Rate);}典型案例1的运行结果如图8-3所示。典型案例2:定义一个结构体,名称为车辆位置(Data_Location),包含3个成员,定位状态(GPS_Status)、经度(Longitude)、纬度(Latitude)。从键盘上输入车辆位置的信息,并输出。代码如下:#include"stdio.h"structData_Location{charGPS_Status;intLongitude;intLatitude;};voidmain(){structData_LocationData_Location1={'0',150,52};printf("车辆位置为%c,经度为%d,纬度为%d",Data_Location1.GPS_Status,Data_Location1.Longitude,Data_Location1.Latitude);}典型案例2的运行结果如图8-4所示。 图8-3典型案例1的运行结果 图8-4典型案例2的运行结果8.1.4任务分析与实践算法分析如下。(1)分析定义一个结构体(Truct),包含了个成员车牌号(Plate_Number)、车辆识别码(VIN)、载重吨数(Load)。(2)定义结构体变量。(3)分别输入成员信息。(4)输出卡车信息。代码如下:#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("载重吨数");scanf("%d",&info.Load);printf("货车的信息为\n");printf("车牌号%s\n",info.Plate_Number);printf("车辆识别码%s\n",info.VIN);printf("载重吨数%d\n",info.Load);}8.1.5巩固练习一、选择题1.下面结构体变量名定义正确的是()。A._ab1 B.1ab C.1_as D.*44ss2.下列说法正确的是()。structbirthday{intyear;intmonth;intday;};A.structbirthday是新创建的结构体类型,但它不是类型名。B.bitthday是结构体变量名。C.year、month、day都是成员名,它们的成员类型都是int类型。D.结构体名和成员名的命名规则不一定遵循C语言标识符的命名规则。3.以下下画线正确的语句是()。structstudent{intnumber;charname[9];charsex[3];inthight;intweight;structbirthdaydate_of_birth;charphone[12];charaddress[30];}________;A.stu1 B.stu C.stu3 D.stu1,stu2,stu34.以下下画线正确的语句是()。________birthday{intyear;intmonth;intday;};A.struct B.strucv C.strcde D.stract5.下列说法错误的是()。structstudent{intnum;charname[20];intscore;};A.struct为结构体关键字 B.student就是结构体的类型名C.num、name、score就是结构体的成员,它们不能是不同类型D.struct、student都为结构体关键字6.下列语句正

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论