栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C语言】#文件操作#有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C语言】#文件操作#有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。

题目:

(1)有5个学生,每个学生有3门课程的成绩,从键盘输入以上数据(包括学号、姓名、3门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件stud中。

设5名学生的学号、姓名和3门课成绩如下:

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

编写程序:

#include
#include
#define N 5
struct Student{		//定义结构体 
	char id[10];		//学号 
	char name[10];		//姓名 
	float score[3];		//3科成绩 
	float ave;			//平均分 
}stu[N];				//定义结构体数组 

void input(void){
	int i,j; 
	for(i=0;i 

 程序运行结果:程序运行生成了一个名为stud(        )的文件,并将输入的

 信息写入了这个文件。


(2)将上题stud文件中的学生数据按平均分进行排序处理,将已排序的学生数据存入一个新文件stu_sort中。在向文件stu_sort写入数据后,应检查验证stu_sort文件中的内容是否正确。

 编写程序:

#include
#include
#define N 5
struct Student{		//定义结构体 
	char id[10];		//学号 
	char name[10];		//姓名 
	float score[3];		//3科成绩 
	float ave;			//平均分 
}stu[N],temp;			//定义结构体数组,和一个结构体变量 

void stu_sort(){
	FILE *fp;					//定义文件指针 
	int i,j,count=0,max;		 
	fp=fopen("stud","r");		//以度的方式打开刚才的文件 
	puts("原来的:");
	puts("----------------------------------------------");
	puts("学号t姓名t成绩1t成绩2t成绩3t平均分");		//表头样式 
	puts("----------------------------------------------");
	for(i=0;i 

程序运行结果:程序运行生成了一个名为stu_sort(           )的文件,并将输入的信息写入了这个文件。

  (3)将上题已排序的学生成绩文件进行插入处理。插入一个学生的3门课成绩。程序先计算新插入学生的平均成绩,然后将它按成绩高低顺序插入,插入后建立一个新文件。 在向新文件stu_new写入数据后,应检查验证stu_new文件中的内容是否正确

要插入的学生数据为:

 编写程序:

#include
#include
#define N 6			//原来的5人再加1人 
struct Student{		//定义结构体 
	char id[10];		//学号 
	char name[10];		//姓名 
	float score[3];		//3科成绩 
	float ave;			//平均分 
}stu[N],temp;			//定义结构体数组,和一个结构体变量 

void stu_sort_new(struct Student stu0){
	FILE *fp;					//定义文件指针 
	int i,count; 
	fp=fopen("stu_sort","r");	//读入刚才内容排好序的文件 
	puts("原来的:");
	puts("----------------------------------------------");
	puts("学号t姓名t成绩1t成绩2t成绩3t平均分");		//表头样式 
	puts("----------------------------------------------");
	for(i=0;istu[i].ave){
			count=i; 		//记录插入位置 
			break;
		}
	for(i=N-1;i>=count;i--)
		stu[i]=stu[i-1];		//将插入位置及其后的数据向后挪 
	stu[count]=stu0;
	fp=fopen("stu_new","w");		//再次打开需要将信息排序的的文件 
	for(i=0;i 

程序运行结果:程序运行生成了一个名为stu_new(  )的文件,并将输入的信息写入了这个文件。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/971738.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号