您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页C程序实验8

C程序实验8

来源:飒榕旅游知识分享网
 实验一 实验目的

8 文件

1. 掌握文件以及缓冲文件系统,文件指针的概念; 2. 学会使用文件打开,关闭,读,写等文件操作函数; 3. 学会使用缓冲文件系统对文件进行简单的操作。 二 实验内容

编程序并上机调试运行: 1、编程序求100以内的素数,分别将它输出到显示器和x.txt文件中,要求每行5个数。 2、有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。 设5名学生的学号、姓名和3门课成绩如下: 99101 Wang ,98,67.5 99103 Li 60,80,90 99106 Fun 75.5,91.5,99 99110 Ling 100,50,62.5 99113 Yuan 58,68,7l 在向文件stud写入数据后,应检查验证stud文件中的内容是否正确。 3、将上题stud文件中的学生数据,按平均分进行排序(由高到低)处理,将已排序的学生数据存入一个新文件stu_sort中. 在向文件stu_sort写入数据后,应检查验证stu_sort文件中的内容是否正确。 4、对上题已排序的学生成绩文件进行插入处理,插入一个学生的3门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。(BX12.7) 要插入的学生数据为: 99108 Xin 90,95,60 在向新文件stu_new写入数据后,应检查验证stu_new文件中的内容是否正确。 三、实验源码及测试数据

8.1编程序求100以内的素数,分别将它输出到显示器和x.txt文件中,要求每行5个数。 #include #include #include int main() { FILE *fp; int i,j,a[100],k; int m=0,n; if ((fp=fopen(\"x\ { printf (\"cannot open the file.\\n\"); } for (i=2;i<100;i++) { k=sqrt(i); for (j=2;j<=k;j++) { if (i%j==0)break; } if (j>=k+1) { m++; printf (\"%d\\ fprintf (fp,\"%d\ } if (m%5==0) { printf (\"\\n\"); fputs (\"\\n\ } } fclose (fp); return 0; } 8.2有5个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。 设5名学生的学号、姓名和3门课成绩如下: 99101 Wang ,98,67.5 99103 Li 60,80,90 99106 Fun 75.5,91.5,99 99110 Ling 100,50,62.5 99113 Yuan 58,68,7l #include struct student { int num; char name[20]; float score[3]; } stu[5]; int main() { FILE *fp; int i,j; float sum[5]; if ((fp=fopen(\"stud\ { printf (\"cannot open the file.\\n\"); } for(i=0;i<5;i++) scanf(\"%d%s%*c%f%f%f\ &stu[i].score[1],&stu[i].score[2]); printf (\"\\n\"); for(i=0;i<5;i++) printf(\"NO.%d %d\%s\%.2f\%.2f\%.2f\\n\ stu[i].score[1],stu[i].score[2]); for(i=0;i<5;i++) { fprintf(fp,\"%d\%s\%.2f\%.2f\%.2f\\n\ stu[i].score[0],stu[i].score[1],stu[i].score[2]); } for(i=0;i<5;i++) for(j=0;j<3;j++) { sum[i]=0; sum[i]+=stu[i].score[j]; } printf (\"\\n\"); printf (\"aver:\\n\"); for(i=0;i<5;i++) printf(\"%.2f\\ printf(\"\\n \"); for(i=0;i<5;i++) fprintf(fp,\"%.2f\\ fclose(fp); } 8.3将上题stud文件中的学生数据,按平均分进行排序(由高到低)处理,将已排序的学生数据存入一个新文件stu_sort中. 在向文件stu_sort写入数据后,应检查验证stu_sort文件中的内容是否正确。 #include struct student { int num; char name[20]; float score[3]; } stu[5],p; int main() { FILE *fp; int i,j; fp=fopen(\"stud\ for(i=0;i<5;i++) fscanf(fp,\"%d%s%f%f%f\ &stu[i].score[1],&stu[i].score[2]); for(i=0;i<4;i++) for(j=0;j<4-i;j++) if(stu[j].score[0]>stu[j+1].score[0]) {p=stu[j];stu[j]=stu[j+1];stu[j+1]=p;} fclose(fp); for(i=0;i<5;i++) {printf(\"%d\%s\%.2f\%.2f\%.2f\\nu[i].score[0],stu[i].score[1],stu[i].score[2]); } fp=fopen(\"stu_sort\ for(i=0;i<5;i++) {fprintf(fp,\"%d\%s\%.2f\%.2f\%.2f\\n\ stu[i].score[0],stu[i].score[1],stu[i].score[2]); } fclose(fp); } 8.4 对上题已排序的学生成绩文件进行插入处理,插入一个学生的3门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。(BX12.7) 要插入的学生数据为: 99108 Xin 90,95,60 在向新文件stu_new写入数据后,应检查验证stu_new文件中的内容是否正确。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务