Advertisement
Guest User

OOP_9 Task1

a guest
Sep 7th, 2015
376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.48 KB | None | 0 0
  1. /*
  2. ააგეთ კლასი Employee ველებით : name, surname, salary.
  3.  
  4. 1) კლასს ჰქონდეს კონსტრუქტორი, რომელიც ფაილიდან წაიკითხავს
  5. მონაცემებს.
  6. 2) კლასს ჰქონდეს დესტრუქტორი
  7. 3) ჰქონდეს ფუნქცია რომელიც დათვლის წელიდაწში რამდენი ექნება ხელფასი.
  8. 4) დაწერეთ მეგობარი ფუნქცია,რომელიც დაბეჭდავს
  9. ამ ობიექტს შესაბამისი ინფორმაციული ტექსტებით.
  10. 5) ფაილ employee.txt -ში არის ინფორმაცია არაუმეტეს 500 თანამშრომლის შესახებ
  11. 6) main-ში შექმენით თანამშრომლების დინამიური მასივი.
  12. 7) მასივში დაალაგეთ თანამშრომლები ხელფასის მიხედვით. (ზრდით)
  13. 8) დაბეჭდეთ დალაგებული მასივის თითოეული ელემენტი კონსოლში
  14. 9) result.txt ფაილში ჩაწერეთ იმ თანამშრომლების ინფორმაცია,
  15. რომელთა ხელფასიც აღემატება 1000 ერთეულს
  16. */
  17.  
  18. #include <string>
  19. #include <iostream>
  20. #include <fstream>
  21. #include <algorithm>
  22.  
  23. using namespace std;
  24.  
  25. class Employee{
  26. private:
  27.     string name;
  28.     string surname;
  29.     double salary;
  30. public:
  31.     Employee();
  32.     Employee(ifstream& ifs);
  33.     ~Employee();
  34.     double yearSalary();
  35.     friend void print(Employee& emp);
  36.     string getName(){ return name; }
  37.     void setName(string n){ name = n; }
  38.     string getSurname(){ return surname; }
  39.     void setSurname(string s){ surname = s; }
  40.     double getSalary(){ return salary; }
  41.     void setSalary(double s){ salary = s; }
  42. };
  43.  
  44. Employee::Employee(){
  45.     name = "";
  46.     surname = "";
  47.     salary = 0.0;
  48. }
  49.  
  50. Employee::Employee(ifstream& ifs){
  51.     ifs >> name >> surname >> salary;
  52. }
  53.  
  54. double Employee::yearSalary(){
  55.     return salary * 12;
  56. }
  57.  
  58. void print(Employee& emp){
  59.     cout << "Employee Name : " << emp.name << "\t";
  60.     cout << "Employee Surname : " << emp.surname << "\t";
  61.     cout << "Employee Salary : " << emp.salary << "\t";
  62.     cout << "Employee Year Salary : " << emp.yearSalary() << endl;
  63. }
  64.  
  65. Employee::~Employee(){
  66.     cout << "Employee Deleted" <<endl;
  67. }
  68.  
  69. bool compare(Employee emp1, Employee emp2){
  70.     return emp1.getSalary() < emp2.getSalary();
  71. }
  72.  
  73. void write(Employee& emp){
  74.     static ofstream ofs("result.txt");
  75.     ofs << "Employee Name : " << emp.getName() << "\t";
  76.     ofs << "Employee Surname : " << emp.getSurname() << "\t";
  77.     ofs << "Employee Salary : " << emp.getSalary() << "\t";
  78.     ofs << "Employee Year Salary : " << emp.yearSalary() << endl;
  79. }
  80.  
  81. int main(){
  82.  
  83.     Employee* employees = new Employee[500];
  84.  
  85.     ifstream ifs("employee.txt");
  86.     int counter = 0;
  87.     while (!ifs.eof())
  88.     {
  89.         Employee temp(ifs);
  90.         employees[counter] = temp;
  91.         counter++;
  92.     }
  93.  
  94.     sort(employees, employees + counter, compare);
  95.  
  96.     for (int i = 0; i < counter; i++){
  97.         print(employees[i]);
  98.         if (employees[i].getSalary() > 1000){
  99.             write(employees[i]);
  100.         }
  101.     }
  102.  
  103.     return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement