按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)

目录

对文件进行操作是c语言不可或缺测一部分,这里我通过例题来实现与说明

一.题目描述:有5个学生,每个学生有3门课程的成绩,从键盘输人学 生数据(包括学号,姓名,3门课程成绩),计算出平均成 绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。

由图片可知,经过写入,数据已经存在于我们的文件中 

二: 将第1题stud文件中的学生数据,按平均分进行排序处理将已排序的学生数据存入一个新文件stu_ sort 中。

三:将第2题已排序的学生成绩文件进行插人处理。插人一个 学生的3门课程成绩,程序先计算新插人学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。


对文件进行操作是c语言不可或缺的一部分,这里我通过例题来实现与说明

一.题目描述:5个学生,每个学生有3门课程的成绩,从键盘输人学生数据(包括学号,姓名,3门课程成绩)计算出平均成绩将原有数据和计算出的平均分数存放在磁盘文件stud中。

思路:这里要求对数据进行读入操作,有需要写入学生的多组数据,很容易想到用结构体变量来描述
代码详解:
按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第1张图片

 运行解结果:

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第2张图片

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第3张图片

由图片可知,经过写入,数据已经存在于我们的文件中 

二: 将第1stud文件中的学生数据,按平均分进行排序处理将已排序的学生数据存入一个新文件stu_ sort 中。

思路:这里同样需要用到结构体变量,我在这里采用了冒泡排序的方法将学生平均成绩由高到低进行排序,需要注意的是,交换结构体数据需要用到memcpy函数。 

有关memcpy函数: 

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第4张图片

 使用注意:

1.函数memcpy从src位置开始向后复制count个字节数据到dest指向的内存位置

2.这个函数在遇到‘\0’时不会停下来

3.如果src和dest有任何的重叠,复制的结果都是未定义的

这题代码: 

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第5张图片

 运行结果:

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第6张图片

由文件信息可知,学生的顺序已经按照平均分的高低排序 

三:将第2题已排序的学生成绩文件进行插人处理。插人一个 学生的3门课程成绩,程序先计算新插人学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。

主要思路:

 1.读入文件信息2.插入新学生信息3.写入文件信息

 其中插入学生信息函数:(定义老生信息是old_stu,新生是new_stu),pos为找寻插入点

结构体定义与主函数中传参:

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第7张图片

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第8张图片

插入函数: 

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第9张图片

 代码详解:

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第10张图片

 

运行结果:

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第11张图片 按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第12张图片

在文本信息中,已经将学生信息按照平均分由高到低进行排序 

 博客到这里也是结束了,喜欢的小伙伴可以点赞加关注支持下博主,这对我真的很重要~~ 

按要求对文件进行操作(读入,写入等操作)(ˊᗜˋ*) ヾ(´ε`ヾ)_第13张图片

你可能感兴趣的:(c语言)