Oops/과제/2014.09.12 (rev. 1.15)
- 은행계좌에 대한 정보를 입출력하는 class를 만들어 활용해본다.
- class CDaccount 멤버변수
- double balance;//현재잔액
- double interestRate; // 연 이자율 (%) * int term;//만기까지몇달인지나타냄
- 그외 필요한 멤버변수 추가
- class CDaccount 멤버함수
- private 멤버변수 입출력을 위한 함수 정의
- void input(); // 내용을 키보드로 입력. balance와 term을 키보드로 입력받는다. 이자율은 main()함수에서 5%로 할당
- double getMaturedBalance(); //term 동안의 이자를 단리로 계산하여 만기시의 금액을 리턴
- 그 외 필요한 멤버함수
- 입력 에러 확인
- private 멤버변수의 입력을 위한 멤버함수에서 에러를 확인할 수 있다.
- 예) balance는 0보다 큰 숫자이다.
- int SetBalance(double b) 멤버함수를 정의:
- b가 0보다 크면 값을 update하고 1을 리턴, 아니면 0을 리턴
- input()에서 위 함수 호출하여 리턴값이 0이면 다시 입력받음
2. 코드 제출 ¶
#include<iostream>
class CDaccount{
public:
CDaccount(double balance, double interestRate, int term);
void input(); // balance, term을 키보드로 입력받음
double getMaturedBalance(); // term 동안의 이자를 단리로 계산하여 만기시의 금액을 리턴
double getBalance();
double getInterestRate();
int getTerm();
int setBalance(double balance);
void setInterestRate(double intersetRate);
void setTerm(int term);
private:
double balance; //잔액
double interestRate; //이자율(%)
int term; //기간
};
int main(){
CDaccount account(0,0.05,0);
account.input();
return 0;
}
CDaccount::CDaccount(double balance, double interestRate, int term){
this->balance = balance;
this->interestRate = interestRate;
this->term = term;
}
void CDaccount::input(){
double balance;
int term;
int i;
while(1){
std::cout << "Enter the balance(upto 0): ";
std::cin >> balance;
if(setBalance(balance) == 1){
break;
}
}
while(1){
std::cout << "Enter the term: ";
std::cin >> term;
if(term > 0){
setTerm(term);
break;
}
}
std::cout << "Matured balance: " << getMaturedBalance() <<" (Interest Rate: 5%)\n";
}
double CDaccount::getMaturedBalance(){
int i;
for(i=0;i<term;i++){
balance *= 1+interestRate;
}
return balance;
}
double CDaccount::getBalance(){
return balance;
}
double CDaccount::getInterestRate(){
return interestRate;
}
int CDaccount::getTerm(){
return term;
}
int CDaccount::setBalance(double balance){
if(balance > 0){
this->balance = balance;
return 1;
} else{
return 0;
}
}
void CDaccount::setInterestRate(double interestRate){
this->interestRate = interestRate;
}
void CDaccount::setTerm(int term){
this->term = term;
}
//
// main.cpp
// CDaccount
//
// Created by Chiwan Song on 2014. 9. 15..
// Copyright (c) 2014년 Chiwan Song. All rights reserved.
//
#include <iostream>
using namespace std;
class CDaccount{
private:
double balance;
double interestRate;
int term;
int checkPositive(double value);
int checkPositive(int value);
public:
void input();
double getMaturedBalance();
void setRate(double rate);
};
int main(int argc, const char * argv[]){
CDaccount myAccount;
double interestRate=5.0;
myAccount.input();
myAccount.setRate(interestRate);
cout<<"Matured Balance: $"<<myAccount.getMaturedBalance()<<" (Interest rate: "<<interestRate<<"%)\n";
return 0;
}
int CDaccount::checkPositive(double value){
if(value<=0) return 1;
else return 0;
}
int CDaccount::checkPositive(int value){
if(value<=0) return 1;
else return 0;
}
void CDaccount::input(){
do{
cout<<"Please enter balance: ";
cin>>balance;
if(balance<=0) cout<<"BALANCE SHOULD BE BIGGER THAN 0\n";
}while(checkPositive(balance));
do{
cout<<"Please enter term: ";
cin>>term;
if(term<=0) cout<<"TERM SHOULD BE BIGGER THAN 0\n";
}while(checkPositive(term));
}
double CDaccount::getMaturedBalance(){
return balance+(balance*interestRate*term/12);
}
void CDaccount::setRate(double interestRate){
this->interestRate=interestRate/100;
}
#include <iostream>
using namespace std;
class CDaccount {
double balance;
double interestRate;
int term;
int SetBalance(double);
public:
void input();
void putIntersetRate(int);
double getMaturedBalance();
};
int CDaccount::SetBalance(double input_Balance){
if (input_Balance > 0) {
this->balance = input_Balance;
return 1;
} else {
return 0;
}
}
void CDaccount::input() {
double input;
while(true) {
cout << "Enter the balance: ";
cin >> input;
if (this->SetBalance(input)==0) {
continue;
} else {
break;
}
}
cout << "Enter the term: ";
cin >> this->term;
}
void CDaccount::putIntersetRate(int input_interestRate) {
this->interestRate = input_interestRate;
}
double CDaccount::getMaturedBalance(){
return this->balance * this->interestRate * this->term / 100;
}
int main () {
int interestRate = 5;
CDaccount account;
account.input();
account.putIntersetRate(interestRate);
cout << "Matured balance: $" << account.getMaturedBalance() << "(Interst Rate : " << interestRate << "%)"<< endl;
return 0;
}