In Charles Convenience store, there are three types of employees. The types are manager, general worker and trainee. Employee name and id are the attributes for each of the employees. The manager gets a weekly salary of $1500.00 dollars plus 5% of the sales amount of that week. General workers and trainees also get salary on a weekly basis and they get overtime for working more than 40 hours. If the hours worked by general worker are below 40 then they get $10.00 per hour. Overtime rate for general workers is $15.00 per hour. Normal hourly pay rate for trainees is $8.00 per hour and overtime hourly pay rate is $12.00 per hour.
Write a program to calculate weekly salary of the manager, general workers and trainees using C++ or Java language. Incorporate object-oriented programming concepts like encapsulation, generalization and polymorphism in your code.
Report should contain the UML diagram.