راکت
حل شده

ساخت کلون ماشین حساب ویندوز 10 با جاوا اسکریپت

8 پاسخ

سلام دوستان من یه ماشین حساب با جاوا اسکریپت ساختم در اصل تمرین اصلی این مینی پروژه این هستش که من بیام مثل ماشین حساب ویندوز 10 بعد از محاسبه نتیجه رو توی اسکرین ماشین حساب نشون بدم و بعدش اگر عدده دیگه ای وارد بشه نتیجه اون محاسبه پاک بشه و عددی که کلیک شده روش اون جایگزین بشه ممنون میشم یه راهنمایی ریزی بکنید

const display = document.getElementById('display') // screen
const divide = document.getElementById('divide')
const multiply = document.getElementById('multiply')
const minus = document.getElementById('minus')
const plus = document.getElementById('plus')
const clear = document.getElementById('clear')
const root = document.getElementById('root')
const square = document.getElementById('square')
const backspace = document.getElementById('backspace')
const equal = document.getElementById('equal')
const buttons = document.getElementById('buttons')
// // // // // 
// global variables
let lastOpartion = ''
let memory = 0

buttons.addEventListener('click', inputNumber)

function inputNumber(event) {
    if (display.textContent.length > 15) {
        return
    }

    let data = event.target.dataset.input
    if (data) {
        if (data === '.') {
            if (!display.textContent.includes('.')) {
                display.textContent += data
            }
        } else {
            display.textContent += data
            if (!display.textContent.includes('.')) {
                display.textContent = Number(display.textContent)
            }
        }
    }
}

clear.addEventListener('click', () => {
    display.textContent = 0
    lastOpartion = ''
    memory = 0
})

minus.addEventListener('click', () => {
    lastOpartion = 'minus'
    memory = Number(display.textContent)
    display.textContent = 0
})

plus.addEventListener('click', () => {
    lastOpartion = 'plus'
    memory = Number(display.textContent)
    display.textContent = 0
})

divide.addEventListener('click', () => {
    lastOpartion = 'divide'
    memory = Number(display.textContent)
    display.textContent = 0
})

multiply.addEventListener('click', () => {
    lastOpartion = 'multiply'
    memory = Number(display.textContent)
    display.textContent = 0
})

equal.addEventListener('click', () => {
    if (lastOpartion !== '') {
        let number = Number(display.textContent)
        if (lastOpartion == 'minus') {
            display.textContent = memory - number
        } else if (lastOpartion == 'plus') {
            display.textContent = memory + number
        } else if (lastOpartion == 'divide') {
            display.textContent = memory / number
        } else if (lastOpartion == 'multiply') {
            display.textContent = memory * number
        } else if (lastOpartion == 'square') {
            display.textContent = memory **= number
        }
    }
    lastOpartion = ''
})

backspace.addEventListener('click', () => {
    if (display.textContent.length == 1) {
        display.textContent = 0
    } else {
        display.textContent = display.textContent.substring(0, display.textContent.length - 1)
    }
})

square.addEventListener('click', () => {
    lastOpartion = 'square'
    memory = Number(display.textContent)
    display.textContent = 0
})

root.addEventListener('click', () => {
    display.textContent = Math.sqrt(display.textContent)
    lastOpartion = ''
})
ثبت پرسش جدید

پاسخ‌ها

8
Ibo Kiani
Ibo Kiani
@abdoki7788

تخصص: Backend developer

بهترین پاسخ

تو این لینک یکی اومده مشابهش رو نوشته شاید بتونین بخونینش
و میشه بگین تو چه بخشی از این پروژه مشکل دارین؟
اگه بگین کجاش مشکل دارین شاید بتونم کمک کنم

mmj-sys
mmj-sys
@mmj.sys

تخصص: داش متخصص چیه من پروفسورم .

@anuxi313133
یه فانکشن دارید برای پاک کردن اینپوت
بعد توی تابعی که نتیجه رو حساب میکنه همون موقع یه لیسنر کلید همه کلید ها برای همه بزارید که اگه هر کلیدی فشرده شد اونو بزاره تو بخش لاگ و بیاد اینپوت رو پاک کنه و فوکوس کنه رو اینپوت

سبحان مولایی
سبحان مولایی
@websaz

تخصص: برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native

شاید پاسخ شما همین‌جا باشد

مهدی رستمی
مهدی رستمی
@Mahdiillusion

متوجه نشدم @mmj.sys :/

مهدی رستمی
مهدی رستمی
@Mahdiillusion

@hesammousavi
استاد لطفا کمکم میکنید به خدا هرچی گوگل میکنم به جوابی نمیرسم بعد همه اومدن ماشین حساب رو با جی کوئری نوشتن من کداشو متوجه نمیشم

سبحان مولایی
سبحان مولایی
@websaz

تخصص: برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native

خودت jquery رو تبدیل کن به js. خیلی ساده است. یا اصلا از jquery استفاده کن

مهدی رستمی
مهدی رستمی
@Mahdiillusion

خب وقتی بلد نیستم @websaz

مهدی رستمی
مهدی رستمی
@Mahdiillusion

دمت گرم مشکلم حل شده @abdolrahman

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام