С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/29: Рейтинг темы: голосов - 29, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 20.05.2020
Сообщений: 4

Система расчета оплаты труда сотрудников

29.06.2020, 19:22. Показов 5486. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Описание

Есть организация.
Центральный офис располагается в городе (пусть Москва). Имеются филиалы организации в различных городах России.
Организация разделена на подразделения. Условно можно назвать их “Подразделение 1”, “Подразделение 2” и т.д.

Сотрудник - основные атрибуты ФИО, должность. Сотрудник работает в одном из филиалов и одном из подразделений.
Подразделения могут быть территориально распределены. Т.е., например, Иванов Иван работает в Подразделении 1 в центральном офисе, а Петров Петр - в Подразделении 1 в филиале, располагающемся в г. Санкт-Петербург

Каждый сотрудник получает заработную плату. Сотрудники по способу расчета зарплаты разделяются на тех, кто получает фиксированной ежемесячную оплату (работают полный день) и получающих почасовую оплату (сдельно).

Примем для упрощения, что кол-во рабочих часов в каждом календарном месяце фиксировано и равняется 150.

Вне зависимости от формы оплаты каждый сотрудник ведет учет своего рабочего времени в течение месяца. В конце месяца сумма отработанных часов загружается в нашу систему и производится расчет заработной платы по следующим формулам:
● фиксированная ежемесячная оплата:
{Размер фикс. ежемес. оплаты} / {Общее кол-во часов} * {Кол-во отработанных часов}
● почасовая оплата
{Размер часовой оплаты} * {Кол-во отработанных часов}

Необходимо реализовать:

Примечание: для хранения данных для упрощения использовать коллекции (как это может упростить не понимаю )

1. Возможность добавления/удаления филиалов организации
2. Возможность добавления/удаления подразделений
3. Возможность добавлять/удалять сотрудника (с необходимыми атрибутами)
4. Возможность сменить сотруднику тип и размер оплаты
5. Возможность ввода информации об отработанном сотрудниками времени за текущий месяц
6. Произвести расчет зарплаты за месяц

ЗАТЫК В РЕАЛИЗАЦИИ СТРУКТУРЫ. КАК СДЕЛАТЬ ЧТОБЫ СОХРАНЯЛАСЬ ВЛОЖЕННОСТЬ И ВСЕ РАБОТАЛО ПРИ ДОБАВЛЕНИИ (КОЛ-ВО ФИЛИАЛОВ, ПОДРАЗДЕЛЕНИЙ И СОТРУДНИКОВ НЕ ОГРАНИЧЕНО)...И УДАЛЯЛОСЬ ВМЕСТЕ С ПОТОМКАМИ ПРИ УДАЛЕНИИ? КАК ЛУЧШЕ/ЛЕГЧЕ РЕАЛИЗОВАТЬ КОНСОЛЬНОЕ ПРИЛОЖЕНИЕ ИЛИ ВСЕ-ТАКИ FORMS?

Отчеты
1. Список филиалов в алфавитном порядке
2. Список подразделений в алфавитном порядке
3. Список филиалов в алфавитном порядке с указанием кол-ва работающих сотрудников в филиале
4. Расчетный лист за текущий месяц в виде для филиала F и подразделения S (указывается пользователем) в виде списка сотрудников в алфавитном порядке с указанием суммы зарплаты
5. Список филиалов в алфавитном порядке с указанием кол-ва работающих сотрудников в филиале с группировкой по подразделениям.
Например:
Филиал 1:
Подразделение 1: 10 чел
Подразделение 2: 2 чел

