永发信息网

用C++面向对象的程序设计方法,实现找出一组学生中成绩最高者,要求用到友元函数实现查找最高成绩

答案:1  悬赏:80  手机版
解决时间 2021-02-18 02:01
用C++面向对象的程序设计方法,实现找出一组学生中成绩最高者,要求用到友元函数实现查找最高成绩
最佳答案
#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>可能要你自己查一查用法。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
手机充电慢,而且是刚换了不久的电池充电也不
张居正因何字叔大?
中国哪里的气温跟昆明差不多
什么叫加仓
求一份工资4000至6000的工作。累点没关系。靠
如果一个人以光速1s绕地球赤道7.5圈,则地球赤
同济医院做跖疣冷冻 要多少钱?
【山寨是什么意思】这不是还要做山寨的意思吗
怎样选择买菜刀?
给我一个支点,我能撬起地球这句话是谁说的
潍坊天成飞鸢进出口公司在哪里啊,我有事要去
为什么我下的中文版的游戏还是英文版的
凭证式国债不可以提前赎回。()对错
长青五金(十里大道辅路)我想知道这个在什么地
后缀为@rocketship.com 的邮箱在哪个网址可以
推荐资讯
计划生育是我国的一项基本国策计划生育政策中
钢与铁有什么区别?钢分为哪几种?
我家有钱,班里大部分人都妒忌我怎么办!!!
如何从废水中提炼铑如题
现在农村新增户用电是多少钱才可以入户.是生
女生抽带宽松裤应怎样搭配穿衣好看?
开封府的包公下一句是什么
他三十岁
天之红这个地址在什么地方,我要处理点事
安全生产六个明确表怎么填
半条命2 STEAM正版,一开始刚下完是中文版,
云海中的风小说免费下载
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?