#include
using namespace std;
class CStudent
{
public:
string name;
char *studentid;
float score;
CStudent();
CStudent(char*,char*,float);
~CStudent();
void modify(char*,char*,float);
void print();
};
CStudent::CStudent()
{
name=" ";
studentid=new char[12];
strcpy(studentid," ");
score=0.0;
}
CStudent::CStudent(char* name_,char* id,float s)
{
name=name_;
studentid=new char[strlen(id)+1];
strcpy(studentid,id);
score=s;
}
CStudent::~CStudent()
{
delete []studentid;
}
void CStudent::modify(char *name_,char *id,float s)
{
name=name_;
strcpy(studentid,id);
score=s;
}
void CStudent::print()
{
cout<<"Name:"<
2.
班级类
Cclass
及完整程序的设计(
30
分)
(
1
)数据成员:
Cstudent
类对象
student_1
的信息为“张三”、学号
20170301001
、成绩
86
,
student_2
的信息为“李四”、学号
20170301001
、成绩
66.5
,
student_3
的信息为“王五”、学号
20170301001
、
成绩
40
;
Num
存放班级人数;
(2)成员函数:
find()
计算班级中及格与不及格人数,
print()
获取(读取)有关数据后显示信息,
以及构造函数。
(3)主函数:创建类
Cclass
的对象
class_c
,采用合适的设计,通过成员函数
find()
等方法计算班
级人数、及格与不及格人数;然后,对象调用
print()
显示如下信息:
#
创建班级对象并显示该班信息
班级成员:张三,李四,王五
班级人数
: 3
班级及格人数
: 2
班级不及格人数
: 1
#include
using namespace std;
class CStudent
{
public:
string name;
char *studentid;
float score;
CStudent();
CStudent(char*,char*,float);
~CStudent();
void modify(char*,char*,float);
void print();
static int obcount;
};
int CStudent::obcount=0;
CStudent::CStudent()
{
name=" ";
studentid=new char[12];
strcpy(studentid," ");
score=0.0;
obcount++;
}
CStudent::CStudent(char* name_,char* id,float s)
{
name=name_;
studentid=new char[strlen(id)+1];
strcpy(studentid,id);
score=s;
obcount++;
}
CStudent::~CStudent()
{
delete []studentid;
obcount--;
}
void CStudent::modify(char *name_,char *id,float s)
{
name=name_;
strcpy(studentid,id);
score=s;
}
void CStudent::print()
{
cout<<"Name:"<=60) pass++;
else fail++;
if(student_2.score>=60) pass++;
else fail++;
if(student_3.score>=60) pass++;
else fail++;
}
void Cclass::print()
{
cout<<"班级成员"<
3.
班级统计类
Canalysis
(派生类)
及完整程序的设计(
30
分)
(1) Canalysis
类是
Cclass
类(基类)的派生类,继承方式为
public
方式;
(2)
数据成员:
Saver
存放班级平均成绩;构造函数对数据成员初始化(值为
0
);
(3)
成员函数:
Aver()
计算班级平均成绩并存到
Saver
,
find()
求出班级中的最高成绩,
print()
获取
有关数据后显示信息。
(4)
主函数:创建类
Cclass
的对象
class_c
,创建类
Canalysis
的对象
analysis_d
,采用合适的设计,
由成员函数
Aver()
计算班级平均成绩;设计合适的指针与方法来实现多态性,该指针调用成员函
数
find()
计算班级中及格与不及格人数,该指针调用成员函数
find()
求出班级中的最高成绩,该指
针调用
print()
显示如下信息:(主函数中
不允许用
cout
语句,但注释行
"#…"
例外)
#
统计计算班级的学生成绩情况
班级成员:张三,李四,王五
班级人数
: 3
班级及格人数
: 2
班级不及格人数
: 1
班级平均成绩
: 64.1
班级最高成绩
: 86
#include
using namespace std;
class CStudent
{
public:
string name;
char *studentid;
float score;
CStudent();
CStudent(char*,char*,float);
~CStudent();
void modify(char*,char*,float);
void print();
static int obcount;
};
int CStudent::obcount=0;
CStudent::CStudent()
{
name=" ";
studentid=new char[12];
strcpy(studentid," ");
score=0.0;
obcount++;
}
CStudent::CStudent(char* name_,char* id,float s)
{
name=name_;
studentid=new char[strlen(id)+1];
strcpy(studentid,id);
score=s;
obcount++;
}
CStudent::~CStudent()
{
delete []studentid;
obcount--;
}
void CStudent::modify(char *name_,char *id,float s)
{
name=name_;
strcpy(studentid,id);
score=s;
}
void CStudent::print()
{
cout<<"Name:"<=60) pass++;
else fail++;
if(student_2.score>=60) pass++;
else fail++;
if(student_3.score>=60) pass++;
else fail++;
}
void Cclass::print()
{
cout<<"班级成员"<max) max=student_2.score;
if(student_3.score>max) max=student_3.score;
}
void Canalysis::print()
{
cout << "班级平均成绩:" print();
Canalysis analysis_d;
p = &analysis_d; //基类指针 p 存派生类对象地址
p->find(); //基类指针 p 调用派生类的成员函数,实现多态性
p->print();
return 0;
}
主函数也可以这样调用
int main()
{
Cclass *p=new Cclass;
p->find();
p->print();
Cclass *p1 = new Canalysis;
p1->find();
p1->print();
return 0;
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)