Next: Example Program: Generation of Up: The for statement Previous: Example for statement: Print

Example Program: Student Mark Processing (3)

The program from section 16.5 could also be modified to use the for statement to control the loop. This cannot be done without changing the specification of the input data. If the specification was changed so that the number of students was entered before the examination marks then a for statement could be used as follows:

void main()
{
  int candno;           // candidate number
  int s1, cw1, s2, cw2; // candidate marks
  int final1, final2;   // final subject marks
  int count;            // number of students
  int sum1, sum2;       // sum accumulators
  int subav1, subav2;   // subject averages
  int i;                // for loop control variable
  const float EXAMPC = 0.7,
              CWPC = 0.3;
    // initialise
  sum1 = 0;
  sum2 = 0;
    // enter number of students
  cout << "Enter number of students: ";
  cin >> count;
  for (i=0; i<count; i=i+1)
    {
        // enter candidate number and marks
      cout << "Input candidate number and marks: ";
      cin >> candno >> s1 >> cw1 >> s2 >> cw2;
        // process marks
      final1 = int(EXAMPC*s1+CWPC*cw1);
      final2 = int(EXAMPC*s2+CWPC*cw2);
      sum1 = sum1+final1;
      sum2 = sum2+final2;
        // output marks
      cout << candno << " "
           << s1 << " " << cw1 << " "
           << s2 << " " << cw2 << " "
           << final1 << " " << final2
           << endl;
    }
    // evaluate averages
  subav1 = sum1/count;
  subav2 = sum2/count;
     // output averages
  cout << endl << "Subject1 average is " << subav1
       << endl << "Subject2 average is " << subav2
       << endl;
}
Download program.

Note that if zero or a negative number is entered for the number of students then this program will fail, an attempted division by zero will be encountered (why?). This could be fixed by putting in a validation check on the number of students when this is entered by the user.



Next: Example Program: Generation of Up: The for statement Previous: Example for statement: Print