C语言程序设计案例教程 第二版 高职计算机大类专业基础 熊锡义 实验教案C程序设计教案 第10章实验13次

上传人:w****i 文档编号:92356424 上传时间:2019-07-09 格式:DOC 页数:6 大小:65.50KB
返回 下载 相关 举报
C语言程序设计案例教程 第二版 高职计算机大类专业基础 熊锡义 实验教案C程序设计教案 第10章实验13次_第1页
第1页 / 共6页
C语言程序设计案例教程 第二版 高职计算机大类专业基础 熊锡义 实验教案C程序设计教案 第10章实验13次_第2页
第2页 / 共6页
C语言程序设计案例教程 第二版 高职计算机大类专业基础 熊锡义 实验教案C程序设计教案 第10章实验13次_第3页
第3页 / 共6页
C语言程序设计案例教程 第二版 高职计算机大类专业基础 熊锡义 实验教案C程序设计教案 第10章实验13次_第4页
第4页 / 共6页
C语言程序设计案例教程 第二版 高职计算机大类专业基础 熊锡义 实验教案C程序设计教案 第10章实验13次_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《C语言程序设计案例教程 第二版 高职计算机大类专业基础 熊锡义 实验教案C程序设计教案 第10章实验13次》由会员分享,可在线阅读,更多相关《C语言程序设计案例教程 第二版 高职计算机大类专业基础 熊锡义 实验教案C程序设计教案 第10章实验13次(6页珍藏版)》请在金锄头文库上搜索。

1、实验 13 文件操作一、 实验学时:2课时二、 实验目标1. 掌握文件及缓冲文件系统、文件指针的概念。2. 学会使用文件打开、关闭、读、写等文件操作函数。3. 学会用缓冲文件系统对文件进行简单的操作。三、 实验要求:1. 在上实验课之前,每一个同学必须将实验的题目、程序编写完毕,做好充分的准备。2. 所有实验环节均由每位同学独立完成,严禁抄袭他人实验结果,若发现有结果雷同者,按实验课考核办法处理。四、 实验步骤和内容l 【启动Visual C+】l 【新建工程】l 选中【C+ Source File】项,【新建源程序文件】l 编辑程序l 执行程序1 编写一个程序,设计一个文件student.b

2、in,其结构如下:struct studentchar no10;/*学号*/char name20;/*姓名*/char score50;/*成绩*/要求实现学生记录添加、输出、查找(按学号进行)、修改(按学号进行)和删除(按学号进行)等功能。2 编程要求1)采用文字提示方式限定用户选择,如:1:新添 2:输出 3:查找 4:修改 5:删除 0:退出 选择:用户输入对应的数字并按回车键后执行相应的功能。2)用户可以循环操作直到选择退出为止。3)程序的提示信息均以“”开头,运行结果不以“”开头。输入如下代码:/*源文件名:ShiYan.c功能:实现在文件中记录某一门课的成绩信息*/#inclu

3、de #include #include /*定义结构体*/struct student char no10;char name20;char score50;char filename100=student.bin;FILE *fp;void creat();/*创建函数声明*/void append();/*添加函数声明*/void search();/*查找函数声明*/void delete();/*删除函数声明*/void modify();/*修改函数声明*/void output();/*输出函数声明*/void main()int num;/creat();/*先创建文件的内容*

4、/while(1)printf(单击任意键进入目录.n);getch();printf(*欢迎使用学生成绩系统*nn);printf(* 1.添加记录,请按1 *n);printf(* 2.查找记录,请按2 *n);printf(* 3.修改记录,请按3 *n);printf(* 4.删除记录,请按4 *n);printf(* 5.输出记录,请按5 *n);printf(* 0.退出系统,请按0 *n);printf(选择:);scanf(%d,&num);if(num=0&num操作完毕,请再次选择!);elseprintf(nn选择错误,请再次选择!);getch();/*创建记录*/vo

5、id creat()struct student one;printf(n请输入文件名称:);scanf(%s,filename);if(fp=fopen(filename,w)=NULL)printf(n对不起,不能建立文件!);exit(1);fprintf(fp,%-10s%-20s%-50sn,学号,姓名,成绩);printf(n请输入学号、姓名及成绩(以0结束)n);scanf(%s,one.no);while(strcmp(one.no,0)scanf(%s%s,one.name,one.score);fprintf(fp,%-10s%-20s%-50sn,one.no,one.n

6、ame,one.score);scanf(%s,one.no);fclose(fp);/*添加记录*/void append()struct student one;if(fp=fopen(filename,a)=NULL)printf(n对不起,不能打开文件!);exit(1);printf(n请输入要添加的学号、姓名及成绩n);scanf(%s%s%s,one.no,one.name,one.score);fprintf(fp,%-10s%-20s%-50sn,one.no,one.name,one.score);fclose(fp);/*查找记录*/void search()int k=

7、0;char nokey10;struct student one;printf(n请输入学号:);scanf(%s,nokey);if(fp=fopen(filename,rb)=NULL)printf(n对不起,不能打开文件!);exit(1);while(!feof(fp)fscanf(fp,%s%s%sn,one.no,one.name,one.score);if(!strcmp(nokey,one.no)printf(nn已查找到,该记录为:);printf(n%-10s%-20s%-50s,one.no,one.name,one.score);k=1;if(!k)printf(nn

8、对不起,文件中没有此人的记录。);fclose(fp);/*修改记录*/void modify()int k=0;long offset;char nokey10;struct student one;printf(n请输入学号:);scanf(%s,nokey);if(fp=fopen(filename,r+)=NULL)printf(n对不起,不能打开文件!);exit(1);while(!feof(fp)offset=ftell(fp);fscanf(fp,%s%s%sn,&one.no,one.name,one.score);if(!strcmp(nokey,one.no)k=1;br

9、eak;if(k)printf(nn已查找到,该记录为:);printf(n%-10s%-20s%-50s,one.no,one.name,one.score);printf(n请输入新的学号、姓名及成绩:);scanf(%s%s%s,one.no,one.name,one.score);fseek(fp,offset,SEEK_SET);printf(%ld,ftell(fp);fprintf(fp,%-10s%-20s%-50sn,one.no,one.name,one.score);elseprintf(nn对不起,文件中没有此人的记录。);fclose(fp);/*删除记录*/void

10、 delete()int m,k=0;long offset;char nokey10;struct student one;printf(n请输入学号:);scanf(%s,nokey);if(fp=fopen(filename,r+)=NULL)printf(n对不起,不能打开文件!);exit(1);while(!feof(fp)offset=ftell(fp);fscanf(fp,%s%s%sn,one.no,one.name,one.score);if(!strcmp(nokey,one.no)k=1;break;if(k)printf(nn已查找到,该记录为:);printf(n%

11、-10s%-20s%-50s,one.no,one.name,one.score);printf(n确实要删除记录,请按1;不删除记录,请按0:);scanf(%d,&m);if(m)fseek(fp,offset,SEEK_SET);fprintf(fp,%-10s%-20s%-50sn,);elseprintf(nn对不起,文件中没有此人的记录。);fclose(fp);/*输出记录*/void output()struct student one;if(fp=fopen(filename,r)=NULL)printf(n对不起,不能打开文件!);exit(1);printf(nn%20sn,文件);while(!feof(fp)fscanf(fp,%s%s%sn,one.no,one.name,one.score);printf(%-10s%-20s%-50s,one.no,one.name,one.score);fclose(fp); 编译、连接、和运行程序。程序运行后,观查屏幕显示结果。五、 思考题1. 文件操作函数fscanf()和scanf()区别2. 文件操作函数fprintf()和printf()区别六、 实验小结:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号