Finish MP13
This commit is contained in:
		@@ -5,17 +5,85 @@ Click nbfs://nbhost/SystemFileSystem/Templates/ClientSide/html.html to edit this
 | 
			
		||||
-->
 | 
			
		||||
<html>
 | 
			
		||||
    <head>
 | 
			
		||||
        <title>TODO supply a title</title>
 | 
			
		||||
        <title>Problem 4</title>
 | 
			
		||||
        <meta charset="UTF-8">
 | 
			
		||||
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    </head>
 | 
			
		||||
    <style>
 | 
			
		||||
        table, th, td {
 | 
			
		||||
            border: 1px solid;
 | 
			
		||||
        }
 | 
			
		||||
    </style>
 | 
			
		||||
    <body>
 | 
			
		||||
        
 | 
			
		||||
        <div id="tableDiv"></div>
 | 
			
		||||
        <!div><!input type="button" onclick="tableBuilder()" value="Build table"><!/div>
 | 
			
		||||
    </body>
 | 
			
		||||
 | 
			
		||||
    <script>
 | 
			
		||||
       function tableBuilder(field) {
 | 
			
		||||
           
 | 
			
		||||
       }
 | 
			
		||||
        const formatter = new Intl.NumberFormat('en-US', {
 | 
			
		||||
            style: 'currency',
 | 
			
		||||
            currency: 'USD',
 | 
			
		||||
        });
 | 
			
		||||
        let itemPrices = [];
 | 
			
		||||
        let multipliers = [1, 1, 1, 1, 1, 1, 1, 1];
 | 
			
		||||
        let ids = ["notebookVal", "penVal", "mechanicalPencilVal", "refilPackVal", "laptopCaseVal", "cellphoneCaseVal", "threeRingBinderVal", "threeHolePaperRefilVal"];
 | 
			
		||||
        tableBuilder();
 | 
			
		||||
        function getTotal() {
 | 
			
		||||
            let total = 0;
 | 
			
		||||
            for (let i = 0; i < itemPrices.length; ++i) {
 | 
			
		||||
                total += itemPrices[i];
 | 
			
		||||
            }
 | 
			
		||||
            return total;
 | 
			
		||||
        }
 | 
			
		||||
        function updateMultiplier(id) {
 | 
			
		||||
            let basePrices = [5.95, 4.95, 2.95, 0.98, 29.99, 18.99, 6.95, 2.00];
 | 
			
		||||
            let multValue;
 | 
			
		||||
            // Set item values to base prices on page load.
 | 
			
		||||
            if (id == undefined) {
 | 
			
		||||
                multValue = -1; // This prevents the function from crashing when the page loads.
 | 
			
		||||
                for (let i = 0; i < basePrices.length; ++i) {
 | 
			
		||||
                    itemPrices[i] = (basePrices[i]);
 | 
			
		||||
                }
 | 
			
		||||
            } else {
 | 
			
		||||
                multValue = document.getElementById(id).value;
 | 
			
		||||
            }
 | 
			
		||||
            // Determine index to update
 | 
			
		||||
            for (let i = 0; i < ids.length; ++i) {
 | 
			
		||||
                if (id == ids[i]) {
 | 
			
		||||
                    var idIndex = i;
 | 
			
		||||
                    multipliers[i] = multValue;
 | 
			
		||||
                    console.log("idIndex:", idIndex);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            // Set itemPrices;
 | 
			
		||||
            //itemPrices = []; //Clear array
 | 
			
		||||
            for (let i = 0; i < basePrices.length; ++i) {
 | 
			
		||||
                if (idIndex == i) {
 | 
			
		||||
                    itemPrices[i] = (basePrices[i] * multValue);
 | 
			
		||||
                } else {
 | 
			
		||||
                    //
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            tableBuilder();
 | 
			
		||||
            console.log(id + ": ", itemPrices[idIndex]);
 | 
			
		||||
        }
 | 
			
		||||
        function tableBuilder() {
 | 
			
		||||
            let itemNames = ["Notebook", "Pen", "Mechanical Pencil", "Lead refil pack", "Laptop case", "Cellphone case", "3-ring binder", "3-hole paper refil"];
 | 
			
		||||
            let tableString = "";
 | 
			
		||||
            tableString = "<table>" + "<tr>" + " <th>Item Name</th>" + " <th>Quantity</th>" + " <th>Price</th>" + " </tr>";
 | 
			
		||||
 | 
			
		||||
            for (let i = 0; i < itemNames.length; ++i) {
 | 
			
		||||
                tableString += "<tr>";
 | 
			
		||||
                tableString += "<td>" + itemNames[i] + "</td>";
 | 
			
		||||
                tableString += "<td>" + "<input type='number' min='0'" + "id='" + ids[i] + "' onChange='updateMultiplier(this.id);'" + "value='" + multipliers[i] + "' >" + "</td>";
 | 
			
		||||
                tableString += "<td>" + formatter.format(itemPrices[i]) + "</td>";
 | 
			
		||||
                tableString += "</tr>";
 | 
			
		||||
            }
 | 
			
		||||
            tableString += "</table>";
 | 
			
		||||
            tableString += "<p> Total: " + formatter.format(getTotal()) + "</p>"; 
 | 
			
		||||
            document.getElementById("tableDiv").innerHTML = tableString;
 | 
			
		||||
        }
 | 
			
		||||
        updateMultiplier();
 | 
			
		||||
    </script>
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
</html>
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,66 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<!--
 | 
			
		||||
Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
Click nbfs://nbhost/SystemFileSystem/Templates/ClientSide/html.html to edit this template
 | 
			
		||||
-->
 | 
			
		||||
<html>
 | 
			
		||||
    <head>
 | 
			
		||||
        <title>Problem 5</title>
 | 
			
		||||
        <meta charset="UTF-8">
 | 
			
		||||
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    </head>
 | 
			
		||||
    <style>
 | 
			
		||||
        table, th, td {
 | 
			
		||||
            border: 1px solid;
 | 
			
		||||
        }
 | 
			
		||||
    </style>
 | 
			
		||||
    <body>
 | 
			
		||||
        <div id="tableDiv"></div>
 | 
			
		||||
    </body>
 | 
			
		||||
    <script>
 | 
			
		||||
        function getAverage(gradeArray, testSet, numTests) {
 | 
			
		||||
            let gradeAverage = 0;
 | 
			
		||||
            for (let i = 0; i < gradeArray[testSet].length; ++i) {
 | 
			
		||||
                gradeAverage += parseFloat(gradeArray[testSet][i]);
 | 
			
		||||
            }
 | 
			
		||||
            console.log(gradeAverage);
 | 
			
		||||
            gradeAverage = gradeAverage / numTests;
 | 
			
		||||
            console.log("Grade average: " + gradeAverage);
 | 
			
		||||
            return gradeAverage;
 | 
			
		||||
        }
 | 
			
		||||
        // Get user input
 | 
			
		||||
        var studentNameArray = [];
 | 
			
		||||
        var gradeArray = [];
 | 
			
		||||
        var numOfStudents = 0, numTests = 0;
 | 
			
		||||
        numOfStudents = prompt("Enter the number of students to enter into the table.")
 | 
			
		||||
        numTests = prompt("Enter the number of tests administered: ");
 | 
			
		||||
        for (let i = 0, j = numOfStudents; i < numOfStudents; ++i, --j) {
 | 
			
		||||
            var nameInput = prompt("Enter a student name. (" + j + " left).");
 | 
			
		||||
            studentNameArray.push(nameInput);
 | 
			
		||||
            let testArray = [];
 | 
			
		||||
            for (let k = 0; k < numTests; ++k) {
 | 
			
		||||
                let grade = prompt("Enter " + nameInput + "'s grade for test " + (k + 1) + ": ");
 | 
			
		||||
                testArray.push(grade);
 | 
			
		||||
            }
 | 
			
		||||
            gradeArray.push(testArray);
 | 
			
		||||
        }
 | 
			
		||||
        console.log(studentNameArray, gradeArray);
 | 
			
		||||
        let tableString = "<table>" + "<tr>" + " <th>Student Name</th>";
 | 
			
		||||
        for (let i = 0; i < numTests; ++i) {
 | 
			
		||||
            tableString += "<th>";
 | 
			
		||||
            tableString += "Test " + (i + 1);
 | 
			
		||||
            tableString += "</th>";
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        tableString += " <th>Grade Average</th>" + " </tr>";
 | 
			
		||||
        for (let i = 0; i < studentNameArray.length; ++i) {
 | 
			
		||||
            tableString += "<tr>" + "<td>" + studentNameArray[i] + "</td>";
 | 
			
		||||
            for (let j = 0; j < numTests; ++j) {
 | 
			
		||||
                tableString += "<td>" + gradeArray[i][j] + "</td>";
 | 
			
		||||
            }
 | 
			
		||||
            tableString += "<td>" + getAverage(gradeArray, i, numTests) + "</td>";
 | 
			
		||||
            tableString += "</tr>";
 | 
			
		||||
        }
 | 
			
		||||
        document.getElementById("tableDiv").innerHTML = tableString;
 | 
			
		||||
    </script>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -0,0 +1,66 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<!--
 | 
			
		||||
Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
Click nbfs://nbhost/SystemFileSystem/Templates/ClientSide/html.html to edit this template
 | 
			
		||||
-->
 | 
			
		||||
<html>
 | 
			
		||||
    <head>
 | 
			
		||||
        <title>Problem 6</title>
 | 
			
		||||
        <meta charset="UTF-8">
 | 
			
		||||
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    </head>
 | 
			
		||||
    <style>
 | 
			
		||||
        table, th, td {
 | 
			
		||||
            border: 1px solid;
 | 
			
		||||
        }
 | 
			
		||||
    </style>
 | 
			
		||||
    <body>
 | 
			
		||||
        <div id="tableDiv"></div>
 | 
			
		||||
    </body>
 | 
			
		||||
    <script>
 | 
			
		||||
        // Get user input
 | 
			
		||||
        var array = [];
 | 
			
		||||
        var numOfStudents = 0, numTests = 0;
 | 
			
		||||
        numOfStudents = prompt("Enter the number of students to enter into the table.")
 | 
			
		||||
        numTests = prompt("Enter the number of tests administered: ");
 | 
			
		||||
        for (let i = 0, j = numOfStudents; i < numOfStudents; ++i, --j) {
 | 
			
		||||
            var nameInput = prompt("Enter a student name. (" + j + " left).");
 | 
			
		||||
            array[i] = [nameInput, undefined];
 | 
			
		||||
            let testArray = [];
 | 
			
		||||
            for (let k = 0; k < numTests; ++k) {
 | 
			
		||||
                let grade = prompt("Enter " + nameInput + "'s grade for test " + (k + 1) + ": ");
 | 
			
		||||
                testArray.push(grade);
 | 
			
		||||
            }
 | 
			
		||||
            array[i] = [array[i][0], testArray];
 | 
			
		||||
        }
 | 
			
		||||
        console.log(array);
 | 
			
		||||
        let tableString = "<table>" + "<tr>" + " <th>Student Name</th>";
 | 
			
		||||
        for (let i = 0; i < numTests; ++i) {
 | 
			
		||||
            tableString += "<th>";
 | 
			
		||||
            tableString += "Test " + (i + 1);
 | 
			
		||||
            tableString += "</th>";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        tableString += " <th>Grade Average</th>" + " </tr>";
 | 
			
		||||
        for (let i = 0; i < array.length; ++i) {
 | 
			
		||||
            tableString += "<tr>" + "<td>" + array[i][0] + "</td>";
 | 
			
		||||
            for (let j = 0; j < numTests; ++j) {
 | 
			
		||||
                tableString += "<td>" + array[i][1][j] + "</td>";
 | 
			
		||||
            }
 | 
			
		||||
            tableString += "<td>" + getAverage(array, i, numTests) + "</td>";
 | 
			
		||||
            tableString += "</tr>";
 | 
			
		||||
        }
 | 
			
		||||
        document.getElementById("tableDiv").innerHTML = tableString;
 | 
			
		||||
        function getAverage(array, testSet, numTests) {
 | 
			
		||||
            console.log(array)
 | 
			
		||||
            let gradeAverage = 0;
 | 
			
		||||
            for (let i = 0; i < numTests; ++i) { //gradeArray[testSet].length
 | 
			
		||||
                gradeAverage += parseFloat(array[testSet][1][i]);
 | 
			
		||||
            }
 | 
			
		||||
            console.log(gradeAverage);
 | 
			
		||||
            gradeAverage = gradeAverage / numTests;
 | 
			
		||||
            console.log("Grade average: " + gradeAverage);
 | 
			
		||||
            return gradeAverage;
 | 
			
		||||
        }
 | 
			
		||||
    </script>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -0,0 +1,56 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<!--
 | 
			
		||||
Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
Click nbfs://nbhost/SystemFileSystem/Templates/Other/html.html to edit this template
 | 
			
		||||
-->
 | 
			
		||||
<html>
 | 
			
		||||
    <head>
 | 
			
		||||
        <title>TODO supply a title</title>
 | 
			
		||||
        <meta charset="UTF-8">
 | 
			
		||||
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    </head>
 | 
			
		||||
    <style>
 | 
			
		||||
        table, th, td {
 | 
			
		||||
            border: 1px solid;
 | 
			
		||||
        }
 | 
			
		||||
    </style>
 | 
			
		||||
    <body>
 | 
			
		||||
        <div id="tableDiv"></div>
 | 
			
		||||
        <div id="magicResult"></div>
 | 
			
		||||
    </body>
 | 
			
		||||
    <script>
 | 
			
		||||
        // Create 2D array.
 | 
			
		||||
        let magic = [];
 | 
			
		||||
        for (let i = 0; i < 4; ++i) {
 | 
			
		||||
            magic.push([0, 0, 0, 0]);
 | 
			
		||||
        }
 | 
			
		||||
        console.log(magic);
 | 
			
		||||
        //Get input
 | 
			
		||||
        for (let x = 0; x < magic.length; ++x) {
 | 
			
		||||
            for (let y = 0; y < magic[x].length; ++y) {
 | 
			
		||||
                magic[x][y] = prompt("Enter value for " + (x + 1) + ", " + (y + 1));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        console.log(magic);
 | 
			
		||||
        // Calculate diagonals
 | 
			
		||||
        var diagonal1 = magic[0][0] + magic[1][1] + magic[2][2] + magic[3][3];
 | 
			
		||||
        var diagonal2 = magic[0][3] + magic[1][2] + magic[2][1] + magic[3][0];
 | 
			
		||||
        let tableString = "<table>";
 | 
			
		||||
        for (let x = 0; x < magic.length; ++x) {
 | 
			
		||||
            tableString += "<tr>";
 | 
			
		||||
            for (let y = 0; y < magic[x].length; ++y) {
 | 
			
		||||
                tableString += "<td>" + magic[x][y] + "</td>";
 | 
			
		||||
        }
 | 
			
		||||
        tableString += "</tr>";
 | 
			
		||||
    }
 | 
			
		||||
        tableString += "</table>";
 | 
			
		||||
        let magicResult = "";
 | 
			
		||||
        if (diagonal1 == diagonal2) {
 | 
			
		||||
            magicResult = "This is a magic square.";
 | 
			
		||||
        } else {
 | 
			
		||||
            magicResult = "This is not a magic square."
 | 
			
		||||
        }
 | 
			
		||||
        document.getElementById("tableDiv").innerHTML = tableString;
 | 
			
		||||
        document.getElementById("magicResult").innerHTML = "<p>" + magicResult + "</p>";
 | 
			
		||||
    </script>
 | 
			
		||||
</html>
 | 
			
		||||
@@ -1,15 +0,0 @@
 | 
			
		||||
<!DOCTYPE html>
 | 
			
		||||
<!--
 | 
			
		||||
Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 | 
			
		||||
Click nbfs://nbhost/SystemFileSystem/Templates/Other/html.html to edit this template
 | 
			
		||||
-->
 | 
			
		||||
<html>
 | 
			
		||||
    <head>
 | 
			
		||||
        <title>TODO supply a title</title>
 | 
			
		||||
        <meta charset="UTF-8">
 | 
			
		||||
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
			
		||||
    </head>
 | 
			
		||||
    <body>
 | 
			
		||||
        <div>TODO write content</div>
 | 
			
		||||
    </body>
 | 
			
		||||
</html>
 | 
			
		||||
		Reference in New Issue
	
	Block a user