#includeusing namespace std; class Coin { int m_penny, m_nickel, m_dime, m_quarter; //동전의 개수 의미 int m_dollar, m_cent; //동전을 달러를 환산했을 때 값 public: Coin(); Coin(int quarter, int dime, int nickel, int penny); Coin(int dollar, int cent); bool Set_Quarter(int quarter); bool Set_Dime(int dime); bool Set_Nickel(int nickel); bool Set_Penny(int penny); bool Set_Dollar(int dollar); bool Set_Cent(int cent); int Get_Penny(); int Get_Nickel(); int Get_Dime(); int Get_Quarter(); int Get_Dollar(); int Get_Cent(); void Exchange_Coin_to_Dollar(); void Exchange_Dollar_To_Coin(); void Print_Money(); }; Coin::Coin() //coin { m_penny = 1, m_nickel = 1, m_dime = 1, m_quarter = 1; m_dollar = 0, m_cent = 41; } Coin::Coin(int quarter, int dime, int nickel, int penny) { m_quarter = quarter, m_dime = dime, m_nickel = nickel, m_penny = penny; Exchange_Coin_to_Dollar(); } Coin::Coin(int dollar, int cent) { m_dollar = dollar; m_cent = cent; Exchange_Dollar_To_Coin(); } int Coin::Get_Penny() //Get { return m_penny; } int Coin::Get_Nickel() { return m_nickel; } int Coin::Get_Dime() { return m_dime; } int Coin::Get_Quarter() { return m_quarter; } int Coin::Get_Dollar() { return m_dollar; } int Coin::Get_Cent() { return m_cent; } bool Coin::Set_Quarter(int quarter) //Set { if (m_quarter >= 0) { m_quarter = quarter; return true; } else { return false; } } bool Coin::Set_Dime(int dime) { if (m_dime >= 0) { m_dime = dime; return true; } else { return false; } } bool Coin::Set_Nickel(int nickel) { if (m_nickel >= 0) { m_nickel = nickel; return true; } else { return false; } } bool Coin::Set_Penny(int penny) { if (m_penny >= 0) { m_penny = penny; return true; } else { return false; } } bool Coin::Set_Dollar(int dollar) { if (m_dollar >= 0) { m_dollar = dollar; return true; } else { return false; } } bool Coin::Set_Cent(int cent) { if (m_cent >= 0) { m_cent = cent; return true; } else { return false; } } void Coin::Exchange_Coin_to_Dollar() //Exchange { int total = 0; total = 25 * m_quarter + 10 * m_dime + 5 * m_nickel + 1 * m_penny; m_dollar = total / 100; m_cent = total % 100; } void Coin::Exchange_Dollar_To_Coin() { int total = 0; total = (m_dollar * 100) + m_cent; m_quarter = total / 25; m_dime = (total % 25) / 10; m_nickel = ((total % 25) % 10) / 5; m_penny = ((((total % 25) % 10) % 5)); } void Coin::Print_Money() //print { cout << "==================================================================================" << endl; cout << "코인의 갯수는" << m_quarter << "쿼러," << m_dime << "다임," << m_nickel << "니클," << m_penny << "페니 이고" << endl; cout << "달러로 환산하면" << m_dollar << "달러," << m_cent << "센트 입니다.\n\n"; } int main() { int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0; Coin Reset_Coin; Coin First_Coin(4, 5, 2, 6); Coin Exchange_Coin(5, 62); First_Coin.Print_Money(); Exchange_Coin.Print_Money(); Reset_Coin.Print_Money(); First_Coin.Set_Quarter(7); First_Coin.Set_Nickel(23); First_Coin.Exchange_Coin_to_Dollar(); cout << "==================================================================================" << endl; cout << "코인의 갯수는" << First_Coin.Get_Quarter() << "쿼러," << First_Coin.Get_Dime() << "다임," << First_Coin.Get_Nickel() << "니클," << First_Coin.Get_Penny() << "페니 이고" << endl; cout << "달러로 환산하면" << First_Coin.Get_Dollar() << "달러," << First_Coin.Get_Cent() << "센트 입니다.\n\n"; Exchange_Coin.Set_Dollar(2); Exchange_Coin.Set_Cent(43); Exchange_Coin.Exchange_Dollar_To_Coin(); Exchange_Coin.Print_Money(); cout << "동전의 개수를 입력하세요(쿼러, 다임, 니클, 페니): "; cin >> a >> b >> c >> d; while (a < 0 || b < 0 || c < 0 || d < 0) { cout << "입력된 값 중에 음수가 있습니다." << endl; cout << "0이상의 값으로 동전의 개수를 순서대로 입력하세요(쿼러, 다임, 니클, 페니) : "; cin >> a >> b >> c >> d; } Reset_Coin.Set_Quarter(a); Reset_Coin.Set_Dime(b); Reset_Coin.Set_Nickel(c); Reset_Coin.Set_Penny(d); Reset_Coin.Exchange_Coin_to_Dollar(); Reset_Coin.Print_Money(); return 0; }