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