weixin_52429650 2021-10-12 16:11 采纳率: 100%
浏览 112
已结题

用c++建立一个person类

用C++建立一个类: Person, 成员包括: Height: intWeight: intSex: char Name: string .建Person类型的数组,其中有十个元素。输出其平均身高、平均体重、最高的人和最矮的 人, 男人有哪些, 女人有哪些,高于170的男人都是谁?

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-10-12 16:15
    关注
    #include <iostream>
    #include <string>
    using namespace std;
    class Person
    {
          private:
              int Height,Weight;
              string Name;
              char Sex;
         public:
              Person() {}
              void setHeight(int h) {Height = h;}
              void setWeight(int w) {Weight= w;}
              void setName(string name) {Name= name;}
              void setSex(char sex) {Sex= sex;}
              int getHeight() {return Height;}
              int getWeight() {return Weight;}
              char getSex() {return Sex;}
              string getName() {return Name;}
    };
    
    int getAvgHeight(Person *p,int n)
    {
          int h= 0;
          for(int i=0;i<n;i++)
              h += p[i].getHeight();
          return h/n;
    }
    
    string getHighMax(Person *p ,int n)
    {
          int max= 0,maxIdx= 0;
          for(int i=0;i<n;i++)
          {
              if(i==0)
              {
                    max = p[i].getHeight();
                    maxIdx = 0;
              }
              else if(max < p[i].getHeight())
              {
                   max = p[i].getHeight();
                   maxIdx = i;
              }
           }
          return p[maxIdx].getName();
    }
    
    string getHighMin(Person *p ,int n)
    {
          int min= 0,minIdx= 0;
          for(int i=0;i<n;i++)
          {
              if(i==0)
              {
                    min= p[i].getHeight();
                    minIdx = 0;
              }
              else if(min > p[i].getHeight())
              {
                   min = p[i].getHeight();
                   minIdx = i;
              }
           }
          return p[minIdx].getName();
    }
    
    void getF(Person *p,int n)
    {
           for(int i=0;i<n;i++)
              if(p[i].getSex() == 'F')
                  cout<<p[i].getName()<<endl;
    }
    
    void getM(Person *p,int n)
    {
           for(int i=0;i<n;i++)
              if(p[i].getSex() == 'M')
                  cout<<p[i].getName()<<endl;
    }
    
    void getHightMore(Person *p,int n,int h,char sex)
    {
           for(int i=0;i<n;i++)
              if(p[i].getHeight() > h && p[i].getSex() == sex)
                  cout<<p[i].getName()<<endl;
    }
    
    int getAvgWeight(Person *p,int n)
    {
          int h= 0;
          for(int i=0;i<n;i++)
              h += p[i].getWeight();
          return h/n;
    }
    
    int main()
    {
          Person p[10];
          int h,w;
          string name;
          char sex;
          for(int i=0;i<10;i++)
          {
                cin>>h>>w>>name>>sex;
                p[i].setHeight(h);
                p[i].setWeight(w);
                p[i].setName(name);
                p[i].setSex(sex);
          }
          //
          cout<<"平均身高:"<<getAvgHeight(p,10)<<endl;
          cout<<"平均体重:"<<getAvgWeight(p,10)<<endl;
          cout<<"最高的人:"<<getHighMax(p,10)<<endl;
          cout<<"最矮的人:"<<getHighMin(p,10)<<endl;
          cout<<"女人有:"<<endl;
          getF(p,10);
          cout<<"男人有:"<<endl;
          getM(p,10);
          cout<<"超过170cm的男人有:"<<endl;
          getHightMore(p,10,170,'M');
          return 0;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月20日
  • 已采纳回答 10月12日
  • 创建了问题 10月12日

悬赏问题

  • ¥15 2024-五一综合模拟赛
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