/*
有5个学生,每个学生的数据结果包括学号、姓名、年龄、C++成绩、数学成绩和英语成绩、总平均分,
从键盘输入5个学生的学号、姓名、3门课的成绩,计算3门课的总平均分,最后将5个学生的数据输出。
要求各个功能用函数来实现。
*/
#include
using namespace std;
#define NUM 5
struct STUD
{
int num;
char name[20];
float grade[3];
};
STUD Input(STUD all)
{
cout<<"输入学号:";
cin>>all.num;
cout<<"输入姓名:";
cin>>all.name;
cout<<"输入C++成绩:";
cin>>all.grade[0];
cout<<"输入数学成绩:";
cin>>all.grade[1];
cout<<"输入英语成绩:";
cin>>all.grade[2];
return all;
}
float count(STUD all)
{
int i;
float sum=0;
for(i=0;i<3;i++)
{
sum+=(all.grade[i]);
}
sum=sum/3;
return sum;
}
void Output(STUD all,float average)
{
cout<<"学号:";
cout< cout<<"姓名:"; cout< cout<<"C++成绩:"; cout< cout<<"数学成绩:"; cout< cout<<"英语成绩:"; cout< cout<<"平均成绩:"; cout< } int main() { int j=0; STUD all[NUM]; float sum[NUM]; for(j=0;j { all[j]=Input(all[j]); sum[j]=count(all[j]); } //输出 for(j=0;j { Output(all[j],sum[j]); } return 0; }
int i;
static int j=0;
float average;
#define NUM 5
struct STUD{
char num[12];
char name[20];
float grade[3];
};
void Input(STUD& all) //此处是引用 要不然跳出函数后all 的值不变
{
std::string t;
cout<<"输入学号:";
cin>>all.num;
cin.clear();
std::getline(cin,t);////将当前行从缓存中取出
cout<<"输入姓名:";
cin>>all.name;
cin.clear();
std::getline(cin,t);////将当前行从缓存中取出
cout<<"输入C++成绩:";
cin>>all.grade[0];
cin.clear();
cout<<"输入数学成绩:";
cin>>all.grade[1];
cin.clear();
cout<<"输入英语成绩:";
cin>>all.grade[2];
//cin.clear();
}
float count(STUD all)
{
float sum=0; for(i=0;i<3;i++)
{
sum+=(all.grade[i]);
}
sum=sum/3;
//cout<
}
void Output(STUD all)
{
cout<<"学号:";
for(i=0;i<12;i++)
{
cout<
continue;
else break;
}
cout<<'\n'; cout<<"姓名:";
for(i=0;i<20;i++)
{
cout<
continue;
else break;
}
//float average = all.grade[0]+all.grade[1]+all.grade[2];
//average/=3;
cout<<'\n';
cout<<"C++成绩:";
cout<
cout<<"数学成绩:";
cout<
cout<<"英语成绩:";
cout<
cout<<"平均成绩:";
cout<
}
int _tmain(int argc, _TCHAR* argv[])
{
STUD all[NUM];
for(j=0;j
Input(all[j]);
average = count(all[j]);
Output(all[j]);
}
return 0;
}