第8章 文件 P201 8.1 了解文件的处理过程 8.2 掌握文件的基本操作本领 8.3 文件的应用举例 *贯穿教学全过程的实例.

Slides:



Advertisements
Similar presentations
数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
Advertisements

Chap 12 文件 12.1 学生成绩文件统计 12.2 用户信息加密和校验 12.3 文件综合应用:资金账户管理.
Chap 12 文件 12.1 将短句“Hello World”写入到文件 12.2 读取学生成绩文件 12.3 文件复制
教 师:曾晓东 电 话: E_mail: 计算机软件技术基础 教 师:曾晓东 电 话: E_mail:
第九讲 结构体与文件 陆 铭
雷 霆 战 机 By—谷恩轩&余万全.
4.3 使用二维数组 P 求两个矩阵的和 求方阵对角线上元素之和 显示算术题和学生答题信息
C程序设计 第10章 文 件 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
第十三章 文件.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
第12章 文 件 §12.1 概述 1.文件信息的集合,如一段程序、一段数据、一副图等
複習 struct score_Type{ int chinese,english; }; struct my_Type{
C File System.
高级语言程序设计 主讲人:陈玉华.
C 程序设计实例 1. 问题描述 2. 数据结构 3. 算法分析 4. 参考程序 5. 改进说明.
计算概论 第二十一讲 文件操作 北京大学信息学院.
第10章 文件操作.
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
第10章 文件.
STRUCTURE 授課:ANT 日期:2010/5/12.
计算概论 第十八讲 C语言高级编程 结构与习题课 北京大学信息学院.
第10章 文件操作.
11.1 文件的基本概念 11.2 文件的打开与关闭 11.3 文件的顺序读写 11.4 文件的随机读写 11.5 文件检测
函数申明、定义、调用 申明: void sort(float a[], int n); void sort(float *a, int m); void sort(float *a, int); void sort(float *, int);
第十二章 文件 12.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
第3章 堆栈和队列 堆栈 堆栈应用 队列 队列应用 优先级队列 主要知识点.
fp=fopen("CD2.dat","wb"); fwrite(&min,8,1,fp); fclose(fp);
文件读写实践 广州创龙电子科技有限公司 01 广州创龙电子科技有限公司
檔案 將資料存入磁碟或由磁碟取出資料的方式, 稱為檔案存取處理。 C語言的檔案處理 C++語言的檔案處理.
THE C PROGRAMMING LANGUAGE
第10章 文件操作.
第十章 文件操作.
第10章 对文件的输入输出 10.1 C文件的有关基本知识 10.2 打开与关闭文件 10.3 顺序读写数据文件 10.4 随机读写数据文件
第10章 檔案與資料夾處理 10-1 C語言的檔案輸入與輸出 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫
第十三章 文件 目录 学生信息管理系统的完善 文件的概念 文件类型指针 文件的打开与关闭 文件的顺序读写
第9章 文件 本章导读 本章主要知识点 《 C语言程序设计》 (Visual C++ 6.0环境)
第5章 文件.
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
研讨课4 文件操作.
目录 11.1 文件的种类 11.2 文件指针和文件内部的位置指针 11.3 文件的操作 11.4 文件的打开与关闭
第十三章 文件.
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
第9章 文件 学习目的与要求: 熟练掌握文件指针的使用 掌握与文件相关的函数 能够利用文件相关函数实现各种操作.
C语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
大綱 *專題演講介紹 *大陸醫療的改革與發展 *海報發表文章分享 2012海峽兩岸醫院院長論壇行後報告 ‧台北
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
目录 9.1 结构体类型 9.2 共用体类型 9.3 枚举类型 9.4 类型声明符typedef 1.
C语言程序设计 主讲教师:陆幼利.
C程序设计.
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
姚金宇 MIT SCHEME 使用说明 姚金宇
C语言程序设计 教案 崔武子制作
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
第十一章 文件 11.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
本节内容 文件读写 视频提供:昆山爱达人信息技术有限公司.
第二章 类型、对象、运算符和表达式.
本节内容 访问模式 视频提供:昆山爱达人信息技术有限公司.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
函数申明、定义、调用 申明: void sort(float a[], int n); void sort(float *a, int m); void sort(float *a, int); void sort(float *, int);
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第十一章 文件 11.1 C文件概述 文件:存储在外部介质上数据的集合,是操作系统数据管理的单位 文件分类 按文件的逻辑结构: 按存储介质:
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
第13章 文 件.
_08文件操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
結構、檔案處理(Structure, File)
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
隨機函數.
Presentation transcript:

第8章 文件 P201 8.1 了解文件的处理过程 8.2 掌握文件的基本操作本领 8.3 文件的应用举例 *贯穿教学全过程的实例

8.1 了解文件的处理过程 P202 1.文件的概念 “文件”是指存储在外部介质上的数据集合。 如用Word写出的文章 用Excel设计的统计表 用C语言编写的程序 在磁盘中存放的文件叫做磁盘文件。 返回

8.1 了解文件的处理过程 P202 2.文件的存储 根据文件的组织形式,C语言中将文件分为文本文件和二进制文件,它们是常用的两种文件。 返回

8.1 了解文件的处理过程 P202 返回 123 00000000 01111011 123按二进制文件存放形式 00000000 01111011 123按二进制文件存放形式 123 123按文本文件存放形式 00110001 00110010 00101110 '1' (49) '2' (50) '3' (51) 返回

8.1 了解文件的处理过程 P202 3.文件的处理 文件的处理必须包括打开文件、读或写文件、关闭文件这3个过程。 返回

8.1 了解文件的处理过程 P202 磁盘文件 内存储器 数据 存储区 文件 缓冲区 …… 打开文件前文件与内存储器没有任何关系 返回

…… 8.1 了解文件的处理过程 P202 返回 文件 数据 缓冲区 磁盘文件 存储区 内存储器 打开文件时磁盘文件与文件缓冲区取得联系,做好读写准备 返回

8.1 了解文件的处理过程 P202 磁盘文件 内存储器 数据 存储区 文件 缓冲区 …… 写文件的过程 返回

8.1 了解文件的处理过程 P202 磁盘文件 内存储器 数据 存储区 文件 缓冲区 …… 读文件的过程 返回

8.1 了解文件的处理过程 P202 磁盘文件 内存储器 数据 存储区 文件 缓冲区 …… 关闭文件时磁盘文件与文件缓冲区断开联系 返回

8.1 了解文件的处理过程 P202 4.文件指针 打开文件和关闭文件的操作都通过文件指针实现。 文件指针是FILE类型,FILE类型已由系统声明,可直接用。 返回

8.2 掌握文件的基本操作本领 P203 8.2.1 创建文本文件 8.2.2 读取文本文件中的数据 8.2.3 创建二进制文件 8.2.4 读取二进制文件中的数据 返回

8.2.1 创建文本文件 P203 【实例8.1】编写程序,输入3种商品的品名、购买数量和单价,并用这些数据创建名为“f8_1.txt”的文本文件。 编程思路 打开文件用fopen函数,关闭文件用fclose函数,写文件用fprintf、fputc、fputs或fwrite等函数。

#include <stdio.h> main() { char nam[10]="\0"; int n=0,i=0; float pc=0.0; FILE *fp=NULL; fp=fopen("d:\\f8_1.txt","w"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); } 文本文件为写打开时可用“w”或“a”

printf("Input name_number_price:\n"); for(i=1; i<=3; i++) { scanf("%s %d %f",nam,&n,&pc); fprintf(fp,"%s %d %f\n",nam,n,pc); } fclose(fp);

8.2.2 读取文本文件中的数据 P205 【实例8.2】编写程序,从实例8.1所创建的文件“f8_1.txt”中读取数据计算购买每种商品所用的金额和购买3种商品所用的总金额。 编程思路 读文件用fscanf函数。 读文件时,每读一次判断是否读完,用feof函数实现。

#include <stdio.h> main() { char nam[10]="\0"; int n=0; float pc=0.0,s=0.0,sum=0.0; FILE *fp=NULL; fp=fopen("d:\\f8_1.txt","r"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); } 文本文件为读打开时可用“r”

fscanf(fp,"%s %d %f",nam,&n,&pc); while(feof(fp)==0) { printf("%17s%5d%9.2f",nam,n,pc); s=pc*n; sum=sum+s; printf("%9.2f\n",s); } fclose(fp); printf("Total:%8.2f\n",sum);

8.2.3 创建二进制文件 P207 【实例8.3】编写程序,输入3种商品的品名、购买数量和单价,并用这些数据创建名为“f8_3.dat”的二进制文件。 编程思路 创建二进制文件时要将数据块作为一个单位写到文件中。 写文件用fwrite函数。

#include <stdio.h> typedef struct goods { char nam[10]; int n; float pc; }GOODS;

二进制文件为写打开时可用“wb”或“ab” main() { GOODS g={0}; int i=0; float temp=0.0; FILE *fp=NULL; fp=fopen("d:\\f8_3.dat","wb"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); } 二进制文件为写打开时可用“wb”或“ab”

printf("Input name_number_price:\n"); for(i=0; i<3; i++) { scanf("%s %d %f", g.nam,&g.n,&temp); g.pc=temp; fwrite(&g,sizeof(GOODS),1,fp); } fclose(fp);

8.2.4 读取二进制文件中的数据 P208 【实例8.4】编写程序,从实例8.3所创建的文件“f8_3.dat”中读取数据计算购买每种商品所用的金额和购买3种商品所用的总金额。 编程思路 从文件“f8_3.dat”中读取数据时,要用二进制文件模式。写文件用fread函数。

#include <stdio.h> typedef struct goods { char nam[10]; int n; float pc; }GOODS;

main() { GOODS g={0}; float s=0.0,sum=0.0; FILE *fp=NULL; fp=fopen("d:\\f8_3.dat","rb"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); } 二进制文件为读打开时可用“rb”

fread(&g,sizeof(GOODS),1,fp); while(feof(fp)==0) { printf("%17s%5d%9.2f", g.nam,g.n,g.pc); s=g.pc*g.n; sum=sum+s; printf("%9.2f\n",s); } fclose(fp); printf("Total:%8.2f\n",sum);

8.3 文件的应用举例 P209 8.3.1 编写算术考试程序 8.3.2 编写阅卷程序 8.3.3 复制文件 8.3.4 修改文件 返回

8.3.1 编写算术考试程序 P209 编程思路 在同一时刻,1个文件指针只能指向1个文件,为了同时创建2个文件,需要定义2个文件指针。 【实例8.5】编写程序,给小学生出4道100以内2个数的加法题,最后分别将题目与学生的答题结果和正确答案保存在“f8_5_1.txt”和“f8_5_2.txt”文件中。 编程思路 在同一时刻,1个文件指针只能指向1个文件,为了同时创建2个文件,需要定义2个文件指针。

#include <stdio.h> #include <stdlib.h> #include <time.h> main() { int i=0,op1=0,op2=0,pupil=0,answer=0; FILE *fp=NULL,*fq=NULL; fp=fopen("d:\\f8_5_1.txt","w"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); }

fq=fopen("d:\\f8_5_2.txt","w"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); }

