פתרון משימה 1 - מחלקת Employee
 
נבנה כעת את המחלקה Employee.
נגדיר למחלקה בנאי, הבונה אובייקט ריק, ונגדיר פונקציה Read המקבלת מספר עובד, ומעתיקה את נתוני העובד מהרשומה בקובץ לאובייקט העובד.
נוסיף גם פונקציה, Update, הכותבת את נתוני העובד חזרה לקובץ לאחר השינוי, ופונקציות הפותחות וסוגרות את קובץ העובדים:

class Employee {
public:
 Employee();
 void Read(int number);
 void Update();
 static void Open();
 static void Close();
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

שים לב שהפונקציות לפתיחת וסגירת הקובץ הן סטטיות, וזאת מכיוון שפעולות אלו מתבצעות עבור כל העובדים ולא רק לאובייקט Employee מסוים.
כעת נוסיף למחלקה משתני מחלקה. משתני המחלקה מתאימים לשדות המרכיבים כל רשומת עובד. בקובץ עובדים אמיתי יהיו ודאי שדות רבים, אך במקרה זה, נוסיף נתונים ספורים בלבד: שם העובד, מספר העובד, משכורת, סוג משכורת, תאריך העסקה ומצב העובד.

class Employee {
protected:
 char name[EmpNameMax];
 int number;
 long salary;
 SalaryType salaryType;
 Date hireDate;
 EmpStatus status;
public:
 Employee();
 void Read(int number);
 void Update();
 static void Open();
 static void Close();
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

נספק גם הגדרה לגודל EmpNameMax, לפני הגדרת המחלקה:

const int EmpNameMax = 32;
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

ל-SalaryType, המתאר את סוג המשכורת, גלובלית או לפי שעה:

enum SalaryType {
 SalTypeSalary = 0;
 SalTypeHourly = 1;
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

והגדרה למצב העובד, EmpStatus, פעיל או לא פעיל:

enum EmpStatus {
 EmpStatusActive = 0;
 EmpStatusInActive = 1;
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט