实验十三 编程综合练习 一、实验目的 1. 掌握C程序设计...
实验十三 编程综合练习 一、实验目的 1. 掌握C程序设计语言的相关知识,提高C程序的编程技巧; 2. 学会使用文件相关函数进行编程综合练习。 二、实验内容及实验步骤 1. 文本文件显示。用任何一种方法先创建一个文本文件string.txt,编写程序将该文件的内容显示出来。 参考程序 /* 显示文本文件的程序 */ #include "stdio.h" main() { FILE *fp; char ch; if((fp=fopen("string.txt","r"))==NULL) { printf("cannot open source file.\n"); exit(1); } while(!feof(fp)) { ch=fgetc(fp); putchar(ch); } fclose(fp); } 程序调试 ① 建立string.txt文本文件。 ② 运行程序,察看并分析程序的运行结果。 ③ 删除string.txt文本文件后,运行程序,察看并分析程序的运行结果。 2. 文件复制。编写一个文本文件复制函数,并在主函数main()中调用它,将上面建立的文本文件string.txt复制到文件backup.txt中。 参考程序 /* 文件复制程序 */ #include"stdio.h" void copy(char *,char *); /* 文件复制函数原型说明 */ main() { char *source="string.txt"; char *target="backup.txt"; copy(source,target); } void copy(char *source,char *target) { FILE *fp_s,*fp_t; if((fp_s=fopen(source,"r"))==NULL) /* 以读方式打开源文件 */ { printf("cannot open source file.\n"); exit(1); } if((fp_t=fopen(target,"w"))==NULL) { printf("cannot open target file.\n"); exit(1); } while(!feof(fp_s)) fputc(fgetc(fp_s),fp_t); fclose(fp_s); fclose(fp_t); return; } 程序调试 运行程序后,用文本编辑软件打开backup.txt文件察看结果。也可以使用上面的文本文件显示程序察看结果。 3. 用文件存储学生数据。有5个学生,每个学生有3门课的成绩,从键盘输入数据(包括学生号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。 设5名学生的学号、姓名和3门课成绩如下: 99101 Wang 89 98 67 99103 Li 60 80 90 99106 Fun 75 91 99 99110 Ling 80 50 62 99113 Yuan 58 68 7l 参考程序 /* 用文件存储学生数据程序 */ #include "stdio.h" #define N 5 struct student /* 定义学生结构体数据类型 */ { char num[10]; char name[8]; int score[3]; float ave; }; main() { struct student stu[5]; int i,j; FILE *fp; float sum; for(i=0;i<n;i++) { printf("enter num: "); scanf("%s",stu[i].num); * 输入学生的学号 name: scanf("%s",stu[i].name); 输入学生的姓名 sum="0;" for(j="0;j<3;j++)" 输入学生的三门课的成绩 socre%d: ",j+1); scanf("%d",&stu[i].score[j]); 计算总成绩 getchar(); } stu[i].ave="sum/3.0;" 计算平均成绩 printf("\n"); if((fp="fopen(" stud" ","w"))="=NULL)" printf("can not open this file.\n"); exit(1); for(i="0;i<N;i++)" fwrite(&stu[i],sizeof(struct student),1,fp); fclose(fp); ","r"))="=NULL)" fread(&stu[i],sizeof(struct printf("%s %s ",stu[i].num,stu[i].name); printf("%d ",stu[i].score[j]); printf("%f\n",stu[i].ave); 程序调试 ① 为了观察文件的存储操作是否正确,在调试程序时应增加显示存储文件的程序代码。也可以单独编写程序,显示存储文件。 ② 在参考程序中,在写文件时使用的是“w”操作方式,显示文件时重新用“r”方式打开。请修改程序,使用一种文件操作方式,写完之后,再从头显示文件内容。 三、实验报告要求 写明: 1. 实验目的 2. 实验内容与步骤 3. 编写的程序(题目,经调试、运行后正确的程序) 4. 思考题的解决方法。 5.>