0

I need help integrating classes and functions into an HTML page using JavaScript. I am not sure how to properly create an object and call its function(i.e.)

    function calculateGrade(){
    var x1 = document.forms["myForm"]["fname"].value;
    var x2 = document.forms["myForm"]["lname"].value;
    var x3 = document.forms["myForm"]["hwork"].value;
    var x4 = document.forms["myForm"]["awork"].value;
    var x5 = document.forms["myForm"]["midscore"].value;
    var x6 = document.forms["myForm"]["midgrade"].value;
    var x7 = document.forms["myForm"]["finscore"].value;
    var x8 = document.forms["myForm"]["fingrade"].value;

    var p1 = new Student(

    x1,x2,[x3],[x4],x5,x6,x7,x8

    ); //creates it

    document.getElementById("myForm").style.visibility="hidden";
    document.getElementById("text").style.visibility="hidden";
    alert(p1.getGrade()); //calls one of its methods
    return false;



}  

I am also unsure how to properly use classes in JS. I want the classes to be private while the methods are privileged.

    function Student(){


        function Student(firstName,lastName,hScore,aScore,mScore,mGrade,fScore,fGrade){


        this.firstName = firstName;
        this.lastName = lastName;
        this.homework = new Coursework();
        this.inClass = new Coursework();
        this.studentsFinal = new Exam(fScore,fGrade);
        this.studentsMidterm = new Exam(mScore,mGrade);
        var that = this; 

    function setMidterm(mScore, mGrade){
        that.studentsMidterm = new Exam(mScore, mGrade);

    }
    this.setMidterm = function() {  // privileged method
        setMidterm(mScore, mGrade);
      }


    function setFinal( fScore,  fGrade){
        that.studentsFinal = new Exam(fScore, fGrade);
    }
    this.setFinal = function() {    // privileged method
        setFinal( fScore,  fGrade);
      }

    function addGradedHomework(hScore){
        that.homework.addScore(hScore);
    }
    this.addGradedHomework = function() {   // privileged method
        addGradedHomework(hScore);
      }


    function addGradedActivity(aScore){
        that.inClass.addScore(aScore);
        }
        this.addGradedActivity = function() {   // privileged method
        addGradedActivity(aScore);
      }

    this.printGrade=printGrade;
    function getGrade(){
        var letterGrade;

        var weightCourse = ( (that.inClass.meanScore() * .15) + (that.homework.meanScore() * .25) + (that.studentsMidterm.getExamScore() * .25) + (that.studentsFinal.getExamScore() * .35) );

        if (that.studentsMidterm.getExamScore() >= that.studentsFinal.getExamScore() && that.studentsMidterm.getExamScore() >= weightCourse)
              letterGrade = studentsFinal.getExamGrade();
           else if (that.studentsFinal.getExamScore() >= that.studentsMidterm.getExamScore() && that.studentsMidterm.getExamScore() >= weightCourse)
             letterGrade = that.studentsFinal.getExamGrade();
           else{
        if (90.00 <= weightCourse){
            letterGrade = "A";
        }
        else if( 80 <= weightCourse && weightCourse < 90){
            letterGrade = "B";
        }
        else if (70 <= weightCourse && weightCourse < 80){
            letterGrade = "C";
        }
        else if (60 <= weightCourse && weightCourse < 70){
            letterGrade = "D";
        }
        else{
            letterGrade = "F";
        }

           }
           return letterGrade;

    }
        this.getGrade = function() {    // privileged method
        getGrade();
      }
    }
}

function Coursework(){

     var sumScore;
     var numScore;


    function addScore(score){
        numScore++;
        if (score > 100)
            sumScore = sumScore + 100;  
        else if ( score < 0)
            sumScore = sumScore + 0;
        else
            sumScore = sumScore + score;
        }


    function meanScore(){

        if (numScore == 0){
         return 0.0;
        }
        else{
            return (sumScore / numScore);
        }
    }
}

function Exam() {
     var examScore;
     var examGrade;

    function Exam(score,grade ){

        if (examScore < 0){
            examScore = 0;  
        }
        else if (examScore > 100){
            examScore = 100;
            }
        else {
            examScore = score;
        }

        switch (grade) {
        case "A":
            examGrade = "A";
            break;
        case "B":
            examGrade = "B";
            break;
        case "C":
            examGrade = "C";
            break;
        case "D":
            examGrade = "D";
            break;
        case "F":
            examGrade = "F";
            break;
        default:
            examGrade = "F";
    }

    }

    function getExamScore(){
        return examScore;
        }
    function getExamGrade(){
        return examGrade;
        }
}

Any help is appreciated. If this does not make since let me know, I wasn't quite sure how to word it.

<html>
<title> Assignment 7 </title>
<h1> Students's Assignment 7 </h1>
<head>
<script type="text/javascript">

