Presentation is loading. Please wait.

Presentation is loading. Please wait.

Enumeration Data Type enum Day {SUN, MON, TUE, WED, THU, FRI, SAT}; Day today; today = WED; if (today == FRI) cout << "We have a quiz or a test!"; else.

Similar presentations


Presentation on theme: "Enumeration Data Type enum Day {SUN, MON, TUE, WED, THU, FRI, SAT}; Day today; today = WED; if (today == FRI) cout << "We have a quiz or a test!"; else."— Presentation transcript:

1 Enumeration Data Type enum Day {SUN, MON, TUE, WED, THU, FRI, SAT}; Day today; today = WED; if (today == FRI) cout << "We have a quiz or a test!"; else if (today == THU) cout << “We have a Lab!"; else if (today == SAT) cout << “Party!"; else cout << “What to do?”; 1

2 Enumeration Data Type and const int enum Day {SUN, MON, TUE, WED, THU, FRI, SAT}; Day today; today = WED; if (today == FRI) … const int SUN = 0; const int MON = 1; const int TUE = 2; const int WED = 3; const int THU = 4; const int FRI = 5; const int SAT = 6; int today; today = 10; 2

3 Enumeration Data Type Operations on enum type assignment comparison Function return value Function parameters: & No Input/Output! 3

4 Using enum Type in C++ Classes enum Status {FRESHMAN, SOPHOMORE, JUNIOR, SENIOR}; class StudentType { private: string id; string firstName, lastName; float gpa; Status standing; public:... }; 4

5 Method Read of Class StudentType void Read() { cin >> id >> firstName >> lastName >> gpa; int credits; cin >> credits; if (credits <= 30) standing = FRESHMAN; else if (credits <= 60) standing = SOPHOMORE; else if (credits <= 90) standing = JUNIOR; else standing = SENIOR; return; } 5

6 Private Method Status GetStanding() { int credits; cin >> credits; if (credits <= 30) return FRESHMAN; else if (credits <= 60) return = SOPHOMORE; else if (credits <= 90) return = JUNIOR; else return = SENIOR; } 6

7 Method Read of Class StudentType void Read() { cin >> id >> firstName >> lastName >> gpa; standing = GetStanding(); return; } 7

8 Method Write of Class StudentType void Write() { cout << endl << setw(25) << id << endl << setw(25) << firstName << endl << setw(25) << lastName << endl << setw(25) << gpa; if (standing == FRESHMAN) cout << endl << setw(25) << “FRESHMAN”; else if (standing == SOPHOMORE) cout << endl << setw(25) << “SOPHOMORE”; else if (standing == JUNIOR) cout << endl << setw(25) << “JUNIOR”; else cout << endl << setw(25) << “SENIOR”; return; } 8

9 Private Method Void DisplayStanding() { if (standing == FRESHMAN) cout << endl << setw(25) << “FRESHMAN”; else if (standing == SOPHOMORE) cout << endl << setw(25) << “SOPHOMORE”; else if (standing == JUNIOR) cout << endl << setw(25) << “JUNIOR”; else cout << endl << setw(25) << “SENIOR”; return; } 9

10 Method Write of Class StudentType void Write() { cout << endl << setw(25) << id << endl << setw(25) << firstName << endl << setw(25) << lastName << endl << setw(25) << gpa; DisplayStanding(); return; } 10

