C语言程序设计.

Slides:



Advertisements
Similar presentations
1 第二讲 C++ 编程基础. 2 主要内容 C++ 语言概述 C++ 编程基础 数据的简单输入输出 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境.
Advertisements

现代电子技术实验 ——综合实验之单片机部分
明清文人集中的寓言 pg359-371 韓佩思 中碩一
电子成绩单项目实现.
2011年10月31日是一个令人警醒的日子,世界在10月31日迎来第70亿人口。当日凌晨,成为象征性的全球第70亿名成员之一的婴儿在菲律宾降生。 ?
第10章 结构体与链表 本章要点: 结构体类型与结构体变量的定义 结构体变量的引用与初始化 结构体数组 链表处理 共用体类型和枚举类型
第九课时 二元一次方程组 .
七(7)中队读书节 韩茜、蒋霁制作.
《女性消费行为与研究方法》 广东外语外贸大学 杨晓燕教授.
教 师:曾晓东 电 话: E_mail: 计算机软件技术基础 教 师:曾晓东 电 话: E_mail:
把握高考改革的历史机遇 实现学校跨越式发展
初级会计实务 第八章 产品成本核算 主讲人:杨菠.
第一章 C语言概述 计算机公共教学部.
中考阅读 复习备考交流 西安铁一中分校 向连吾.
中央广播电视大学开放教育 成本会计(补修)期末复习
第三章 鏈結串列 Linked List.
人教版义务教育课程标准实验教科书 小学数学四年级上册第七单元《数学广角》 合理安排时间 248.
中考语文积累 永宁县教研室 步正军 2015.9.
课标教材下教研工作的 实践与思考 山东临沂市教育科学研究中心 郭允远.
小学数学知识讲座 应用题.
倒装句之其他句式.
學校教職員退休條例修正草案重點報告 報告人:徐創晃.
第 22 课 孙中山的民主追求 1 .近代变法救国主张的失败教训: “师夷之长技以制 夷”“中体西用”、兴办洋务、变法维新等的失败,使孙中山
第7章 结构体、联合体和枚举类型 本章导读 本章主要知识点 《 C语言程序设计》 (Visual C++ 6.0环境)
C程序设计 第9章 自定义数据类型 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
程式設計 博碩文化出版發行.
C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
C++程序设计 第二讲 清华大学软件学院.
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
结构体和共用体 2 梁春燕 华电信息管理教研室.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第9章 自訂資料型態 – 結構 9-1 結構資料型態 9-2 結構陣列 9-3 指標與結構 9-4 動態記憶體配置 9-5 聯合資料型態
STRUCTURE 授課:ANT 日期:2010/5/12.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
第九章 结构体和共用体 结构体的定义 结构体的使用 共用体的定义 共用体的使用 主讲:李祥 时间:2015年10月.
C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.
第十三章 其他的C語言課題.
C++语言程序设计 第二章 C++简单程序设计.
第13章 结构体的应用 13.1 了解由用户构造的数据类型 13.2 结构体类型说明及结构体变量 13.3 结构体数组
明解C++教學手冊 柴田望洋 博士 著 書號:PG20269
Ch02-基礎語法.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第三章 数据类型、运算符与表达式.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第十章 用户自定义数据类型 目录 学生信息管理系统的开发 结构体数据类型的概述 结构体变量的使用 结构体数组
OOP6 結構Struct 黃兆武.
目录 9.1 结构体类型 9.2 共用体类型 9.3 枚举类型 9.4 类型声明符typedef 1.
第十章 结构体与链表 西安工程大学.
Java變數 2014/6/24.
第 二 章 数据类型、运算符与表达式.
保留字與識別字.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 基本数据类型 ——数据的表示.
第八节 算术运算符和算术表达式.
本节内容 指针类型.
第十二章 位运算.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
第18讲 从C到C++ 计算机与通信工程学院.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
變數與資料型態  綠園.
畢氏定理(百牛大祭)的故事 張美玲 製作 資料來源:探索數學的故事(凡異出版社).
第六章 复合数据类型 指针的声明与使用 数组的声明与使用 指针与数组的相互引用 字符串及相关库函数 new与delete
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
安排座位.
成本會計 在決策中的功能 第四課 1.
102年人事預算編列說明 邁向頂尖大學辦公室製作.
Presentation transcript:

C语言程序设计

项目五 旅游小帮手 要求: 定义country结构体,包含地理位置、最高温度、最低温度、代表景观等信息,用户输入温度范围,给出旅游建议,并提示它的代表景观。 解决问题需要的知识点: 1、结构体的定义; 2、结构体的引用。

项目五 旅游小帮手 任务1:旅游建议小助手 —— 第9章 结构体与共用体 章节主要内容 9.1 结构体 9.2 共用体 9.3 枚举 9.1 结构体 9.2 共用体 9.3 枚举 9.4 用户定义类型

