C语言与软件技术基础文件操作实验报告.docx

上传人:b****6 文档编号:5616687 上传时间:2022-12-29 格式:DOCX 页数:12 大小:121.74KB
下载 相关 举报
C语言与软件技术基础文件操作实验报告.docx_第1页
第1页 / 共12页
C语言与软件技术基础文件操作实验报告.docx_第2页
第2页 / 共12页
C语言与软件技术基础文件操作实验报告.docx_第3页
第3页 / 共12页
C语言与软件技术基础文件操作实验报告.docx_第4页
第4页 / 共12页
C语言与软件技术基础文件操作实验报告.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C语言与软件技术基础文件操作实验报告.docx

《C语言与软件技术基础文件操作实验报告.docx》由会员分享,可在线阅读,更多相关《C语言与软件技术基础文件操作实验报告.docx(12页珍藏版)》请在冰豆网上搜索。

C语言与软件技术基础文件操作实验报告.docx

C语言与软件技术基础文件操作实验报告

C语言与软件技术基础

实验报告

课程名称实验名称实验地点

指导老师实验时间提交时间

班级姓名座号

一、实验目的和要求

1、了解文件和文件指针的概念。

2、学会使用文件操作函数实现对文件打开、关闭、读、写等操作。

3、学会对数据文件进行简单的操作。

二、实验环境和方法

实验方法:

(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。

(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。

(三)根据实验内容,编译程序。

实验环境:

WindowsxpVisualC++6.0

三、实验内容及过程描述

实验内容:

编译以下题目的程序并调试运行。

1、有5个学生,每个学生有3门课成绩、从键盘输入5个学生数据,计算出平均成绩,将原有数据和和计算出的平均分数存在磁盘文件stud中。

设5名学生的学号、

姓名和

10101

Wang

10103

Li

10106

Sum

10110

Ling

10113

Yuan

3门课成绩如下:

89,98,67.5

60,80,90

75.5,91.5,99

100,50,62.5

58,68,71

在向文件stud写入数据后,应检查验证stud文件的内容是否正确。

2、将上题stud文件中的数据按平均分进行排序处理,将已排序的学生数据存入一个新的文件stu_sort中。

在向文件stu_sort写入数据后,应检查验证stu_sort文件的内容是否正确。

3、将上题已排序的学生成绩文件进行插入处理。

插入一个学生的3门课成绩。

程序先计算插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新的文件。

要插入的数据位

10108Xin90,95,60

在想新文件stu_new写入数据后,应检查验证stu_new文件的内容是否正确。

实验步骤:

1进入VisualC++6.0集成环境。

2输入自己编好的程序。

3检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改

正。

4进行编译和连接。

如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提示

找到出错位置和原因,加以改正。

再进行编译,如此反复直到不出错为止。

5运行程序并分析运行结果是否合理。

在运行是要注意当输入不同的数据时所得结果是否正确,

应运行多次,分别检查在不同情况下结果是否正确。

以下是各题源代码:

1、有5个学生,每个学生有3门课成绩、从键盘输入5个学生数据,计算出平均成绩,将原有

数据和和计算出的平均分数存在磁盘文件stud中。

#include

#defineN5

structStudent

{

intnum;

charname[5];

floatscore[3];

floatave;

}stu[N];

voidsave()

{

FILE*fp;

inti,j;

if((fp=fopen("E:

\\stu.txt","w"))==NULL)

{

printf("打开文件失败!

\n");

return;

}

for(i=0;i

{

if(fwrite(&stu[i],sizeof(structStudent),1,fp)!

=1)

printf("写入文件失败!

\n");

}

fclose(fp);

fp=fopen("E:

\\stu.txt","r");

printf("\t学号\t姓名\t第1门成绩\t第2门成绩\t第3门成绩\t平均分\n”);

printf("\t\n”);

for(i=0;i

{

printf("\t%d\t%s",stu[i].num,stu[i].name);for(j=0;j<3;j++)

printf("\t%5.1f',stu[i].score[j]);

}

printf("\t%8.2f\n",stu[i].ave);

printf("\t\n");

}

}

intmain()

{

inti,j;

floatsum=0;

printf("\t\t\t*******输入学生数据*******\n");

for(i=0;i

{

printf("\t请输入第%d位学生的数据:

\n",i+1);

printf("\t学号:

");

scanf("%d",&stu[i].num);

printf("\t姓名:

");

scanf("%s",stu[i].name);

for(j=0;j<3;j++)

{

printf("\t第%d门课成绩:

",j+1);

scanf("%f",&stu[i].score[j]);

sum+=stu[i].score[j];

}

stu[i].ave=sum/3.0;

printf("\t\n”);

}

save();

stu_sort中。

}

2、将上题stud文件中的数据按平均分进行排序处理,将已排序的学生数据存入一个新的文件

#include

#include

#defineN5

structStudent

{

intnum;

charname[5];

floatscore[3];

floatave;

}stu[N],temp;

intmain()

{

FILE*fp;

inti,j,k;

if((fp=fopen("E:

\\stu.txt","r"))==NULL)

{

printf("打开文件失败!

\n");

exit(0);

}

printf("原数据为:

\n");

printf("\t学号\t姓名\t第1门成绩\t第2门成绩\t第3门成绩\t平均分\n");

for(i=0;i

{

fread(&stu[i],sizeof(structStudent),1,fp);

printf("\t%d\t%s",stu[i].num,stu[i].name);

for(j=0;j<3;j++)

{

printf("\t%5.1f",stu[i].score[j]);

}

printf("\t%8.2f\n",stu[i].ave);

printf("\t\n");

}

fclose(fp);

printf("\n");

for(i=0;i

{

k=i;

for(j=i+1;j

if(stu[j].ave>stu[k].ave)k=j;

temp=stu[i];

stu[i]=stu[k];

stu[k]=temp;

}

if((fp=fopen("E:

\\stu_sort.txt","w"))==NULL)

{

printf("打开文件失败!

\n");

exit(0);

}

for(i=0;i

if(fwrite(&stu[i],sizeof(structStudent),1,fp)!

=1)printf("写入文件失败!

\n");fclose(fp);

fp=fopen("E:

\\stu_sort.txt","r");

printf("排序结果为:

\n");

printf("\t学号\t姓名\t第1门成绩\t第2门成绩\t第3门成绩\t平均分\n");

printf("\t\n");

for(i=0;i

{

printf("\t%d\t%s",stu[i].num,stu[i].name);

for(j=0;j<3;j++)

{

printf("\t%5.1f",stu[i].score[j]);

}

printf("\t%8.2f\n",stu[i].ave);

printf("\t\n");

}

}

3、将上题已排序的学生成绩文件进行插入处理。

插入一个学生的3门课成绩。

程序先计算插入学生的平

均成绩,然后将它按成绩高低顺序插入,插入后建立一个新的文件。

#include

#include

#defineN6

structStudent

{

intnum;

charname[5];

floatscore[3];

floatave;

}stu[N],s,temp;

intmain()

{

FILE*fp;

inti,j,k;

floatsum=0;

if((fp=fopen("E:

\\stu_sort.txt","r"))==NULL)

{

printf("打开文件失败!

\n");

exit(0);

}

printf("原数据为:

\n");

printf("\t学号\t姓名\t第1门成绩\t第2门成绩\t第3门成绩\t平均分\n");

for(i=0;i

{

fread(&stu[i],sizeof(structStudent),1,fp);

printf("\t%d\t%s",stu[i].num,stu[i].name);

for(j=0;j<3;j++)

{

printf("\t%5.1f",stu[i].score[j]);

}

printf("\t%8.2f\n",stu[i].ave);

printf("\t\n");

}fclose(fp);

printf("请输入要插入的学生数据:

\n");printf("\t学号:

");

scanf("%d",&s.num);

printf("\t姓名:

");scanf("%s",&s.name);

for(j=0;j<3;j++){

printf("\t第%d门课成绩:

",j+1);

scanf("%f",&s.score[j]);

sum+=s.score[j];

}s.ave=sum/3.0;printf("\t\n");

for(i=0;i

if(s.ave

k=i;

}for(i=N-1;i>=k;i--)

stu[i+1]=stu[i];stu[k+1]=s;if((fp=fopen("E:

\\stu_new.txt","w"))==NULL){

printf("打开文件失败!

\n");

exit(0);

}for(i=0;i

if(fwrite(&stu[i],sizeof(structStudent),1,fp)!

=1)printf("写入文件失败!

\n");

fclose(fp);fp=fopen("E:

\\stu_new.txt","r");printf("新的结果为:

\n");

printf("\t学号\t姓名\t第1门成绩\t第2门成绩\t第3门成绩\t平均分\n”);printf("\t\n");

for(i=0;i

{

printf("\t%d\t%s",stu[i].num,stu[i].name);

for(j=0;j<3;j++)

{

printf("\t%5.1f',stu[i].score[j]);

}

printf("\t%8.2f\n",stu[i].ave);

printf("\t\n");

}

}

四、实验结果:

1、有5个学生,每个学生有3门课成绩、从键盘输入5个学生数据,计算出平均成绩,将原有数据和和

计算出的平均分数存在磁盘文件stud中。

 

2、将上题stud文件中的数据按平均分进行排序处理,将已排序的学生数据存入一个新的文件stusort中。

潮彎号

Mang

8

1鹼

9卫

冷0

第门醱

67.5

第丫

84.83

W

10191

10103

Li

&0.0

80.0

90.0

76.&7

10106

Sun

75.5

91.5

99.0

88.&7

10110

Ling

100*0

50.0

62.5

?

0.83

10113

Kang

58.0

68.0

71.0

65.67

1㈱

物:

学号

姓名

篦「

第2门鹼

lar

戟分

10106

Sun

75.5

91.5

99.0

18.67

10101

Mang

89.0

9S.0

67.5

84.83

10103

Li

60.0

80.0

瓶0

?

6・6?

10110

Ling

100.0

50.0

62.5

70.83

10113

Yang

58.0

68.0

71.0

(5.67

3门课成绩。

程序先计算插入学生的平

10106Sun75.59仁599.088.6?

10101Uang89』9L067.584.83

101EI8Kin90.095.060.081.6?

101B3Li60.080.090.076.6?

10110Ling100.050.062・570,83

10113Vang58.068』?

1.065.67

Pressany血ytocontinue^

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1