230 likes | 251 Views
Student Data. Score First Name Last Name ID GPA DOB Phone ... How to store student data in our programs?. Store Student Data in Variables. // For one student at a time float score, GPA; string firstName, lastName, ID; …. Store Students Data in Parallel Arrays.
E N D
Student Data Score First Name Last Name ID GPA DOB Phone ... How to store student data in our programs?
Store Student Data in Variables // For one student at a time float score, GPA; string firstName, lastName, ID; …
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];
C++ Structure struct Student { string id; string firstName, lastName; float gpa; }; // Student is a data type!
Structure Variables int numStudents; float score; Student s1, s2; // Student is a data type!
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!
C++ Class class Student { string id; string firstName, lastName; float gpa; }; // Student is a class (data type)! // By default, all fields are private.
C++ Class class Student { private: string id; string firstName, lastName; float gpa; public: . . . }; Create public functions (methods) to access private fields.
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; } };
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; } };
Calling Class Methods Student s1; // Input data into object s1 s1.Read(); // Output data of object s1 s1.Print(); Using the dot notation!
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
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.
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!
C++ Classes cin >> base; while ( !cin.eof() && (base < 2 || base > 9) ) { // display message cin.ignore(MAX_LINE_SIZE, ‘\n’); cin >> base: }
More Class Methods class Student { private: . . . public: . . . string getFirst() { return firstName; } void setFirstName( string name ) { firstName = name; } };
More Class Methods class Student { private: . . . public: . . . string getGPA() { return gpa; } void setGPA( float value ) { gpa = value; } void updateGPA( float amount ) { gpa += amount; } };
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.";
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.";
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; }
//---------------------------------------- // Comment Block //---------------------------------------- // Includes // constants class Student { . . . } // Function prototypes int main() { . . . return 0; } // Function definitions
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