永发信息网

求用C++编写:设计一个学生类CStudent,其结构如下: 私有数据成员Name(学生姓名)、Degree(成

答案:3  悬赏:0  手机版
解决时间 2021-03-18 03:09
设计一个学生类CStudent,其结构如下:
 私有数据成员Name(学生姓名)、Degree(成绩);
 构造函数对数据成员初始化;
 设计一个友元函数Display(CStudent&);输出成绩的等级:>=90为优秀;80~89为良好;70~79为中等;60~69为及格;< 60为不及格;
 输出结果如下:
姓名 成绩 等级
Mary 78 中等
Jack 93 优秀
Mike 54 不及格
John 88 良好
最佳答案
#include <iostream.h>
#include <string.h>
const int SIZE=2;//人数
class CStudent
{
private:
char* name[SIZE];//姓名
int degree[SIZE];//成绩
public:
CStudent(const char *str[SIZE],const int score[SIZE])
{
for (int i=0;i<SIZE;i++)
{
name[i]=new char[strlen(str[i])+1];//分配内存
strcpy(name[i],str[i]);
degree[i]=score[i];
}
};
~CStudent()
{
for (int i=0;i<SIZE;i++)
{
delete [] name[i];//释放内存
}
}
friend void Display(CStudent& stu);
};

void Display(CStudent& stu)
{
cout <<"姓名"<<'\t'<<"成绩"<<'\t'<<"等级"<<endl;//输出
for (int i=0;i<SIZE;i++)
{
cout <<stu.name[i]<<'\t';
int score=stu.degree[i];
if (score>=90)
cout <<score<<'\t'<<"优秀"<<endl;
else if (score>=80&&score<90)
cout <<score<<'\t'<<"良好"<<endl;
else if (score>=70&&score<80)
cout <<score<<'\t'<<"中等"<<endl;
else if (score>=60&&score<70)
cout <<score<<'\t'<<"及格"<<endl;
else
cout <<score<<'\t'<<"不及格"<<endl;
}
}

void main( )
{
const char* name[SIZE]={"Tommy","James"};
const int score[SIZE]={97,50};
CStudent a(name,score);
Display(a);
}
全部回答
#include<iostream> #include<cstring> using namespace std; class CStudent { public: CStudent(char *_name,int _score) { name = new char[strlen(_name) + 1]; strcpy(name,_name); score = _score; } ~CStudent() { delete name; } friend void display(CStudent& stu); private: char *name; int score; }; void display(CStudent& stu) { cout << stu.name << ' ' << stu.score << ' '; if(stu.score>=90) cout << "优秀"; else if(stu.score >=80) cout << "良好"; else if(stu.score>=70) cout << "中等"; else if(stu.score>=60) cout << "及格"; else cout << "不及格"; cout << endl; } int main() { CStudent Stu1("Marry",95); display(Stu1); return 0; } 这个看起来还容易些。
#include &lt;iostream.h&gt; #include &lt;string.h&gt; const int size=2;//人数 class cstudent { private: char* name[size];//姓名 int degree[size];//成绩 public: cstudent(const char *str[size],const int score[size]) { for (int i=0;i&lt;size;i++) { name[i]=new char[strlen(str[i])+1];//分配内存 strcpy(name[i],str[i]); degree[i]=score[i]; } }; ~cstudent() { for (int i=0;i&lt;size;i++) { delete [] name[i];//释放内存 } } friend void display(cstudent&amp; stu); }; void display(cstudent&amp; stu) { cout &lt;&lt;"姓名"&lt;&lt;'\t'&lt;&lt;"成绩"&lt;&lt;'\t'&lt;&lt;"等级"&lt;&lt;endl;//输出 for (int i=0;i&lt;size;i++) { cout &lt;&lt;stu.name[i]&lt;&lt;'\t'; int score=stu.degree[i]; if (score&gt;=90) cout &lt;&lt;score&lt;&lt;'\t'&lt;&lt;"优秀"&lt;&lt;endl; else if (score&gt;=80&amp;&amp;score&lt;90) cout &lt;&lt;score&lt;&lt;'\t'&lt;&lt;"良好"&lt;&lt;endl; else if (score&gt;=70&amp;&amp;score&lt;80) cout &lt;&lt;score&lt;&lt;'\t'&lt;&lt;"中等"&lt;&lt;endl; else if (score&gt;=60&amp;&amp;score&lt;70) cout &lt;&lt;score&lt;&lt;'\t'&lt;&lt;"及格"&lt;&lt;endl; else cout &lt;&lt;score&lt;&lt;'\t'&lt;&lt;"不及格"&lt;&lt;endl; } } void main( ) { const char* name[size]={"tommy","james"}; const int score[size]={97,50}; cstudent a(name,score); display(a); }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
你好!我的车是河北牌,在北京被摄像头拍到违
cp6200C 速印机
现在重案六组在哪台播放???
室外天线都必需要接地线?
为什么新威驰都是鼓刹
jason piano是谁,就是只会弹钢琴台湾的。
侠盗猎车手4自由城故事怎么当出租车司机,拉
中国农业银行(塘坝支行)地址好找么,我有些事
我有几张邮政储蓄的卡,我想查一下其中一张的
森林这个游戏怎么替换野人的皮肤
枫园小区在什么地方啊,我要过去处理事情
证券和银行怎么深度合作
2016佛光山禅学营
麻子脸能治吗?能不能除根?
爱尚蓝激束网咖讨号板店地址有知道的么?有点
推荐资讯
片段模仿游戏名称,有啥好听点的名字啊
艾辰的徒弟是谁?
信用卡欠50万要判刑多少年
貂皮厂做事工资高吗平均一个月能拿多少钱
摄影工作室没注册过,国家收税吗?如果收收多
皮肤痛和肌肉痛有什么区别
PSP变砖了,去店里刷机大概多少钱
mpu9250温度采集的数据怎么转换成实际的温度
我的包裹奶粉被广州海关扣啦,你代理报关吗
电脑上设置UC浏览器为默认点击网址启动的还是
为什么罗马圣教徒瓦伦丁处死此日被后人定为情
男朋友登女朋友扣扣第一步都会干嘛
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?