(C语言程序设计案例课件)项目八学生成绩文件管理.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《(C语言程序设计案例课件)项目八学生成绩文件管理.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 案例 课件 项目 学生 成绩 文件 管理
- 资源描述:
-
1、大连理工大学出版社C语言程序设计案例教程 C语言程序设计案例教程 大连理工大学出版社v教学目的:教学目的:通过本项目的学习,要求能理解文本文件和二进制文件通过本项目的学习,要求能理解文本文件和二进制文件的概念,能熟练使用文件的读写函数对文件进行一系列的操的概念,能熟练使用文件的读写函数对文件进行一系列的操作,理解文件的定位和文件的出错检测等,能够利用本项目作,理解文件的定位和文件的出错检测等,能够利用本项目的知识点进行一些简单的课程设计,为后续课程中系统的开的知识点进行一些简单的课程设计,为后续课程中系统的开发奠定基础。发奠定基础。项目八 学生成绩文件管理学生成绩文件管理 C语言程序设计案例教
2、程 大连理工大学出版社项目八 学生成绩文件管理学生成绩文件管理v本章内容本章内容 文件操作的文件操作的C C程序引例程序引例文件的打开与关闭文件的打开与关闭文件的读写文件的读写字符串读写函数字符串读写函数格式化读写函数格式化读写函数其他读写函数其他读写函数字符读写函数字符读写函数数据读写函数数据读写函数 C语言程序设计案例教程 大连理工大学出版社文件的定位文件的定位文件头定位函数文件头定位函数文件随即定位函数文件随即定位函数流失文件的定位函数流失文件的定位函数判断文件结束函数判断文件结束函数feoffeof文件的出错检测:文件的出错检测:ferrorferror和和clearerrcleare
3、rr综合实训综合实训项目八 学生成绩文件管理学生成绩文件管理 C语言程序设计案例教程 大连理工大学出版社项目八 学生成绩文件管理学生成绩文件管理v重点和重点和难点难点重点:重点:()文件的打开与关闭()文件的打开与关闭(2 2)文件的读写)文件的读写(3 3)文件的定位)文件的定位(4 4)文件的出错检测)文件的出错检测难点难点 :、文件的读写、文件的读写、文件的出错检测、文件的出错检测 C语言程序设计案例教程 大连理工大学出版社任务一 将学生成绩顺序读写到文件中辅导员张老师在使用小王设计的程序时,需要完成如辅导员张老师在使用小王设计的程序时,需要完成如下的工作:将一个班级学生的期末考试信息下
4、的工作:将一个班级学生的期末考试信息(学号、姓名、学号、姓名、总分总分)存入磁盘文件存入磁盘文件stu.txtstu.txt中,同时统计总分在中,同时统计总分在550550分以上分以上的优秀学生信息,并将优秀学生的名单输出到屏幕上,以的优秀学生信息,并将优秀学生的名单输出到屏幕上,以前数据都是放在程序中,程序退出数据也消失,数据只能前数据都是放在程序中,程序退出数据也消失,数据只能保存在内存中,不能长期保存,本任务使用外部存储文件保存在内存中,不能长期保存,本任务使用外部存储文件来保存数据,实现对数据的存储和读取,能安全有效的长来保存数据,实现对数据的存储和读取,能安全有效的长期保存数据,还能
5、提供数据共享。完善了原来的程序,帮期保存数据,还能提供数据共享。完善了原来的程序,帮助张老师解决了该助张老师解决了该问题问题。C语言程序设计案例教程 大连理工大学出版社任务一 将学生成绩顺序读写到文件中文件操作引例:【例8.1】编写程序完成:将一个班级学生的期末考试信息(学号、姓名、总分)存入磁盘文件stu.txt中,同时统计总分在550分以上的优秀学生信息,并将优秀学生的名单输出到屏幕上。C语言程序设计案例教程 大连理工大学出版社假设班级目前的学生数为30,则程序代码如下:/*源文件名:Li8_1.c功能:统计一个班级的期末考试信息。*/#include#define N 30/*定义班级中
6、学生的人数*/void main()int i;FILE*fp;FILE*fpp;struct stu char name20;int number;任务一 将学生成绩顺序读写到文件中 C语言程序设计案例教程 大连理工大学出版社int score;studN/*打开或建立stu.txt文件,只允许写入数据*/fp=fopen(stu.txt,w);for(i=0;iN;i+)printf(请输入第%d个学生的信息:n,i+1);printf(姓名:);scanf(%s,studi.name);printf(学号:);scanf(%d,&studi.number);printf(总分:);sca
7、nf(%d,&studi.score);fprintf(fp,%s,%d,%dn,studi.name,studi.number,studi.score);任务一 将学生成绩顺序读写到文件中 C语言程序设计案例教程 大连理工大学出版社 fclose(fp);/*关闭stu.txt文件*/*打开已有的stu.txt文件,只允许读取数据*/fpp=fopen(stu.txt,r);for(i=0;i550.0)printf(%s(学号:%d)是个优秀的学.n,studi.name,studi.number);fclose(fpp);/*关闭stu.txt文件*/getch();任务一 将学生成绩顺
8、序读写到文件中 C语言程序设计案例教程 大连理工大学出版社程序首先将程序首先将3030个学生的信息存放到文件个学生的信息存放到文件stu.txtstu.txt中,然后中,然后对存放在对存放在stu.txtstu.txt中的学生的总分进行统计,并将总分在中的学生的总分进行统计,并将总分在550550分分以上的学生的名单输出。以上的学生的名单输出。以输入以输入5 5个个(假设此时假设此时N N的值为的值为5)5)学生的信息为例,程序的学生的信息为例,程序的运行情况为:运行情况为:任务一 将学生成绩顺序读写到文件中 C语言程序设计案例教程 大连理工大学出版社任务一 将学生成绩顺序读写到文件中 C语言
9、程序设计案例教程 大连理工大学出版社 此时如果打开文件此时如果打开文件stu.txt,则,则5个学生的信息清单按照个学生的信息清单按照输入的顺序存放在输入的顺序存放在stu.txt文件中,如图所示。文件中,如图所示。程序运行后程序运行后stu.txt文件的内容文件的内容任务一 将学生成绩顺序读写到文件中 C语言程序设计案例教程 大连理工大学出版社要完成上面的任务,小王必须要能够熟练使用文件的读写要完成上面的任务,小王必须要能够熟练使用文件的读写函数对文件进行一系列的操作,并要了解以下几个跟文件相关函数对文件进行一系列的操作,并要了解以下几个跟文件相关得概念:得概念:文件是一组相关数据的集合。在
10、文件是一组相关数据的集合。在C C程序设计中,按文件的程序设计中,按文件的内容可以分为两类:一类是程序文件,它是程序得源代码;另内容可以分为两类:一类是程序文件,它是程序得源代码;另一类是数据文件,它是程序运行时需要的原始数据及输出的结一类是数据文件,它是程序运行时需要的原始数据及输出的结果。这两类文件都保存在磁盘上,随时可以使用。程序文件的果。这两类文件都保存在磁盘上,随时可以使用。程序文件的创建和使用已经在前面各章使用了,本项目主要介绍数据文件创建和使用已经在前面各章使用了,本项目主要介绍数据文件的创建和使用。的创建和使用。任务一 将学生成绩顺序读写到文件中 C语言程序设计案例教程 大连理
11、工大学出版社按数据得存储形式,数据文件可以分为文本文件和二进按数据得存储形式,数据文件可以分为文本文件和二进制文件两类。制文件两类。n文本文件:也称文本文件:也称ASCIIASCII文件,是一种字符流文件。文本文件,是一种字符流文件。文本文件的优点是可以直接阅读,而且文件的优点是可以直接阅读,而且ASCIIASCII码标准统一,使文码标准统一,使文件易于移植,其缺点是输入、输出都要进行转换,效率低。件易于移植,其缺点是输入、输出都要进行转换,效率低。n二进制文件:二进制文件中的数据是按其在内存中的存二进制文件:二进制文件中的数据是按其在内存中的存储形式存放的储形式存放的。任务一 将学生成绩顺序
12、读写到文件中 C语言程序设计案例教程 大连理工大学出版社n流:流是一个逻辑设备,具有诸多相同的行为。在流:流是一个逻辑设备,具有诸多相同的行为。在C语言语言中有两种性质的流:文字流和二进制。中有两种性质的流:文字流和二进制。n顺序文件:可以进行顺序存取的文件称为顺序文件。顺序文件:可以进行顺序存取的文件称为顺序文件。n随机文件:可以进行随机存取的文件称为随机文件。随机文件:可以进行随机存取的文件称为随机文件。nC语言支持的文件存取方式有两种:顺序存取和随机存取。语言支持的文件存取方式有两种:顺序存取和随机存取。随机存取也称直接存取。随机存取也称直接存取。任务一 将学生成绩顺序读写到文件中 C语
13、言程序设计案例教程 大连理工大学出版社8.2 文件的打开与关闭 由于文件的打开与关闭都是利用系统函数来实现的,因此,由于文件的打开与关闭都是利用系统函数来实现的,因此,在编写有关文件的程序时,应该在其中包含在编写有关文件的程序时,应该在其中包含“stdio.h”头文头文件。件。文件打开函数文件打开函数fopen用来打开一个文件,其调用的一般用来打开一个文件,其调用的一般形式为:形式为:文件指针名文件指针名=fopen(文件名,使用文件方式文件名,使用文件方式);其中:其中:“文件指针名文件指针名”必须是被说明为必须是被说明为FILE类型的指针变量;类型的指针变量;“文件名文件名”是被打开文件的
14、文件名;是被打开文件的文件名;C语言程序设计案例教程 大连理工大学出版社8.2 文件的打开与关闭 8.2.1 文件的打开 文件名通常是文件变量或文件数组;文件名通常是文件变量或文件数组;“使用文件方式使用文件方式”是是指文件的类型和操作要求。文件的使用方式共有指文件的类型和操作要求。文件的使用方式共有12种,下表种,下表给出了文本文件的符号和意义。给出了文本文件的符号和意义。文本文件的符号及其含义文本文件的符号及其含义 C语言程序设计案例教程 大连理工大学出版社8.2 文件的打开与关闭 8.2.1 文件的打开 二进制二进制文件的符号及其含义文件的符号及其含义 以上六种方式是针对以上六种方式是针
15、对“文本文件文本文件”类型的类型的,下表给,下表给出了出了另外六种文件的操作方式是针对另外六种文件的操作方式是针对“二进制文件二进制文件”类型的。类型的。C语言程序设计案例教程 大连理工大学出版社8.2 文件的打开与关闭 8.2.1 文件的打开 可以看出,上面两个表的作用基本上是相同的,唯一的区可以看出,上面两个表的作用基本上是相同的,唯一的区别是下表增加了一个表示二进制的字符别是下表增加了一个表示二进制的字符“b”。其中,文件使。其中,文件使用方式由用方式由r、w、a、t、b和和+六个字符组成,各字符的含义六个字符组成,各字符的含义如表所示。如表所示。文件使用方式中的字符及其含义文件使用方式
16、中的字符及其含义 C语言程序设计案例教程 大连理工大学出版社8.2 文件的打开与关闭 8.2.1文件的打开 对上表做以下补充说明:对上表做以下补充说明:1.程序中凡是用程序中凡是用“r”打开一个文件时,表明该文件必须打开一个文件时,表明该文件必须已经存在,且只能从该文件读出数据。已经存在,且只能从该文件读出数据。2用用“w”打开的文件也只能向该文件写入数据。若打开打开的文件也只能向该文件写入数据。若打开的文件不存在,则按照指定的文件名建立该文件,若打开的文的文件不存在,则按照指定的文件名建立该文件,若打开的文件已经存在,则将该文件删除,重建一个新文件。使用时要特件已经存在,则将该文件删除,重建
17、一个新文件。使用时要特别注意这一点。别注意这一点。3.如果要向一个已经存在的文件后面追加新的信息,那如果要向一个已经存在的文件后面追加新的信息,那只能用只能用“a”方式打开文件。但此时该文件必须是存在的,否则方式打开文件。但此时该文件必须是存在的,否则将会出错。将会出错。C语言程序设计案例教程 大连理工大学出版社8.2 文件的打开与关闭 8.2.1 文件的打开 4在打开一个文件之前,应该定义文件型指针,以便接在打开一个文件之前,应该定义文件型指针,以便接收函数收函数fopen返回的地址。如果出错,返回的地址。如果出错,fopen将返回一个空将返回一个空指针指针NULL。在程序中可以用这一信息来
18、判别是否完成打开文。在程序中可以用这一信息来判别是否完成打开文件的工作,并做相应的处理。件的工作,并做相应的处理。例如:例如:if(fp=fopen(“file1”,”rb”)=NULL)printf(“n error on open file1”);getch();exit(1);C语言程序设计案例教程 大连理工大学出版社8.2 文件的打开与关闭 8.2.1 文件的打开 该程序段表示:如果返回的指针为空,则不能打开当前该程序段表示:如果返回的指针为空,则不能打开当前目录下的文件目录下的文件“file1”,同时给出错误提示信息,同时给出错误提示信息“error on open file1”。程
19、序中的。程序中的getch()函数的功能是从键盘输入函数的功能是从键盘输入一个字符,该字符不在屏幕上显示。其实一个字符,该字符不在屏幕上显示。其实getch()在这里的在这里的作用是停留等待,只有当用户从键盘敲任意键时,程序才继续作用是停留等待,只有当用户从键盘敲任意键时,程序才继续执行,我们可以利用这个等待时间来阅读出错提示,找到错误执行,我们可以利用这个等待时间来阅读出错提示,找到错误原因。当敲任意键后,执行语句原因。当敲任意键后,执行语句“exit(1);”,从而退出程序。,从而退出程序。C语言程序设计案例教程 大连理工大学出版社8.2 文件的打开与关闭 文件一旦使用完毕,应使用关闭文件
20、函数文件一旦使用完毕,应使用关闭文件函数fclose把文件把文件关闭,以避免文件数据丢失等情况的发生。关闭,以避免文件数据丢失等情况的发生。fclose函数调用的一般形式为:函数调用的一般形式为:fclose(FILE*fp);其中,参数其中,参数fp是文件型指针,通过是文件型指针,通过fopen()函数已经获得,函数已经获得,它指向某个打开的文件。例如它指向某个打开的文件。例如 :fclose(fp);C语言程序设计案例教程 大连理工大学出版社上述语句的含义是关闭上述语句的含义是关闭fp所指向的文件,同时自动释所指向的文件,同时自动释放分配给文件的内存缓冲区。当正常完成关闭文件的操作放分配给
21、文件的内存缓冲区。当正常完成关闭文件的操作时,时,fclose函数的返回值为函数的返回值为0,表示已正确关闭指定的文,表示已正确关闭指定的文件;如返回非件;如返回非0值则表示有错误发生。值则表示有错误发生。8.2 文件的打开与关闭 8.2.2文件的关闭 C语言程序设计案例教程 大连理工大学出版社8.2 文件的打开与关闭 8.2.2文件的关闭 【例8.2】文件的打开与关闭应用举例。/*源文件名:Li8_2.c功能:文件的打开与关闭。*/#includevoid main()FILE*fp;/*定义一个文件指针*/if(fp=fopen(C:STUDENTch01_01ch01_01.c,rb )
22、=NULL)printf(file can not open!n);exit(1);else printf(The file succeed open!n);fclose(fp);C语言程序设计案例教程 大连理工大学出版社8.2 文件的打开与关闭 8.2.2文件的关闭 说明:在书写时,要严格按照格式书写,例如:将路径写说明:在书写时,要严格按照格式书写,例如:将路径写成成“C:STUDENTch01_01ch01_01.c”C:STUDENTch01_01ch01_01.c”是不正确的,这一点是不正确的,这一点要特别注意。路径写成要特别注意。路径写成“C:STUDENTch01_01ch01_
23、01.c”C:STUDENTch01_01ch01_01.c”才是正确的,这里的才是正确的,这里的“”的含义是:第一个的含义是:第一个“”代表转义代表转义字符,第二个字符,第二个“”才是字符本身。才是字符本身。程序运行后,屏幕显示:程序运行后,屏幕显示:C语言程序设计案例教程 大连理工大学出版社8.3 文件的读写文件的读写操作由文件读写函数完成,常用的读写函数文件的读写操作由文件读写函数完成,常用的读写函数有有fputcfputc、fgetcfgetc、freadfread、fwritefwrite、fputsfputs、fgetsfgets、fprintffprintf、fscanffsca
24、nf、putwputw、getwgetw等。等。1.读字符函数读字符函数fgetc函数函数读字符函数读字符函数fgetcfgetc函数函数:fgetcfgetc函数用来从指定的文件读入一个字符,该文件必须是读函数用来从指定的文件读入一个字符,该文件必须是读或写方式打开的。或写方式打开的。fgetcfgetc函数的调用格式如下:函数的调用格式如下:ch=fgetc(fp);ch=fgetc(fp);C语言程序设计案例教程 大连理工大学出版社8.3 文件的读写 8.3.1 字符读写函数其中其中fpfp为文件类型指针,为文件类型指针,chch为字符变量。为字符变量。fgetcfgetc函数函数返回的
25、字符赋给字符变量返回的字符赋给字符变量chch。如果在执行。如果在执行fgetcfgetc函数读字符时函数读字符时遇到文件结束符,则该函数返回一个结束标志遇到文件结束符,则该函数返回一个结束标志EOF(-1)EOF(-1)。如果。如果想从磁盘文件顺序读入字符并在屏幕上显示出来,可以用以下想从磁盘文件顺序读入字符并在屏幕上显示出来,可以用以下的程序段:的程序段:ch=fgetc(fpch=fgetc(fp););while(ch!=EOF)while(ch!=EOF)putchar(ch);putchar(ch);ch=fgetc(fp);ch=fgetc(fp);C语言程序设计案例教程 大连理
展开阅读全文