使用c++面向对象的程序设计方法,找出十个学生成绩中的最高者,并输出

使用c++面向对象的程序设计方法,找出十个学生成绩中的最高者,并输出学号姓名,成绩... 使用c++面向对象的程序设计方法,找出十个学生成绩中的最高者,并输出学号姓名,成绩 展开
 我来答
oTwj108
2017-03-17 · TA获得超过149个赞
知道答主
回答量:330
采纳率:0%
帮助的人:75.1万
展开全部

#include<iostream>
#include<cstring>
using namespace std;
class student{
private:
string name;
int  score;
public:
student(){
}

student(string _n,int _s){
name=_n;
score=_s;
}
friend student getMaxScore(student ss[],int n);
void initStudent(string _n,int _s){
score=_s;
name=_n; 
}
void printStudent()
{
cout<<"name:"<<name<<" score:"<<score;
}

};
student getMaxScore(student ss[],int n){
student max=ss[0];                            
for(int i=1;i<n;i++)
{
if(ss[i].score>max.score) max=ss[i];
}
return max;
}

int main(){
student ss[10];                     //非常重要的警告:初学者,类对象数组会自动调用构造函数。此时对象已经建立。
                                     //但是调用的是默认的student();需要根据需要赋值。不要把对象数组看成基本类型数组(int a[],char a[]这种)。
 //可以替换成 student ss[10]={student("zkj",100",student("ddx",99),。。。。。。。 }这种跟直观的对象数组赋值方法。跟多问题请百度。 
string in;
int    is; 
for(int i=0;i<10;i++){
cin>>in>>is;
ss[i].initStudent(in,is);          //直接使用ss[i]=student(in,is)会发生错误。因为对象已经建立。对象数组会自动调用构造函数。 
}
student maxss=getMaxScore(ss,10);
maxss.printStudent();
}

就是这样。
如果跟通用的方法。建议使用STL(C++标准类模板库)提供的vector<T> 对象。
可以提供各种类似于数组,但比数组安全的方法。


好久不用C++了。vector<T>可能要你自己查一查用法。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式