Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Hola boa tarde!
Presiso de ajuda nesse exercício logo abaixo.
Escreva uma classe chamada Pessoa que contenha os atributos privados denominados
nome, peso, altura e sexo. Além disso,
a) Crie um construtor que inicialize todos os membros de dados com os valores
recebidos como argumento.
B) Crie os métodos de acesso (getters e setters) para todos os atributos. Os métodos
setters (booleanos) devem validar os dados de entrada, retornando verdadeiro
somente quando as condições definidas abaixo forem satisfeitas:
. o nome deve conter pelo menos dois caracteres;
. o peso deve ser positivo e menor que 200;
. a altura (em metros) deve ser maior que 0,50 e menor que 2,40;
. o sexo deve ser 'M' ou 'F' apenas.
c) Escreva um método público para o cálculo do IMC (Índice de Massa Corporal).
d) Escreva um método público para o cálculo do peso ideal de acordo com o sexo.
e) Implemente uma função principal (main) que construa (declare) um objeto do tipo
Pessoa, leia os atributos e escreva na tela o nome, o IMC e o peso ideal da pessoa,
informando ainda quantos quilos ela deve perder (ou ganhar) para atingir o seu
peso ideal.
São dadas as fórmulas:
IMC = peso/altura2
peso ideal = 72,7 x altura ? 58 (para homens)
peso ideal = 62,1 x altura ? 44,7 (para mulheres)
O que eu consegui fazer logo abaixo
#include<iostream> //biblioteca
using namespace std;
class Pessoa {
private:
string nome;
double peso,altura; //variável
char sexo;
public:
Pessoa(){ //cria o construtor objeto
}
bool setNome(string n){ //recebe o valor do int main
nome = n;
}
string getNome(){
return nome;
}
bool setPeso (double p) {
if (peso >= 0.0 && peso < 200.0) {
return false;
}
peso = p;
return true;
}
double getPeso() {
return peso;
}
bool setaltura (double a) {
if (altura >= 0.50 && altura < 240.0) {
return false;
}
altura = a;
return true;
}
double getaltura() {
return peso;
}
bool setsexo (char s) {
if (sexo == 'M' || sexo == 'F'){
return false;
}
sexo = s;
return true;
}
char setsexo(){
return sexo;
}
void print(){ //mostra o valor na tela
cout << "-------------\n";
cout << "Nome e: " << nome << endl;
cout << "Peso e: " << peso << endl;
cout << "Altura e: " << altura << endl;
cout << "Sexo e: " << sexo << endl;
}
};
int main(){
Pessoa p; // chama o construtor-padrão
double peso,altura;
string nome;
char sexo;
cout << "Digite o nome: ";
getline(cin,nome);
cout << "Digite o peso: ";
cin >> peso;
cout<< "Digite a altura: ";
cin >> altura;
cout << "Digite o sexo: ";
cin >> sexo;
p.setNome(nome);
p.setPeso(peso);
p.setaltura(altura);
p.setsexo(sexo);
//envia o valor para void setNome
p.print(); //enviar o resultado para void print()minha dúvida é como fazer para o nome. deve conter pelo menos dois caracteres;? como faço
Carregando comentários...