Untitled
3 years ago in Plain Text
<!DOCTYPE html5>
<html>
<head>
<title>
חישוב ציון סופי לקורס מערכות הפעלה
</title>
<style>
body {
direction: rtl;
font-family: Arial, Helvetica, sans-serif;
padding: 0;
margin:0;
}
header {
background: lavender;
width: 100%;
margin: 0 0 0 0;
padding: 0 0 0 0;
}
header h1 {
margin-right: 5em;
text-align: center;
}
header h2 {
margin-right: 2em;
}
label {
float: right;
}
input {
float: left;
}
fieldset {
background-color: lavender;
}
#calcGrade {
margin: 10px 25px 0px 0px;
font-size: large;
}
main {
display: inline-block;
}
h4 {
margin-top: -5px;
margin-bottom: -5px;
margin-right: 3em;
}
#gradeInput {
margin-right: 25px;
}
</style>
</head>
<body>
<header>
<h1>חישוב ציון סופי לקורס מערכות הפעלה</h1>
<h2>אנא הכניסו את כל הפרטים לחישוב הציון (ללא בונוס)</h2>
<h4>יש להזין מספרים חוקיים (בין 0 ל-110) בכל התאים</h4>
<hr>
</header>
<main>
<div id="gradeInput" style="float: right;">
<h3>ציוני עבודה ראשית ומבחן בעל פה</h3>
<div class="mainGrades">
<fieldset style="width: 200px;">
<label for="mainAssignment">ציון עבודה סופית: </label>
<input id="mainAssignment" type="number" min="0" max="110">
<br /><br>
<label for="verbalExam">ציון מבחן בעל-פה: </label>
<input id="verbalExam" type="number" min="0" max="110">
</fieldset>
</div>
<h3>ציוני עבודות הגשה</h3>
<div class="homeAssignments">
<fieldset style="width: 200px;">
<label for="homeAssignment1">ציון עבודה 1: </label>
<input id="homeAssignment1" type="number" min="0" max="110">
<br /><br>
<label for="homeAssignment2">ציון עבודה 2: </label>
<input id="homeAssignment2" type="number" min="0" max="110">
<br /><br>
<label for="homeAssignment3">ציון עבודה 3: </label>
<input id="homeAssignment3" type="number" min="0" max="110">
<br /><br>
<label for="homeAssignment4">ציון עבודה 4: </label>
<input id="homeAssignment4" type="number" min="0" max="110">
<br /><br>
<label for="homeAssignment5">ציון עבודה 5: </label>
<input id="homeAssignment5" type="number" min="0" max="110">
<br /><br>
</fieldset>
</div>
<button id="calcGrade" onclick="buttonClick()">חשב ציון</button>
</div>
</main>
</div>
<script>
function buttonClick() {
var mainA = parseFloat(document.getElementById("mainAssignment").value);
var verbalE = parseFloat(document.getElementById("verbalExam").value);
var ass1 = parseFloat(document.getElementById("homeAssignment1").value);
var ass2 = parseFloat(document.getElementById("homeAssignment2").value);
var ass3 = parseFloat(document.getElementById("homeAssignment3").value);
var ass4 = parseFloat(document.getElementById("homeAssignment4").value);
var ass5 = parseFloat(document.getElementById("homeAssignment5").value);
var gradeArr = [mainA,verbalE,ass1,ass2,ass3,ass4,ass5];
var faultArr = []; var faultbool=false;
for(let i=0;i<gradeArr.length;i++)
{
var x = [0,0];
faultArr.push(x);
}
for(let i=0;i<gradeArr.length;i++)
{
if(isNaN(gradeArr[i]))
{
faultArr[i][0]=1;
faultbool=true;
} else if (gradeArr[i] > 110 || gradeArr[i] < 0)
{
faultArr[i][1]=1;
faultbool=true;
}
}
if(faultbool)
printErrors(faultArr);
else
printGrade(gradeArr);
}
function printGrade(arr) {
let mainC = (arr[0] * 0.5 ) + (arr[1] * 0.5);
let subC = 0;
for(let i=2;i<arr.length;i++)
subC+=arr[i];
subC /= 5;
let grade = (mainC * 0.75) + (subC * 0.25);
alert("ציונך הסופי הוא "+grade+".");
}
function printErrors(faultArr) {
let numberSTR = "";
let NaNSTR = "";
let cN=0,cM=0;
for(let i=0;i<faultArr.length;i++)
{
if(!Array.isArray(faultArr[i])) //if this entry didn't contain mistakes
continue;
if(faultArr[i][0]==1) //if NaN
{
if(cN>0)
NaNSTR+=",\n";
cN++;
NaNSTR += faultSwitch(i);
} else if (faultArr[i][1]==1){ //if illegal number
if(cM>0)
numberSTR+=",\n";
cM++;
numberSTR += faultSwitch(i);
}
}
let finalSTRs = "";
if(cN>0)
{
finalSTRs="אנא הזן מספרים בתאים:\n" + NaNSTR;
alert(finalSTRs);
}
if(cM>0)
{
finalSTRs="אנא הזן מספרים חוקיים בתאים:\n" + numberSTR;
alert(finalSTRs);
}
}
function faultSwitch(i) {
switch(i){
case 0:
return "עבודה סופית";
break;
case 1:
return "מבחן בעל-פה";
break;
case 2:
return "עבודה 1";
break;
case 3:
return "עבודה 2";
break;
case 4:
return "עבודה 3";
break;
case 5:
return "עבודה 4";
break;
case 6:
return "עבודה 5";
break;
}
}
</script>
</body>
</html>