Mô tả bài toán
Tạo ứng dụng Console, mô phỏng việc thực hiện giao dịch của một máy ATM, với các tính năng:- Kiểm tra tài khoản (Balance checking)
- Rút tiền mặt (Cash withdrawal), với các ràng buộc:
- Số tiền cần rút phải là bội số của 100$.
- Số tiền còn tối thiểu trong tài khoản phải > 500$.
- Gởi tiền mặt (Cash deposition)
Cách giải quyết
- Cần khởi tạo biến
amount
để lữu trữ số tiền hiện đang có trong tài khoản của người dùng. - Để tạo Menu dạng Console, chúng ta cần tạo danh sách các chức năng tương ứng với hành động của người dùng nhập vào. Thông thường, chúng ta sẽ lặp lại Menu liên tục, cho đến khi người dùng không sử dụng chương trình nữa:
- Nếu chọn
1
: sẽ đi đến chức năng "Kiểm tra tài khoản".- In ra màn hình giá trị của biến
amount
đang có.
- In ra màn hình giá trị của biến
- Nếu chọn
2
: sẽ đi đến chức năng "Rút tiền".- Cho người dùng nhập số tiền cần rút, lưu giá trị vào biến
withdraw
- Các điều kiện ràng buộc:
- Số tiền cần rút phải là bội số của 100$.
- Số tiền còn tối thiểu trong tài khoản phải > 500$.
- Nếu thỏa các điều kiện: lấy
amount - withdraw
- Cho người dùng nhập số tiền cần rút, lưu giá trị vào biến
- Nếu chọn
3
: sẽ đi đến chức năng "Gởi tiền".- Cho người dùng nhập số tiền cần gởi lưu giá trị vào biến
deposit
- Lấy
amount = amount + deposit
- Cho người dùng nhập số tiền cần gởi lưu giá trị vào biến
- Nếu chọn
4
: sẽ thoát vòng lặp, kết thúc chương trình.
- Nếu chọn
Source code
/* C# Program to Display the ATM Transaction This is a C# Program to display the atm transaction. Problem Description This C# Program Displays the ATM Transaction. Problem Solution Here The types of ATM transaction are 1) Balance checking 2) Cash withdrawal 3) Cash deposition. You can opt any of the above transaction according to your need of transaction. */ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Lession10 { class Program { static void Main(string[] args) { int amount = 1000, deposit, withdraw; int choice, pin = 0; bool continueAsk = true; Console.WriteLine("Enter Your Pin Number "); pin = int.Parse(Console.ReadLine()); while (continueAsk) { Console.WriteLine("********Welcome to ATM Service**************"); Console.WriteLine("1. Check Balance"); Console.WriteLine("2. Withdraw Cash"); Console.WriteLine("3. Deposit Cash"); Console.WriteLine("4. Quit"); Console.WriteLine("*********************************************"); Console.WriteLine("Enter your choice: "); choice = int.Parse(Console.ReadLine()); switch (choice) { case 1: Console.WriteLine(" YOUR BALANCE IN Rs : {0} ", amount); break; case 2: Console.WriteLine(" ENTER THE AMOUNT TO WITHDRAW: "); withdraw = int.Parse(Console.ReadLine()); if (withdraw % 100 != 0) { Console.WriteLine(" PLEASE ENTER THE AMOUNT IN MULTIPLES OF 100"); } else if (withdraw > (amount - 500)) { Console.WriteLine(" INSUFFICENT BALANCE"); } else { amount = amount - withdraw; Console.WriteLine(" PLEASE COLLECT CASH"); Console.WriteLine(" YOUR CURRENT BALANCE IS {0}", amount); } break; case 3: Console.WriteLine(" ENTER THE AMOUNT TO DEPOSIT"); deposit = int.Parse(Console.ReadLine()); amount = amount + deposit; Console.WriteLine("YOUR BALANCE IS {0}", amount); break; case 4: Console.WriteLine(" THANK U USING ATM"); continueAsk = false; break; } } Console.WriteLine(" THANKS FOR USING OUT ATM SERVICE"); Console.Read(); } } }
Github
https://github.com/kellyfire611/learning.nentang.vn-csharp/blob/master/src/Lession10/Program.csMục lục
Chương trình học
- Cài đặt môi trường Lập trình C# 2
-
Nhập môn Lập trình C#
18
- Giới thiệu ngôn ngữ lập trình C# #323
- Cấu trúc chương trình C# #166
- Cú pháp cơ bản C# #238
- Các kiểu dữ liệu trong C# #240
- Chuyển đổi kiểu dữ liệu trong C# #245
- Khởi tạo biến trong C# #247
- Hằng số trong C# #249
- Toán tử trong C# #251
- Điều kiện trong C# #253
- Vòng lặp trong C# #262
- Tính bao đóng trong C# #274
- Tạo phương thức/hàm trong C# #276
- Đối tượng Nullable trong C# #280
- Mảng trong C# #283
- Chuỗi trong C# #349
- Cấu trúc trong C# #351
- Enums trong C# #353
- Truyền Tham số Reference hay Tham trị (Value) trong C# #10172
-
Hướng đối tượng trong C#
12
- Class trong C# #355
- Kế thừa trong C# #359
- Tính đa hình trong C# #361
- Nạp chồng toán tử trong C# #534
- Giao diện (Interface) trong C# #537
- Namespace trong C# #540
- Các lệnh tiền xử lý trong C# #543
- Biểu thức chính quy (Regular) trong C# #726
- Bắt các lỗi/ngoại lệ (Exception) trong C# #730
- Xử lý Đọc/Ghi File trong C# #732
- LINQ trong C# #7805
- Mã hóa (Encryption) và Giải mã (Decryption) trong C# #11880
- Các kỹ thuật nâng cao trong C# 2
-
Bài tập thực hành
28
- Khai báo các Kiểu dữ liệu cho Mẫu Lý lịch A2 và Mẫu Hóa đơn Bán hàng #7703
- Sử dụng các Toán tử cơ bản trong C# #7704
- Kiểm tra số chẵn hay lẻ #171
- Thay đổi vị trí của 2 phần tử #175
- Tính tổng các kí tự số #224
- Đảo ngược con số #229
- Tạo chương trình ATM đơn giản #466
- Tạo chương trình ATM đơn giản với các phương án rút tiền theo các mệnh giá #477
- Tìm số Max, Min trong mảng 2 chiều #480
- Tạo cấu trúc lưu trữ thông tin Nhân viên #654
- Làm quen Hướng đối tượng trong C# #661
- Mã hóa chuỗi với Hacker Speak (H4ck3rSp34k) #681
- Mã hóa chuỗi với Alternating Captions (AlTeRnAtInG_CaPs) #683
- Tính tổng 2 số nhỏ nhất trong danh sách #689
- Trích xuất thông tin từ dữ liệu trong FILE TEXT #760
- In bảng cửu chương #7747
- In tam giác Nhị phân #7749
- In tam giác Số ký tự #7751
- Đếm số 1 #7754
- Sử dụng Mảng 2 chiều để in tên dạng Asterisk ra màn hình #7761
- Sử dụng Mảng 1 chiều để phân tách Tên với khoảng cách #7765
- Bài tập Biểu thức Chính quy (Regular Expression) #7779
- Ghi log lỗi với File và Try Catch #7795
- Ghi Access log #7796
- LINQ group by tên tập tin #7812
- LINQ với collection #7822
- Tạo chương trình Quản lý Danh sách Sinh viên và Giảng viên #8554
- Bài tập tạo các CLASS OOP C# căn bản 1 #11842
- Kiểm tra kiến thức 1
- Kiểm tra kiến thức - Đồ án 4
Các bài học
Bài học trước Bài học tiếp theo
Chương trình học
Bao gồm Module, Chương, Bài học, Bài tập, Kiểm tra...Chương trình học
- Cài đặt môi trường Lập trình C# 2
-
Nhập môn Lập trình C#
18
- Giới thiệu ngôn ngữ lập trình C# #323
- Cấu trúc chương trình C# #166
- Cú pháp cơ bản C# #238
- Các kiểu dữ liệu trong C# #240
- Chuyển đổi kiểu dữ liệu trong C# #245
- Khởi tạo biến trong C# #247
- Hằng số trong C# #249
- Toán tử trong C# #251
- Điều kiện trong C# #253
- Vòng lặp trong C# #262
- Tính bao đóng trong C# #274
- Tạo phương thức/hàm trong C# #276
- Đối tượng Nullable trong C# #280
- Mảng trong C# #283
- Chuỗi trong C# #349
- Cấu trúc trong C# #351
- Enums trong C# #353
- Truyền Tham số Reference hay Tham trị (Value) trong C# #10172
-
Hướng đối tượng trong C#
12
- Class trong C# #355
- Kế thừa trong C# #359
- Tính đa hình trong C# #361
- Nạp chồng toán tử trong C# #534
- Giao diện (Interface) trong C# #537
- Namespace trong C# #540
- Các lệnh tiền xử lý trong C# #543
- Biểu thức chính quy (Regular) trong C# #726
- Bắt các lỗi/ngoại lệ (Exception) trong C# #730
- Xử lý Đọc/Ghi File trong C# #732
- LINQ trong C# #7805
- Mã hóa (Encryption) và Giải mã (Decryption) trong C# #11880
- Các kỹ thuật nâng cao trong C# 2
-
Bài tập thực hành
28
- Khai báo các Kiểu dữ liệu cho Mẫu Lý lịch A2 và Mẫu Hóa đơn Bán hàng #7703
- Sử dụng các Toán tử cơ bản trong C# #7704
- Kiểm tra số chẵn hay lẻ #171
- Thay đổi vị trí của 2 phần tử #175
- Tính tổng các kí tự số #224
- Đảo ngược con số #229
- Tạo chương trình ATM đơn giản #466
- Tạo chương trình ATM đơn giản với các phương án rút tiền theo các mệnh giá #477
- Tìm số Max, Min trong mảng 2 chiều #480
- Tạo cấu trúc lưu trữ thông tin Nhân viên #654
- Làm quen Hướng đối tượng trong C# #661
- Mã hóa chuỗi với Hacker Speak (H4ck3rSp34k) #681
- Mã hóa chuỗi với Alternating Captions (AlTeRnAtInG_CaPs) #683
- Tính tổng 2 số nhỏ nhất trong danh sách #689
- Trích xuất thông tin từ dữ liệu trong FILE TEXT #760
- In bảng cửu chương #7747
- In tam giác Nhị phân #7749
- In tam giác Số ký tự #7751
- Đếm số 1 #7754
- Sử dụng Mảng 2 chiều để in tên dạng Asterisk ra màn hình #7761
- Sử dụng Mảng 1 chiều để phân tách Tên với khoảng cách #7765
- Bài tập Biểu thức Chính quy (Regular Expression) #7779
- Ghi log lỗi với File và Try Catch #7795
- Ghi Access log #7796
- LINQ group by tên tập tin #7812
- LINQ với collection #7822
- Tạo chương trình Quản lý Danh sách Sinh viên và Giảng viên #8554
- Bài tập tạo các CLASS OOP C# căn bản 1 #11842
- Kiểm tra kiến thức 1
- Kiểm tra kiến thức - Đồ án 4
Bài học trước Bài học tiếp theo
Menu Tiện ích
Menu Hướng dẫn Học tập
❤🧡💛💚💙💜 Học là phải THỰC HÀNH ❤🧡💛💚💙💜
Thực hiện các bước tuần tự theo nội dung Bài học nhé!