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

来源:互联网 发布:男人四十知乎 编辑:程序博客网 时间:2024/04/29 19:38





题目


解决代码及点评

/*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