Филиал 2:
Подразделение 1: 5 чел
Подразделение 3: 4 чел
6. Список филиалов с указанием средней зарплаты в филиале
7. Список сотрудников, размер зарплаты в текущем месяце которых > X (задается пользователем)
8. Список сотрудников с фиксированной месячной оплатой, которые в текущем месяце отработали все требуемые часы согласно трудовому календарю.
9. Список N (задается пользователем) сотрудников с наибольшим размером зарплаты в текущем месяце


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace Консоль
{
    public class Sotrudnik : IComparable<Sotrudnik>
    {
 
        public Sotrudnik(string StrFIO, string StrWork, int StrHours, bool StrSposob, double StrZP)
        {
            this.StrFIO = StrFIO;
            this.StrWork = StrWork;
            this.StrSposob = StrSposob;
            this.StrHours = StrHours;
            this.StrZP = StrZP;
        }
 
        public string StrFIO { get; private set; }
        public string StrWork { get; private set; }
        public int StrHours { get; set;}
        public double StrZP { get; set; }
        public bool StrSposob { get; set; }
 
        public int CompareTo(Sotrudnik that)
        {
            return this.StrFIO.CompareTo(that.StrFIO);
        }
    }
 
 
    class Program
    {
 
        static void Main(string[] args)
        {
 
            // создаем массив объектов класса 
            Sotrudnik[] SotrudnikList = new Sotrudnik[5];
 
            for (int i = 0; i < SotrudnikList.Length; i++)
            {
                Console.WriteLine("Добавление информации о новом сотруднике {0} из {1}", i + 1, SotrudnikList.Length);
                Console.WriteLine("Ввведите фамилию и инициалы сотрудника:");
                string StrFIO = Console.ReadLine();
                Console.WriteLine("Введите должность сотрудника:");
                string StrWork = Console.ReadLine();
                Console.WriteLine("Введите количество отработанных часов сотрудника:");
                int StrHours = Int32.Parse(Console.ReadLine());
                Console.WriteLine("Введите способ оплаты труда сотрудника 1 или 2 (1-фиксированная ежемесячная оплата, 2-почасовая оплата):");
                string chois = Console.ReadLine();
                if (chois == "1")
                    StrSposob = true;//ругается не существует в текущем контексте
                if (chois == "2")
                    StrSposob = false;
                else
                {
                    Console.WriteLine("Введите 1 или 2");
                }
 
                if (StrSposob = true)
                {
                    int fix = 20000;//размер фиксированной ежемесячной оплаты (придумала)
                    int hours = 150; //общее количество часов
                    StrZP = (fix / hours) * StrHours;
                }
 
                if (StrSposob = false)
                {
                    int zphour = 200; //размер часовая оплаты (придумала) 
                    StrZP = zphour * StrHours;
                }
               
                    SotrudnikList[i] = new Sotrudnik(StrFIO, StrWork, StrHours, StrSposob, StrZP);
                Console.Clear();
                Console.WriteLine("****************************");
                Console.WriteLine("* Сотрудник успешно добавлен *");
                Console.WriteLine("****************************");
                Console.WriteLine("\nНажмите любую клавишу для продолжения...");
                Console.ReadKey();
                Console.Clear();
            }
 
            Console.Clear();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine("******************************************");
            Console.WriteLine("\n            Список сотрудников");
            Console.WriteLine();
            for (int i = 0; i < 5; i++)
            {
                Console.Write("Сотрудник:{0}   Должность:{1}   Отработанные часы:{2}   Способ оплаты:{3}   Зарплата:{4}", SotrudnikList[i].StrFIO, SotrudnikList[i].StrWork, SotrudnikList[i].StrHours, SotrudnikList[i].StrSposob, SotrudnikList[i].StrZP);
                for (i = 0; i < 5; i++)
                {
 
                    Console.Write(" {0}", SotrudnikList[i].StrHours);
                }
                Console.WriteLine();
            }
           
            Console.ReadKey();
        }
 
 
 
        //
        public static Comparison<Sotrudnik> StrFIO { get; set; }
    }
}
Почему не имеет право на существование подобный код и соответственно не "не существуют в данно контексте" StrSposob, StrZP?

HELP!!!!! Заранее благодарю
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.06.2020, 19:22
Ответы с готовыми решениями:

Система оплаты труда программиста
Поделитесь, пожалуйста как на предприятиях оплачивается работа программистов, есть конкретная ставка или зарплата зависит от выполненной...

Программа для расчета оплаты труда в зависимости от проработанного количества дней.
Программа для расчета оплаты труда в зависимости от проработанного количества дней.

Расчет сдельной оплаты труда
Здравствуйте! Я из разряда очень начинающих... Поэтому, если мои вопросы будут глупыми, не судите строго, если можно)) Я технолог на...

3
315 / 244 / 149
Регистрация: 03.10.2017
Сообщений: 886
Записей в блоге: 1
29.06.2020, 20:46
Транслитирация - это самое ужасное что можно увидеть
0
172 / 91 / 36
Регистрация: 22.05.2020
Сообщений: 308
30.06.2020, 00:24
Ritka2310, в вашей программе имя StrSposob обозначает две сущности: свойство класса Sotrudnik и один из параметров конструктора этого класса. В строках 55, 57 и т.д. происходит обращение к некоей сущности с именем StrSposob, но сама сущность не задана - ещё нет сотрудника, он будет создан только в строке 76. Чтобы избежать указанной ошибки, вам стоит создать сущность нужного типа с нужным именем в контексте функции Main, например так:
C#
1
2
3
4
5
static void Main(string[] args)
{
    bool StrSposob = false;
    double StrZP = 0.0
    ...
1
0 / 0 / 0
Регистрация: 20.05.2020
Сообщений: 4
28.07.2020, 11:52  [ТС]
Благодарю, вопрос решился)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.07.2020, 11:52
Помогаю со студенческими работами здесь

Минимальный размер оплаты труда
Среди 44 работников предприятия составить список фамилий с уровнем среднемесячного дохода не менее 3*МРОТ. МРОТ=83,49 рублей. И начислить...

Расчет оплаты труда по сдельным нарядам
Помогите сделать задание,хотя бы 3 пункт. Первые 2 пункта я сделала (файл во вложении),3,4,5,6 пункты - не могу. Буду очень благодарна!!! ...

Ведомость для начисления оплаты труда
необходимо обеспечить выполнение следующих действий: ввод информации в файл; корректировка содержимого файла; редактирование...

програмка для сдельной оплаты труда в строительстве
нужна программа для расчета сдельной оплаты труда на 200 человек, и никак не могу решить этот вопрос дописывать 1с дорого, вот думаю...

По какой системе оплаты труда Вы получаете заработную плату?
Здравствуйте! Модератор, пожалуйста, не удаляйте тему хотя бы пару дней, просто очень нужны данные для статистики. Прошу прощения. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru