C语言程序设计任务1旅游建议小助手.docx
《C语言程序设计任务1旅游建议小助手.docx》由会员分享,可在线阅读,更多相关《C语言程序设计任务1旅游建议小助手.docx(14页珍藏版)》请在冰点文库上搜索。
C语言程序设计任务1旅游建议小助手
第 75 - 76 课时 课型:
学做一体课
课题:
项目5:
旅游小帮手-任务1:
旅游建议小助手-结构体
(1)
教学方法:
讲授、引导讨论、案例教学
教学目的:
1.理解什么是结构体
2.掌握结构体类型的定义
3.掌握结构体变量的说明、初始化及引用
4.了解项目5内容
教学重、难点:
教学重点:
结构体类型的定义及其变量的使用
教学难点:
结构体类型的定义及其变量的使用
辅助教学手段:
多媒体
授课班级
授课日期
月日
月日
月日
月日
月日
主要教学内容:
一、回顾与引入
回顾:
C语言中的数据类型
项目任务问题情景引入:
旅游小帮手
二、新课内容
项目五旅游小帮手
项目介绍:
本项目为模拟旅游建议的功能,根据用户输入的旅游地点希望温度,给出旅游建议,并提供相关旅游地点的信息。
具体分为2个任务。
任务1:
旅游建议小助手
要求:
定义country结构体,包含地理位置、最高温度、最低温度、代表景观等信息,用户输入温度范围,给出旅游建议,并提示它的代表景观。
任务2:
旅游信息的读写
要求:
旅游景点信息的输入与输出。
本任务内容
任务1:
旅游建议小助手
要求:
定义country结构体,包含地理位置、最高温度、最低温度、代表景观等信息,用户输入温度范围,给出旅游建议,并提示它的代表景观。
解决问题需要的知识点:
•1、结构体的定义;
•2、结构体的引用。
——第9章结构体与共用体
章节主要内容
•9.1结构体
•9.2共用体
•9.3枚举
•9.4用户定义类型
9.1结构体
什么是结构体?
C结构体是一种构造数据类型。
C用途:
将描述同一事物不同特征的数据构造成一个整体数据类型-------自定义数据类型。
9.1.1结构体类型定义
由用户定义结构体类型的名字;在定义的结构体类型中,各个成员项的名字和类型。
C一般形式为:
struct结构体名
{
类型标识符成员名;
类型标识符成员名;
…………….
};
9.1.2结构体变量的说明
C形式一:
先定义结构体类型,然后说明结构体变量
struct结构体名
{
类型标识符成员名;
类型标识符成员名;
…………….
};
struct结构体名变量名表列;
C形式二:
定义结构体类型的同时定义结构体变量
struct结构体名
{
类型标识符成员名;
类型标识符成员名;
…………….
}变量名表列;
C形式三:
直接通过无名结构体定义结构体变量
struct
{
类型标识符成员名;
类型标识符成员名;
…………….
}变量名表列;
C说明:
C结构体类型与结构体变量概念不同
C类型:
不分配内存;变量:
分配内存
C类型:
不能赋值、存取、运算;变量:
可以
C结构体结构体的成员项可以是各种类型的变量,包括已定义好的结构体变量
C结构体成员名与程序中变量名可相同,不会混淆
C结构体类型及变量的作用域与生存期
9.1.3结构体变量的初始化
C形式一:
struct结构体名
{
类型标识符成员名;
类型标识符成员名;
…………….
};
struct结构体名结构体变量={初始数据};
C形式二:
struct结构体名
{
类型标识符成员名;
类型标识符成员名;
…………….
}结构体变量={初始数据};
C形式三:
struct
{
类型标识符成员名;
类型标识符成员名;
…………….
}结构体变量={初始数据};
9.1.4结构体变量的引用
C引用规则
C结构体变量不能整体引用,只能引用变量成员(函数参数以及函数返回值除外)
C结构体变量的各个成员项,具有同类型变量的一切特征
C引用方式:
结构体变量名.成员名
C可以将一个结构体变量赋值给另一个结构体变量
C结构体嵌套时逐级引用
三、复习与小结
教学后记:
第 77 - 78 课时 课型:
实验课
课题:
实验七结构体
(1)
教学方法:
上机、引导讨论
教学目的:
1.理解什么是结构体
2.掌握结构体类型的定义
3.掌握结构体变量的说明
4.掌握结构体变量的初始化及引用
教学重、难点:
教学重点:
结构体类型的定义及其变量说明、初始化及引用
教学难点:
结构体类型的定义及其变量说明、初始化及引用
辅助教学手段:
多媒体
授课班级
授课日期
月日
月日
月日
月日
月日
主要教学内容:
一、回顾与引入
回顾:
结构体的相关知识点
项目任务问题情景引入:
结构类型的使用
二、新课内容
1、定义一结构体,成员项包括一个整型、一个字符型。
编程实现结构体变量成员项的输入、输出,并通过说明来引用该变量。
2、定义country结构体,包含地理位置、最高温度、最低温度、代表景观等信息,用户输入温度范围,给出旅游建议,并提示它的代表景观。
三、复习与小结
教学后记:
第 79 - 80 课时 课型:
理论课
课题:
项目5:
旅游小帮手-任务1:
旅游建议小助手-结构体
(2)
教学方法:
讲授、引导讨论、案例教学
教学目的:
1.了解结构体数组
2.了解结构体指针
3.了解结构体与函数
4.理解链表
教学重、难点:
教学重点:
链表
教学难点:
链表、结构体与函数
辅助教学手段:
多媒体
授课班级
授课日期
月日
月日
月日
月日
月日
主要教学内容:
一、回顾与引入
回顾:
结构体的定义等
项目任务问题情景引入:
链式存储
二、新课内容
9.1.5结构体数组
•结构体数组的定义
一般形式:
struct结构体名结构体数组名[整型常量表达式];
9.1.6结构体指针
•指向结构体变量的指针,称为结构体指针。
•定义形式:
struct结构体名*结构体指针名;
9.1.7结构体与函数
结构体变量或结构体指针可以作为函数的参数或函数的返回值,这时结构体变量可以整体引用
•结构体与函数参数
–用结构体变量的成员作参数----值传递
–用指向结构体变量或结构体数组的指针作参数----地址传递
–用结构体变量作参数----多值传递,效率低
9.1.8链表
•链表的概念:
由若干组数据(称结点)组成,前一结点“指向”下一个结点,即欲找某结点必须先找到它的前一结点。
一种动态分配内存的数据组织方式。
该方式允许用户根据需要随时增减数据项,而且,数据项在内存中不必连续。
三、复习与小结
教学后记:
第 81 - 82 课时 课型:
学做一体课
课题:
项目5:
旅游小帮手-任务1:
旅游建议小助手-结构体(3)
教学方法:
讲授、引导讨论、案例教学
教学目的:
1.理解共用体的概念
2.掌握共用体类型的定义、引用
3.了解枚举类型
4.了解用户定义类型
教学重、难点:
教学重点:
共用体
教学难点:
共用体、枚举、用户定义类型
辅助教学手段:
多媒体
授课班级
授课日期
月日
月日
月日
月日
月日
主要教学内容:
一、回顾与引入
回顾:
结构体
项目任务问题情景引入:
构造类型
二、新课内容
9.3枚举
•C语言提供了一种称为“枚举”的类型。
说明一类变量的取值范围被限定在这个类型说明的范围内。
9.3.1枚举类型的定义
•枚举类型通过列举一序列有限的标识符来定义。
一般形式为:
enum枚举类型名{枚举元素表};
例如:
enumweekday
{sun,mon,tue,wed,thu,fri,sat};
说明:
–enum是关键字(enumerable),标识枚举类型。
花括号内均是用户标识符是枚举类型的元素。
–定义的只是数据类型,不是变量。
–列举的元素只是一些符号。
并不自动代表什么含义,在程序中代表什么含义,完全由程序员确定。
–所有元素都是常量,不能被改变。
系统为其分配值,即它们在列表中的顺序号(从0开始,且在定义时可赋顺序号的值)。
–名称、元素和元素顺序之一不同的枚举类型,都认为是不同的枚举类型。
9.3.2枚举变量的说明
⒈先定义后说明
enumweekday
{sun,mon,tue,wed,thu,fri,sat};
enumweekdayworkday,week_end;
⒉同时定义说明
enumweekday
{sun,mon,tue,wed,thu,fri,sat}
workday,week_end;
⒊直接说明
enum
{sun,mon,tue,wed,thu,fri,sat}
workday,week_end;
9.3.3枚举变量的引用
•同普通变量,但其值只能取相应枚举元素。
•枚举类型数据不是字符串,C语言也没有提供枚举类型数据的格式控制,不能直接输入输出。
•输入输出多采用switch…case语句。
•枚举元素是常量,不是变量,不能在程序中用赋值语句再对它赋值。
例如对枚举类型day的元素再作以下赋值:
mon=2;是错误的。
•只能把枚举元素名赋给枚举变量,不能把元素对应的数值直接赋给枚举变量。
如:
day1=mon;是正确的。
而day1=1是错误的。
如果要赋枚举元素的对应的值可以通过强制类型转换,如:
day1=(enumweekday)1赋值。
9.4用户定义类型
•功能:
用自定义名字为已有数据类型命名
•类型定义
typedef原数据类型名用户定义的类型名;
9.4.1基本类型定义
•int是整型变量的类型说明符。
int的完整写法为integer,为了增加程序的可读性,可把整型说明符用typedef定义为INTEGER型;
•步骤:
①按定义变量方法先写出定义体
如:
inti;
②将变量名换成新类型名
如:
intINTEGER;
③最前面加typedef
如:
typedefintINTEGER;
④用新类型名定义变量
如:
INTEGERi,j;
•9.4.2数组类型定义
用typedef定义数组类型,可以使程序书写简单,而且使意义更为明确,因而增强了程序的可读性。
步骤:
•9.4.3结构类型定义
•9.4.4指针类型定义
任务实现:
任务1:
旅游建议小助手
要求:
定义country结构体,包含地理位置、最高温度、最低温度、代表景观等信息,用户输入温度范围,给出旅游建议,并提示它的代表景观。
代码:
#include
typedefstructcountry
{
charposition[10];
floatmintemp;
floatmaxtemp;
charsight[20];
};
main()
{
floattem;
structcountrychoice[3]={
{"Qingdao",18,25,"sea"},
{"Paris",12,19,"tower"},
{"London",3,11,"fog"},
};
scanf("%f",&tem);
if(tem>18)
printf("%s,%s",choice[0].position,choice[0].sight);
elseif(tem>12)
printf("%s,%s",choice[1].position,choice[1].sight);
else
printf("%s,%s",choice[2].position,choice[2].sight);
}_
三、复习与小结
教学后记:
第 83 - 84 课时 课型:
实验课
课题:
实验七结构体
(2)
教学方法:
上机、引导讨论
教学目的:
1.掌握结构体的定义
2.掌握结构体类型变量的声明
3.掌握结构体类型变量的引用、初始化
4.掌握链表的定义、使用
教学重、难点:
教学重点:
链表
教学难点:
链表
辅助教学手段:
多媒体
授课班级
授课日期
月日
月日
月日
月日
月日
主要教学内容:
一、回顾与引入
回顾:
结构体的相关知识点
项目任务问题情景引入:
链式存储
二、新课内容
1、输入一字符串,用链表形式存储,每个结点的数据域存放一个字符;
2、建立一个链表,每个结点包含国家的名称、全年平均温度。
要求输入温度,在链表中查找,实现结果后,如果该结点存在,删除该结点。
3、完善任务:
旅游小帮手,要求旅游信息是输入的,然后根据已输入的信息,再给出要求的温度信息,最后给出建议。
三、复习与小结
教学后记: