课程:C语言程序设计 授课教师: 学年 第 学期 周次 授课 章节 教学 目的 第 周 时间 年 月 日 授课 方式 专业班级: 理论课□ 实验课□ 实训课□ 教学做一体化课程√ 教学 时数 2学时 单元十 C文件程序设计(二) 1. 理解常见的文件读写函数的参数含义,并掌握基本使用方法。 2. 会处理和调试文件操作过程中出现的问题。 教学内容 教学过程设计及时间分配 1.复习、问题引入 启发、互动 5分 2. fputc()及程序应用 实例讲授 10分 3. fgetc()及程序应用 实例、对比 10分 4.随堂练习 10分 5. fprintf()及程序应用 对比、实例讲授10分 6. fscanf()及程序应用 实例、讲授 10分 7.随堂练习 15分 8.综合实例 引导分析、讲授 15分 9.小结、作业及实验安排 讲授 5分 教 学 组 织 1.字符读写操作 (1)fputc()及程序应用 (2)fgetc()及程序应用 2.格式化读写操作 (1)fprintf()及程序应用 (2)fscanf()及程序应用 3.综合程序应用举例 教学 重点 教学 难点 教学 手段 双语 教学 作业及 思考题 重点:文件读写函数的参数含义及应用 难点:调试文件操作过程中出现的问题 启发式、理论讲授、环境实例演示、对比讲解、案例分析 函数(Function);文件(file);打开(open);关闭(close) 作业:单元总结提升、单元练习相关题 知识拓展:文件操作知识丰富 1.谭浩强主编的《C语言程序设计》(清华大学出版社)。 2.丹尼斯·里奇《C语言程序设计》(第二版)。 3.NCRE考试用教程《C语言程序设计》(高等教育出版社)。 4.网络教学资源:国家精品课网站: http://121.26.225.5/jpkc/cyuyan/index.htm。 参考 资料 本讲 内容 学法 指导 课下阅读复习预习,理解fputc()、fgetc()、fprintf()、fscanf()和文件常见错误理解,通过实例上机验证理解。
单元十:文件程序设计(二)(教案) 教学内容及教学过程 步骤一 问题引入 以前编写的程序,其处理的原始数据或结果会随着程序运行结束而消失,这显然与实际应用不相符合。因为实际应用中,有时需要把程序处理的数据结果保存成文件,以备将来使用;或者程序处理的原始数据是从某个文件中读取出来的。所以,如何实现数据的长期保存又能实现数据共享是程序设计的又一重要内容,其实质就是对文件的读写操作。 文件如何实现读写操作呢? 第一步:打开文件 fopen(文件名,打开方式); 说明 通过问题引入文件操作读写函数 第二步:读取文件中的数据 或者向文件中写数据 字符读写:fgetc();fputc(); 格式读写:fscanf();fprintf(); 第三步:关闭文件 Fclose(文件指针变量); 与实例结合引入课堂内容 步骤二 讲授 10.3文件读写操作 10.3.1字符读写——fputc()和fgetc() 1. 字符写函数fputc( ) 函数fputc( )的功能是将字符写入文件中。函数fputc( )操作成功时,返回写入文件的字符值,否则返回EOF(文件结束标志,EOF的值为-1,在stdio.h中定义)表示写操作错误。 【例10-3】 fputc(‘c’,fp); //将字符’c’写入fp指向的文件中 说明:字符写函数fputc()有两个参数:第一个是要写入文件的字符,第二个是指向文件的指针。 【例10-4】从键盘输入一行字符,将输入的字符输出到test.dat文件 中保存。 #include (3)fprintf(fp,”%s”,”How are you.”); //将字符串”How are you.”写入控制字符串,第 三个是要写入文 fp指向的文件中 件的数据。 【例10-8】把从键盘输入的10个整数写入in.dat文件中保存。 #include #include void main() { FILE *fp; int n; 对比讲解,举例 fp=fopen(\"in.dat\ //打开文件 说明 if(fp== NULL) { printf(\"打开文件失败.\\n\"); exit(0); //退出 } for(int i=0;i<10;i++) { scanf(\"%d\ //输入一个整型数据 fprintf(fp,\"%4d\ //将输入的n值写入文件 } fclose(fp); } 程序运行时输入十个整数:0 1 2 3 4 5 6 7 8 9,然后用“记事本”打 开in.dat文件查看写入的内容。 2.格式化读取数据函数fscanf( ) 举例分析说明: 函数fscanf( )的功能是从文件中按指定格式读取数据。 格式化读取数据 【例10-9】 函数fscanf( ) (1)fscanf(fp,”%d%d”,&a,&b); //从 fp指向的文件中读取两个整 有三个参数:第 数存入变量a和b的内存单元 一个是指向文件 (2)fscanf(fp,”%lf”,&n); //从 fp指向的文件中读取一个double类 的指针,第二个 型数据存入变量n的内存单元 是读取数据的格 (3)fscanf(fp,”%s”,str); //从 fp指向的文件中读取一个字符串,存 式控制字符串, 入str指向的内存空间 第三个是字符串 【例10-10】从【例10-8】得到的in.dat文件中读取10个整数显示输存放的首地址。 出。 #include #include void main() { FILE *fp; int i,a[10]; 讲解、演示 fp=fopen(\"in.dat\ //打开文件 重点之一 if(fp== NULL) 型数据写入fp指向的文件中 { printf(\"打开文件失败.\\n\"); exit(0); //退出 } for(i=0;i<10;i++) //从文件中读取整型数据 fscanf(fp,\"%d\ printf(\"读取的数据为:\\n\"); for(i=0;i<10;i++) } printf(\"%3d\ //显示输出数据 fclose(fp); 程序运行结果: 10.4综合应用案例 【例10-11】利用fputc()和fgetc()函数将文件test.dat复制为test.bak。 #include { FILE *fpr, *fpw; char sfile[10],dfile[10]; char ch; int i=0; gets(sfile); fpr=fopen(sfile, \"r\"); if(fpr== NULL) { printf(\"打开源文件失败.\\n\"); exit(0); } printf(\"请输入目的文件名:\"); //输入目的文件名 gets(dfile); fpw=fopen(dfile, \"w\"); if(fpw== NULL) { printf(\"打开目标文件失败.\\n\"); exit(0); } while(!feof(fpr)) { ch=fgetc(fpr); fputc(ch,fpw); i++; } //执行复制并计数 //打开目的文件 //退出 //打开源文件 //复制字节计数器 printf(\"请输入源文件名:\"); //输入源文件名 //分别指向源文件和目的文件 //分别存放源文件和目的文件名 举例分析、对比、 解 printf(\"文件复制完成,共复制%d个字节.\\n\ fclose(fpr); fclose(fpw); } //关闭文件 分析、演示讲解 程序运行结果: 步骤三 课堂小结 1.文件读写操作 字符读写——fputc()和fgetc() 文件格式化读写——fprintf()和fscanf() 2.综合应用实例 注意小结过程中与学生的互动 在实验中体会和理解 注意实验总结与积累 在总结中提升 在练习中强化 步骤四 实验与作业 1. 实验内容 (1)实例10-8/10-10 文件打开函数,操作函数,关闭函数 字符函数读写 格式化读写函数 (2)实训指导3 注意字符读写函数应用、文件打开与关闭 注意格式读写函数应用 2.课后作业 (1)单元总结提升 重点理解第1、2题,掌握文件指针,文件打开、读写和关闭函数 (2)单元练习 通过第二题的第1题,理解文件的读写、打开与关闭 (3)课外学习与指导 文件知识丰富 教 学 总 结 因篇幅问题不能全部显示,请点此查看更多更全内容