9.1 结构体 什么是结构体? 结构体是一种构造数据类型。 用途:将描述同一事物不同特征的数据构造成一个整体数据类型 -------自定义数据类型。

结构体示例解析: 学生的基本情况: 要使用这类具体的数据必须先定义结构体类型,其中各个数据成为结构体类型的成员项。 字段 学号 姓名 性别 籍贯 分数 类型 long char float 实例 20057345 王晓 女 合肥 80.5 要使用这类具体的数据必须先定义结构体类型,其中各个数据成为结构体类型的成员项。

由用户定义结构体类型的名字;在定义的结构体类型中,各个成员项的名字和类型。 一般形式为: 9.1.1 结构体类型定义 由用户定义结构体类型的名字;在定义的结构体类型中,各个成员项的名字和类型。 一般形式为: 例:struct student { long iNum; char chpName[20]; char chSex; int iAge; char chAddress[30]; float fScore; }; struct 结构体名 { 类型标识符 成员名; ……………. };

9.1.2 结构体变量的说明 形式一:先定义结构体类型,然后说明结构体变量 struct 结构体名 { 类型标识符 成员名; ……………. 类型标识符 成员名; ……………. }; struct 结构体名 变量名表列;

形式二:定义结构体类型的同时定义结构体变量 struct 结构体名 { 类型标识符 成员名; ……………. }变量名表列;

形式三:直接通过无名结构体定义结构体变量 struct { 类型标识符 成员名; ……………. }变量名表列;

说明: 结构体类型与结构体变量概念不同 类型:不分配内存; 变量:分配内存 类型:不能赋值、存取、运算; 变量:可以 结构体结构体的成员项可以是各种类型的变量,包括已定义好的结构体变量 结构体成员名与程序中变量名可相同,不会混淆 结构体类型及变量的作用域与生存期

9.1.3 结构体变量的初始化 形式一: struct 结构体名 { 类型标识符 成员名; ……………. }; 类型标识符 成员名; ……………. }; struct 结构体名 结构体变量={初始数据};

形式二: struct 结构体名 { 类型标识符 成员名; ……………. }结构体变量={初始数据};

形式三: struct { 类型标识符 成员名; ……………. }结构体变量={初始数据};

可以将一个结构体变量赋值给另一个结构体变量 结构体嵌套时逐级引用 9.1.4 结构体变量的引用 引用规则 结构体变量不能整体引用,只能引用变量成员(函数参数以及函数返回值除外) 结构体变量的各个成员项,具有同类型变量的一切特征 引用方式: 结构体变量名.成员名 可以将一个结构体变量赋值给另一个结构体变量 结构体嵌套时逐级引用

9.1.5 结构体数组 结构体数组的定义 一般形式: struct 结构体名 结构体数组名[整型常量表达式];

9.1.6 结构体指针 指向结构体变量的指针,称为结构体指针。 定义形式: struct 结构体名 *结构体指针名;

9.1.7 结构体与函数 结构体变量或结构体指针可以作为函数的参数或函数的返回值,这时结构体变量可以整体引用 结构体与函数参数 用结构体变量的成员作参数----值传递 用指向结构体变量或结构体数组的指针作参数----地址传递 用结构体变量作参数----多值传递,效率低

9.1.8 链 表 链表的概念: 由若干组数据(称结点)组成,前一结点“指向”下一个结点,即欲找某结点必须先找到它的前一结点。 9.1.8 链 表 链表的概念: 由若干组数据(称结点)组成,前一结点“指向”下一个结点,即欲找某结点必须先找到它的前一结点。 一种动态分配内存的数据组织方式。该方式允许用户根据需要随时增减数据项,而且,数据项在内存中不必连续。

项目五 旅游小帮手 任务1:旅游建议小助手 —— 第9章 结构体与共用体 章节主要内容 9.1 结构体 9.2 共用体 9.3 枚举 9.1 结构体 9.2 共用体 9.3 枚举 9.4 用户定义类型

9.2 共用体 共用体是构造数据类型,也叫联合体 用途:使几个不同类型的变量共占一段内存(相互覆盖)

9.2.1 共用体类型定义 定义形式: union 共用体名 { 类型标识符 成员名; ……………. };

9.2.2 共用体变量定义 x y 形式一: union exam { int a; flort b; char c; }; union data x,y; 形式二: union exam { int a; float b; char c; }x,*px,d[5]; 形式三: union { int a; flort b; char c; }x,y,*px,*py,ar[10]; x y 共用体变量定义分配内存, 长度=最长成员所占字节数 共用体变量任何时刻 只有一个成员存在

9.2.3 共用体变量引用 引用方式和规则: 不能在定义共用体变量时初始化 可以用一个共用体变量为另一个变量赋值 不能引用共用体变量,只能引用其成员 共用体变量中起作用的成员是最后一次存放的成员

项目五 旅游小帮手 任务1:旅游建议小助手 —— 第9章 结构体与共用体 章节主要内容 9.1 结构体 9.2 共用体 9.3 枚举 9.1 结构体 9.2 共用体 9.3 枚举 9.4 用户定义类型

9.3 枚 举 C语言提供了一种称为“枚举”的类型。说明一类变量的取值范围被限定在这个类型说明的范围内。

9.3.1 枚举类型的定义 枚举类型通过列举一序列有限的标识符来定义。 一般形式为: enum 枚举类型名{枚举元素表 }; 9.3.1 枚举类型的定义 枚举类型通过列举一序列有限的标识符来定义。 一般形式为: enum 枚举类型名{枚举元素表 }; 例如:enum weekday { sun,mon,tue,wed,thu,fri,sat }; 枚举元素表反映了该枚举类型的变量所取值的集合。枚举元素如果不给值,自动取0~n-1整数值(n是枚举元素个数),如例中的sun是0,mon是1,…sat是6;在定义枚元素表时,可以对某个枚举元素赋值,其后元素的值将按顺序自动加一递增。

说明: enum是关键字(enumerable),标识枚举类型。花括号内均是用户标识符是枚举类型的元素。 定义的只是数据类型,不是变量。 列举的元素只是一些符号。并不自动代表什么含义,在程序中代表什么含义,完全由程序员确定。 所有元素都是常量,不能被改变。系统为其分配值,即它们在列表中的顺序号(从0开始,且在定义时可赋顺序号的值)。 名称、元素和元素顺序之一不同的枚举类型,都认为是不同的枚举类型。

9.3.2 枚举变量的说明 ⒈先定义后说明 enum weekday { sun,mon,tue,wed,thu,fri,sat }; enum weekday workday,week_end; ⒉同时定义说明 { sun,mon,tue,wed,thu,fri,sat } workday,week_end; ⒊直接说明 enum

9.3.3 枚举变量的引用 同普通变量,但其值只能取相应枚举元素。 枚举类型数据不是字符串,C语言也没有提供枚举类型数据的格式控制,不能直接输入输出。 输入输出多采用switch…case语句。 枚举元素是常量,不是变量,不能在程序中用赋值语句再对它赋值。例如对枚举类型day的元素再作以下赋值:mon=2;是错误的。 只能把枚举元素名赋给枚举变量,不能把元素对应的数值直接赋给枚举变量。如:day1=mon;是正确的。而day1=1是错误的。如果要赋枚举元素的对应的值可以通过强制类型转换,如:day1=(enum weekday)1赋值。

9.4 用户定义类型 功能:用自定义名字为已有数据类型命名 类型定义 typedef 原数据类型名 用户定义的类型名;

9.4.1基本类型定义 int是整型变量的类型说明符。int的完整写法为integer,为了增加程序的可读性,可把整型说明符用typedef定义为INTEGER型; 步骤: 按定义变量方法先写出定义体 如: int i; 将变量名换成新类型名 如: int INTEGER; 最前面加typedef 如: typedef int INTEGER; 用新类型名定义变量 如: INTEGER i,j;

用typedef定义数组类型,可以使程序书写简单,而且使意义更为明确,因而增强了程序的可读性。步骤: 9.4.2 数组类型定义 用typedef定义数组类型,可以使程序书写简单,而且使意义更为明确,因而增强了程序的可读性。步骤: 例 定义数组类型 char a[100]; char NAME[100]; typedef char NAME[100]; NAME a,b,c;  char a[100],b[100],c[100];

9.4.3 结构类型定义 PERSONDOC a,b,*p; 例:定义结构体类型 struct data { long num; float score; }d; 例:定义结构体类型 struct data { long num; float score; } PERSONDOC; 例:定义结构体类型 typedef struct data { long num; float score; }PERSONDOC; 例:定义结构体类型 PERSONDOC a,b,*p;  struct data { long num; float score; }a,b, *p;

9.4.4 指针类型定义 例:定义指针类型 char *str; 例:typedef struct club struct data char *STRING; typedef char *STRING; STRING p,s[10]; 例:typedef struct club struct data { long num; float score; }PERSONDOC; typedef PERSONDOC *PG; PG pb; PERSONDOC为结构体类型 PG为指向PERSONDOC的指针类型  PERSONDOC *pb;  struct club *pb;  char *p; char *s[10]; 在用户定义类型中用户定义的类型名一般用大写表示,以便于区别。

第9章 结构体与共用体——总结 内 容 总 结 结构体(结构体的定义、说明、初始化、引用、链表) 语言基础 第9章 结构体与共用体——总结 结构体(结构体的定义、说明、初始化、引用、链表) ;共用体(共用体的定义、说明、引用)、枚举(定 义、说明、引用);用户定义类型(基本类型、数组 类型、结构类型)。 内 容 总 结 知 识 点 结构体(结构体的定义、说明、初始化、引用、链表) ;共用体(共用体的定义、说明、引用)、枚举(定 义、说明、引用)。 重 难 点