Using C#
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.
Create a Manager class that is derived from Worker class.
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.
In the text file, The first number is the number of workers/managers in the file.
Txt files are aligned as followed
worker.txt
5 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
3 Sam Reza M000411 1995 51000 2005 Jose Perez M000412 1998 55000 2002 Rachel Pena M000413 2000 48000 2010
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;
}
}
}
\color{blue}\underline{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);
}
}
\color{blue}\underline{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;
}
}
}
\color{blue}\underline{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
}
}
}
\color{blue}\underline{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.");
}
}
}
}
\color{blue}\underline{worker.txt:}
cristiano ronaldo 7 2004 100000
lionel messi 10 2006 80000
gareth bale 11 2008 65000
\color{blue}\underline{manager.txt:}
arsene wenger 1 1994 25000 2000
jose morinho 2 2000 50000 2006
Output Screenshot:-
----------------------------------------------------------------
Please give me a UPVOTE. Thank you :)
Get Answers For Free
Most questions answered within 1 hours.