Student Data

advertisement
Student Data
Score
First Name
Last Name
ID
GPA
DOB
Phone
...
How to store student data in our programs?
1
Store Student Data in Variables
// For one student at a time
float score, GPA;
string firstName, lastName, ID;
…
2
Store Students Data in
Parallel Arrays
const int MAX_SIZE = 30;
// To keep data for all students
float scores[MAX_SIZE], GPA[MAX_SIZE];
string firstName[MAX_SIZE], lastName[MAX_SIZE],
ID[MAX_SIZE];
3
C++ Structure
struct Student
{
string id;
string firstName, lastName;
float gpa;
};
// Student is a data type!
4
Structure Variables
int
numStudents;
float
score;
Student s1, s2;
// Student is a data type!
5
Accessing Members of a
Structure Variable
Student s1;
// Input data into struct
cout << "Enter ID: ";
cin >> s1.id;
cout << "Enter first name: ";
cin >> s1.firstName;
// Output student data
cout << setw(9) << s1.id
<< setw(25) << s1.firstName;
Using the dot notation!
6
C++ Class
class Student
{
string id;
string firstName, lastName;
float gpa;
};
// Student is a class (data type)!
// By default, all fields are private.
7
C++ Class
class Student
{
private:
string id;
string firstName, lastName;
float gpa;
public:
. . .
};
Create public functions (methods)
to access private fields.
8
Class Methods
class Student
{
private:
string id;
string firstName, lastName;
float gpa;
public:
// Make sure the order is correct.
void Read()
{
cin >> id >> firstName >> lastName
>> gpa;
}
};
9
Class Methods
class Student
{
private:
string id;
string firstName, lastName;
float gpa;
public:
void Read()
void Print()
{
cout << endl;
cout << setw(9) << id << setw(20) << firstName
<< setw(20) << lastName << setw(5) << gpa;
}
};
10
Calling Class Methods
Student s1;
// Input data into object s1
s1.Read();
// Output data of object s1
s1.Print();
Using the dot notation!
11
Syntax and Style
class Student
{
private:
string id;
string firstName, lastName;
float gpa;
public:
void Read()
. . .
};
// class, private, public: key word
// Student: Identifier, your choice
// Fields : Declaring variables
// Braces
// Semicolon after }
// Read, Print: class methods (function inside class)
// Indentation
12
Semantics
class Student
{
private:
string id;
string firstName, lastName;
float gpa;
public:
void Read()
{
cin >> id >> firstName >> lastName
>> gpa;
}
. . .
};
Student is a new data type!
It has data fields and methods (functions)
on the data.
13
Semantics
class Student
{
private:
string id;
string firstName, lastName;
float gpa;
public:
void Read()
{
cin >> id >> firstName >> lastName
>> gpa;
}
. . .
};
Data fields have class scope and can be
accessed from any class methods!
14
C++ Classes
cin >> base;
while ( !cin.eof() && (base < 2 || base > 9) )
{
// display message
cin.ignore(MAX_LINE_SIZE, ‘\n’);
cin >> base:
}
15
More Class Methods
class Student
{
private:
. . .
public:
. . .
string getFirst()
{
return firstName;
}
void setFirstName( string name )
{
firstName = name;
}
};
16
More Class Methods
class Student
{
private:
. . .
public:
. . .
string getGPA()
{
return gpa;
}
void setGPA( float value )
{
gpa = value;
}
void updateGPA( float amount )
{
gpa += amount;
}
};
17
Calling Class Methods
// Comparing two students
if ( s1.getGPA() > s2.getGPA() )
cout << “\nFirst student has higher GPA.";
else if ( s1.getGPA() < s2.getGPA() )
cout << “\nSecond student has higher GPA.";
else
cout << “\nThe two student have the same GPA.";
19
Calling Class Methods
// Updating students data
s1.setGPA( 2.9 );
s1.updateGPA( 0.5 );
if ( s1.getGPA() > s2.getGPA() )
cout << “\nFirst student has higher GPA.";
else if ( s1.getGPA() < s2.getGPA() )
cout << “\nSecond student has higher GPA.";
else
cout << “\nThe two student have the same GPA.";
20
class Student
{
. . .
}
int main()
{
Student s1, s2;
s1.Read();
s2.Read();
s1.Print();
s2.Print();
// Comparing GPA of s1 and s2
s1.updateGPA( 0.5 );
// Comparing GPA of s1 and s2
return 0;
}
21
//---------------------------------------// Comment Block
//---------------------------------------// Includes
// constants
class Student
{
. . .
}
// Function prototypes
int main()
{
. . .
return 0;
}
// Function definitions
22
Schedule
• Quiz5-5: Due today
• Quiz7-1: Due Wednesday
• Wednesday: Test2 Review
• Thursday: Lab 8
• Friday
Test 2: 60 points
Notes 11 - 22
• Program 4
Due Wednesday, April 6
Grace Friday, April 8
23
Quiz5-6
Now
24
Download