小说网 找小说 无限小说 烟雨红尘 幻想小说 酷文学 深夜书屋

基于visual Studio2013解决C语言竞赛题之0905文件读写显示






题目


解决代码及点评

/*
5.	用scanf_s函数从键盘读入 5个学生数据(包括:学生名、学号、三门课程的分数),
	然后求出平均分数。用 fprintf函数输出所有信息到磁盘文件stud.rec中,
	再用 fscanf_s函数从 stud.rec中读入这些数据并在显示屏上显示出来。
*/

#include <stdio.h>
#include <stdlib.h>
typedef struct Student9_3_5
{
	char name[20];
	int num;
	float chinese;
	float math;
	float english;
}Stu;
/*
	保存学生信息
*/
void savaStuInfo95(Stu * stu,int n)
{
	Stu temp;
	FILE *fp = NULL;
	fopen_s(&fp, "stud.rec","wb");
	if (fp)
	{
		float avg;
		for (int i = 0; i < n; i++)
		{
			temp = stu[i];
			avg = (temp.chinese + temp.math + temp.english) / 3;
			fprintf(fp,"num=%d,chinese=%f,math=%f,english=%f,avg=%f",temp.num,
				temp.chinese,temp.math,temp.english,avg);
		}
		fclose(fp);
	}
	else
	{
		printf("open file failed!");
	}
}
/*
	读取学生信息
*/
void readStuInfo95()
{
	FILE *fp = NULL;
	Stu stu;
	float avg;
	fopen_s(&fp, "stud.rec","rb");
	if (fp)
	{
		while(fscanf_s(fp,"num=%d,chinese=%f,math=%f,english=%f,avg=%f",&(stu.num),
			&(stu.chinese),&(stu.math),&(stu.english),&avg) != EOF)
		{
			printf("num = %d chinese = %f math = %f english = %f avg = %f\n",stu.num,
				stu.chinese,stu.math,stu.english,avg);
		}
		fclose(fp);
	}
	else
	{
		printf("open file failed!");
	}
}
void main()
{
	const int N = 5;
	Stu stu[N];
	for (int i = 0; i< N; i++)
	{
		printf("请输入第%d个学生姓名:\n",i + 1);
		scanf_s("%s",&stu[i].name);
		printf("请输入第%d个学生学号:\n",i + 1);
		scanf_s("%d",&stu[i].num);
		printf("请输入第%d个学生语文成绩:\n",i + 1);
		scanf_s("%f",&stu[i].chinese);
		printf("请输入第%d个学生数学成绩:\n",i + 1);
		scanf_s("%f",&stu[i].math);
		printf("请输入第%d个学生英语成绩:\n",i + 1);
		scanf_s("%f",&stu[i].english);
	}
	savaStuInfo95(stu,N);
	readStuInfo95();
	system("pause");
}


代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

2)选择工程

3)创建完工程如下图:

4)增加文件,右键点击项目

5)在弹出菜单里做以下选择

6)添加文件

7)拷贝代码与运行


程序运行结果





代码下载

http://download.csdn.net/detail/yincheng01/6694119

解压密码:c.itcast.cn



posted on 2013-12-06 21:09  牛栏山1  阅读(106)  评论(0编辑  收藏  举报

导航