randomize(); for(i=1; i<=4; i++) { op1=random(100); op2=random(100); printf("%d+%d=",op1,op2); scanf("%d",&pupil); answer=op1+op2; fprintf(fp,"%d %d %d\n", op1,op2,pupil); fprintf(fq,"%d\n",answer); } fclose(fp); fclose(fq);

8.3.2 编写阅卷程序 P211 【实例8.6】编写程序,对实例8.5中小学生所做的答案进行阅卷,每道题分数为25。 编程思路 用读模式打开2个文件,并逐个比较学生答案和正确答案,只要答案相等,对总分加25。

#include <stdio.h> main() { int i=0,op1=0,op2=0,pupil=0, answer=0,total=0; FILE *fp=NULL,*fq=NULL; fp=fopen("d:\\f8_5_1.txt","r"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); }

fq=fopen("d:\\f8_5_2.txt","r"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); }

for(i=1; i<=4; i++) { fscanf(fp,"%d %d %d", &op1,&op2,&pupil); fscanf(fq,"%d",&answer); printf("%d+%d=%d %d ", op1,op2,pupil,answer); if(pupil==answer) {total=total+25; printf("Right!\n"); } else printf("Wrong!\n"); } fclose(fp); fclose(fq);

8.3.3 复制文件 P212 【实例8.7】编写程序,将实例8.3建立的文件“f8_3.dat”中内容复制到文件“f8_7.dat”中。 编程思路 复制文件的过程就是逐个读取一个文件中内容的的同时,再写入另一个文件中。

#include <stdio.h> typedef struct goods { char nam[10]; int n; float pc; }GOODS;

main() { GOODS g={0}; FILE *fp=NULL,*fq=NULL; fp=fopen("d:\\f8_3.dat","rb"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); }

fq=fopen("d:\\f8_7.dat","wb"); if(fq==NULL) { printf("Open error!!!\n"); getch(); exit(0); }

fread(&g,sizeof(GOODS),1,fp); while(feof(fp)==0) { fwrite(&g,sizeof(GOODS),1,fq); } fclose(fp); fclose(fq);

8.3.4 修改文件 P213 【实例8.8】编写程序,修改实例8.3建立的文件“f8_3.dat”中某商品的单价,商品名和单价由键盘输入。 编程思路 文件中读取数据存放到数组中,若要修改,修改后的单价存放到数组中,最后将数组中的数据写入原文件。

#include <stdio.h> typedef struct goods { char nam[10]; int n; float pc; }GOODS;

main() { GOODS g[3]={0}; char n[10]=""; int i=0; float new_pc=0.0; FILE *fp=NULL; fp=fopen("d:\\f8_3.dat","rb"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); }

scanf("%s %f",n,&new_pc); fread(&g[i],sizeof(GOODS),1,fp); while(feof(fp)==0) { if(strcmp(g[i].nam,n)==0) g[i].pc=new_pc; i++; fread(&g[i],sizeof(GOODS),1,fp); } fclose(fp);

fp=fopen("d:\\f8_3.dat","wb"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); }

fp=fopen("d:\\f8_3.dat","wb"); if(fp==NULL) { printf("Open error!!!\n"); getch(); exit(0); } for(i=0; i<3; i++) fwrite(&g[i],sizeof(GOODS),1,fp); fclose(fp);

贯穿教学全过程的实例 P215 根据教材第215~223页上机操作 返回