پروژه ماشین حساب با جاوا اسکریپت
پروژه ماشین حساب یکی از پروژههای ابتدایی و جذاب برای یادگیری زبان برنامهنویسی جاوا اسکریپت است. این پروژه به شما کمک میکند تا مفاهیم پایهای مانند متغیرها، توابع، رویدادها و نحوه مدیریت DOM را درک کنید. بیایید به جزئیات بیشتری بپردازیم.
طراحی رابط کاربری
ابتدا، باید یک رابط کاربری ساده طراحی کنیم. این رابط شامل دکمههای عددی، دکمههای عملگر (جمع، تفریق، ضرب و تقسیم) و یک نمایشگر برای نشان دادن نتایج خواهد بود. میتوانیم از HTML و CSS برای ایجاد این طراحی استفاده کنیم.
```html
<div class="calculator">
<input type="text" id="display" disabled>
<div class="buttons">
<button onclick="clearDisplay()">C</button>
<button onclick="appendToDisplay('7')">7</button>
<button onclick="appendToDisplay('8')">8</button>
<button onclick="appendToDisplay('9')">9</button>
<button onclick="setOperation('/')">/</button>
<!-- دکمههای دیگر -->
</div>
</div>
```
منطق برنامه
در مرحله بعد، باید منطق برنامه را پیادهسازی کنیم. با استفاده از جاوا اسکریپت، میتوانیم توابعی برای انجام عملیات مختلف تعریف کنیم. برای مثال، تابعی برای افزودن دو عدد، تابعی برای تفریق و غیره.
```javascript
let currentInput = "";
let previousInput = "";
let operation = "";
function appendToDisplay(value) {
currentInput += value;
document.getElementById("display").value = currentInput;
}
function setOperation(op) {
if (currentInput === "") return;
if (previousInput !== "") {
calculate();
}
operation = op;
previousInput = currentInput;
currentInput = "";
}
function calculate() {
let result;
const prev = parseFloat(previousInput);
const current = parseFloat(currentInput);
if (isNaN(prev) || isNaN(current)) return;
switch (operation) {
case '+':
result = prev + current;
break;
case '-':
result = prev - current;
break;
case '*':
result = prev * current;
break;
case '/':
result = prev / current;
break;
default:
return;
}
currentInput = result;
operation = "";
previousInput = "";
document.getElementById("display").value = currentInput;
}
function clearDisplay() {
currentInput = "";
previousInput = "";
operation = "";
document.getElementById("display").value = "";
}
```
نتیجهگیری
این پروژه ماشین حساب، با طراحی ساده و منطق واضح، یکی از بهترین راهها برای تمرین جاوا اسکریپت است. شما میتوانید آن را گسترش دهید، به عنوان مثال با اضافه کردن ویژگیهایی مثل تاریخچه محاسبات یا امکان استفاده از توابع علمی. با این کار، مهارتهای برنامهنویسی خود را تقویت کنید و از یادگیری لذت ببرید!
پروژه ماشین حساب در زبان جاوا اسکریپت یکی از پروژههای کاربردی و پرطرفدار است که به عنوان مبنایی عالی برای یادگیری برنامهنویسی وب محسوب میشود. این پروژه معمولاً شامل طراحی یک رابط کاربری ساده، مثل یک صفحه HTML، و افزودن قابلیتهای محاسباتی با کمک جاوا اسکریپت است. در ادامه، به صورت جامع و کامل، تمامی مراحل و نکات مهم ساخت یک ماشین حساب را بررسی میکنیم.
طراحی رابط کاربری (UI)
ابتدا باید یک صفحه HTML بسازید که شامل دکمههای اعداد (صفر تا نه)، عملیات ریاضی (جمع، تفریق، ضرب، تقسیم)، و دکمههای خاص مانند برابر (=)، پاک کردن (C یا AC) باشد. این دکمهها باید به شکل مناسب و قابل فهم قرار بگیرند تا کاربر بتواند به راحتی از آنها استفاده کند. معمولاً از تگهای `<button>` برای هر کلید استفاده میشود و یک بخش متن یا نمایشگر (مثلاً `<input>` یا `<div>`) برای نمایش نتایج یا ورودیها طراحی میگردد.
ساختار HTML نمونه
```html
<div class="calculator">
<input type="text" id="display" disabled>
<div class="buttons">
<button onclick="clearDisplay()">C</button>
<button onclick="appendNumber('7')">7</button>
<button onclick="appendNumber('8')">8</button>
<button onclick="appendNumber('9')">9</button>
<button onclick="setOperation('+')">+</button>
<button onclick="appendNumber('4')">4</button>
<button onclick="appendNumber('5')">5</button>
<button onclick="appendNumber('6')">6</button>
<button onclick="setOperation('-')">-</button>
<button onclick="appendNumber('1')">1</button>
<button onclick="appendNumber('2')">2</button>
<button onclick="appendNumber('3')">3</button>
<button onclick="setOperation('*')">*</button>
<button onclick="appendNumber('0')">0</button>
<button onclick="appendNumber('.')">.</button>
<button onclick="calculate()">=</button>
<button onclick="setOperation('/')">/</button>
</div>
</div>
```
کد جاوا اسکریپت: کارکرد و منطق ماشین حساب
در بخش جاوا اسکریپت، باید چند متغیر تعریف کنیم تا ورودیهای کاربر، عملیات جاری، و نتیجهها را نگه داریم. به طور معمول، این متغیرها شامل موارد زیر است:
- `currentInput`: برای نگه داشتن عدد فعلی وارد شده
- `previousInput`: عدد قبل از عملیات جاری
- `operation`: نوع عملیات ریاضی که کاربر انتخاب کرده است
سپس، چند تابع کلیدی نوشته میشود:
- `appendNumber(number)`: برای افزودن عدد یا نقطه به ورودی جاری
- `setOperation(op)`: برای تعیین عملیات ریاضی و انتقال عدد جاری به متغیر `previousInput`
- `calculate()`: برای انجام دادن عملیات و نمایش نتیجه
- `clearDisplay()`: برای پاک کردن تمامی ورودیها و نتایج
نمونه کد جاوا اسکریپت
```javascript
let currentInput = '';
let previousInput = '';
let operation = null;
function appendNumber(number) {
if (number === '.' && currentInput.includes('.')) return;
currentInput += number;
updateDisplay();
}
function setOperation(op) {
if (currentInput === '') return;
if (previousInput !== '') {
calculate();
}
operation = op;
previousInput = currentInput;
currentInput = '';
}
function calculate() {
let computation;
const prev = parseFloat(previousInput);
const current = parseFloat(currentInput);
if (isNaN(prev) || isNaN(current)) return;
switch (operation) {
case '+':
computation = prev + current;
break;
case '-':
computation = prev - current;
break;
case '*':
computation = prev * current;
break;
case '/':
computation = prev / current;
break;
default:
return;
}
currentInput = computation.toString();
operation = null;
previousInput = '';
updateDisplay();
}
function clearDisplay() {
currentInput = '';
previousInput = '';
operation = null;
updateDisplay();
}
function updateDisplay() {
document.getElementById('display').value = currentInput;
}
```
نکات مهم و اضافات
در این پروژه، میتوان ویژگیهای بیشتری افزود، مانند:
- پشتیبانی از عملیات قدرتمندتر، مثل توان، ریشه، یا عملیات درصد
- افزودن کلیدهای حذف (Backspace) یا اصلاح ورودی
- طراحی زیباتر با CSS برای جذابیت بیشتر
- افزودن ویژگیهای تاریخچه محاسبات
- مدیریت خطاهای ورودی، مانند تقسیم بر صفر
نتیجهگیری
در نهایت، ساخت یک ماشین حساب در جاوا اسکریپت، نه تنها تمرین خوبی برای یادگیری DOM و رویدادهای کاربری است، بلکه درک عمیقی از منطق برنامهنویسی و عملیات ریاضی را پرورش میدهد. با تمرین و توسعه بیشتر، میتوانید نسخههای پیشرفتهتر و کاربرپسندتری بسازید که در پروژههای واقعی کاربرد داشته باشند.
اگر نیاز دارید، میتوانم نمونه کاملتر و دقیقتری ارائه دهم یا راهنماییهای بیشتری در رابطه با توسعه این پروژه ارائه کنم.