Menu
CoddyTech

Ôn tập: Máy tính đơn giản

Thuộc phần Lập trình hướng đối tượng trong hành trình C# của Coddy. Bài học 9 trên 70.

challenge icon

Thử thách

Khó

Tạo một lớp Calculator hoàn chỉnh trong không gian tên CalculatorApp.Core, thể hiện tất cả các khái niệm đã học:

  • Trường: Các trường private cho memory (decimal) và operationCount (int)
  • Thuộc tính: Thuộc tính tự triển khai Name, các thuộc tính chỉ đọc Memory và OperationCount
  • Hàm khởi tạo: Hàm khởi tạo có tham số name và hàm khởi tạo mặc định sử dụng chuỗi gọi hàm khởi tạo
  • Phương thức: Add, Subtract, Multiply, Divide, Power và SquareRoot

Tất cả phương thức cần tăng operationCount. Phương thức Add cũng cần lưu kết quả vào memory.

Lưu ý: Dùng Math.Pow() cho Power và Math.Sqrt() cho SquareRoot. Ép kiểu các tham số sang double khi cần.

Tự làm thử

using System;
using CalculatorApp.Core;

class Program
{
    static void Main()
    {
        string name = Console.ReadLine();
        decimal num1 = decimal.Parse(Console.ReadLine());
        decimal num2 = decimal.Parse(Console.ReadLine());
        
        // Tạo máy tính bằng hàm khởi tạo (constructor) với tên đã nhập
        Calculator calc = new Calculator(name);
        
        Console.WriteLine($"Calculator: {calc.Name}");
        Console.WriteLine($"Memory: {calc.Memory}");
        
        // Thực hiện các phép tính
        decimal addResult = calc.Add(num1, num2);
        Console.WriteLine($"Add: {addResult}");
        
        decimal subtractResult = calc.Subtract(num1, num2);
        Console.WriteLine($"Subtract: {subtractResult}");
        
        decimal multiplyResult = calc.Multiply(num1, num2);
        Console.WriteLine($"Multiply: {multiplyResult}");
        
        decimal divideResult = calc.Divide(num1, num2);
        Console.WriteLine($"Divide: {divideResult}");
        
        Console.WriteLine($"Memory after operations: {calc.Memory}");
        
        decimal powerResult = calc.Power(num1, num2);
        Console.WriteLine($"Power: {powerResult}");
        
        decimal sqrtResult = calc.SquareRoot(num2);
        Console.WriteLine($"Square Root: {sqrtResult}");
        
        Console.WriteLine($"History: {calc.OperationCount} operations");
    }
}

Tất cả bài học trong Lập trình hướng đối tượng

Tự luyện tập: Trình biên dịch C# online