1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
const int N=5;
struct RECORD
{
char Name[15];
int Age;
float Gpa;
};
RECORD p[N];
void CopyRecords(string fname, RECORD p[])
{
fstream f;
f.open(fname, ios::in);
for (int i=0; i<N; i++)
{
f.getline(p[i].Name, 20, '/');
f>>p[i].Age>>p[i].Gpa;
}
f.close();
}
void Display(RECORD p[])
{
cout << setw(7) << right << "Name" << setw(18) << "Age" << setw(7) << "GPA" << endl;
cout << setw(32) << setfill('-') << "" << endl;
for (int i=0; i<N; i++)
{
cout << setfill(' ');
cout << left << setw(15) << p[i].Name << setw(10) << right << p[i].Age
<< setw(8) << showpoint << fixed << setprecision(1) << p[i].Gpa << endl;
}
cout << endl;
}
int AgeAverage(RECORD p[])
{
float AveAge=0;
for (int i=0; i<N; i++)
{
AveAge+=p[i].Age;
}
return AveAge/=N;
}
float GpaAverage(RECORD p[], float&GpaAve)
{
GpaAve=0;
for (int i=0; i<N; i++)
{
GpaAve+=p[i].Gpa;
}
return GpaAve/=N;
}
void Disply(float AgeAve, float GpaAve)
{
cout << "The average age of all students is " << AgeAve << endl;
cout << "The average Gpa of all students is " << showpoint << setprecision(1) << fixed << GpaAve << endl;
}
void Teens(RECORD p[])
{
cout << "This is the name of all teenagers: ";
for (int i=0; i<N; i++)
{
if (p[i].Age<20)
cout << p[i].Name << ", ";
}
cout << '\b' << '\b';
cout << endl;
}
void AboveAgeAve(int AgeAve, RECORD p[])
{
cout << "This is the name of all students whose age is above average: ";
for (int i=0; i<N; i++)
{
if (p[i].Age<AgeAve)
cout << p[i].Name << ", ";
}
cout << '\b' << '\b';
cout << endl;
}
int main()
{
CopyRecords("data2.txt", p);
Display(p);
float AgeAve=AgeAverage(p);
float GpaAve;
GpaAverage(p, GpaAve);
Teens(p);
AboveAgeAve (AgeAve, p);
Disply(AgeAve, GpaAve);
system("pause");
return 0;
}
|