C程序设计教案(第8章第1次)

合集下载

课件谭浩强C++程序设计第8章(带特殊条款)

课件谭浩强C++程序设计第8章(带特殊条款)

课件谭浩强C++程序设计第8章(带特殊条款)课件:谭浩强《C++程序设计》第8章概述:第8章主要介绍了C++中的继承和多态性。

继承是面向对象编程中的一种重要特性,它允许我们创建一个新的类(称为派生类),该类继承另一个类(称为基类)的属性和方法。

多态性则允许我们使用一个接口来定义多种不同类型的对象的行为。

本章将详细介绍这两个概念,并通过实例来演示它们的应用。

一、继承的概念与定义1.继承的基本概念继承是面向对象编程中的一种机制,允许我们创建一个新的类(派生类),该类继承另一个类(基类)的属性和方法。

派生类可以添加新的属性和方法,也可以覆盖基类的方法。

2.继承的定义在C++中,继承通过使用冒号和访问权限关键字(如public、protected和private)来定义。

例如,如果我们要创建一个派生类Student,它继承自基类Person,可以如下定义:cppclassPerson{public:stringname;intage;};classStudent:publicPerson{public:stringstudentId;};二、继承的访问权限1.公共继承(public)当一个类使用public关键字进行继承时,基类的public成员在派生类中仍然是public,protected成员在派生类中仍然是protected。

2.保护继承(protected)当一个类使用protected关键字进行继承时,基类的public和protected成员在派生类中都变为protected。

3.私有继承(private)当一个类使用private关键字进行继承时,基类的public和protected成员在派生类中都变为private。

三、继承中的构造函数和析构函数1.构造函数的继承在派生类中,构造函数会调用基类的构造函数,然后执行派生类自己的构造函数。

如果基类有默认构造函数,则可以省略基类构造函数的调用。

11803_谭浩强《C程序设计》课件第8章PPT课件

11803_谭浩强《C程序设计》课件第8章PPT课件
03
如何处理文件读写错误?
2024/1/27
04
在进行文件读写操作时,需要判断返回值是否成功,如果 失败则需要使用perror()等函数输出错误信息。
05
如何实现文件的追加写入?
06
在使用fopen()函数打开文件时,使用追加模式"a"或"a+" 可以实现文件的追加写入。
29
拓展延伸:高级文件操作技术探讨
文本文件的读写操作
使用fscanf()、fprintf()等函数进行文 本文件的读写操作。
2024/1/27
文本文件的打开与关闭
使用fopen()函数打开文本文件,使 用fclose()函数关闭文本文件。
文本文件的定位与修改
使用fseek()、ftell()等函数进行文本 文件的定位与修改。
24
二进制文件操作实例
学习要求
认真听讲,理解文件操作的基本概念 和原理;多动手实践,通过编写程序 加深对文件操作的理解和掌握;注意 细节和规范,养成良好的编程习惯。
6
02
文件类型与指针
2024/1/27
7
标准文件类型
2024/1/27
文本文件
存储字符数据,每个字符对应一个ASCII码,Байду номын сангаас于阅读和编辑。
二进制文件
存储二进制数据,适用于非字符数据或需要高效存储和读取的场 景。
write
将指定的数据块写入到指定的文件描述符中(低级I/O函数)。
2024/1/27
14
04
随机访问文件内容
2024/1/27
15
文件定位函数
01
fseek()
用于设置文件位置指针,可以实 现在文件中的任意位置进行读写 操作。

精品课件-C程序设计(第三版)(荣政)-第8章

精品课件-C程序设计(第三版)(荣政)-第8章

第八章 指针
指针类型是对所有类型的指针的总称,指针的类型是指 针所指对象的数据类型。例如,pc是指向字符变量的指针, 简称字符指针。字符指针是基本类型的指针之一,除各种基 本类型之外,允许说明指向数组的指针、指向函数的指针、 指向结构体和共用体的指针以及指向各类指针的指针。在C 语言中只有指针被允许用来存放地址的值,其它类型的变量 只能存放该类型的数据。(很多书中用指针一词来指地址值, 或用指针变量来代表指针,阅读中应注意其具体含义。)
例8.2中指向整型的指针point在定义之后直接使用了,这 两条语句在编译时不会出现语法错误,但在使用时却几乎肯定 会出问题。表面上看,scanf()函数的参数要求给出的是地址, 而point的值就代表的是地址,但是point的值究竟是多少,也 就是说point究竟指向哪里,我们无法得知,在这种情况下就 对point指向的单元进行输入操作,将冲掉point指向的单元的 原有内容,假如这个单元是操作系统的所在处,就破坏了操作 系统,显然是一件危险的事。
为了理解指针的概念,程序员要有关于计算机如何在存储 器中存储信息的基本知识。以下简单地介绍个人计算机中存储 器存储的情况。
第八章 指针
个人计算机中CPU可以直接访问的,用来存储程序和数据 的记忆部件称为内存储器,内存储器由成千上万个顺序存储单 元组成,每个单元由一个惟一的地址标识。给定计算机的存储 器地址范围为从0到所安装的存储器数量的最大值。在计算机 上运行的每一个程序都要使用存储器。例如,操作系统要占用 一些计算机存储空间,每个应用程序也要占用计算机存储空间。 按照面向过程的结构化程序设计方法,程序代码和程序要处理 的数据是分开存储的,所以,一个程序在内存中要占两部分空 间:数据部分和指令代码部分。
第八章 指针

谭浩强《C程序设计》课件第8章-讲义

谭浩强《C程序设计》课件第8章-讲义
在C++中,所谓多态性(polymorphism)是指: 由继 承而产生的相关的不同的类,其对象对同一消息会 作出不同的响应。多态性是面向对象程序设计的一 个重要特征,能增加程序的灵活性。
8.1.2 面向对象程序设计的特点
传统的面向过程程序设计是围绕功能进行的,用一 个函数实现一个功能。所有的数据都是公用的,一 个函数可以使用任何一组数据,而一组数据又能被 多个函数所使用(见图8.3)。
图8.3
面向对象程序设计采取的是另外一种思路。它面对 的是一个个对象。实际上,每一组数据都是有特定 的用途的,是某种操作的对象。也就是说,一组操 作调用一组数据。
程序设计者的任务包括两个方面: 一是设计所需的
各种类和对象,即决定把哪些数据和操作封装在一 起;二是考虑怎样向有关对象发送消息,以完成所 需的任务。这时他如同一个总调度,不断地向各个 对象发出命令,让这些对象活动起来(或者说激活这 些对象),完成自己职责范围内的工作。各个对象的 操作完成了,整体任务也就完成了。显然,对一个 大型任务来说,面向对象程序设计方法是十分有效 的,它能大大降低程序设计人员的工作难度,减少 出错机会。
精品
谭浩强《C程序设计》课 第8章
第8章 类和对象
8.1 面向对象程序设计方法概述 8.2 类的声明和对象的定义 8.3 类的成员函数 8.4 对象成员的引用 8.5 类的封装性和信息隐蔽 8.6 类和对象的简单应用举例
8.1 面向对象程序设计方法概述
到目前为止,我们介绍的是C++在面向过程的程序设 计中的应用。对于规模比较小的程序,编程者可以 直接编写出一个面向过程的程序,详细地描述每一 瞬时的数据结构及对其的操作过程。但是当程序规 模较大时,就显得力不从心了。C++就是为了解决编 写大程序过程中的困难而产生的。

C语言程序设计教程(电子教案)

