مهدی رستمی
3 سال پیش توسط مهدی رستمی مطرح شد
8 پاسخ

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

سلام دوستان من یه ماشین حساب با جاوا اسکریپت ساختم در اصل تمرین اصلی این مینی پروژه این هستش که من بیام مثل ماشین حساب ویندوز 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 = ''
})

ثبت پرسش جدید
عبدالرحمان کیانی
تخصص : Backend developer
@abdolrahman 3 سال پیش آپدیت شد
1

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


mmj-sys
تخصص : داش متخصص چیه من پروفسورم .
@mmj.sys 3 سال پیش مطرح شد
1

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


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش آپدیت شد
مهدی رستمی
@Mahdiillusion 3 سال پیش مطرح شد
0

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


مهدی رستمی
@Mahdiillusion 3 سال پیش مطرح شد
0

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


سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش آپدیت شد
0

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


مهدی رستمی
@Mahdiillusion 3 سال پیش مطرح شد
0

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


عبدالرحمان کیانی
تخصص : Backend developer
@abdolrahman 3 سال پیش آپدیت شد
1

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


مهدی رستمی
@Mahdiillusion 3 سال پیش مطرح شد
0

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


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

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