diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/area.js b/area.js new file mode 100644 index 0000000..7d76c08 --- /dev/null +++ b/area.js @@ -0,0 +1,22 @@ +function squareArea(side) { + return side * side +} + +function rectArea(length, width) { + return length * width +} + +function circleArea(radius) { + return radius * radius * Math.PI +} + +function triangleArea(height, base) { + return height * base / 2 +} + +module.exports = { + squareArea, //it's like "squareArea": squareArea, + rectArea, + circleArea, + triangleArea +} \ No newline at end of file diff --git a/main.js b/main.js new file mode 100644 index 0000000..b198d91 --- /dev/null +++ b/main.js @@ -0,0 +1,42 @@ +const reader = require('readline-sync') +const area = require("./area.js") + +console.log("Supported Shapes:") +console.log("1: Circle 2: Rectange") +console.log("3: Square 4: Triangle") + +const option = reader.questionInt("What is your choice? ") +let result; + +switch(option) { + case 1: + const radius = reader.questionInt(" radius = ") + result = area.circleArea(radius) + break; + case 2: + const width = reader.questionInt(" width = ") + const length = reader.questionInt(" length = ") + result = area.rectArea(length, width) + break; + case 3: + const side = reader.questionInt(" side = ") + result = area.squareArea(side) + break; + case 4: + const height = reader.questionInt(" height = ") + const base = reader.questionInt(" base = ") + result = area.triangleArea(height, base) + break; + default: + console.log("Type not supported") +} + +if(result) { + console.log("result = " + result) +} else { + console.log("Type not supported!") +} + +/*const area = require("./area.js") +const result = area.rectArea(6, 2) +console.log("result is = " + result)*/ \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..d8aee6a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,13 @@ +{ + "name": "area", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "readline-sync": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/readline-sync/-/readline-sync-1.4.10.tgz", + "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..fe01b30 --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "area", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "readline-sync": "^1.4.10" + } +}