18.1凯撒密码加密 教案(表格式)-《C语言程序设计》同步教学(电子科技大学出版社)

资源下载
  1. 二一教育资源

18.1凯撒密码加密 教案(表格式)-《C语言程序设计》同步教学(电子科技大学出版社)

资源简介

课题 凯撒密码加密
课时 2课时(90 min)
教学目标 知识目标: (1)理解文件及文件类型指针的概念、文件操作的顺序 (2)掌握打开和关闭文件的方法、读/写文件的基本操作方法 能力目标: 能够编写顺序读/写文件、随机读/写文件的程序 素质目标: 通过凯撒密码加密方法的学习,增强信息安全意识
教学重难点 教学重点:文件的基础知识,打开与关闭文件,文件读/写操作 教学难点:随机读/写文件
教学方法 问答法、讨论法、讲授法、实践法
教学用具 电脑、投影仪、多媒体课件、教材
教学过程 主要教学内容及步骤
课前任务 【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过文旌课堂APP或其他学习软件,完成课前任务 请同学们结合自己使用电脑的经验,总结文件打开、关闭、读写的操作方法。 【学生】完成课前任务
考勤 【教师】使用文旌课堂APP进行签到 【学生】班干部报请假人员及原因
问题导入 【教师】请同学们扫码观看“文件及文件操作的过程”视频(详见教材),讨论并回答以下问题: 在程序设计中,文件主要分为哪两种?文件的一般操作过程是怎样的? 【学生】思考、举手回答
传授新知 【教师】讲解文件的基础知识,打开与关闭文件,文件读/写操作 一、文件的基础知识 【教师】介绍文件的分类,C程序通过结构体类型FILE定义指针变量的形式 根据数据的组织形式不同,文件可分为ASCII文件(文本文件)和二进制文件两种类型。无论是哪种类型的文件,C程序系统都会将它看成是由一连串字符组成的字节序列,称为“流(stream)”,并以字节为单位访问,没有记录的界限。输入/输出字符流的开始和结束只由程序控制,而不受物理符号(如回车符)的控制,因此,这种文件被称作“流式文件”。将数据从磁盘文件流向内存的过程称为“输入”,反之,将数据从内存流向磁盘文件的过程称为“输出”。 C程序通过系统提供的结构体类型FILE定义的指针变量来访问文件。结构体类型FILE已在头文件“stdio.h”中定义,所以在对文件进行操作时,用FILE直接定义文件指针变量即可,其定义形式如下: FILE *文件指针变量名; 其中,FILE必须大写,*表示定义的变量是指针类型。例如: FILE *fp; 定义的fp是一个指向FILE类型数据的指针变量。可以使fp指向某一个文件的文件信息区,通过该文件信息区中的信息就可以访问该文件。 二、打开与关闭文件 【教师】多媒体观看“打开与关闭文件”视频(详见教材),让学生了解使用fopen( )函数、fclose( )函数打开和关闭文件的方法 除了标准的输入和输出文件外,其他所有的文件都必须先打开后使用,且使用后必须关闭该文件。库函数fopen( )和fclose( )分别用来打开和关闭文件。 【课堂问答】 【教师】随机邀请学生回答以下问题 请同学们思考,文件使用后不关闭会导致什么后果? 【学生】聆听、思考、回答 【教师】总结学生的回答 1.打开文件 调用fopen( )函数的一般形式如下。 fopen("文件名","文件操作方式表示符"); fopen( )函数的返回值是指向文件的指针(文件信息区的起始地址),通常将fopen( )函数的返回值赋给一个指向文件的指针变量。例如: FILE *fp; /*定义一个指向文件的指针变量fp*/ fp=fopen("myfile","r"); /*以只读方式打开当前目录下的myfile文件*/ 当调用函数时,系统会在缓冲区为文件开辟一个文件信息描述区,并将该文件信息描述区(文件结构体变量)的地址赋给指针fp,这样就可以通过fp对文件进行各种操作了。如果文件打开失败,则fopen( )函数返回空指针NULL。 高手点拨 当调用fopen( )函数打开文件时,文件名可包含文件路径。例如,“fp=fopen("c:\\documents\\myfile","w");”表示以写的方式打开c盘下documents文件夹中的myfile文件,并将返回值赋给指针变量fp。 当调用fopen( )函数打开文件时,须指定文件的操作方式,如“只读”“只写”等,具体的操作方式表示符见表8-2所列。 表8-2 文件操作方式表示符 文件操作方式含 义如果指定的文件不存在只读“r” (或“rb”)打开一个文本文件(或二进制文件),只允许读数据出错只写“w” (或“wb”)打开或建立一个文本文件(或二进制文件),只允许写数据建立新文件追加“a” (或“ab”)打开一个文本文件(或二进制文件),并在文件末尾追加数据出错
……(表格其他内容详见教材) 2.关闭文件 调用函数fclose( )的一般形式如下: fclose(fp); 这里的fp是前面定义过的文件指针。关闭成功时返回0,否则返回EOF( 1)。故可以通过fclose( )函数的返回值判断文件是否正常关闭。例如: if((fp=fclose(fp))!=0) printf("\nerror:fail in file close!"); 关闭文件不仅可以保存数据,还可以释放文件结构体变量所占的存储空间,节省系统资源。 【课堂讨论】 【教师】请学生分组讨论以下问题 请同学们以小组为单位,讨论文件关闭时,能否在fopen( )函数括号内写入当前目录下的文件名,实现文件的关闭? 【学生】讨论、总结、回答 【教师】总结学生的回答 三、文件读/写操作 【教师】介绍顺序读/写文件、随机读/写文件的概念,涉及到的各类函数 1.顺序读/写文件 在顺序读/写文件时,读/写顺序和数据在文件中的物理顺序是一致的。即在顺序读时,先读文件前面的数据,后读文件后面的数据;在顺序写时,先写入的数据存放在文件的前面,后写入的数据存放在文件的后面。 顺序读/写操作可用库函数实现,它们都包含在头文件“stdio.h”中。常见的顺序读/写文件函数见表8-3所列(详见教材)。 表8-3 顺序读/写文件函数 函 数函数调用形式功 能举 例字符读字符变量=fgetc(文件指针);从指定的文件中读一个字符c=fgetc(fp);字符写fputc(字符量,文件指针fp);将一个字符写入文件中fputc('a',fp);字符 串读fgets(字符数组名,n,文件指针);从指定的文件中读一个长度为n 1的字符串,在末尾加上字符串结束标志'\0'后,送入一个字符数组中fgets(str,n,fp);字符 串写fputs(字符串,文件指针);向文件中写入一个字符串,其中字符串可以是字符串常量,也可以是有赋值的字符数组fputs("China",fp); fputs(str,fp);
……(表格其他内容详见教材) 2.随机读/写文件 前面介绍的对文件的读/写方式都是顺序进行的,即读/写文件只能从头开始顺序读/写各个数据。如果需要从文件的某个位置开始读/写数据,即随机读/写文件,可使用随机定位函数将文件位置指针定位在所要读/写的任意位置。常用的随机定位函数见表8-4所列。 表8-4 随机定位函数 函数原型功 能函数调用形式void rewind(FILE *fpoint);将文件位置指针移至文件起始处rewind(fp);int fseek(FILE *fpoint,long offset,int origin);将文件位置指针移到指定位置fseek(fp,位移量,起始点);long ftell(FILE *fpoint);寻找位置指针的当前位置long n; n=ftell(fp);int feof(FILE *fpoint);判断文件位置指针是否在文件结束位置feof(fp);
对fseek( )函数的参数做以下说明。 (1)“位移量”是移动的字节数,要求位移量是long型数据,以便在文件长度大于64 KB时不会出错。当用常量表示位移量时,要求加后缀“L”。位移量为正,表示文件位置指针向文件尾方向移动;位移量为负,表示向文件头方向移动。 (2)“起始点”为位移量的参考点。其有三种取值:0为“文件开始位置”,1为“当前位置”,2为“文件末尾位置”。C标准制定的起始点的含义见表8-5所列。 表8-5 起始点的含义 起 始 点名 字数字表示文件开始位置SEEK_SET0文件当前位置SEEK_CUR1文件末尾位置SEEK_END2
当文件位置指针在文件末尾时,feof( )函数返回1(非0),否则返回0。 【课堂讨论】 【教师】请学生分组讨论以下问题 请同学们以小组为单位,讨论顺序读/写文件和随机读/写文件各自适用的场景。 【学生】讨论、总结、回答 【教师】总结学生的回答 四、任务实施 【教师】多媒体观看“凯撒密码加密”视频(详见教材),让学生了解凯撒密码加密的代码实现逻辑及实现方法 1.任务分析 设原文件名为file.txt,目标文件名为copy.txt。现要将file.txt文件中的内容加密后复制到copy.txt文件中,须首先将两个文件打开,即调用fopen( )函数以只读方式(“r”)打开file.txt文件,以读写方式(“w+”)打开copy.txt文件;然后读取file.txt文件中的字符,并将字符转换后写入copy.txt文件中;最后输出copy.txt文件中的字符并关闭两个文件。 2.参考程序 ……(详见教材) 3.运行结果 原文件内容如图8-8所示(详见教材),加密后文件的内容如图8-9所示(详见教材),程序运行结果如图8-10所示(详见教材)。 素养之窗 信息安全是一个国家综合国力的体现,也是国民经济健康发展的保障。为加强我国信息安全建设,保障国家和人民的根本利益,我国政府一方面利用市场资源推进信息技术的发展,大力发展自主知识产权,实现信息技术产业化;另一方面加快信息安全立法,制定了《中华人民共和国保守国家秘密法》《中华人民共和国数据安全法》《中华人民共和国个人信息保护法》等相关法律法规。 【课堂问答】 【教师】随机邀请学生回答以下问题 请同学们思考,上述程序中判断指针是否在文件结束位置的代码实现原理是什么? 【学生】聆听、思考、回答 【教师】总结学生的回答 【学生】聆听、思考、理解、记录
课堂实训 【教师】介绍课堂实训目的、实训内容,要求学生按照实训要求完成实训任务 一、实训目的 (1)能够使用结构体变量、结构体指针和结构体数组处理程序中的数据。 (2)能够对文件中的数据进行读写操作。 二、实训内容 1.阅读程序,判断运行结果 ……(详见教材) 2.程序填空 (1)程序用于输出年龄最大的人员信息,请填空。 (2)程序用于统计文件中的字符个数,请填空。 ……(详见教材) 3.程序设计 (1)表8-6(详见教材)为某单位招聘考试的结果,请输出总成绩(笔试成绩+面试成绩)最高的考生信息。 (2)当前目录下文本文件score.txt中有6个数据,分别为74、85、97、83、92和60,将这些数的平均值追加到原始数据的后面。 【学生】按要求完成实训内容,并将实训过程中遇到的问题和解决办法记录在表8-7中(详见教材)
课堂小结 【教师】简要总结本节课的要点 本次课介绍了文件的类型,分为ASCII文件(文本文件)和二进制文件两种类型,使用结构体类型FILE定义的指针变量来访问文件。介绍了打开文件的方法,fopen( )函数的语法格式和使用方法,以及调用fopen( )函数打开文件时,指定文件的各类操作方式。介绍了关闭文件的方法,fclose( ) 函数的语法格式与使用方法,以及关闭文件后的返回值。讲解了顺序读/写文件,随机读/写文件涉及到的各类函数。最后通过任务实施,凯撒密码加密,综合运用本次课知识,实现学中练,练中学。 【学生】总结回顾知识点
作业布置 【教师】布置课后作业 请根据本课内容,完成课后习题中的相关习题。 【学生】完成课后任务
教学反思

展开更多......

收起↑

资源预览