Skip to content

Instantly share code, notes, and snippets.

@ConatserCA
Created November 19, 2014 04:35
Show Gist options
  • Save ConatserCA/ab9169ca7368eee4123a to your computer and use it in GitHub Desktop.
Save ConatserCA/ab9169ca7368eee4123a to your computer and use it in GitHub Desktop.
Record Structures program
//Libraries and other used mediums
#include "Header.h"
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
//Definitions
//function to display student records
void displayrecord(gRec record)
{
cout << "Student Name: " << record.name << endl;
cout << "Student ID: " << right << setw(5) << record.studID << endl
<< "Student Grades: " << setw(2) << record.grades[0] << ", "
<< record.grades[1] << ", "
<< record.grades[2] << ", "
<< record.grades[3] << "\n"
<< "Student Average: " << setw(2) << record.avgscore << endl
<< "Student Grade: " << setw(1) << record.lettergrade << endl << endl;
}
//function to compute average and populate average field
int gradeavg(gRec record, double *average)
{
int numt(0);
for (int h = 0; h != 4; h++)
{
numt += record.grades[h];
}
record.avgscore = (numt / 4);
*average += record.avgscore;
return record.avgscore;
}
//function to computer letter grade and populate letter grade field
string lgrade(gRec record)
{
if (record.avgscore >= 90 && record.avgscore <= 100)
{
record.lettergrade = "A";
}
else if (record.avgscore >= 80 && record.avgscore <= 89)
{
record.lettergrade = "B";
}
else if (record.avgscore >= 70 && record.avgscore <= 79)
{
record.lettergrade = "C";
}
else if (record.avgscore >= 60 && record.avgscore <= 69)
{
record.lettergrade = "D";
}
else
{
record.lettergrade = "F";
}
return record.lettergrade;
}
//function to compute class average
double classavg(double total, double constant)
{
double classaverage = (total / constant);
return classaverage;
}
//visual studio kept giving me errors, had to create write function
//function to write and point data for calculating class averages & stand dev
void writedata(gRec record, double average, double *standev)
{
double dev(0);
dev = (record.avgscore - average)*(record.avgscore - average);
*standev += dev;
}
//function to compute class standard deviation
double standarddev(double standev, int constant)
{
double varience(0);
varience = standev / (constant - 1);
standev = sqrt(varience);
return standev;
}
//function to display class average and standard deviation
void displayclass(double standdev, double average)
{
cout << "Class Average: " << setprecision(3) << setw(6) << average << endl;
cout << "Standard Dev: " << setprecision(3) << setw(7) << standdev << endl << endl;
}
//Libraries and other used mediums
#include "header.h"
#include <string>
#include <iostream>
#include <fstream>
using namespace std;
//Main
int main()
{
//Variables
const int sSIZE = 5;
const double dSIZE = 5.0;
double classdev(0), standev(0), classaverage(0), buffer(0);
gRec students[sSIZE];
ifstream inFile("Student Data.txt");
//Callings
//Individual student outputs
for (int k = 0; k != sSIZE; k++)
{
getline(inFile, students[k].name);
inFile >> students[k].studID;
for (int i = 0; i != gSIZE; i++)
{
inFile >> students[k].grades[i];
}
string str;
getline(inFile, str);
students[k].avgscore = gradeavg(students[k], &buffer);
students[k].lettergrade = lgrade(students[k]);
displayrecord(students[k]);
}
classaverage = classavg(buffer, dSIZE);
for (int v = 0; v != sSIZE; v++)
{
writedata(students[v], classaverage, &standev);
}
classdev = standarddev(standev, sSIZE);
displayclass(classdev, classaverage);
system("pause");
}
#ifndef HEADER_H_
#define HEADER_H_
//Libraries and other used mediums
#include <string>
using namespace std;
//Variables
const int gSIZE = 4;
//Declarations
struct gRec {
string name;
int studID;
int grades[gSIZE];
int avgscore;
string lettergrade;
};
void displayrecord(gRec);
int gradeavg(gRec, double*);
string lgrade(gRec);
double classavg(double, double);
void writedata(gRec, double, double*);
double standarddev(double, int);
void displayclass(double, double);
#endif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment