Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- namespace Bonus
- {
- class Program
- {
- public const string fileData = "Data.txt";
- public const string fileResults = "Results.txt";
- public const int CMax = 100;
- static void Main(string[] args)
- {
- ResearcherList Researchers = new ResearcherList();
- string[] bankList;
- int bankListLength;
- Read(ref Researchers, fileData);
- double[] totalContributions = AllContributions(Researchers);
- SeperateBonuses(ref Researchers, totalContributions);
- TotalBonus(ref Researchers);
- bool[] LowPaidID = BellowAverageList(Researchers);
- AllBanks(Researchers, out bankList, out bankListLength);
- Print(Researchers, fileResults);
- BankTransactionPrint(Researchers, bankList, bankListLength, fileResults);
- LowPaidPrint(Researchers, LowPaidID);
- Console.WriteLine("All of the information is stored within the Results.txt file");
- Console.ReadKey();
- }
- private static void Read(ref ResearcherList _Researchers, string filePath)
- {
- using (StreamReader reader = new StreamReader(filePath))
- {
- string line;
- int[] bonus = new int[4];
- string[] values;
- line = reader.ReadLine();
- values = line.Split(';');
- bonus[0] = int.Parse(values[0]);
- bonus[1] = int.Parse(values[1]);
- bonus[2] = int.Parse(values[2]);
- bonus[3] = int.Parse(values[3]);
- _Researchers = new ResearcherList(bonus);
- while ((line = reader.ReadLine()) != null)
- {
- values = line.Split(';');
- string surname = values[0];
- string name = values[1];
- string bankName = values[2];
- int bankAccount = int.Parse(values[3]);
- double[] contribution = new double[4];
- for (int i = 0; i < 4; i++)
- {
- contribution[i] = double.Parse(values[i + 4]);
- }
- Researcher _Researcher = new Researcher(surname, name, bankName, bankAccount, contribution, 0);
- _Researchers.Append(_Researcher);
- }
- }
- }
- private static double[] AllContributions(ResearcherList _Researchers)
- {
- double[] totalContributions = new double[4];
- totalContributions[0] = 0;
- totalContributions[1] = 0;
- totalContributions[2] = 0;
- totalContributions[3] = 0;
- for (int j = 0; j < 4; j++)
- {
- for (int i = 0; i < _Researchers.Count; i++)
- {
- totalContributions[j] += _Researchers.Researchers[i].ResearchContribution[j];
- }
- }
- return totalContributions;
- }
- private static void SeperateBonuses(ref ResearcherList _Researchers, double[] totalContributions)
- {
- for (int i = 0; i < _Researchers.Count; i++)
- {
- for (int j = 0; j < 4; j++)
- {
- _Researchers.Researchers[i].Bonus[j] = ((_Researchers.Bonus[j] / totalContributions[j]) * _Researchers.Researchers[i].ResearchContribution[j]);
- }
- }
- }
- private static void TotalBonus(ref ResearcherList _Researchers)
- {
- double completeBonus;
- for (int i = 0; i < _Researchers.Count; i++)
- {
- completeBonus = 0;
- for (int j = 0; j < 4; j++)
- {
- completeBonus += _Researchers.Researchers[i].Bonus[j];
- }
- _Researchers.Researchers[i].TotalBonus = completeBonus;
- }
- }
- private static bool[] BellowAverageList(ResearcherList _Researchers)
- {
- bool[] LowPaidID = new bool[100];
- double averageBonus = (_Researchers.Bonus[0] + _Researchers.Bonus[1] + _Researchers.Bonus[2] + _Researchers.Bonus[3]) / _Researchers.Count;
- for(int i = 0; i < _Researchers.Count; i++)
- {
- if (averageBonus > _Researchers.Researchers[i].TotalBonus)
- LowPaidID[i] = true;
- else
- LowPaidID[i] = false;
- }
- return LowPaidID;
- }
- private static void AllBanks(ResearcherList _Researchers, out string[] bankList, out int bankListLength)
- {
- bankList = new string[100];
- bankList[0] = _Researchers.Researchers[0].BankName;
- bankListLength = 1;
- for (int i = 0; i < _Researchers.Count; i++)
- {
- int pos = Array.IndexOf(bankList, _Researchers.Researchers[i].BankName);
- if(pos < 0)
- {
- bankList[bankListLength++] = _Researchers.Researchers[i].BankName;
- }
- }
- }
- private static void Print(ResearcherList _Researchers, string fileResult)
- {
- _Researchers.Sort();
- using (StreamWriter writer = new StreamWriter(fileResult))
- {
- writer.WriteLine("Print");
- for(int i = 0; i < _Researchers.Count; i++)
- {
- writer.WriteLine(_Researchers.Researchers[i].ToString());
- }
- }
- }
- private static void BankTransactionPrint(ResearcherList _Researchers, string[] bankList, int bankListLength, string fileResult)
- {
- using (StreamWriter writer = new StreamWriter(fileResult, true))
- {
- writer.WriteLine("--------------------------------------------------------");
- writer.WriteLine("Print By Bank");
- for (int i = 0; i < bankListLength; i++)
- {
- writer.WriteLine("------------------------" + bankList[i] + "----------------------------");
- for (int j = 0; j < _Researchers.Count; j++)
- {
- if (_Researchers.Researchers[j].BankName == bankList[i])
- writer.WriteLine(_Researchers.Researchers[j].ToString());
- }
- }
- writer.WriteLine("--------------------------------------------------------");
- }
- }
- private static void LowPaidPrint(ResearcherList _Researchers, bool[] LowPaidID)
- {
- using (StreamWriter writer = new StreamWriter(fileResults, true))
- {
- writer.WriteLine("Bellow average payment employees");
- for(int i = 0; i < _Researchers.Count; i++)
- {
- if (LowPaidID[i])
- writer.WriteLine(_Researchers.Researchers[i].ToString());
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement