PowerC++ 문제풀이, Chapter 9, Programming 11번
Product.h
#pragma once
#include <iostream>
using namespace std;
class Product {
private:
string name;
int price;
int assessment;
public:
// main 함수에서 실행시키기 위함
string getName() { return name; }
// 문제에 있던 함수
void getInfo() // 제품평가점수
{
// 형식매개변수 선언
string n; int p, a;
// 이름 받기
cout << "상품 이름을 입력하세요 : "; cin >> n; cout << endl;
name = n;
// 가격 받기
cout << "상품 가격을 입력하세요 : "; cin >> p; cout << endl;
if (p < 0)
p = 0;
price = p;
// 평가 받기
cout << "상품 평가를 입력하세요 (0~100) : "; cin >> a; cout << endl;
if (a < 0)
a = 0;
else if (a > 100)
a = 100;
assessment = a;
}
void print()
{
cout << "상품 이름 : " << name << endl <<
"가격 : " << price << endl <<
"평가 : " << assessment << endl << endl;
}
bool isBetter(Product another)
{
// 가성비를 따지기 위해 제품평가점수를 가격으로 나눈 값이 큰게 이기는걸로 하겠습니다.
double p1 = assessment / price;
double p2 = another.assessment / another.price;
if (p1 > p2) // 똑같으면?
return true;
else
return false;
}
};
Product.cpp
#include "Product.h"
int main()
{
// 객체 선언
Product note, pencase;
// getInfo 함수
note.getInfo();
pencase.getInfo();
// isBetter 함수
if (note.isBetter(pencase) == 1)
cout << note.getName();
else
cout << pencase.getName();
cout << " 이(가) 더 좋습니다." << endl << endl;
// print 함수
note.print();
pencase.print();
return 0;
}