C++程序编写
一个班有 5 名学生,每个学生修了五门课,1)求每个学生的平均成绩,并输出每个学
生的学号,每门课程的成绩及平均值;2)求某门课程的平均分。
要求:
(1)分别编写2 个函数实现以上2 个要求。
(2)第1个函数用数组名作参数。第2个函数用指针用参数,并在函数体内用指针对数
组操作。
追问:那个有个小问题就是,你运行后,那些文字出的不是时候,你再修正下吧。比方说列出成绩的时候应该是全部出来那五句话的,而这里是等到下一个信息弄好才出来的......不过主题上都对啦,呵呵你真行
一个班有 5 名学生,每个学生修了五门课,1)求每个学生的平均成绩,并输出每个学
生的学号,每门课程的成绩及平均值;2)求某门课程的平均分。
要求:
(1)分别编写2 个函数实现以上2 个要求。
(2)第1个函数用数组名作参数。第2个函数用指针用参数,并在函数体内用指针对数
组操作。
追问:那个有个小问题就是,你运行后,那些文字出的不是时候,你再修正下吧。比方说列出成绩的时候应该是全部出来那五句话的,而这里是等到下一个信息弄好才出来的......不过主题上都对啦,呵呵你真行
答案://没事,楼上不帮阁下写,我帮阁下写,代码如下:
#include <iostream>
#include <string>
using namespace std;struct Student
{
string no;
string name;
double score[5];
double ave;
};void print(Student stu[],int n)//输出函数
{
for(int i=0;i<n;i++)
{
cout<<"学号:"<<stu[i].no<<",姓名:"<<stu[i].name<<endl;
for(int u=0;u<5;u++)
{
cout<<"第"<<u+1<<"科成绩:"<<stu[i].score[u]<<endl;
}
cout<<"平均分:"<<stu[i].ave<<endl;
}
}void input(Student *stu,int n)//输入函数
{
for(int i=0;i<n;i++)
{
cout<<"请输入第"<<i+1<<"个学生资料:"<<endl;
cout<<"学号:";
cin>>(stu+i)->no;
cout<<"姓名:";
cin>>(stu+i)->name;
for(int u=0;u<5;u++)
{
cout<<"第"<<u+1<<"科成绩:";
cin>>(stu+i)->score[u];
}
}
}void getAverage(Student *stu,int n)//求平均数
{
int sum=0;
for(int i=0;i<n;i++)
{
for(int u=0;u<5;u++)
{
sum+=(stu+i)->score[u];
}
(stu+i)->ave=sum/5;
sum=0;
}
}double Average(Student stu[],int index,int n)//求某科平均分
{
int sum=0;
for(int i=0;i<n;i++)
{
sum+=stu[i].score[index];
}
return sum/n;
}int main()
{
const int N=5;
Student stu[N];
input(stu,N);
getAverage(stu,N);
print(stu,N);
for(int i=0;i<5;i++)
{
cout<<"第"<<i+1<<"科的平均分:"<<Average(stu,i,N)<<endl;
}
}你不觉得编写这个程序10分很少吗?做出来了~~
#include <iostream>
#include <iomanip>
using namespace std;
typedef struct STU//定义一个学生结构
{
char xh[10];//学号
double score[5];//五门课成绩
}STU;
int getavg(STU stu[])//求每个学生的平均成绩,并输出每个学生的学号,每门课程的成绩及平均值
{
int i,j;
double aver[5]={0.0};
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
aver[i]=aver[i]+stu[i].score[j];//同一个学生的所有成绩累加
}
aver[i]=aver[i]/5;
}
cout<<" 学号 语文 数学 英语 物理 化学 平均分"<<endl;
for(i=0;i<5;i++)
{
cout<<setw(8)<<stu[i].xh<<setw(8)<<stu[i].score[0]<<setw(8)<<stu[i].score[1]<<setw(8)<<stu[i].score[2];
cout<<setw(8)<<stu[i].score[3]<<setw(8)<<stu[i].score[4]<<setw(8)<<aver[i]<<endl;
}
return 0;
}
int curavg(STU *stu)
{
int i,j;
double aver[5]={0.0};
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
aver[j]=aver[j]+stu[i].score[j];
}
}
for(j=0;j<5;j++)
{
aver[j]=aver[j]/5;
}
cout<<" 语文 数学 英语 物理 化学 "<<endl;
for(j=0;j<5;j++)
{
cout<<setw(8)<<aver[0]<<setw(8)<<aver[1]<<setw(8)<<aver[2]<<setw(8)<<aver[3];
cout<<setw(8)<<aver[4]<<endl;
}
return 0;
}
int main()
{
STU stu[5];//5名学生
int i;
cout<<"\t\t\t\t学生信息的录入\t"<<endl;
for(i=0;i<5;i++)
{
cout<<"\n请输入第"<<i+1<<"个学生的学号:";
cin>>stu[i].xh;
cout<<"请输入第"<<i+1<<"个学生的语文成绩:";
cin>>stu[i].score[0];
cout<<"请输入第"<<i+1<<"个学生的数学成绩:";
cin>>stu[i].score[1];
cout<<"请输入第"<<i+1<<"个学生的英语成绩:";
cin>>stu[i].score[2];
cout<<"请输入第"<<i+1<<"个学生的物理成绩:";
cin>>stu[i].score[3];
cout<<"请输入第"<<i+1<<"个学生的化学成绩:";
cin>>stu[i].score[4];
cout<<endl;
}
cout<<"\n每个学生的平均成绩信息如下:"<<endl;
getavg(stu);
cout<<"\n每门课程的平均分信息如下:"<<endl;
curavg(stu);
return 0;
}你运行看看符合要求吗?