Question

In: Computer Science

In C# please and thanks so much, Create an Employee class with five fields: first name,...

In C# please and thanks so much,

Create an Employee class with five fields: first name, last name, workID, yearStartedWked, and initSalary. It includes constructor(s) and properties to initialize values for all fields.

Create an interface, SalaryCalculate, class that includes two functions: first,CalcYearWorked() function, it takes one parameter (currentyear) and calculates the number of year the worker has been working. The second function, CalcCurSalary() function that calculates the current year salary.

Create a Worker classes that is derived from Employee and SalaryCalculate class.

  • In Worker class, it includes two field, nYearWked and curSalary, and constructor(s). It defines the CalcYearWorked() function using (current year – yearStartedWked) and save it in the nYearWked variable. It also defines the CalcCurSalary() function that calculates the current year salary by using initial salary with 3% yearly increment.

Create a Manager class that is derived from Worker class.

  • In Manager class, it includes one field: yearPromo and constructor(s). Itincludes a CalcCurSalary function that calculate the current year salary by overriding the base class function using initial salary with 5% yearly increment plus 10% bonus. The manager’s salary calculates in two parts. It calculates as a worker before the year promoted and as a manager after the promotion.

Write an application that reads the workers and managers information from files (“worker.txt” and “manager.txt”) and then creates the dynamic arrays of objects. Prompt the user for current year and display the workers’ and managers’ current information in separate groups: first and last name, ID, the year he/she has been working, and current salary.

Please make streamreader read text from file and the new line so that the text files stay original.

TEXT FILES:

worker.txt

Hector
Alcoser
A001231
1999
24000
Anna
Alaniz
A001232
2001
34000
Lydia
Bean
A001233
2002
30000
Jorge
Botello
A001234
2005
40000
Pablo
Gonzalez
A001235
2007
35000

manager.txt

Sam
Reza
M000411
1995
51000
2005
Jose
Perez
M000412
1998
55000
2002
Rachel
Pena
M000413
2000
48000
2010

Solutions

Expert Solution


//Employee.cs//
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyNamespace
{
    public class Employee
    {
        private string firstName;

        public string FirstName
        {
            get { return firstName; }
            set { firstName = value; }
        }
        private string lastName;

        public string LastName
        {
            get { return lastName; }
            set { lastName = value; }
        }
        private int wordId;

        public int WordId
        {
            get { return wordId; }
            set { wordId = value; }
        }
        private int yearStartedWked;

        public int YearStartedWked
        {
            get { return yearStartedWked; }
            set { yearStartedWked = value; }
        }
        private double initSalary;

        public double InitSalary
        {
            get { return initSalary; }
            set { initSalary = value; }
        }

        public Employee()
        {
            firstName = "";
            lastName = "";
            wordId = 0;
            yearStartedWked = 0;
            initSalary = 0;
        }

        public Employee(string fN, string lN, int id, int yearStarted, double salary)
        {
            firstName = fN;
            lastName = lN;
            wordId = id;
            yearStartedWked = yearStarted;
            initSalary = salary;
        }

    }
}
//SalaryCalculate.cs//

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyNamespace
{
    public interface SalaryCalculate
    {
        void CalcYearWorked(int currentYear);
        void CalcCurSalary(int currentYear);
    }
}
// Worker.cs//

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyNamespace
{
    public class Worker : Employee, SalaryCalculate
    {
        private int nYearWked;

        public int NYearWked
        {
            get { return nYearWked; }
            set { nYearWked = value; }
        }
        private double curSalary;

        public double CurSalary
        {
            get { return curSalary; }
            set { curSalary = value; }
        }

        public Worker(string fN, string lN, int id, int yearStarted, double salary) : base(fN, lN, id, yearStarted, salary)
        {
          
        }

        public void CalcYearWorked(int currentYear)
        {
            nYearWked = currentYear - YearStartedWked;
        }

        public void CalcCurSalary(int currentYear)
        {
            double salary = InitSalary;
            for (int i = YearStartedWked; i <= currentYear; ++i)
            {
                salary *= 1.03;
            }
            CurSalary = salary;
        }

    }
}
//Manager.cs//

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyNamespace
{
    public class Manager : Worker
    {
        private int yearPromo;

        public int YearPromo
        {
            get { return yearPromo; }
            set { yearPromo = value; }
        }

        public Manager(string fN, string lN, int id, int yearStarted, double salary, int yearPromo)
            : base(fN, lN, id, yearStarted, salary)
        {
            this.yearPromo = yearPromo;
        }

        public void CalcCurSalary(int currentYear)
        {
            double salary = InitSalary;
            for (int i = YearStartedWked; i <= currentYear; ++i)
            {
                if (i < yearPromo)
                    salary *= 1.03;
                else
                    salary *= 1.05;
            }
            CurSalary = salary * 1.2;   // 20% bonus
        }

    }
}
//EmployeeMain.cs//

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace MyNamespace
{
    class EmployeeMain
    {
        public static void Main()
        {
            List<Worker> employees = new List<Worker>();
            using (StreamReader sr = new StreamReader(new FileStream("worker.txt", FileMode.Open)))
            {
                string line;
                while((line = sr.ReadLine()) != null)
                {
                    string[] words = line.Split(' ');
                    employees.Add(new Worker(words[0], words[1], Convert.ToInt32(words[2]), Convert.ToInt32(words[3]), Convert.ToDouble(words[4])));
                }
            }
            List<Manager> managers = new List<Manager>();
            using (StreamReader sr = new StreamReader(new FileStream("manager.txt", FileMode.Open)))
            {
                string line;
                while ((line = sr.ReadLine()) != null)
                {
                    string[] words = line.Split(' ');
                    managers.Add(new Manager(words[0], words[1], Convert.ToInt32(words[2]), Convert.ToInt32(words[3]), Convert.ToDouble(words[4]), Convert.ToInt32(words[5])));
                }
            }
            Console.Write("Enter current year: ");
            int year = Convert.ToInt32(Console.ReadLine());
            for (int i = 0; i < employees.Count; ++i)
            {
                employees[i].CalcYearWorked(year);
                employees[i].CalcCurSalary(year);
                Console.WriteLine("Worker: " + employees[i].LastName + ", " + employees[i].FirstName + "'s salary is: " + employees[i].CurSalary + " and worked a total of " + employees[i].NYearWked + " years.");
            }
            for (int i = 0; i < managers.Count; ++i)
            {
                managers[i].CalcYearWorked(year);
                managers[i].CalcCurSalary(year);
                Console.WriteLine("Manager: " + managers[i].LastName + ", " + managers[i].FirstName + "'s salary is: " + managers[i].CurSalary + " and worked a total of " + managers[i].NYearWked + " years.");
            }
        }
    }
}

