<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Unconventional Calculator</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<div class="header">
<h2>Unconventional Calculator</h2>
</div>
</header>
<div class="container">
<div class="firstElement">
<div>
<input type="number" id="inputNumber">
<div class="button">
<div class="butt"><button type="button" id="add">+</button></div>
<div class="butt"><button type="button" id="subtract">-</button></div>
<div class="butt"><button type="button" id="divide">/</button></div>
<div class="butt"><button type="button" id="multiply">*</button></div>
</div>
</div>
</div>
<div class="nextElement">
<h3 id="calculation">0</h3>
<h3>Result <span id="result">:0</span></h3>
</div>
</div>
<script src="script.js"></script>
</body>
</html>
div.header{
background-color: tomato;
height: 70px;
display: flex;
align-items: center;
justify-content: center;
}
div.header h2{
color: white;
}
input{
display: block;
margin: 5px;
}
.button{
display: flex;
align-items: center;
justify-content: space-evenly;
}
button{
padding: 5px;
border: none;
background-color: tomato;
color: white;
align-items: center;
}
.firstElement{
outline: 1px solid black;
display: inline-block;
display: flex;
align-items: center;
justify-content: center;
}
.nextElement{
text-align: center;
margin: 10px;
}
const addButton = document.getElementById("add");
const subtractButton = document.getElementById("subtract");
const divideButton = document.getElementById("divide");
const multiplyButton = document.getElementById("multiply");
const calculation = document.getElementById("calculation");
const result = document.getElementById("result");
const inputNum = document.getElementById("inputNumber");
function outputResult(answer, text) {
result.textContent = answer;
calculation.textContent = text;
}
const defaultResult = 0;
currentResult = defaultResult;
let logEntries = [];
function getUserInput() {
return parseInt(inputNum.value);
}
function writeToLog(prevResult, operand, original) {
let calcDescription = `${prevResult} ${operand} ${original}`;
outputResult(currentResult, calcDescription);
}
function createLog(operationidentifier, older, olderTwo, newResult) {
let logEntry = {
operation: operationidentifier,
numberOne: older,
numberTwo: olderTwo,
newResult: newResult,
};
logEntries.push(logEntry);
console.log(logEntries);
}
function createOutput(conditional) {
const enteredNumber = getUserInput();
if (
(conditional !== "ADD" &&
conditional !== "SUBTRACT" &&
conditional !== "DIVIDE" &&
conditional !== "MULTIPLY") ||
enteredNumber === 0
) {
return;
}
let initialResult = currentResult;
let differ;
if (conditional === "ADD") {
currentResult += parseInt(enteredNumber);
differ = "+";
} else if (conditional === "SUBTRACT") {
currentResult -= parseInt(enteredNumber);
differ = "-";
} else if (conditional === "DIVIDE") {
currentResult = currentResult / parseInt(enteredNumber);
differ = "/";
} else if (conditional === "MULTIPLY") {
currentResult = currentResult * parseInt(enteredNumber);
differ = "*";
}
writeToLog(initialResult, differ, enteredNumber);
createLog(conditional, initialResult, enteredNumber, currentResult);
}
function add() {
createOutput("ADD");
}
function subtract() {
createOutput("SUBTRACT");
}
function divide() {
createOutput("DIVIDE");
}
function multiply() {
createOutput("MULTIPLY");
}
addButton.addEventListener("click", add);
subtractButton.addEventListener("click", subtract);
divideButton.addEventListener("click", divide);
multiplyButton.addEventListener("click", multiply);
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.