/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作 者: 沈远宏
* 完成日期:2014 年 03月 04日
* 版 本 号:v1.0
* 问题描述:每位同学的信息学号、姓名、C++、高数、英语成绩、定义一个学生成绩的结构体数组,其中的数据成员包括学号、姓名、三门课的成绩、总分、均分。
(1)从键盘上输入N名同学的信息(N定义为常变量)。
(2)求出每名同学的总分和均分,并存储在结构体数组中(可以再读入过程中顺便计算)。
(3)求出每位同学的信息学号、姓名、总分和均分。
(4)输出所有同学的均分的均值。
* 输出:输出所有同学的均分的均值、总分,和均分。
*/#include <iostream>
#include <fstream>
using namespace std;
struct Student
{
char num[13]; //学号
char name[10]; //姓名
int cpp;//c++成绩
int math;//数学成绩
int english;// 英语成绩
int grade;//总分
double average;//均分
};
const int N=5;
int main( )
{
int i,j,k;
double all_ave=0;//所有同学均分的均值
Student stu[N];//定义结构体数组
cout<<"请输入学生学号、姓名、C++、数学、英语成绩:\n";
ifstream infile("score1.txt",ios::in);
if(!infile)
{
cerr<<"error"<<endl;
}
for(i=0;i<N;++i)//读入程序
{
infile>>stu[i].num>>stu[i].name>>stu[i].cpp>>stu[i].math>>stu[i].english;
stu[i].grade=stu[i].cpp+stu[i].math+stu[i].english;
stu[i].average=stu[i].grade/3;
all_ave=all_ave+stu[i].average;
}
all_ave=all_ave/N;
for(k=0; k<i; k++)//输出学生学号、姓名、C++、数学、英语成绩
{
cout<<stu[k].num<<"\t"<<stu[k].name<<"\t"<<stu[k].cpp<<"\t"<<stu[k].math<<"\t"<<stu[k].english<<endl;;
}
cout<<"\n学号 姓名 总分 均分 \n";
for(j=0; j<N; j++)//输出学生学号、姓名、总分、均分
{
cout<<stu[j].num<<"\t"<<stu[j].name<<"\t"<<stu[j].grade<<"\t"<<stu[j].average<<endl;
}
cout<<"所有学生均分的均值为:"<<all_ave;
return 0;
}
运行结果:
心得体会:
可能因为之前接触过结构体,所以觉得不难,陌生的东西刚接触都觉得难,熟悉了以后就觉得小case了。需要提醒自己一点,一定要细心,有时候百思不得其解的答案其实就在于自己的粗心。