30/09/2018, 18:24

Kế thừa trong c++

Chào mọi người, e mới học c++ và đang làm bài tập về Kế Thừa.
Đề bài:
Tạo class Account là class cơ sở của 2 class CheckingAcc và SavingAcc,
Khi mà e gửi tiền hay rút tiền thì sẽ thao tác trong class CheckingAcc và khi đó số dư sẽ bị thay đổi
Làm cách nào để số dư đó được cập nhập cho class SavingAcc ?
Vì khi có được số dư mới mình mới tính được tiền lãi với số tiền đã thay đổi ở trên.
Code e đây:

#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;

class Account{
	private:
		double sodu;
	public:
		Account(double);
		void credit(double);
		void debit(double);
		double getBalance(){
			return sodu;
		}
		void xuat();
		
};

class CheckingAccount:public Account{
	private:
		double phi;
	public:
		CheckingAccount(double,double);
		void credit(double);
		void debit(double);
};

class SavingsAccount:public Account{
	private:
		double lai; // luu duoi dang %
	public:
		SavingsAccount(double,double);
		double calculateInterest();
};

void Account::xuat(){
	double k=getBalance();
	cout<<"
 So du hien tai la : "<<k<<" <VND> ";
}

Account::Account(double sodu_){
		if(sodu_<0){
				sodu_=0.0;
				cout<<"
 Gia tri khoi tao khong hop le ! ";
			}
			else
			sodu=sodu_;
}

void Account::credit(double tien){
	sodu=tien+sodu;
}

void Account::debit(double tien){
	if(tien>sodu){
		cout<<"
 Khong duoc rut so tien vuot qua so du hien co ! ";

	}
	else{
			sodu=sodu-tien;

	}

}



SavingsAccount::SavingsAccount(double sodu_,double lai_):Account(sodu_){
	lai=lai_;
}

double SavingsAccount::calculateInterest(){
	double k=getBalance();
	double tien=(lai/100)*k;

	return tien;
}



CheckingAccount::CheckingAccount(double sodu_,double phi_):Account(sodu_){
	phi=phi_;
}

void CheckingAccount::credit(double tien){
	double k=tien-phi;
	Account::credit(k);
}

void CheckingAccount::debit(double tien){

	
		double k=tien+phi;
		Account::debit(k);
	
}

void menu(){
	Account a(50000);
	SavingsAccount b(50000,5); // so du 50k, lai 5%
	CheckingAccount c(50000,2000);  //phi la 2k
	int chon;
	double tieng,tienr;
	cout<<"
 ------ Ngan Hang ------ ";
	cout<<"
 1. Gui tien ";
	cout<<"
 2. Rut tien ";
	cout<<"
 3. Kiem tra tien lai suat thu dc ";
	cout<<"
 4. So du sau khi co lai suat ";
	do{
	cout<<"
 Chon: ";
	cin>>chon;
	switch(chon){
		case 1:{
			cout<<"
 Nhap vao so tien muon gui vao ngan hang ";
			cin>>tieng;
			c.credit(tieng);
			c.xuat();
		
			break;
		}
		
		case 2:{
			cout<<"
 Nhap vao so tien muon rut (<=so_du>)";
			cin>>tienr;
			c.debit(tienr);
			c.xuat();
			break;
		}
		
		case 3:{
			double k=b.calculateInterest();
			cout<<"
 Tien lai "<<k<<" <VND> ";
			break;
		}
		
		case 4:{
			double k=b.calculateInterest();
			c.credit(k);
			cout<<"
 So du sau khi duoc huong tien lai suat la : ";
			c.Account::xuat();
			break;
		}
		
		case 5:
			{
				system("cls");
				cout<<"
 Xin chao va hen gap lai ! ";
				break;
			}
			
	}
}while(chon!=5);
}


main(){
	menu();
}

Bài liên quan
0