Quick actions

cmd+k|ctrl+k

Navigation

Languages

Wed_15_Jan_Assigment

Snippet info

Language

JavaScript

Visibility

public

Author

bry-the-owner

Created

2025-01-20T11:16:18.286305Z

Updated

2025-01-20T11:17:57.79711Z

// Question 1
// Create a BankAccount class with the following :
// - A constructor that accept account holder's name, account number and balance
// - A deposit method that increases the balance
// - A withdraw method that decreases the balance, but only if there are sufficient funds 
// - A getBalance method that returns the current balance
console.log("Happy Coding🎇\n");
class BankAccount{
    constructor(accountName, accountNumber, balance){
        this.accountName = accountName;
        this.accountNumber = accountNumber;
        this.balance = balance;
    }
    
    deposit(amount){
        if(amount>0){
            this.balance += amount;
            const maskedAccount = this.accountNumber.slice(-3).padStart(this.accountNumber.length, 'X');
            console.log(`Kiasi cha TZS ${amount} kimewekwa kikamlifu kwenye akaunti yako ${maskedAccount}. \nSalio lako jipya ni ${this.balance} \n`);
        }else{
            console.log("You can not deposit negative amount\n");
        }
    }
    
    withdraw(amount){
        if(amount>0){
            if(amount<this.balance){
                this.balance -= amount;
                const maskedAccount = this.accountNumber.slice(-3).padStart(this.accountNumber.length, 'X');
                console.log(`Umetoa kikamilifu TZS ${amount} kwenye Akaunti yako ${maskedAccount}.\n Salio lako jipya ni TZS ${this.balance} \n`);
            }else{
                console.log("Insufficient balance to withdraw\n")
            }
        }else{
            console.log("You can not deposit negative amount\n");
        }
    }
    getBalance(){
        return this.balance;
    }
}

const bry = new BankAccount("Bryson Mmari", "45234565798", 10000)

bry.deposit(5000)

bry.withdraw(3000)

console.log(`Salio la Akaunti yako ni TZS ${bry.getBalance()}\n`);


// Question 2
// Create a Person class with properties for name and age, and a method greet() that prints a greeting. 
// Then create a Student class that extends Person, adding a course property and a method study() that 
// prints what the student is studying.

class Person {
    constructor(name, age){
        this.name = name;
        this.age = age;
    }
    
    greet(){
        console.log(`Hi!, I am ${this.age} years old, and My name is ${this.name}\n`);
    }
}

class Student extends Person{
    constructor(name, age, course){
        super(name, age);
        this.course = course;
    }
    
    study(){
        console.log (`A ${this.course} student.\n`);
    }
}

const bryson = new Student ('Bryson Mmari', '24', 'Computer Ethics');

bryson.greet();

bryson.study();

// #Question3
// Create a Car class with:
// - A private property _speed.
// - Methods accelerate and brake to increase or decrease speed.
// - A getSpeed method to retrieve the current speed.
// - Ensure the speed doesn’t go below 0 or above 200.

class Car {
    #speed = 0;
    
    accelarate(){
        if(this.#speed<200){
            this.#speed+=20;
        }else{
            console.log("You exceed the speed limit of 200Km/h\n");
        }
    }
    
    brake(){
        if(this.#speed>0){
            this.#speed-=20;
        }else{
            console.log("You can not drive under minimum speed limit of 0Km/h\n");
        }
    }
    
    getSpeed(){
        return this.#speed;
    }
}

const ist = new Car();

ist.accelarate();
console.log(`Your current speed is ${ist.getSpeed()}Km/h`);

ist.accelarate();
console.log(`Your current speed is ${ist.getSpeed()}Km/h`);

ist.accelarate();
console.log(`Your current speed is ${ist.getSpeed()}Km/h`);

ist.accelarate();
console.log(`Your current speed is ${ist.getSpeed()}Km/h`);

ist.accelarate();
console.log(`Your current speed is ${ist.getSpeed()}Km/h`);

ist.accelarate();
console.log(`Your current speed is ${ist.getSpeed()}Km/h`);

ist.accelarate();
console.log(`Your current speed is ${ist.getSpeed()}Km/h`);

ist.accelarate();
console.log(`Your current speed is ${ist.getSpeed()}Km/h`);

ist.accelarate();
console.log(`Your current speed is ${ist.getSpeed()}Km/h`);

ist.accelarate();
console.log(`Your current speed is ${ist.getSpeed()}Km/h\n`);

ist.accelarate();

ist.brake();
console.log(`\nYou reduce speed to ${ist.getSpeed()}Km/h`);

ist.brake();
console.log(`You reduce speed to ${ist.getSpeed()}Km/h`);

ist.brake();
console.log(`You reduce speed to ${ist.getSpeed()}Km/h`);

ist.brake();
console.log(`You reduce speed to ${ist.getSpeed()}Km/h`);

ist.brake();
console.log(`You reduce speed to ${ist.getSpeed()}Km/h`);

ist.brake();
console.log(`You reduce speed to ${ist.getSpeed()}Km/h`);

ist.brake();
console.log(`You reduce speed to ${ist.getSpeed()}Km/h`);

ist.brake();
console.log(`You reduce speed to ${ist.getSpeed()}Km/h`);

ist.brake();
console.log(`You reduce speed to ${ist.getSpeed()}Km/h`);

ist.brake();
console.log(`You reduce speed to ${ist.getSpeed()}Km/h\n`);

ist.brake();

console.log("Happy Ending, Deal Done😀😀\n");
INFO