30/09/2018, 16:25

Bài tập: Tạo 1 ATM bằng C++(OOP). Lỗi không thực hiện được chức năng "Rút tiền"

File main.cpp

#include"Account.h"
#include"ATM.h"
#include
int main()
{
	int ms=-1,ms2=-1;
	ATM atm;
	int LuaChon,LuaChon2;
	vector ListAccount;
	do{
		cout<<"
1. Nhap Du Lieu Cho Account";
		cout<<"
2. Nhap Du Lieu Cho ATM";
		cout<<"
3. Vao ATM
";
		cout<>LuaChon;
		if(LuaChon==1){
			Account* x=new Account;
			x->input();
			ListAccount.push_back(*x);
		}else if(LuaChon==2){
			atm.NhapTienVao();
		}
	}while(LuaChon!=3);
	cout<<"
--------------Danh sach---------------
";
	for(int i=0;i<ListAccount.size();i++){
		cout<<endl;
		ListAccount[i].output();
	}
	cout<<endl;
	long matk=0;
	while(1){
		cout<>matk;
		for(int i=0;i<ListAccount.size();i++){
			if(ListAccount[i].matk()==matk){
				ms=i;
				cout<<"Login Success!";
			}
		
		}
		if(ms!=-1){
			break;
		}
		cout<<"Ma Tai Khoan Khong Hop Le !";
	}
	do{
		cout<<"


======================Chao ban!"<<ListAccount[ms].matk()<<"======================
";
		cout<<"
1. Rut Tien";
		cout<<"
2. Chuyen Tien";
		cout<<"
3. Van Tin TK";
		cout<<"
0. Ket Thuc Giao Dich!";
		cout<>LuaChon2;
		if(LuaChon2==1){
			atm.RutTien(ListAccount[ms]);
		}else if(LuaChon2==2){
			while(1){
				cout<>matk;
				for(int i=0;i<ListAccount.size();i++){
					if(ListAccount[i].matk()==matk){
						ms2=i;
					}
				
				}
				if(ms2!=-1){
					break;
				}
				cout<<"
TK ban chuyen khoan chua dung !";
			}
			cout<>m;
			atm.ChuyenKhoan(ListAccount[ms],ListAccount[ms2],m);
			cout<<"Chuyen Khoan Thanh Cong!";
		}else if(LuaChon2==3){
			cout<<"
Thong Tin Tai Khoan!
";
			atm.KiemTraSoDu(ListAccount[ms]);
		}
	}while(LuaChon2!=0);
	
	system("pause");
}

file ATM.h

#include
#include"Account.h"
using namespace std;
class ATM{
	private:
		int SoTien;
	public:
		void NhapTienVao();
		unsigned long TienConlai();
		void RutTien(Account x);
		void ChuyenKhoan(Account,Account,long);
		void KiemTraSoDu(Account x);
};
void ATM::NhapTienVao(){
	unsigned long m;
	cout<>SoTien;
}
unsigned long ATM::TienConlai(){
	return SoTien;
}
void ATM::RutTien(Account x){
	cout<>m;
	cout<<x.sodu();
	if(x.sodu()<m){
		cout<<"Ban Khong Con Du Tien De Rut! ";
	}
	else{
		x.ruttien(m);
		SoTien-=m;
		cout<<"OKie,Ban da rut"<<m<<" , moi ban nhan tien va The ";
	}
}
void ATM::ChuyenKhoan(Account a,Account b,long SoTienNhan){
	if(a.sodu()<SoTienNhan){
		cout<<"Ban Khong Con Du Tien De Chuyen Khoan! ";
	}else{
		a.chuyentien(SoTienNhan);
		b.nhantien(SoTienNhan);	
	}
}
void ATM::KiemTraSoDu(Account x){
	x.output();
}

file Account.h

#pragma once
#include
#include
#include
using namespace std;
class Account
{
private:
	long SoTaiKhoan,SoDu;
	string TenChuTK;
	int TheLoai;
public:
	void input();
	void output();
	string setHoTen(); 
	long sodu();
	long matk();
	void ruttien(unsigned long m);
	void nhantien(unsigned long m);
	void chuyentien(unsigned long m);
};
void Account::input()
{
	cout<>SoTaiKhoan;
	fflush(stdin);
	cout<<"Nhap Ho Ten: ";
	getline(cin,TenChuTK);
	cout<>SoDu;
	cout<>TheLoai;
	cout<<endl;
}
void Account::output()
{
	cout<<setw(8)<<left<<SoTaiKhoan<<setw(20)<<left<<TenChuTK<<setw(20)<<SoDu<<setw(5)<SoDu-=m;
}

void Account::nhantien(unsigned long m){
	this->SoDu+=m;
}
void Account::chuyentien(unsigned long m){
	this->SoDu-=m;
}
long Account::sodu(){
	return SoDu;
}
long Account::matk(){
	return SoTaiKhoan;
	
}
string Account::setHoTen(){
	return TenChuTK;
}

Giúp e với tại sao mỗi lần e rút tiền mà nó không trừ vậy! Thanks

Quyet An viết 18:32 ngày 30/09/2018

ATM.h

#include<iostream>
#include"Account.h"
using namespace std;
class ATM{
	private:
		int SoTien;
	public:
		void NhapTienVao();
		unsigned long TienConlai();
		void RutTien(Account x);
		void ChuyenKhoan(Account,Account,long);
		void KiemTraSoDu(Account x);
};
void ATM::NhapTienVao(){
	unsigned long m;
	cout<<"Nhap so tien ATM co the chua: ";
	cin>>SoTien;
}
unsigned long ATM::TienConlai(){
	return SoTien;
}
void ATM::RutTien(Account x){
	cout<<"Nhap So Tien Muon Rut: ";
	unsigned long m;
	cin>>m;
	cout<<x.sodu();
	if(x.sodu()<m){
		cout<<"Ban Khong Con Du Tien De Rut! ";
	}
	else{
		x.ruttien(m);
		SoTien-=m;
		cout<<"OKie,Ban da rut"<<m<<" , moi ban nhan tien va The ";
	}
}
void ATM::ChuyenKhoan(Account a,Account b,long SoTienNhan){
	if(a.sodu()<SoTienNhan){
		cout<<"Ban Khong Con Du Tien De Chuyen Khoan! ";
	}else{
		a.chuyentien(SoTienNhan);
		b.nhantien(SoTienNhan);	
	}
}
void ATM::KiemTraSoDu(Account x){
	x.output();
}
Sáng Béo viết 18:34 ngày 30/09/2018

for(int i=0;i>matk;
for(int i=0;i>LuaChon2;

thiếu thì phải Quyết ơi.

Quyet An viết 18:32 ngày 30/09/2018

Thiếu ở đâu vậy? Là sao

Upin Văn Đoàn viết 18:31 ngày 30/09/2018

Bạn ơi bài code của bị thiếu nhìu quá !!! bạn viết code nhờ sửa zúp thì lm ơn viết có tâm tí nha !!!

Bài liên quan
0