function calculateGrade(){
 var x1 = document.forms["myForm"]["fname"].value;
 var x2 = document.forms["myForm"]["lname"].value;
 var x3 = document.forms["myForm"]["hwork"].value;
 var x4 = document.forms["myForm"]["awork"].value;
 var x5 = document.forms["myForm"]["midscore"].value;
 var x6 = document.forms["myForm"]["midgrade"].value;
 var x7 = document.forms["myForm"]["finscore"].value;
 var x8 = document.forms["myForm"]["fingrade"].value;
 
 var p1 = new Student(
 
 x1,x2,[x3],[x4],x5,x6,x7,x8
 
 );
 
 //console.log(p1.getGrade());
 
 //alert(x1);
 document.getElementById("myForm").style.visibility="hidden";
 document.getElementById("text").style.visibility="hidden";
 alert(p1.getGrade());
 return false;
 


}  
function Student(){


  function Student(firstName,lastName,hScore,aScore,mScore,mGrade,fScore,fGrade){

 
  this.firstName = firstName;
  this.lastName = lastName;
  this.homework = new Coursework();
  this.inClass = new Coursework();
  this.studentsFinal = new Exam(fScore,fGrade);
  this.studentsMidterm = new Exam(mScore,mGrade);
  var that = this; 
 
 function setMidterm(mScore, mGrade){
  that.studentsMidterm = new Exam(mScore, mGrade);
  
 }
 this.setMidterm = function() { // privileged method
     setMidterm(mScore, mGrade);
   }
   
 
 function setFinal( fScore,  fGrade){
  that.studentsFinal = new Exam(fScore, fGrade);
 }
 this.setFinal = function() { // privileged method
     setFinal( fScore,  fGrade);
   }
  
 function addGradedHomework(hScore){
  that.homework.addScore(hScore);
 }
 this.addGradedHomework = function() { // privileged method
     addGradedHomework(hScore);
   }
 
 
 function addGradedActivity(aScore){
  that.inClass.addScore(aScore);
  }
  this.addGradedActivity = function() { // privileged method
     addGradedActivity(aScore);
   }
 
 this.printGrade=printGrade;
 function getGrade(){
  var letterGrade;
  
  var weightCourse = ( (that.inClass.meanScore() * .15) + (that.homework.meanScore() * .25) + (that.studentsMidterm.getExamScore() * .25) + (that.studentsFinal.getExamScore() * .35) );
  
  if (that.studentsMidterm.getExamScore() >= that.studentsFinal.getExamScore() && that.studentsMidterm.getExamScore() >= weightCourse)
        letterGrade = studentsFinal.getExamGrade();
     else if (that.studentsFinal.getExamScore() >= that.studentsMidterm.getExamScore() && that.studentsMidterm.getExamScore() >= weightCourse)
       letterGrade = that.studentsFinal.getExamGrade();
     else{
  if (90.00 <= weightCourse){
   letterGrade = "A";
  }
  else if( 80 <= weightCourse && weightCourse < 90){
   letterGrade = "B";
  }
  else if (70 <= weightCourse && weightCourse < 80){
   letterGrade = "C";
  }
  else if (60 <= weightCourse && weightCourse < 70){
   letterGrade = "D";
  }
  else{
   letterGrade = "F";
  }
    
     }
     return letterGrade;
     
 }
  this.getGrade = function() { // privileged method
     getGrade();
   }
 }
}

function Coursework(){

  var sumScore;
  var numScore;
 
 
 function addScore(score){
  numScore++;
  if (score > 100)
   sumScore = sumScore + 100; 
  else if ( score < 0)
   sumScore = sumScore + 0;
  else
   sumScore = sumScore + score;
  }
 
 
 function meanScore(){
  
  if (numScore == 0){
   return 0.0;
  }
  else{
   return (sumScore / numScore);
  }
 }
}

function Exam() {
  var examScore;
  var examGrade;
 
 function Exam(score,grade ){
  
  if (examScore < 0){
   examScore = 0; 
  }
  else if (examScore > 100){
   examScore = 100;
   }
  else {
   examScore = score;
  }
  
  switch (grade) {
        case "A":
            examGrade = "A";
            break;
        case "B":
            examGrade = "B";
            break;
        case "C":
            examGrade = "C";
            break;
        case "D":
            examGrade = "D";
            break;
        case "F":
            examGrade = "F";
            break;
        default:
         examGrade = "F";
    }
  
 }
 
 function getExamScore(){
  return examScore;
  }
 function getExamGrade(){
  return examGrade;
  }
}


</script>
</head>

<body bgcolor="#81F79F">
<b id="text">Enter you information below</b>
<form id="myForm" onsubmit="return calculateGrade();" >
  First name: <br><input type="text" id="element_1_1" name="fname"><br>
  Last name: <br><input type="text" id="element_1_2" name="lname"><br>
  Homework: <br><input type="text" id="element_1_3" name="hwork"><br>
  Activity: <br><input type="text" id="element_1_4" name="awork"><br>
  Midterm Score: <br><input type="text" id="element_1_5" name="midscore"><br>
  Midterm Grade: <br><input type="text" id="element_1_6" name="midgrade"><br>
  Final Score: <br><input type="text" id="element_1_7" name="finscore"><br>
  Final Grade: <br><input type="text" id="element_1_8" name="fingrade"><br>
  <input type="submit" value="Submit">
</form>
 <div id="stuff"></div>
  
</body>



</html>
Ryan
  • 21
  • 1
  • 3
  • This question might be too broad. A historical question may be of interest: http://stackoverflow.com/questions/387707/whats-the-best-way-to-define-a-class-in-javascript – Paul Nov 04 '14 at 05:07
  • More good stuff: http://stackoverflow.com/tags/javascript/info – Paul Nov 04 '14 at 05:08
  • Plenty of resources on the internet with how-to's, this site is for specific questions. – EternalHour Nov 04 '14 at 05:10
  • @EternalHour How to's on the internet are often too basic and not specific enough for what I'm trying to do. Although I appreciate your input and will keep it mind for the future. – Ryan Nov 04 '14 at 05:39

0 Answers0