// top-down-1.cc

// Computes weighted average score of grades. Grades include two
// assignments two midterm exams and one final exam.  // All grades
// are input from standard input, but the weights of // each type of
// grade are hard coded.

// C header files
extern "C" {
}

// Standard C++ header files
#include <iostream>

// My own C++ header files

// Macro definitions

// Forward definitions of auxiliary functions
void readAssignmentGrades(float& assignment1, float& assignment2);
void readExamGrades(float& ex1, float& ex2);
void readFinalGrade(float& final);
float calculateAverage(float assignment1, float assignment2,
                       float exam1, float exam2,
                       float finalExam);
void printReport(float assignment1, float assignment2,
		 float exam1, float exam2,
		 float finalExam,
		 float average);

// Global declarations
 
int main() {
  float assignment1, assignment2;
  float exam1, exam2;
  float finalExam;

  readAssignmentGrades(assignment1, assignment2);
  readExamGrades(exam1, exam2);
  readFinalGrade(finalExam);
  float avg;
  avg = calculateAverage(assignment1, assignment2,
                         exam1, exam2,
                         finalExam);
  printReport(assignment1, assignment2,
              exam1, exam2,
              finalExam,
              avg);
  return 0;
}
// Auxiliary functions
void readAssignmentGrades(float& assignment1, float& assignment2)
{}
void readExamGrades(float& ex1, float& ex2)
{}
void readFinalGrade(float& final)
{}
float calculateAverage(float assignment1, float assignment2,
                       float exam1, float exam2,
                       float finalExam)
{}
void printReport(float assignment1, float assignment2,
		 float exam1, float exam2,
		 float finalExam,
		 float average)
{}
