
写一个学生类和课程类,用C++
描述课程类和学生类。学生有名字,学生最多可学五门课程,学生实际学的门数,可以给定学生的名字,可以得到学生的名字,可以得到学生给定课程的成绩,可以得到学生所学课程的平均成绩...
描述课程类和学生类。
学生有名字,学生最多可学五门课程,学生实际学的门数,可以给定学生的名字,可以得到学生的名字,可以得到学生给定课程的成绩,可以得到学生所学课程的平均成绩,可以给学生增加一门课(同时在该课程中加一个学生)。
课程最多有30个学生,课程有实际学生数,课程有实际学生名单,课程有学分数,课程有每个学生成绩,课程可以得到学分数,课程可以设置学分数,课程可以得到班平均成绩,课程可以得到某个学生成绩。
现有数学课,张三学数学,成绩为3.1分,李四学数学。成绩为4.5分。求平均成绩,求张三的数学成绩。
现有物理课,学时数为4,张三学物理,成绩为4分。求张三所学课程的平均成绩。 展开
学生有名字,学生最多可学五门课程,学生实际学的门数,可以给定学生的名字,可以得到学生的名字,可以得到学生给定课程的成绩,可以得到学生所学课程的平均成绩,可以给学生增加一门课(同时在该课程中加一个学生)。
课程最多有30个学生,课程有实际学生数,课程有实际学生名单,课程有学分数,课程有每个学生成绩,课程可以得到学分数,课程可以设置学分数,课程可以得到班平均成绩,课程可以得到某个学生成绩。
现有数学课,张三学数学,成绩为3.1分,李四学数学。成绩为4.5分。求平均成绩,求张三的数学成绩。
现有物理课,学时数为4,张三学物理,成绩为4分。求张三所学课程的平均成绩。 展开
1个回答
2013-07-19
展开全部
#include <iostream.h>
#include <string.h>
class stu;
#define size 20
// course class
class course {
//static const size = 20;
char name[20];
stu* student[size];
int cnt;
float score[size];
public:
course(char* nm);
char* nm() {return name;}
void add(stu* st,float sc);
float getscore(char* nm);
float getscore(stu* st);
float sc(int n){return score[n];}
float average();
};
// student class
class stu
{
char name[20];
int cnt;
course* cours[5];
public:
stu(char* nm);
char* nm() {return name;}
void add(course* cs,float sc = 0);
float get_score(char* nm);
float average();
};
// course implemetaion
course::course(char* nm):cnt(0)
{
strcpy(name,nm);
}
void course::add(stu* st,float sc)
{
student[cnt]=st;
score[cnt++]=sc;
}
float course::getscore(char* nm)
{
for (int i=0;i<cnt;++i)
if (strcmp(student[i]->nm(),nm)==0)
return score[i];
else
cout << "can not find that student" << endl;
}
float course::getscore (stu* st)
{
for (int i=0;i<cnt;++i)
if (student[i]==st)
return score[i];
}
float course::average()
{
float sum=0;
for (int i=0;i<cnt;++i)
sum+=score[i];
return sum/cnt;
}
// student implementaion
stu::stu(char* nm):cnt(0)
{
strcpy(name,nm);
}
void stu::add(course* cs,float sc)
{
cours[cnt++]=cs;
cs->add(this,sc);
}
float stu::get_score(char* cs)
{
for (int i=0;i<cnt;++i)
if (strcmp(cours[i]->nm(),cs)==0)
return cours[i]->getscore(this->nm());
else
cout << "he doesn't opt that course" << endl;
}
float stu::average ()
{
float sum=0;
for (int i=0;i<cnt;++i)
sum=cours[i]->getscore(this);
return sum/cnt;
}
int main(int argc, char* argv[])
{
course math("math");
course physics("physics");
stu zhangsan("zhangsan");
stu lisi("lisi");
zhangsan.add (&math,3.1);
lisi.add (&math,4.5);
cout << math.average ();
int stop;
cin >> stop;
return 0;
}
#include <string.h>
class stu;
#define size 20
// course class
class course {
//static const size = 20;
char name[20];
stu* student[size];
int cnt;
float score[size];
public:
course(char* nm);
char* nm() {return name;}
void add(stu* st,float sc);
float getscore(char* nm);
float getscore(stu* st);
float sc(int n){return score[n];}
float average();
};
// student class
class stu
{
char name[20];
int cnt;
course* cours[5];
public:
stu(char* nm);
char* nm() {return name;}
void add(course* cs,float sc = 0);
float get_score(char* nm);
float average();
};
// course implemetaion
course::course(char* nm):cnt(0)
{
strcpy(name,nm);
}
void course::add(stu* st,float sc)
{
student[cnt]=st;
score[cnt++]=sc;
}
float course::getscore(char* nm)
{
for (int i=0;i<cnt;++i)
if (strcmp(student[i]->nm(),nm)==0)
return score[i];
else
cout << "can not find that student" << endl;
}
float course::getscore (stu* st)
{
for (int i=0;i<cnt;++i)
if (student[i]==st)
return score[i];
}
float course::average()
{
float sum=0;
for (int i=0;i<cnt;++i)
sum+=score[i];
return sum/cnt;
}
// student implementaion
stu::stu(char* nm):cnt(0)
{
strcpy(name,nm);
}
void stu::add(course* cs,float sc)
{
cours[cnt++]=cs;
cs->add(this,sc);
}
float stu::get_score(char* cs)
{
for (int i=0;i<cnt;++i)
if (strcmp(cours[i]->nm(),cs)==0)
return cours[i]->getscore(this->nm());
else
cout << "he doesn't opt that course" << endl;
}
float stu::average ()
{
float sum=0;
for (int i=0;i<cnt;++i)
sum=cours[i]->getscore(this);
return sum/cnt;
}
int main(int argc, char* argv[])
{
course math("math");
course physics("physics");
stu zhangsan("zhangsan");
stu lisi("lisi");
zhangsan.add (&math,3.1);
lisi.add (&math,4.5);
cout << math.average ();
int stop;
cin >> stop;
return 0;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询