سورس کد ماشین حساب با HTML: راهنمای جامع و کامل
در دنیای برنامهنویسی وب، یکی از پروژههای ابتدایی و در عین حال کاربردی، ساختن یک ماشین حساب است. این پروژه نه تنها به توسعه دهندگان کمک میکند تا مفاهیم پایهای HTML، CSS و JavaScript را یاد بگیرند، بلکه مهارتهای طراحی واسط کاربری و منطق برنامهنویسی را نیز تقویت میکند. در ادامه، به صورت جامع و کامل، درباره سورس کد ماشین حساب با HTML، نحوه ساخت، عناصر مختلف، و نکات مهم آن توضیح خواهیم داد.
قسمت اول: ساختار پایهی HTML
در آغاز، باید بدانید که HTML نقش بنیادی در ساختن ساختار صفحه ایفا میکند. برای یک ماشین حساب، عناصر اصلی شامل جعبه نمایش نتایج، دکمههای عملیات و اعداد هستند. ساختار پایه شامل تگهای `<div>`، `<button>`، و `<input>` است. در این قسمت، بخشهای مختلف را به صورت منظم و قابل درک میسازیم.
مثلاً، یک جعبه نمایش نتایج به صورت `<input type="text">` طراحی میشود، که کاربر نتایج محاسبات را در آن میبیند. سپس، مجموعهای از دکمهها برای اعداد 0 تا 9، عملیات جمع، تفریق، ضرب، تقسیم، و دکمه مساوی به صورت `<button>` ساخته میشوند. این عناصر باید در قالب یک ساختار منطقی قرار گیرند، که در مرحله بعد، با CSS و JavaScript کارایی بیشتری پیدا میکنند.
قسمت دوم: استایلدهی به ماشین حساب با CSS
در طراحی ظاهری، CSS نقش مهمی دارد. با استایلدهی مناسب، میتوان ظاهر جذاب و کاربرپسند برای ماشین حساب ایجاد کرد. برای مثال، دکمهها باید سایز، رنگ، حاشیه و فاصله مناسبی داشته باشند. جعبه نمایش نتایج باید بزرگ و قابل دید باشد، تا کاربر بتواند به راحتی نتایج را مشاهده کند.
در این مرحله، از خاصیتهای CSS مانند `display: grid` یا `flexbox` برای چیدمان عناصر استفاده میشود. این کار باعث میشود که دکمهها در قالب شبکهای منظم قرار گیرند و در صفحه به خوبی نمایش داده شوند. همچنین، با افزودن افکتهای hover و تغییر رنگها، تجربه کاربری بهبود مییابد. در نتیجه، کاربر احساس راحتی بیشتری در کار با ماشین حساب پیدا میکند.
قسمت سوم: منطق عملیات با JavaScript
حالا نوبت به افزودن عملکرد واقعی ماشین حساب میرسد. این بخش، مهمترین قسمت است، زیرا بدون منطق، ماشین حساب صرفاً یک واسط استاتیک خواهد بود. با استفاده از JavaScript، رویدادهای کلیک بر روی دکمهها را کنترل میکنیم، و عملیات ریاضی را بر اساس ورودیهای کاربر انجام میدهیم.
در ابتدا، باید متغیرهایی برای نگهداری اعداد وارد شده و عملیات در حال انجام تعریف کنیم. سپس، هر دکمه عددی، یک رویداد کلیک دارد که ورودیها را به نمایشگر اضافه میکند. دکمههای عملیات نیز، عملیات مورد نظر را ذخیره و آماده انجام میکنند. دکمه مساوی، اجرای عملیات و نمایش نتیجه را بر عهده دارد.
یک نمونه ساده از منطق JavaScript برای ماشین حساب، شامل موارد زیر است:
- ذخیره کردن عدد وارد شده در متغیر
- ذخیره کردن نوع عملیات (+، -، ×، ÷)
- انجام عملیات بر اساس ورودی کاربر
- نمایش نتیجه در صفحه
در ضمن، باید از خطاهای احتمالی مثل تقسیم بر صفر جلوگیری کنیم و پیامهای مناسب به کاربر نمایش دهیم.
قسمت چهارم: کد نمونه ماشین حساب با HTML، CSS و JavaScript
در ادامه، نمونهای از سورس کد کامل آورده شده است که شامل HTML برای ساختار، CSS برای استایل و JavaScript برای منطق است. این نمونه، نمونهای ساده اما کامل است، و میتواند به عنوان پایهای برای پروژههای پیشرفتهتر مورد استفاده قرار گیرد.
html
<!DOCTYPE html>
<html lang="fa">
<head>
<meta charset="UTF-8" />
<title>ماشین حساب ساده</title>
<style>
body {
font-family: Tahoma, sans-serif;
background-color: #f0f0f0;
display: flex;
justify-content: center;
margin-top: 50px;
}
#calculator {
width: 300px;
background-color: #fff;
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0,0,0,0.1);
}
#display {
width: 100%;
height: 50px;
font-size: 24px;
text-align: right;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
margin-bottom: 20px;
}
.buttons {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
}
button {
height: 50px;
font-size: 18px;
border: none;
border-radius: 5px;
background-color: #e0e0e0;
cursor: pointer;
transition: background-color 0.3s;
}
button:hover {
background-color: #d0d0d0;
}
.operator {
background-color: #f9a825;
}
</style>
</head>
<body>
<div id="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 class="operator" onclick="setOperation('+')">+</button>
<button onclick="appendNumber('4')">4</button>
<button onclick="appendNumber('5')">5</button>
<button onclick="appendNumber('6')">6</button>
<button class="operator" onclick="setOperation('-')">-</button>
<button onclick="appendNumber('1')">1</button>
<button onclick="appendNumber('2')">2</button>
<button onclick="appendNumber('3')">3</button>
<button class="operator" onclick="setOperation('*')">*</button>
<button onclick="appendNumber('0')">0</button>
<button onclick="appendNumber('.')">.</button>
<button onclick="calculate()">=</button>
<button class="operator" onclick="setOperation('/')">/</button>
</div>
</div>
<script>
let currentInput = '';
let previousInput = '';
let currentOperation = null;
function updateDisplay() {
document.getElementById('display').value = currentInput;
}
function appendNumber(number) {
if (number === '.' && currentInput.includes('.')) return;
currentInput += number;
updateDisplay();
}
function clearDisplay() {
currentInput = '';
previousInput = '';
currentOperation = null;
updateDisplay();
}
function setOperation(operation) {
if (currentInput === '') return;
if (previousInput !== '') {
calculate();
}
currentOperation = operation;
previousInput = currentInput;
currentInput = '';
}
function calculate() {
let result;
const prev = parseFloat(previousInput);
const current = parseFloat(currentInput);
if (isNaN(prev) || isNaN(current)) return;
switch (currentOperation) {
case '+':
result = prev + current;
break;
case '-':
result = prev - current;
break;
case '*':
result = prev * current;
break;
case '/':
if (current === 0) {
alert('خطا: تقسیم بر صفر!');
clearDisplay();
return;
}
result = prev / current;
break;
default:
return;
}
currentInput = result.toString();
previousInput = '';
currentOperation = null;
updateDisplay();
}
</script>
</body>
</html>
قسمت پنجم: نکات مهم و نکات پیشرفته
در طراحی و توسعه سورس کد ماشین حساب، چند نکته کلیدی وجود دارد که باید رعایت شوند. مثلا، باید به نحوه مدیریت خطاها توجه کرد، مخصوصاً در عملیات تقسیم بر صفر یا وارد کردن ورودیهای نامعتبر. همچنین، باید توجه داشت که دکمهها و عناصر طراحی باید واکنشپذیر و کاربرپسند باشند.
علاوه بر موارد پایه، میتوان ویژگیهای پیشرفتهتری مانند نگهداری تاریخچه محاسبات، امکان عملیاتهای پیچیدهتر، یا طراحی واسط کاربری زیباتر و واکنشگرا را به پروژه اضافه کرد. برای این کار، استفاده از فریمورکهای CSS مانند Bootstrap یا فریمورکهای JavaScript مانند React میتواند مفید باشد.
در نهایت، ساختن یک ماشین حساب با HTML، CSS و JavaScript، نه تنها یک تمرین عالی برای یادگیری است، بلکه درک عمیقتری از نحوه کار وبسایتها و برنامههای تعاملی به شما میدهد. این پروژه، پایهای است که میتواند در پروژههای بزرگتر توسعه یابد و امکانات بیشتری به آن افزوده شود.
نتیجهگیری
در این مقاله، به صورت کامل و جامع، درباره سورس کد ماشین حساب با HTML صحبت کردیم؛ از ساختار پایه، استایلدهی، منطق برنامهنویسی، نمونه کد، تا نکات پیشرفته و کاربردی. این پروژه، یک نمونه عالی برای شروع مسیر توسعه وب است و میتواند نقطه شروع خوبی برای یادگیریهای بعدی باشد. با تمرین و تکرار، خواهید توانست ماشین حسابهای پیشرفتهتر و زیباتری بسازید و مهارتهای برنامهنویسی خود را به سطح بالاتری برسانید.