成员包括: Height: intWeight: intSex: char Name: string .建Person类型的数组,其中有十个元素。输出其平均身高、平均体重、最高的人和最矮的 人, 男人有哪些, 女人有哪些,高于170的男人都是谁?
定义main()函数以执行
1) 构建一个包含10个类Person实例的数组;
2) 从键盘向数组元素输入数据;
3) 打印出平均身高、体重、最高和最矮的人、男性名单、女性名单以及170厘米以上的人
用C++建立一个类: Person,
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-link 2021-10-13 15:42关注
#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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 用C语言输入方程怎么
- ¥15 网站显示不安全连接问题
- ¥15 github训练的模型参数无法下载
- ¥15 51单片机显示器问题
- ¥20 关于#qt#的问题:Qt代码的移植问题
- ¥50 求图像处理的matlab方案
- ¥50 winform中使用edge的Kiosk模式
- ¥15 关于#python#的问题:功能监听网页
- ¥15 怎么让wx群机器人发送音乐
- ¥15 fesafe材料库问题