11 enum Status {FRESHMAN, SOPHOMORE, JUNIOR, SENIOR}; class StudentType { private: string id, firstName, lastName; float gpa; Status standing; Status GetStanding() void DisplayStanding() public: StudentType() StudentType(string sid, string first, string last, float sgpa) StudentType(const StudentType& s) void Read() void Write() bool Equals(const StudentType& s) // if (s1.Equals(s2))... }; 11

12 Class SectionType const int MAX_SIZE = 26; enum Status {FRESHMAN, SOPHOMORE, JUNIOR, SENIOR}; class StudentType {... }; class SectionType { private: int numStudents; StudentType students[MAX_SIZE]; public: void Read()... }; 12

13 Class SectionType const int MAX_SIZE = 26; enum Status {FRESHMAN, SOPHOMORE, JUNIOR, SENIOR}; class StudentType class SectionType { private: int numStudents; StudentType students[MAX_SIZE]; public: void Read() { cin >> numStudents; for (int i = 0; i < numStudents; i ++) students[i].Read(); }... }; 13

14 Class SectionType class SectionType { private: int numStudents; StudentType students[MAX_SIZE]; public: SectionType() { numStudents = 0; } void Read() { Student s(cin); while ( cin ) { students[numStudents] = s; numStudents ++; s = Student(cin); } }... }; 14

15 Class SectionType class SectionType { private: int numStudents; StudentType students[MAX_SIZE]; public: void Read() { Student s(cin); while ( cin ) { students[numStudents ++] = s; // same as // students[numStudents] = s; // numStudents ++; s = Student(cin); } }... }; 15

16 const int MAX_SIZE = 26; enum Status {FRESHMAN, SOPHOMORE, JUNIOR, SENIOR}; class StudentType class SectionType int main() { SectionType CS143_S2; CS143_S2.Read(); // Find the freshman student with the highest GPA among // all freshman students in CS143_S2 } 16

17 // // The function finds and returns the index of a Freshman // student who has the highest GPA among all Freshman // students in a section, assuming there is at least one // Freshman student in the section. // Parameter: ( in ) // int IndexOfMaxFreshmanGPA(const SectionType& sec) { int index; // Not 0! float maxGPA = 0.0; for (int i = 0; i < sec.numStudents; i ++) if (sec.students[i].standing == FRESHMAN && sec.students[i].gpa > maxGPA) { index = i; maxGPA = sec.students[i].gpa; } return index; } 17

18 const int MAX_SIZE = 26; enum Status {FRESHMAN, SOPHOMORE, JUNIOR, SENIOR}; class StudentType class SectionType int IndexOfMaxFreshmanGPA(const SectionType& sec); int main() { SectionType CS143_S2; CS143_S2.Read(); // Find the freshman student with the highest GPA among // all freshman students in CS143_S2 int index = IndexOfMaxFreshmanGPA(CS143_S2); cout << “The Freshman student with highest GPA ” << “ among all freshman students in Section 2 of CS143 ” ?... } 18

19 Class SectionType class SectionType { private: int numStudents; StudentType students[MAX_SIZE]; public: Student StudentWithMaxGPAByStatus(Status s) { int index; float maxGPA = 0.0; for (int i = 0; i < numStudents; i ++) if (students[i].standing == s && students[i].gpa > maxGPA) { index = i; maxGPA = students[i].gpa; } return students[index]; } }; 19

20 int main() { SectionType CS143_S2; CS143_S2.Read(); // Find the freshman student with the highest GPA among // all freshman students in CS143_S2 Student s = CS143_S2. StudentWithMaxGPAByStatus(FRESHMAN); cout << “The Freshman student with highest GPA among all ” << “freshman students in Section 2 of CS143 is ”; s.Write() // Find the sophomore student with the highest GPA among // all sophomore students in CS143_S2 Student s = CS143_S2. StudentWithMaxGPAByStatus(SOPHOMORE); cout << “The sophomore student with highest GPA among all ” << “sophomore students in Section 2 of CS143 is ”; s.Write()... } 20

21 Schedule Program 6 Required to work in Teams of two students Sign up by 3 pm, Monday, May 2 Update Program 5 Using enum types. 21


Download ppt "Enumeration Data Type enum Day {SUN, MON, TUE, WED, THU, FRI, SAT}; Day today; today = WED; if (today == FRI) cout << "We have a quiz or a test!"; else."

Similar presentations


Ads by Google