Created
November 19, 2014 04:35
-
-
Save ConatserCA/ab9169ca7368eee4123a to your computer and use it in GitHub Desktop.
Record Structures program
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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"); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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