C语言程序设计教程(电子教案)
实用文档
学习目标
对C语言有一个概括的了解, 能够编写包含键盘输入、计算和 显示输出等操作的简单C程序。
4
主要内容
• C语言的产生与特点 • 简单C程序的组成 • C语言应用程序开发的基本步骤
5
1.1 C语言的产生及特点
C语言是为了编写系统程序而在1968年开始 研发的计算机高级语言
C语言表达能力强,使用灵活,程序结构清 晰,紧凑,可移植性好
指针 类型
17
基本数据类型说明符
整型:int long
字符型:char 实型:float
double long double
18
2.2 常 量
常量∶在程序运行过程中,其值不能被改 变的量。
一. 不同数制整型常量的表示
例如: 12 :十进制数 12
012 :八进制数 12(等于十进 制数10,用前导符0表示八进制数常量)
计算x+y+z,并将结 8果赋给变量sum
显示变量 sum的值
主函数 main()
一般C程序的组成
【例1-2】采用模块结构,改写例1-1的程序。 add(int x,int y,int z )
{ return(x+y+z);
}
函数add()
调用函数 add()
main() { int x,y,z; printf("Please Input Three Integers:\n "); scanf("%d,%d,%d ",&x,&y,&z);
4. 用‘\’ ’表示字符’ ,‘\”’表示字符”, ‘\\ ’表示字符\ 。
5. 用双引号括起来的字符序列表示字符串常量,其 中最后一个字符是字符串结束符‘\0’,不显式 地表示出来。如:“English” 。

课件谭浩强C程序设计第8章

课件谭浩强C程序设计第8章

指针是C语言中一种特殊的数据类型,用于存储内存地址。

通过指针,可以间接访问和操作内存中的数据。

指针提供了一种灵活且高效的数据访问方式,是C语言的重要特性之一。

01指针变量用于存储内存地址,其类型指明了所指向数据的类型。

02定义指针变量时需指定类型,如int *p表示p是一个指向整型数据的指针。

03指针变量可以进行赋值、比较、算术运算等操作。

数组名是一个常量指针,指向数组的首个元素。

指针与数组在内存中的表示方式相似,因此可以相互转换。

通过指针可以遍历数组,访问数组中的每个元素。

使用指针访问数组可以提高程序的灵活性和效率。

指针与数组03可以对指针进行加减整数操作,以改变指针所指向的内存地址。

例如,`ptr` 或`ptr--` 分别使指针向后或向前移动一个元素的位置。

指针与整数的加减运算通过使用间接引用运算符`*`,可以访问指针所指向的值。

例如,`*ptr` 表示获取`ptr` 所指向的值。

指针的间接引用可以对两个指针进行相减操作,得到它们之间相差的元素个数。

例如,`ptr2 -ptr1` 返回两个指针之间相差的元素个数。

指针的算术比较指针的比较可以使用关系运算符`==`、`!=`、`<`、`>`、`<=`、`>=`对指针进行比较,判断它们是否相等或相对大小。

空指针的判断可以使用`NULL`或`0`来表示空指针,通过比较可以判断一个指针是否为空。

指针的赋值可以使用赋值运算符`=` 将一个指针的值赋给另一个指针,使它们指向相同的内存地址。

例如,`ptr2 = ptr1;`。

指针的初始化在定义指针变量时,可以对其进行初始化,使其指向一个特定的内存地址或空值。

例如,`int *ptr = NULL;` 或`int *ptr = &var;`。

指针的复制可以使用赋值运算符将一个指针的值复制给另一个指针,使它们具有相同的值。

例如,`ptr2 = ptr1;` 之后,`ptr2` 和`ptr1` 将指向相同的内存地址。

《C语言程序设计》谭浩强版教案

《C语言程序设计》谭浩强版教案

《C语言程序设计》教案
单位:湖南理工职业技术学院学院(教研室):风能工程学院工业机器人专业授课教师:周常欣职称:助教
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第29-30 课时
《C语言程序设计》教案
第31-32 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第37-38 课时
《C语言程序设计》教案
第39-40 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案。

C电子教案第8章

C电子教案第8章

第8章预处理命令C程序中可以加入一些预处理命令,其目的是改进程序设计环境,提高编程效率。

这类命令主要包括:宏定义、文件包含和条件编译三种,为了区别一般的C语句,这类命令都以#开头。

8.1 宏定义8.1.1 不带参数的宏定义格式:#define 宏名宏体其中:宏名是一个标识符,宏体是一个表达式字符串。

功能:程序编译时,用宏体代替宏名。

例8.1。

说明:(1) 宏名一般习惯用大写字母表示,以便与变量名相区别。

但这并非规定,也可用小写字母。

(2) 使用宏名代替一个字符串,可以减少程序中重复书写某些字符串的工作量。

(3) 宏定义是用宏名代替一个字符串,也就是作简单的置换,不作正确性检查。

(4) 宏定义不是C语句,不必在行末加分号。

如果加了分号则会连分号一起进行置换。

(5) #define命令出现在程序中函数的外面,宏名的有效范围为定义命令之后到本源文件结束。

通常,#define命令写在文件开头,函数之前,作为文件一部分,在此文件范围内有效。

(6) 可以用#undef命令终止宏定义的作用域。

(7) 在进行宏定义时,可以引用已定义的宏名,可以层层置换。

(8) 对程序中用双括号括起来的字符串内的字符,即使与宏名相同,也不进行置换。

(9) 宏定义是专门用于预处理命令的一个专用名词,它与定义变量的含义不同,只作字符替换,不分配内存空间。

例8.2。

8.1.2 带参数的宏定义格式:#define 宏名(形参表)宏体其中:宏名是一个标识符,宏体是一个带有形参的表达式字符串。

功能:程序编译时,用实参代替形参,再用宏体代替宏名(形参表)。

例8.3。

说明:(1) 对带参数的宏的展开只是将语句中的宏名后面括号内的实参字符串代替#define命令行中的形参。

(2) 在宏定义时,在宏名与带参数的括弧之间不应加空格,否则将空格以后的字符都作为替代字符串的一部分。

8.1.3 带参数的宏与函数的区别(1) 函数调用时,先求出实参表达式的值,然后代入形参。

《C语言程序设计教程》全册教案教学设计

《C语言程序设计教程》全册教案教学设计

《C语言程序设计教程》第一章教案设计【教学目标】1. 理解C语言的发展历程和特点。

2. 掌握C语言的基本语法和结构。

3. 能够编写简单的C语言程序。

【教学内容】1. C语言的发展历程和特点。

2. C语言的基本语法和结构。

3. 简单的C语言程序编写。

【教学步骤】1. 引入C语言的发展历程和特点,让学生了解C语言的重要性和应用领域。

2. 讲解C语言的基本语法和结构,包括变量、数据类型、运算符等。

3. 通过实例讲解如何编写简单的C语言程序,让学生掌握基本的程序结构。

【教学评价】1. 学生能够描述C语言的发展历程和特点。

2. 学生能够掌握C语言的基本语法和结构。

3. 学生能够编写简单的C语言程序。

《C语言程序设计教程》第二章教案设计【教学目标】1. 掌握C语言的变量和数据类型。

2. 理解C语言的运算符和表达式。

3. 能够进行基本的数学运算和逻辑运算。

1. C语言的变量和数据类型。

2. C语言的运算符和表达式。

3. C语言的基本数学运算和逻辑运算。

【教学步骤】1. 讲解C语言的变量和数据类型,让学生掌握如何声明和使用变量。

2. 讲解C语言的运算符和表达式,让学生了解不同运算符的使用方法和优先级。

3. 通过实例讲解如何进行基本的数学运算和逻辑运算,让学生掌握运算符的实际应用。

【教学评价】1. 学生能够正确声明和使用变量。

2. 学生能够理解和使用不同的运算符。

3. 学生能够进行基本的数学运算和逻辑运算。

《C语言程序设计教程》第三章教案设计【教学目标】1. 掌握C语言的控制语句。

2. 理解C语言的条件语句。

3. 能够编写简单的循环程序。

【教学内容】1. C语言的控制语句。

2. C语言的条件语句。

3. C语言的循环语句。

1. 讲解C语言的控制语句,让学生了解如何进行跳转和分支。

2. 讲解C语言的条件语句,让学生掌握如何根据条件进行分支。

3. 通过实例讲解如何使用循环语句编写循环程序,让学生掌握循环的使用方法和退出条件。

《C语言程序设计教程》全册教案教学设计

《C语言程序设计教程》全册教案教学设计

《C语言程序设计教程》全册教案完整版教学设计第一章:C语言概述1.1 教学目标让学生了解C语言的历史和发展背景让学生掌握C语言的特点和优势让学生了解C语言的应用领域1.2 教学内容C语言的历史和发展背景C语言的特点和优势C语言的应用领域1.3 教学方法讲解法:讲解C语言的历史和发展背景,讲解C语言的特点和优势讨论法:引导学生讨论C语言的应用领域1.4 教学评价课后作业:让学生编写简单的C语言程序,了解C语言的基本语法第二章:C语言基础语法2.1 教学目标让学生掌握C语言的基本语法,包括数据类型、运算符、表达式等让学生了解C语言的控制语句,包括条件语句、循环语句等2.2 教学内容数据类型、变量和常量运算符和表达式控制语句:条件语句、循环语句2.3 教学方法讲解法:讲解数据类型、变量和常量的定义和使用,讲解运算符和表达式的使用,讲解条件语句和循环语句的语法和功能编程实践:让学生编写C语言程序,运用所学的控制语句2.4 教学评价课后作业:让学生编写C语言程序,运用所学的数据类型、运算符和控制语句第三章:函数与编译预处理3.1 教学目标让学生掌握C语言的函数概念和定义方法让学生了解C语言的编译预处理指令3.2 教学内容函数的定义和声明编译预处理指令:include、define、宏定义和宏调用3.3 教学方法讲解法:讲解函数的定义和声明的语法和功能,讲解编译预处理指令的使用方法编程实践:让学生编写C语言程序,运用所学的函数和编译预处理指令3.4 教学评价课后作业:让学生编写C语言程序,运用所学的函数和编译预处理指令第四章:数组和字符串4.1 教学目标让学生掌握C语言的数组和字符串的概念和使用方法4.2 教学内容一维数组的定义和使用字符串的定义和使用4.3 教学方法讲解法:讲解一维数组的定义和使用的语法和功能,讲解字符串的定义和使用的语法和功能编程实践:让学生编写C语言程序,运用所学的数组和字符串4.4 教学评价课后作业:让学生编写C语言程序,运用所学的数组和字符串第五章:指针5.1 教学目标让学生掌握C语言的指针的概念和使用方法5.2 教学内容指针的概念和声明指针的赋值和使用指针与数组指针与函数5.3 教学方法讲解法:讲解指针的概念和声明的语法和功能,讲解指针的赋值和使用的语法和功能,讲解指针与数组和指针与函数的关系编程实践:让学生编写C语言程序,运用所学的指针知识5.4 教学评价课后作业:让学生编写C语言程序,运用所学的指针知识第六章:结构体、联合体和枚举6.1 教学目标让学生掌握C语言中的结构体、联合体和枚举的概念和使用方法。

C语言程序设计(第二版)-电子教案-丁亚涛-8587 第8章 指针

C语言程序设计(第二版)-电子教案-丁亚涛-8587 第8章 指针
}
8.5.3 指针与二维数组
• 二维数组其实可以看成由一维数组构造而成。就相当于 几个队列构成一个方阵,方阵由队列组成,队列由具体 的元素--人组成。
• 一级指针只能管理队列,如果管理方阵,则需要二级指 针。
•int a=1000,*pa,**ppa; • pa=&a; • ppa=&pa;
• *(*(ppa)) ≡ *(pa) ≡ a ≡ 1000
• p是二级指针 • *p相当于*(p+0),级别降低为一级指针,相当于p[0] • **p相当于*(*(p+0)+0),级别降低为数组元素(普通变量),
也相当于p[0][0]
• p[1][2],相当于*(*(p+1)+2) • &p[1][2], 级别提升为一级指针,相当于:
• p[1]+2,*(p+1)+2 • &p[1],级别提升为二级指针,相当于:
f=f4; printf("a/b=%d\n",f(a,b));
8.5 指针与数组
• 8.5.1 指针与字符数组 • char str[100]= "Hello World"; • char *p=str; • 字符w可以有如下多种表示形式: • str[6] • *(str+6) • p[6] • *(p+6)
【例8-2】演示指针和数组的关系。
#include <stdio.h>
接可存取,由于p中存储的是x的信息。访问p可以获取x的信 息,再对银行存款进行操作。
8.1 借钱的故事
8.2 指针的概念
• C语言允许使用变量名、数组名[下标]、函数名等标 识符来访问内存

C程序设计教案(第8章第1次)

C程序设计教案(第8章第1次)
如果某个结构型变量的成员数据类型又是一个结构型,则其成员的引用方法如下:
外层结构型变量.外层成员名.内层成员名
【例8.2】求Tom的三门课程的成绩总分,并在显示器显示出来(使用结构型变量成员的引用)。
【例8.3】输入一个人的出生日期,然后计算其年龄(使用嵌套的结构型变量成员的引用)。
程序清单如下:
2.结构型变量成员地址的引用方法
二、教学重点:
1)结构体型数据的特点和结构型定义。
2)结构型变量、数组、指针变量的定义、初始化和成员引用方法。
三、教学难点:
1)结构型成员变量及地址的引用
2)嵌套的结构体型数据的处理
四、教学方法和授课手段
多媒体教室,电子课件,机房。
五、教学过程:(第一次课)
一)预备(复习):基本数据类型,例如:short、long、int、float、double、char(3分钟)
090103
85
82
89
93
96
81
80
2.结构型数组元素成员地址的引用方法
结构型数组元素成员地址的引用格式如下:
&结构型数组名[下标].成员名
【例8.6】结构型数组元素成员地址的引用。
当一个结构型变量的地址已赋予相同结构型的指针变量(即指针变量指向变量),就可以使用下列两种方式来引用该结构型变量的成员,其作用完全相同。
2)上机调试例题:【例8.1】--【例8.8】
2)自学8.4.3在函数间传递结构型数据
struct birthday /*定义含有3个整型成员的结构型birthday*/
{ int year;
int month;
int day;
};
struct person /*定义含有4个整型成员的结构型person*/
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)定义结构型的同时定义变量
(3)定义无名称的结构型的同时定义变量。
(4)结构体定义的几点说明。
【例8.1】一开始所讲的例题中的birthday类型和person类型。
8.2.2结构型变量成员的引用
1.结构型变量成员的引用方法
结构型变量成员的引用格式如下:
结构型变量名.成员名
其中的“.”称为成员运算符,其运算级别是最高的,和圆括号运算符“()”、下标运算符“[]”是同级别的,运算顺序是自左向右的。
1.结构型数组元素的引用格式如下;
结构型数名[下标].成员名
【例8.5】设有学生成绩表如图8-4,从键盘上输入这三个学生的成绩信息,求出每个学生的总分和平均分。
学号
成绩1
成绩2
成绩3
成绩4
成绩5
成绩6
成绩7
总分
平均分
090101
85
80
90
88
93
91
86
090102
80
82
86
96
87
84
90
090103
数组是一种构造类型,但只能存放同一种数据类型。(2分钟)
二)课前提问:在现实生活中,有很多不同的数据类型的数据需要封装在一起,例如:
对一个新生进行入学登记时,就需要填一张表格,填写的内容包括姓名、性别、学号、年龄、家庭住址、联系电话、总分等多个数据项来完成,其中姓名是字符串型(可以用字符数组来表示),性别是字符型(用m表示男性、用f表示女性),年龄是整型,总分是实型。这就是本章需要讲述的构造类型中的结构型。(3)
如果某个结构型变量的成员数据类型又是一个结构型,则其成员的引用方法如下:
外层结构型变量.外层成员名.内层成员名
【例8.2】求Tom的三门课程的成绩总分,并在显示器显示出来(使用结构型变量成员的引用)。
【例8.3】输入一个人的出生日期,然后计算其年龄(使用嵌套的结构型变量成员的引用)。
程序清单如下:
2.结构型变量成员地址的引用方法
方式2指针变量->成员名
注意,这里的指针变量必须是指向某个数组元素的。例如,它指向的数组元素为“数组名[k]”,则上述两种引用方式均代表“数组名[k].成员名”。
2.指针变量指向数组首地址
当一个结构型数组的首地址已经赋予相同结构型的指针变量(即指针变量指向结构型数组),可以使用下列两种方式来引用下标为i的数组元素成员,其作用完全相同。
方式1(*(指针变量+i)).成员名
方式2(指针变量+i)->成员名
注意,这里的指针变量必须是指向某个数组首地址的,则上述两种引用方式均代表“数组名[i]。成员名
【例8.8】使用指向结构型数组的指针变量处理【例8.5】中的问题。
七、作业安排:
1)完成课后习题:单项选择题(1、6、7、8、9),填空题(1、2),程序设计题(1、2)
三)课程引入:介绍本课程的学习目的、主要学习内容和学习方法。(7分钟)
四)课程新授:(60分钟)
8.1结构体类型
8.1.1结构体的实例
图8-1学生信息登记表
姓名
性别
学号
年龄
家庭地址
联系电话
总分
Obama
m
0908002
19
xiamen
114118
524.0
Tom
f
0908003
18
shanghai
118114
三、教学重点:
1)结构体型数据的特点和结构型定义。
2)结构型变量、数组、指针变量的定义、初始化和成员引用方法。
四、教学难点:
1)结构型成员变量及地址的引用
2)嵌套的结构体型数据的处理
五、教学方法和授课手段
多媒体教室,电子课件,机房。
六、教学过程:(第一次课)
一)预备(复习):基本数据类型,例如:short、long、int、float、double、char(3分钟)
2.结构型名是用户取的标识符,只要合法的标识符就可以的,但建议要有一定的含义,例如:如果定义结构体“人”可以用person,如果定义结构体“学生”可以用student;
3.数据类型标识符可以是基本类型说明符,也可以是已经定义过的结构型名,还可以是后面要介绍的其它数据类型说明符,如共用型等。
4.成员名是用户取的标识符,用来标识所包含的成员名称。成员也称“域”、“结构分量”。
float wage;
};
注意,名为“birthday”的结构型定义必须在结构型“person”的定义之前进行定义,否则,结构型“person”定义时,会出现“birthday结构型未定义”的错误。
8.2结构体变量的定义和引用(以下45分钟)
8.2.1结构型变量的定义和初始化
(1)先定义结构型,后定义变量。
周次:第周课次:第课授课时间:年月日
一、章节内容:
第8章结构体、共用体和枚举类型
8.1结构体类型及定义
8.2结构体变量的定义和引用指针数组
8.3结构型数组的定义和引用
8.4指向结构型数据的指针变量的定义和引用
二、教学目标:
通过本节学习,要求了解结构体型数据的特点和实际运用,熟练掌握结构型的定义方法,结构型变量、数组、指针变量的定义、初始化和成员的引用方法;学习本章内容可以为下一节课学习数据结构中的链表创建和使用打下基础,同时为以后学习面向对象程序设计语言中的类打下基础。
二、例如1:为了存放一个人的姓名、性别、年龄、工资,可以定义如下:

例如2,定义存放图8-1学生信息登记表的结构体,可以定义如下:

三、结构型嵌套定义:
结构型的定义是可以嵌套的,即某个结构型成员的数据类型可以说明为另一个已定义的结构类型。例如:有经验的程序员都不会定义一个变量来存放年龄,应该把年龄定义成出生日期,这样有利于对其进行操作和引用,而在C语言中系统没有定义好日期型,因此需要我们自己定义,因此可以把struct person修改成以下嵌套定义。
结构型的变量成员地址引用格式如下:
&结构型的变量名.成员名
存放结构型变量成员地址的指针变量类型必须和该成员的类型相同。
【例8.4】结构型变量成员地址引用。
3.结构型变量地址的引用方法
结构型变量地址的引用格式如下:
&结构型变量名
8.3.1结构型数组的定义和初始化
例如,为学生信息定义一个数组
8.3.2结构型数组元素成员的引用
方式1(*指针变量).成员名
方式2指针变量->成员名
【例8.7】使用指向结构型变量的指针变量处理【例8.4】中的问题。
1.指针变量指向数组元素
如果一个结构型数组元素的地址已赋予相同结构型指针变量(即指针变量指向结构型数组元素),可以使用下列两种方法来引用数组该元素的成员,其作用完全相同。
方式1(*指针变量).成员名
85
82
89
93
96
81
80
2.结构型数组元素成员地址的引用方法
结构型数组元素成员地址的引用格式如下:
&结构型数组名[下标].成员名
【例8.6】结构型数组元素成员地址的引用。
当一个结构型变量的地址已赋予相同结构型的指针变量(即指针变量指向变量),就可以使用下列两种方式来引用该结构型变量的成员,其作用完全相同。
486.0
8.1.2结构体类型的定义(30分钟)
一、结构体类型定义的一般形式如下:
struct结构型名
{数据类型标识符 成员1;
数据类型标识符 成员2;

数据类型标识符 成员n;
};
请读者注意结构体定义语句的右花括号后面用“分号(;)”做语句结束标记。
其中:
1.struct是关键字,表示定义的是结构体。
struct birthday /*定义含有3个整型成员的结构型birthday*/
{ int year;
int month;
int day;
};
struct person /*定义含有4个整型成员的结构型person*/
{char name[20];
char sex;
struct birthday bir; /*该成员的数据类型是结构型*/
2)上机调试例题:【例8.1】--【例8.8】
3)自学8.4.3在函数间传递结构型数据
相关文档
最新文档