1
输入
第一行表示要输入n个对象
后续各行输入不同对象的各属性值,每个对象一行,属性值包括:姓名、学号、学院、专业、性别、宿舍楼、手机号
输出
输出不同对象的各自属性
每个对象占一行
#include<iostream> using namespace std; #include<string> class Student { private: //姓名、学号、学院、专业、性别、宿舍楼、手机号 string name; int id; string school; string major; string sex; string dom; string phone; public: void input() { cin>>name>>id>>school>>major>>sex>>dom>>phone; } void output() { cout<<name<<" "<<id<<" "<<school<<" "<<major<<" "<<sex <<" "<<dom<<" "<<phone<<endl; } }; int main() { int t; cin>>t; while(t--) { Student s; s.input(); s.output(); } return 0; }错:手机号phone你用了int类型,但手机号通常是11位数字,可能超出int的表示范围(最大约21亿,11位手机号约100亿),导致溢出。另外,如果手机号以0开头,int会丢失前导零。建议将phone改为string类型,这样更安全通用
2
题目描述
评估成年人身体健康有多个指标,包括BMI、体脂率BFR等
设计一个身体类Body,包含私有成员:姓名、身高(米)、体重(公斤),腰围(厘米),实现三个公有方法如下:
姓名get方法:返回对象的姓名,字符串类型
BMI方法,返回BMI数值(整数),计算公式BMI= 体重 / 身高的平方
体脂率方法,返回体脂率数值(浮点数),计算过程如下:
1)参数a=腰围(cm)×0.74
2)参数b=体重(kg)×0.082+34.89
3)体脂肪重量(kg)=a-b
4)体脂率 = 体脂肪重量÷体重
其他公有方法根据需要自行设计
主函数操作包括
1、创建Body类对象,并根据输入数据设置类对象属性
2、根据输出结果的格式,分别调用类对象的三个方法输出类对象的姓名、BMI值、体脂率
输入
第一行输入t表示有t个测试实例
第二行起,每行输入四个参数:姓名、身高、体重,腰围
依次输入t行
输出
输出t行,每行输入一个实例的BMI和体脂率,小数数值精确到小数点后2位,用空格隔开
#include<iostream> using namespace std; #include<string> #include<iomanip> class body { private: string name; double hei; double wei; double wl; public: string get() { return name; } int BMI() { int bmi=(int)(wei/(hei*hei)+0.5);//直接int转换不会四舍五入,加个0.5就好了 return bmi; } double BFR() { double a,b,c,bfr; a=wl*0.74; b=wei*0.082+34.89; c=a-b; bfr=c/wei; return bfr; } void input() { cin>>name>>hei>>wei>>wl; } }; int main() { int t; cin>>t; while(t--) { body s; s.input(); cout<<s.get()<<"'s'" <<" BMI:"<<s.BMI()<<fixed <<setprecision(2)<<"--BFR:"<<s.BFR()<<endl; } return 0; }