c++程序结构体与联合设计

上传人:第*** 文档编号:50096383 上传时间:2018-08-06 格式:PPT 页数:62 大小:1.70MB
返回 下载 相关 举报
c++程序结构体与联合设计_第1页
第1页 / 共62页
c++程序结构体与联合设计_第2页
第2页 / 共62页
c++程序结构体与联合设计_第3页
第3页 / 共62页
c++程序结构体与联合设计_第4页
第4页 / 共62页
c++程序结构体与联合设计_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《c++程序结构体与联合设计》由会员分享,可在线阅读,更多相关《c++程序结构体与联合设计(62页珍藏版)》请在金锄头文库上搜索。

1、C+程序结构体与联合设计主讲内容主讲内容1 结构体类型3 枚举类型4 结构体与联合应用实例2 联合1.1 结构体的定义 结构体与数组类型相似,都是用来存储数 据的多个元素。两者的主要区别为:一个数 组中的所有元素必须属于同一种类型。而 结构体中的元素可以是不同类型的,所以 结构体一般适用于存储具有多种属性的记 录。结构体把相关的不同类型数据“组合”在 一起,作为一个整体来使用。1.1 结构体的定义 比如企业管理程序中“员工”,其员工号、姓 名可以使用字符串描述,年龄可以用整型 描述,工资可以用实型描述,下图表示了 一个拥有四个属性的员工结构体。1.1 结构体的定义 结构体中的不同属性被称作成员

2、。定义一个结构 体类型的格式为: struct 结构体类型名 数据类型名1 成员表列1; 数据类型名2 成员表列2; 数据类型名n 成员表列n; ;1.1 结构体的定义 图中的“员工”结构体类型就可以定义如下: struct Employee / 结构体类型名为 Employee string employeeid; / Employee结构成员1员 工号为字符串 string name; / Employee结构成员2姓名 为字符串 int age; / Employee结构成员3年龄为 整型 double wage; / Employee结构成员4工 资为双精度型;1.1 结构体的定义 关

3、于结构体的定义,需要注意以下几点: (1) struct为定义结构体的关键字,不能省略。 struct后边的“结构体类项名”是所定义的结构体类 型的名字。 (2) 结构体的成员需要用一对大括号括起来,在 最后一个大括号末尾需要分号结尾。 (3) 结构体中不同成员的定义一般写在不同行, 每一行由分号结尾,不同成员的定义也可以写在 同一行,中间由分号隔开。 (4) 结构体中的成员可以为标准的数据类型,也 可以是另一个结构体类型的变量。 1.2 结构体变量的定义和初始化 结构体类型变量的声明方法主要有以下几 种: (1)先定义结构体类型再声明结构体变量 如果使用前边定义的Employee结构体类型

4、进行变量声明,语句为: Employee employee1, employee2; 1.2 结构体变量的定义和初始化 (2)定义结构体类型的同时声明变量 struct Employee string employeeid; string name; int age; double wage; employee1, employee2;1.2 结构体变量的定义和初始化 (3)直接声明结构体类型变量 struct string employeeid; string name; int age; double wage; employee1, employee2; 这种方法直接声明了结构体类型变量

5、而没有给出结 构体类型名,此时在当前程序中其他地方不能再使 用该结构体声明变量。 1.2 结构体变量的定义和初始化 声明结构体类型变量时可以同时指定其成员的初始值, 这称作结构体变量的初始化。 使用第(1)种结构体变量声明方式,其初始化过程如下: Employee employee1=“20100001”, “王军”, 25, 2100.5; 使用第(2)种结构体声明方式,其初始化过程如下: struct Employee string employeeid; string name; int age; double wage; employee1=“20100001”, “王军”, 25,

6、2100.5;1.3 结构体变量的引用 引用结构体变量一般指引用该结构体变量的成 员。结构体变量成员的引用格式为: 结构体变量名.成员名 其中“.”为成员访问运算符(member access operator),在C+的所有运算符中与圆括号运 算符“()”、下标运算符“ ”同属最高优先级别。 如给结构体变量employee1的成员employeeid 赋值可以写成以下方式: employee1. employeeid = “20100001”;1.3 结构体变量的引用 【例7.1】使用结构体保存员工的相关信息。 #include #include using namespace std; s

