求用c++写一个统计学生成绩的程序,要求用动态存储分配思想完成数组的定义。
答案:3 悬赏:70 手机版
解决时间 2021-02-20 04:03
- 提问者网友:欲望失宠
- 2021-02-19 21:25
要求有4个子函数(1)输入n个学生m门功课的成绩(2)每个学生的平均分;(3)每门功课的平均分;(4)找出最高分所对应的学生和功课。 谢谢大神
最佳答案
- 五星知识达人网友:往事隔山水
- 2021-02-19 22:02
#include
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
class performance
{
private:
int numsubject;//number of your subjects
int numstudent;//number of student
float**p;
string *student;
string *subject;
protected:
int StudentPos(const string&str);
int SubjectPos(const string&str);
public:
performance();
float AverageStudent(const string&nameOFstudent);
float AverageSubject(const string&nameOFsubject);
void MaxScore(const string&nameOFsubject);
~performance();
};
int performance::StudentPos(const string &str)
{
for(int i=0;i
{
if(!str.compare(student[i]))
{
return i+1;
}
}
return INT_MAX;
}
int performance::SubjectPos(const string&str)
{
for(int i=0;i
{
if(!str.compare(subject[i]))
{
return i+1;
}
}
return INT_MAX;
}
performance::performance()
{
cout<<"please input number of student:\n";
cin>>numstudent;
cout<<"please input number of your subjects:\n";
cin>>numsubject;
if(numstudent&&numsubject)
{
p=new float*[numstudent];
student=new string[numstudent];
subject=new string[numsubject];
for(int i=0;i
{
p[i]=new float[numsubject];
}
cout<<"input "<
for(int i=0;i
{
cin>>student[i];
}
cout<<"input "<
for(int i=0;i
{
cin>>subject[i];
}
for(int i=0;i
{
cout<<"输入"<
for(int j=0;j
{
cout<<"输入"<
cin>>p[i][j];
}
}
}
}
float performance::AverageStudent(const string &str)
{
int n=StudentPos(str);
float sum=0;
if(numstudent&&numsubject&&n
{
for(int i=0;i
{
sum+=p[n-1][i];
}
return sum/numsubject;
}
return sum;
}
float performance::AverageSubject(const string&str)
{
int n=SubjectPos(str);
float sum=0;
if(numsubject&&numstudent&&n
{
for(int i=0;i
{
sum+=p[i][n-1];
}
return sum/numstudent;
}
return sum;
}
void performance::MaxScore(const string&str)
{
int n=SubjectPos(str);
if(numstudent&&n
{
int index=0;
for(int i=1;i
{
if(p[index][n-1] {
index=i;
}
}
cout<
for(int i=0;i
{
if(p[i][n-1]==p[index][n-1])
{
cout<
}
}
cout<<"\n";
}
}
performance::~performance()
{
for(int i=0;i
{
delete[] p[i];
}
if(p)
{
delete[]p;
}
if(student)
{
delete[]student;
}
if(subject)
{
delete[]subject;
}
}
void main()
{
performance perform;
cout<<"张的平均分:"<
cout<<"物理的平均分:"<
perform.MaxScore("数学");
}测试数据:
张 王 李 赵
数学 语文 英语 物理 化学 生物
120 111 121 80 78 90
131 144 117 79 88 91
134 109 134 67 79 88
134 109 134 67 79 88
#include
using std::cin;
using std::cout;
using std::endl;
using std::string;
class performance
{
private:
int numsubject;//number of your subjects
int numstudent;//number of student
float**p;
string *student;
string *subject;
protected:
int StudentPos(const string&str);
int SubjectPos(const string&str);
public:
performance();
float AverageStudent(const string&nameOFstudent);
float AverageSubject(const string&nameOFsubject);
void MaxScore(const string&nameOFsubject);
~performance();
};
int performance::StudentPos(const string &str)
{
for(int i=0;i
if(!str.compare(student[i]))
{
return i+1;
}
}
return INT_MAX;
}
int performance::SubjectPos(const string&str)
{
for(int i=0;i
if(!str.compare(subject[i]))
{
return i+1;
}
}
return INT_MAX;
}
performance::performance()
{
cout<<"please input number of student:\n";
cin>>numstudent;
cout<<"please input number of your subjects:\n";
cin>>numsubject;
if(numstudent&&numsubject)
{
p=new float*[numstudent];
student=new string[numstudent];
subject=new string[numsubject];
for(int i=0;i
p[i]=new float[numsubject];
}
cout<<"input "<
cin>>student[i];
}
cout<<"input "<
cin>>subject[i];
}
for(int i=0;i
cout<<"输入"<
cout<<"输入"<
}
}
}
}
float performance::AverageStudent(const string &str)
{
int n=StudentPos(str);
float sum=0;
if(numstudent&&numsubject&&n
for(int i=0;i
sum+=p[n-1][i];
}
return sum/numsubject;
}
return sum;
}
float performance::AverageSubject(const string&str)
{
int n=SubjectPos(str);
float sum=0;
if(numsubject&&numstudent&&n
for(int i=0;i
sum+=p[i][n-1];
}
return sum/numstudent;
}
return sum;
}
void performance::MaxScore(const string&str)
{
int n=SubjectPos(str);
if(numstudent&&n
int index=0;
for(int i=1;i
if(p[index][n-1] {
index=i;
}
}
cout<
if(p[i][n-1]==p[index][n-1])
{
cout<
}
cout<<"\n";
}
}
performance::~performance()
{
for(int i=0;i
delete[] p[i];
}
if(p)
{
delete[]p;
}
if(student)
{
delete[]student;
}
if(subject)
{
delete[]subject;
}
}
void main()
{
performance perform;
cout<<"张的平均分:"<
}测试数据:
张 王 李 赵
数学 语文 英语 物理 化学 生物
120 111 121 80 78 90
131 144 117 79 88 91
134 109 134 67 79 88
134 109 134 67 79 88
全部回答
- 1楼网友:过活
- 2021-02-20 00:11
c语言课本的课后题 谭浩强的那本书,直接在课后指导书上有答案
- 2楼网友:野味小生
- 2021-02-19 23:18
作业代写。有意向请加头像中的号。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