1 / 21

Enumeration Data Type

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?”;.

drew
Download Presentation

Enumeration Data Type

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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?”;

  2. Enumeration Data Typeand 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;

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

  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: . . . };

  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; }

  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; }

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

  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; }

  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; }

  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; }

  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)) . . . };

  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() . . . };

  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(); } . . . };

  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); } } . . . };

  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); } } . . . };

  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 }

  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; }

  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 ” ? . . . }

  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]; } };

  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() . . . }

  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.

More Related