7、truct Date /定义一个结构体类型Date int month; int day; int year; struct Employee /定义一个结构体类型Employee string employeeid; string name; int age; double wage; Date worktime; employee1=“20100001“, “王军“, 25, 2100.5, 2, 20, 2010;1.3 结构体变量的引用 int main() Employee employee2; employee2.employeeid = “20100002“; employee2

8、.name = “李明“; employee2.age = 28; employee2.wage = 3500.5; employee2.worktime.month = 3; employee2.worktime.day = 15; employee2.worktime.year = 2010; cout #include using namespace std; struct Employee /定义一个结构体类型Employee string employeeid; string name; int age; double wage; ; int main() int i; float

9、sumwage,avewage; Employee employee3 = “20100001“,“王军“, 25, 2010.5,1.4 结构体数组 “20100002“,“李明“, 24, 2310.5, “20100003“,“刘云“, 26, 2910.5; sumwage = 0; for(i=0;i #include using namespace std; struct Date /定义一个结构体类型Date int month; int day; int year;1.5 结构体与函数 struct Employee /定义一个结构体类型 Employee string emp

10、loyeeid; string name; int age; double wage; Date worktime; employee1=“20100001“, “王军“, 25, 2100.5, 2, 20, 2010;1.5 结构体与函数 void printemployee(Employee employee) /参数 为Employee结构类型变量 cout #include using namespace std; struct Employee /定义一个结构体类型Employee string employeeid; string name; int age; double wa

11、ge; employee1=“20100001“, “王军“, 25, 2100.5; int main() Employee *p; p = 1.6 结构体指针 coutnameemployeeidnameagewage成员名; 当采用第一种方式时,(*结构体指针变量名 )两边的括号必须保留 1.6 结构体指针 (2) 结构体指针变量在程序中必须指向某一结构体 变量,然后才能使用指针 给结构体变量的各个成员赋值。如以下使用方式 不正确: Employee *p; (*p).employeeid = “20100002“; 当定义了该结构体指针后,指针的类型虽然是结 构体类型,但是还没有完成初

12、始化,还没有在内 存中分配结构体变量所占的内存空间,应当首先 让结构体指针变量p指向某一已经定义的结构体变 量 1.6 结构体指针 思考:把例7.3改成使用结构体变量指针作 为函数参数。1.7 结构体与链表 链表(linked list)一般由结构体变量构成,链表中 存储的信息保存在结构体变量的成员中。以下为 一个表示链表的结构体类型的定义方式: struct Employee string name; double wage; Employee *next; ; 以上代码定义了结构体类型Employee,它有三个 成员,前两个表示员工姓名和工资,最后一个成 员是一个结构体指针变量next,它

13、所指向的结构 体变量也是Employee类型。1.7 结构体与链表 下图显示了一个链表结构。 最左边有一个指针变量,指向链表中的第一个结 构体变量,表示链表的开始,用head来表示。 每一个块状部分代表链表中的一个基本组成部分 ,一般称作结点(node)。每个结点由三部分组成 ,分别对应结构体中的三个成员,其中最后一个 成员为指针,指针的值为下一个结构体变量的起 始地址,即指向链表中的下一个结点。 链表中最后一个结点的最后一个成员为一个空指 针,表示链表结束。在C+中由“NULL”来表示。 1.7 结构体与链表 【例7.8】建立一个表示员工信息的简单链表。 #include #include

14、using namespace std; struct Employee string name; double wage; Employee *next; ; int main() Employee employee1,employee2,employee3; Employee *head, *p; employee1.name = “王军“; employee1.wage = 2100.5;1.7 结构体与链表 employee1.next = employee2.name = “李明“; employee2.wage = 3500.5; employee2.next = employee3.name = “刘云“; employee3.wage = 2810.5; employee3.next = NULL; head = p = head; while(p!=NULL)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件 > 初中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号