miss_you5 2021-10-13 13:18 采纳率: 100%
浏览 35
已结题

c++有人会做吗?编程没学好

img


定义一个名为“person”的类它封装了以下属性和必要的方法:
1)height: int,单位:cm;
2)重量:浮子,单位:kg;
3)性别:char, 'M'/'F'
4)名称:字符
2. 定义main()函数来完成以下工作:
1)建立一个包含10个Person类实例的数组;
2)从键盘将数据输入到数组元素中
3)打印平均身高、体重、最高、最矮者、男性、女性、170厘米以上者。

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-10-13 13:23
    关注
    #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月21日
  • 已采纳回答 10月13日
  • 修改了问题 10月13日
  • 创建了问题 10月13日

悬赏问题

  • ¥15 请专家看看这个问题出在哪里?
  • ¥15 tensorrt 推理 yolov8框出现错误
  • ¥15 用hc 05,做蓝牙控制小车 小车只能说初始遥控方向影响,后续不能更改
  • ¥15 51单片机怎么把每次输入键值保存到数组作为我的确认键的判断条件呢
  • ¥45 easy photo不能使用,求帮助
  • ¥15 c语言字符串单词入门问题报错
  • ¥30 我现在是双非人工智能专业不知道要不要转到软件工程专业
  • ¥15 请问12脉波整流机组的外特性曲线具体是如何推导
  • ¥15 abaqus里的python算法
  • ¥100 如何在思科模拟器中进入CEF模式