নিচের কোডটা 'প্রোগ্রামিংয়ের বলদ টু বস' বইয়ের, অ্যাপ বানিয়ে করবে বড়াই অধ্যায়ের ফাইনাল কোড। সেখানে একটু একটু করে কিভাবে পুরাটা বানানো হইছে সেটা বুঝানো হইছে। পুরাটা বানানোর পর ফাইনাল যে কোড হইছে সেটা নিচে দেয়া হলো।
প্রোগ্রামিং শিখার প্রতিযোগিতায় মোটামুটি তিনটার মতো ফিচার থাকলেই হবে। যেখানে ক্লাস, অবজেক্ট, সার্চ, সর্ট, স্ট্যাক বা কিউ বা ডিকশনারি ব্যবহার করতে হবে। যদিও বইতে ছয়টা ফিচার নিয়ে আলোচনা করে কোড দেয়া হয়েছে
অ্যাপ দিয়ে নিচের কাজগুলো করানো হয়েছে
এই রকম আরো ফিচার থাকতে পারে। যেমন
১. এখন ভাড়া দেয়ার জন্য payRent নামে একটা মেথড যোগ কর। যেই মেথডে ইনপুট হিসেবে ভাড়ার টাকার পরিমান নেওয়া হবে। তারপর সেই মেথডের ভিতরে গিয়ে দেখবে, ভাড়ার টাকা আজকে যত বিক্রি হইছে তার সাথে তুলনা করবে।
২. আর তুই নিজে নিজে দোকানের একটা ফিচার ঠিক কর। তারপর সেটার কোড লিখে নিচে কমেন্ট কর।
নিচের কোড রান করতে চাইলে http://habluderadda.com/consoleএ গিয়ে রান করতে পারবে।
class Store {
constructor(name) {
this.name = name;
this.items = [];
this.stock = {};
this.prices = {};
this.totalSales = 0;
}
isItemAvailable(name){
var itemIndex = this.items.indexOf(name);
if(itemIndex == -1){
return false;
}
else {
return true;
}
}
getPrice(name){
var isAvailable = this.isItemAvailable(name);
if(isAvailable == true ){
var price = this.prices[name];
return price;
}
else {
console.log("sorry we do not have", name);
}
}
getTotalSale(){
return this.totalSales;
}
sellItem(name, quantity){
var available = this.stock[name];
if(available < quantity){
console.log("Sorry we do not have enough");
return;
}
else {
var itemPrice = this.getPrice(name);
var currentSale = itemPrice * quantity;
this.totalSales = this.totalSales + currentSale;
var remaining = available - quantity;
this.stock[name] = remaining;
console.log("thanks for your purcase");
}
}
addItem(name, quantity, price){
var isExisting = this.isItemAvailable(name);
if(isExisting == true){
var available = this.stock[name];
this.stock[name] = available + quantity;
}
else {
this.items.push(name);
this.prices[name] = price;
this.stock[name] = quantity;
}
}
}
var habluStore = new Store("Hablu Fashion Store");
habluStore.addItem("shirt", 40, 300);
habluStore.addItem("pant", 20, 500);