-
Notifications
You must be signed in to change notification settings - Fork 0
/
ATM.cpp
53 lines (53 loc) · 1.83 KB
/
ATM.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//ATM.cpp
/*
*
* Rút tiền từ ATM
* biết số tờ tiền 500.000, 200.000, 100.000, 50.000 còn lại trong máy
* hiển thị số tờ tiền với từng mệnh giá tương ứng cần đưa ra cho khách hàng
*
* còn lỗi với trường hợp cần rút xxx50.000 và trong máy không còn đủ tờ 50.000
*
*/
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
system("chcp 65001");
system("cls");
unsigned int rut = 0,
con = 0,
temp = 0,
i = 0,
menhgia[] = {500, 200, 100, 50},
soto[] = {0, 0, 0, 0};
for (int j = 0; j < 4; j++)
{
cout << "Nhập số tờ tiền " << menhgia[j] << ".000: ";
cin >> soto[j];
con = con + menhgia[j] * soto[j];
}
cout << " Tổng số tiền ATM hiện tại còn: " << con << ".000\n\n";
cout << "Bạn cần rút bao nhiêu tiền? (Bội của 1000) ";
cin >> rut;
while (rut > con || rut < 50)
{
cout << "\nATM hiện tại không còn đủ tiền. Hoặc bạn đã nhập số tiền nhỏ hơn 50.000\nHãy nhập số tiền khác, nhỏ hơn " << con << ".000 và lớn hơn 50.000 \n\n";
cout << "Bạn cần rút bao nhiêu tiền? (Bội của 1000) ";
cin >> rut;
}
while (rut > 0)
{
temp = rut / menhgia[i]; // số tờ cần rút ra với từng mệnh giá 500, 200, 100, 50
if (temp > soto[i])
{
temp = soto[i];
rut = rut - temp * menhgia[i];
}
else
rut = rut % menhgia[i]; // phần còn lại sau khi rút số tờ với mệnh giá trên
cout << " Hãy lấy " << temp << " tờ: " << menhgia[i] << ".000 \n";
i++;
}
return 0;
}