Related Solutions

C# (Thank you in advance) Create an Employee class with five fields: first name, last name,...
C# (Thank you in advance) Create an Employee class with five fields: first name, last name, workID, yearStartedWked, and initSalary. It includes constructor(s) and properties to initialize values for all fields. Create an interface, SalaryCalculate, class that includes two functions: first,CalcYearWorked() function, it takes one parameter (currentyear) and calculates the number of year the worker has been working. The second function, CalcCurSalary() function that calculates the current year salary. Create a Worker classes that is derived from Employee and SalaryCalculate...
Implement an Employee class that includes data fields to hold the Employee’s ID number, first name,...
Implement an Employee class that includes data fields to hold the Employee’s ID number, first name, last name, and hourly pay rate (use of string datatype is not allowed). Create an array of five Employee objects. Input the data in the employee array. Write a searchById() function, that ask the user to enter an employee id, if its present, your program should display the employee record, if it isn’t there, simply print the message ”Employee with this ID doesn’t exist”....
This is 1 java question with its parts. Thanks so much! Create a class named Student...
This is 1 java question with its parts. Thanks so much! Create a class named Student that has fields for an ID number, number of credit hours earned, and number of points earned. (For example, many schools compute grade point averages based on a scale of 4, so a three-credit-hour class in which a student earns an A is worth 12 points.) Include methods to assign values to all fields. A Student also has a field for grade point average....
in Java, Create a class called EMPLOYEE that includes three instance variables – a first name...
in Java, Create a class called EMPLOYEE that includes three instance variables – a first name (type String), a last name (type String) and a monthly salary (double). Provide a constructor that initializes the three instance variables. Provide a set and a get method for each instance variable. If the monthly salary is not positive, do not set its value. Write a test app names EmployeeTest that demonstrates class EMLOYEE’s capabilities. Create two EMPLOYEE objects and display each object’s yearly...
In C# thanks please, Design a class named Person with properties for holding a person’s name,...
In C# thanks please, Design a class named Person with properties for holding a person’s name, address, and telephone number. Design a class named Customer, which is derived from the Person class. The Customer class should have the variables and properties for the customer number, customer email, a spentAmount of the customer’s purchases, and a Boolean variable indicating whether the customer wishes to be on a mailing list. It also includes a function named calcAmount that calculates the spentAmount. All...
This is 1 java question with its parts. Thanks! Create a class named Lease with fields...
This is 1 java question with its parts. Thanks! Create a class named Lease with fields that hold an apartment tenant’s name, apartment number, monthly rent amount, and term of the lease in months. Include a constructor that initializes the name to “XXX”, the apartment number to 0, the rent to 1000, and the term to 12. Also include methods to get and set each of the fields. Include a nonstatic method named addPetFee() that adds $10 to the monthly...
with PHP Create a class called Employee that includes three instance variables—a first name (type String),...
with PHP Create a class called Employee that includes three instance variables—a first name (type String), a last name (type String) and a monthly salary int). Provide a constructor that initializes the three instance data member. Provide a set and a get method for each instance variable. If the monthly salary is not positive, do not set its 0. Write a test app named EmployeeTest that demonstrates class Employee’s capabilities. Create two Employee objects and display each object’s yearly salary....
Please Reply with an answer as soon as possible, will appreciate it so much. Thanks in...
Please Reply with an answer as soon as possible, will appreciate it so much. Thanks in advance. Case Problem: You are a HR assistant manager in a company employing many expatriates from around the world. Your company has selected ‘FutureFunds Pension Planners’ to provide your employees with an international pension plan that takes advantage of tax laws. The plan allows the company to make tax free contributions to the employee pension funds. It also allows Individuals enrolling in the plan...
Design a class named Employee. The class should keep the following information in fields: ·         Employee...
Design a class named Employee. The class should keep the following information in fields: ·         Employee name ·         Employee number in the format XXX–L, where each X is a digit within the range 0–9 and the L is a letter within the range A–M. ·         Hire date Write one or more constructors and the appropriate accessor and mutator methods for the class. Next, write a class named ProductionWorker that inherits from the Employee class. The ProductionWorker class should have fields...
In java, create a class named Contacts that has fields for a person’s name, phone number...
In java, create a class named Contacts that has fields for a person’s name, phone number and email address. The class should have a no-arg constructor and a constructor that takes in all fields, appropriate setter and getter methods. Then write a program that creates at least five Contact objects and stores them in an ArrayList. In the program create a method, that will display each object in the ArrayList. Call the method to demonstrate that it works. Include javadoc...
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT