NO1.菜鸟请教C++问题,望大家帮忙看看(关于友元类)
题目:
设计一个学生类CStudent,其结构如下:
l 私有数据成员Name(学生姓名)、Degree(成绩)、Level[7](成绩等级);
l 构造函数对数据成员初始化;
l 设计一个CStudents的友元类CProcess,其结构包含两个成员函数:
n void Transform(CStudent& s);实现对s的数据成员Level的判断其成绩的等级,:>=90为优秀;80~89为良好;70~79为中等;60~69为及格;< 60为不及格;
n void Display(CStudent& s)输出s成绩的等级;
l 输出结果如下:
姓名 成绩 等级
Mary 78 中等
Jack 93 优秀
Mike 54 不及格
John 88 良好
下面是我写的(感觉好多错误,好多不完善):
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
class cstudent
{
public:
cstudent(string n,int d,char l[7]);
void show()
{
cout<<name<<degree;
}
friend class cprocess;
private:
string name;
int degree;
char level[7];
}
class cprocess
{
public:
void transform(cstudent& s);
void display(cstudent& s);
private:
cstudent s;
};
cstudent::cstudent(string n,int d,char l[7])
{
name=n;
degree=d;
level[7]=l[7];
}
void cprocess::transform(cstudent& s)
{
if(s.degree>=90)
level[7]="优秀";
else if(s.degree>=80&&s.degree<=89)
level[7]="良";
else if(s.degree>=70&&s.degree<=79)
level[7]="中";
else if(s.degree>=60&&s.degree<=69)
level[7]="及";
else if(s.degree<60)
level[7]="不及";
}
void cprocess::display(cstudent& s)
{
cout<<level;
}
int main()
{
cout<<setw(10)<<"姓名"<<setw(10)<<"成绩"<<setw(10)<<"等级"<<endl;
cstudent s("mary",78,l[7]);
void transform(cstudent& s);
void display(cstudent& s);
}
希望大家帮我修改哈,谢谢!!!!