C#
Решить текстовую задачу с использованием словаря на C#
Среди работников данного предприятия найти тех, чья заработная плата за месяц является ниже средней по предприятию, а также распечатать список тех, кто проработал на предприятии более 10 лет с указанием их фамилии, зарплаты, стажа работы и должности.
using System;
using System.Collections.Generic;
class Company
{
public Company(string title, int numberOfEmployees, int salary)
{
Title = title;
NumberOfEmployees = numberOfEmployees;
Salary = salary;
}
public string Title { get; }
public int NumberOfEmployees { get; set; }
public int Salary { get; }
}
class Work
{
public Work(string title, int salary)
{
Title = title;
Salary = salary;
}
public string Title { get; }
public int Salary { get; }
}
struct Worker
{
public Worker(string surname, int salary, int workExperience, Work post)
{
Surname = surname;
Salary = salary;
WorkExperience = workExperience;
Post = post;
}
public string Surname { get; }
public int Salary { get; }
public int WorkExperience { get; }
public Work Post { get; }
public override string ToString() => Surname + ", " + Salary + ", " + WorkExperience + ", " + Post;
}
class Program
{
static void Main()
{
Company company = new Company("C# studio", 15, 25000);
var workers = new Dictionary();
Random rnd = new Random();
for (int i = 0; i < company.NumberOfEmployees; i++)
{
Work work = new Work("Work " + (i + 1), rnd.Next(10000, 30000));
workers.Add(i, new Worker("Name " + (i + 1), rnd.Next(work.Salary / 2, work.Salary * 2), rnd.Next(0, 15), work));
}
Console.WriteLine("Список тех, у кого заработная плата за месяц является ниже средней по предприятию:");
ShowWithLowerAverageSalary(workers);
Console.WriteLine("Список тех, кто проработал на предприятии более 10 лет:");
ShowWithMoreTenYearsExperience(workers);
Console.ReadLine();
}
private static void ShowWithLowerAverageSalary(Dictionary workers)
{
for (int i = 0; i < workers.Count; i++)
if (workers[i].Post.Salary > workers[i].Salary)
Console.WriteLine(workers[i].Surname + "-" + workers[i].Salary);
}
private static void ShowWithMoreTenYearsExperience(Dictionary workers)
{
for (int i = 0; i < workers.Count; i++)
if (workers[i].WorkExperience > 10)
Console.WriteLine(workers[i].ToString());
}
}
using System.Collections.Generic;
class Company
{
public Company(string title, int numberOfEmployees, int salary)
{
Title = title;
NumberOfEmployees = numberOfEmployees;
Salary = salary;
}
public string Title { get; }
public int NumberOfEmployees { get; set; }
public int Salary { get; }
}
class Work
{
public Work(string title, int salary)
{
Title = title;
Salary = salary;
}
public string Title { get; }
public int Salary { get; }
}
struct Worker
{
public Worker(string surname, int salary, int workExperience, Work post)
{
Surname = surname;
Salary = salary;
WorkExperience = workExperience;
Post = post;
}
public string Surname { get; }
public int Salary { get; }
public int WorkExperience { get; }
public Work Post { get; }
public override string ToString() => Surname + ", " + Salary + ", " + WorkExperience + ", " + Post;
}
class Program
{
static void Main()
{
Company company = new Company("C# studio", 15, 25000);
var workers = new Dictionary();
Random rnd = new Random();
for (int i = 0; i < company.NumberOfEmployees; i++)
{
Work work = new Work("Work " + (i + 1), rnd.Next(10000, 30000));
workers.Add(i, new Worker("Name " + (i + 1), rnd.Next(work.Salary / 2, work.Salary * 2), rnd.Next(0, 15), work));
}
Console.WriteLine("Список тех, у кого заработная плата за месяц является ниже средней по предприятию:");
ShowWithLowerAverageSalary(workers);
Console.WriteLine("Список тех, кто проработал на предприятии более 10 лет:");
ShowWithMoreTenYearsExperience(workers);
Console.ReadLine();
}
private static void ShowWithLowerAverageSalary(Dictionary workers)
{
for (int i = 0; i < workers.Count; i++)
if (workers[i].Post.Salary > workers[i].Salary)
Console.WriteLine(workers[i].Surname + "-" + workers[i].Salary);
}
private static void ShowWithMoreTenYearsExperience(Dictionary workers)
{
for (int i = 0; i < workers.Count; i++)
if (workers[i].WorkExperience > 10)
Console.WriteLine(workers[i].ToString());
}
}
Дерзай
Похожие вопросы
- Помогите решить простую задачу на c#
- Решить задачу через C#
- Помогите решить задачу C#! С помощью switch case.
- Нужна помощь с задачей C#
- Решить задачи C#
- C# Помогите решить задачу! Нужен полный код!
- Сегодня начал учить c#, решил сделать калькулятор простой и столкнулся с такой ошибкой при компиляции, хелпуйте.
- Помогите решить задачу на c#
- C# Помогите с Текстовым редактором
- Задача на языке C#
main.cs(77,48): error CS0305: Using the generic type `System.Collections.Generic.Dictionary' requires `2' type argument(s)
/usr/lib/mono/4.5/mscorlib.dll (Location of the symbol related to previous error)
main.cs(84,52): error CS0305: Using the generic type `System.Collections.Generic.Dictionary' requires `2' type argument(s)
/usr/lib/mono/4.5/mscorlib.dll (Location of the symbol related to previous error)