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

Как из метода отправить переменную в другой метод и продолжить выполнение метода?

30.10.2019, 13:11. Показов 5851. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста, как из метода отправить переменную в другой метод и продолжить выполнение метода?
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
static string RedactFIO(string PoiskFamilii, string IzmenenieFamilii)
        {
            string sotrudniki = "";
            string sotrud = "";
            string sotrud2 = "";
            PoiskFamilii = PoiskFamilii.Replace(" ", "-");
            IzmenenieFamilii = IzmenenieFamilii.Replace(" ", "-");
            string collichestvo = sotrudniki;
            int KollichestvoSotrudnikov = collichestvo.Length - collichestvo.Replace(" ", "").Length;
            for (int i2 = 0; i2 < KollichestvoSotrudnikov - 1; i2++)
            {
                sotrud = sotrudnik(sotrudniki, (i2));
 
                if (sotrud.Contains(PoiskFamilii) == true)
                {
                    sotrud2 = sotrud;
                    sotrud = sotrud.Replace(PoiskFamilii, IzmenenieFamilii);
                    int DlinaStroki = IzmenenieFamilii.Length - IzmenenieFamilii.Replace(" ", "").Length;
                    if (DlinaStroki > 1)
                        sotrud = sotrud.Replace("0", "");
                    sotrudniki = sotrudniki.Replace(sotrud2, sotrud);
                    break;
                }
            }
            return sotrudniki;
        }
Вот это нужно отправить:
C#
1
sotrud = sotrudnik(sotrudniki, (i2));
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.10.2019, 13:11
Ответы с готовыми решениями:

Остановить и продолжить выполнение метода. Общий поток при этом должен ожидать
Всем привет! Есть метод 1, который выполняется и останавливается в процессе, затем выполняется метод 2, когда он завершается, то...

Как передать переменную с одного метода в другой
Есть у меня два метода, вот первый public function get_station_page($page) { $result_row =...

Как передать переменную из одного метода в другой?
Возник вопрос. Как передать переменную из одного метода в другой? У меня есть два метода. Нужно передать переменную String fileName из...

20
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
30.10.2019, 14:34
Сергей 0106, я уже указывал, что нужно сделать. еще раз отправляю https://metanit.com/sharp/tutorial/2.18.php
а вообще, хотел написать еще в прошлом теме - архитектура данного приложения очень сырая, костыль на костыле, избыточность кода просто необоснованно велика. так что я бы посоветовал начать все сначала, но рассказать суть программы и описать основные действия.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16117 / 11238 / 2887
Регистрация: 21.04.2018
Сообщений: 33,039
Записей в блоге: 2
30.10.2019, 14:45
Сергей 0106, в C# нет такого понятия "отправить в метод". Метод можно вызвать передав ему параметр.
В однопоточном приложении, выполнение кода дальше продолжится только после завершения выполнения вызванного метода.
Если же нужно независимое выполнение метода в другом потоке, то самый простой вариант - это сделать его асинхронным.
1
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 70
30.10.2019, 15:23  [ТС]
Задачу эту нашёл в интернете, с помощью неё изучаю методы и все возможные функции и алгоритмы для выполнения поставленной задачи. Занимаюсь всего месяц, от того программа так страшно и выглядет)
Спасибо огромное за статью!
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
30.10.2019, 15:27
Сергей 0106, дай почитать задачу.
0
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 70
30.10.2019, 15:33  [ТС]
Цитата Сообщение от AndreyVorobey Посмотреть сообщение
Сергей 0106, дай почитать задачу.
Это своего рода журнал, в нем есть пункты:

1 - Добавить сотрудника
2 - Изменить данные сотрудника
3 - Пол сотрудника
4 - Дата рождения сотрудника
5 - Номер телефона сотрудника
6 - Зарплата сотрудника
7 - Начало трудовой деятельности
8 - Завершение трудовой деятельности
9 - Отработанные часы
10 - Показать сотрудников
11 - Показать полную информацию о сотруднике
12 - Штрафы
13 - Налоги"
14 - Премии
0 - Выход
Все данные заносит пользователь, кроме Премии, Налоги, Штрафы - они считаются от отработанных часов.
0
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 70
30.10.2019, 15:46  [ТС]
Данные не должны перемещиваться, то есть выдаваться по порядку ФИО, Пол, Дата Рождения и тд.

0
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 70
30.10.2019, 16:06  [ТС]
вот весь мой код, кому не трудно можете посоветовать как бы вы лучше бы сделали тот или иной метод и почему.
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
using System;
 
namespace ConsoleApp2
{
    class Program
    {
        static string ProverkaNaChislo(string strokaVvoda)
        {
            int num;
            string vibor;
            bool res = int.TryParse(strokaVvoda, out num);
            if (res == true)
                vibor = num.ToString();
            else
                vibor = "100";
            return vibor;
        }
        static string FIOsotrudnika(string text)
        {
            string result = "";
            string[] fio = text.Split(",");
            int numbersCount = fio.Length;
            for (int i = 0; i < numbersCount - 1; i++)
            {
                string FamImOtch = fio[i].Split("_")[0].ToString();
                result = result + (i + 1) + " - " + FamImOtch + " " + "\n";
            }
            return result.ToString();
        }
 
        static string PolnayaInformaciya(string FIO)
        {
            string result = "";
            string[] fioadd = FIO.Split(",");
            int numbersCount = fioadd.Length;
            for (int i = 0; i < numbersCount - 1; i++)
            {
                string FamImOt = fioadd[i].Split("_")[0].ToString();
                string Pol = fioadd[i].Split("_")[1].ToString();
                string DenRojden = fioadd[i].Split("_")[2].ToString();
                string NomerTelefona = fioadd[i].Split("_")[3].ToString();
                string Zarplata = fioadd[i].Split("_")[4].ToString();
                string NachTrudDeyatelnosti = fioadd[i].Split("_")[5].ToString();
                string OkonchTrudDeyatelnosti = fioadd[i].Split("_")[6].ToString();
                string OtrabChasi = fioadd[i].Split("_")[7].ToString();
                string Shtrafi = fioadd[i].Split("_")[8].ToString();
                string Nalogi = fioadd[i].Split("_")[9].ToString();
                string Premii = fioadd[i].Split("_")[10].ToString();
                string[] info = new string[11];
                info[0] = FamImOt;
                info[1] = Pol;
                info[2] = DenRojden;
                info[3] = NomerTelefona;
                info[4] = Zarplata;
                info[5] = NachTrudDeyatelnosti;
                info[6] = OkonchTrudDeyatelnosti;
                info[7] = OtrabChasi;
                info[8] = Shtrafi;
                info[9] = Nalogi;
                info[10] = Premii;
                result = result + (i + 1) + " - " + info[0] + "\n";
                for (int ii = 1; ii < 10; ii += 2)
                {
                    result = result + info[ii] + "|" + info[ii + 1] + "\n";
                }
                //result = result + (i + 1) + " - " + fio[i] + "\n";
            }
            return result.Replace(" ", "_").ToString();
        }
        static string sotrudnik(string text, int numb)
        {
            string[] listValue = text.Split(',');
            string result = listValue[numb];
            return result;
        }
        static void Spisok()
        {
            string[] spisok = new string[16];
            spisok[0] = "Выберите действие:";
            spisok[1] = "1 - Добавить сотрудника";
            spisok[2] = "2 - Изменить данные сотрудника";
            spisok[3] = "3 - Пол сотрудника";
            spisok[4] = "4 - Дата рождения сотрудника";
            spisok[5] = "5 - Номер телефона сотрудника";
            spisok[6] = "6 - Зарплата сотрудника";
            spisok[7] = "7 - Начало трудовой деятельности";
            spisok[8] = "8 - Завершение трудовой деятельности";
            spisok[9] = "9 - Отработанные часы";
            spisok[10] = "10 - Показать сотрудников";
            spisok[11] = "11 - Показать полную информацию о сотруднике";
            spisok[12] = "12 - Штрафы";
            spisok[13] = "13 - Налоги";
            spisok[14] = "14 - Премии";
            spisok[15] = "0 - Выход";
            foreach (var s in spisok)
                Console.WriteLine(s);
        }
 
        static string FIOAdd(string FIO)
        {
            string FIO2 = FIO;
            int kolInicialov = FIO2.Length - FIO2.Replace(" ", "").Length;
            string sotrudniki = (FIO.Replace(" ", "-") + " _Пол: --- " + "_" + "Дата Рождения: --- " + "_"
                + "Номер телефона: --- " + "_" + "Зарплата: --- " + "_" + "Начало трудовой деятельности: --- " + "_"
                + "Окончание трудовой деятельности: --- " + "_" + "Отработанные часы: --- " + "_" + "Штрафы: --- "
                + "_" + "Налоги: --- " + "_" + "Премия: --- " + "_" + ",");
            return sotrudniki;
        }
 
        static string PolSotrudnika(int numbSotrud, string pol, string sotrudniki, int vibor)
        {
            string sotrud = sotrudnik(sotrudniki, numbSotrud - 1);
            string sotrud2 = sotrud;
            string RedactSotrud = sotrud.Split("_")[vibor-2];
            string RedactKategoriyu = RedactSotrud.Split(":")[1];
            string OchistkaKatekorOtDannih = RedactSotrud.Replace(RedactKategoriyu, " ");
            string sotrud3 = OchistkaKatekorOtDannih + pol + " ";
            string IzmenDannihSotrud = sotrud2.Replace(RedactSotrud, sotrud3);
            sotrudniki = sotrudniki.Replace(sotrud2,IzmenDannihSotrud);
            return sotrudniki.ToString();
        }
        static string ViborRedaktirDannih(int numbSotrud)
        {
            //numbSotrud = numbSotrud - 1;
            string[] viborIzmenDanih = new string[7];
            viborIzmenDanih[0] = "Введите номер сотрудника";
            viborIzmenDanih[1] = "Редактировать |Указать |пол сотрудника |Введите пол (м или ж)";
            viborIzmenDanih[2] = "Редактировать |Указать |дату рождения сотрудника |Введите дату рождения сотрудника: (дд/мм/гг)";
            viborIzmenDanih[3] = "Редактировать |Указать |номер телефона  сотрудника |Введите номер телефона сотрудника: (+555-555-123-456)";
            viborIzmenDanih[4] = " |  |  | ";
            viborIzmenDanih[5] = "Редактировать |Указать |начало трудовой деятельности  сотрудника |Введите Начало трудовой деятельности сотрудника: (дд/мм/гг)";
            viborIzmenDanih[6] = "Редактировать |Указать |окончание трудовой деятельности  сотрудника |Введите Окончание трудовой деятельности сотрудника: (дд/мм/гг)";
            return viborIzmenDanih[numbSotrud].ToString();
        }
        static string RedactFIO(string PoiskFamilii, string IzmenenieFamilii)
        {
            string sotrudniki = "";
            string sotrud = "";
            string sotrud2 = "";
            PoiskFamilii = PoiskFamilii.Replace(" ", "-");
            IzmenenieFamilii = IzmenenieFamilii.Replace(" ", "-");
            string collichestvo = sotrudniki;
            int KollichestvoSotrudnikov = collichestvo.Length - collichestvo.Replace(" ", "").Length;
            for (int i2 = 0; i2 < KollichestvoSotrudnikov - 1; i2++)
            {
                sotrud = sotrudnik(sotrudniki, (i2));
 
                if (sotrud.Contains(PoiskFamilii) == true)
                {
                    sotrud2 = sotrud;
                    sotrud = sotrud.Replace(PoiskFamilii, IzmenenieFamilii);
                    int DlinaStroki = IzmenenieFamilii.Length - IzmenenieFamilii.Replace(" ", "").Length;
                    if (DlinaStroki > 1)
                        sotrud = sotrud.Replace("0", "");
                    sotrudniki = sotrudniki.Replace(sotrud2, sotrud);
                    break;
                }
            }
            return sotrudniki;
        }
 
        static void Main(string[] args)
        {
            string result = "";
            string sotrudniki = "";
            string sotrudnikAdd = "";
            string polSotrudAdd = "";
            string redactFIO = "";
            int viborOtprav = 0;
            int vibor = 1;
            for (; vibor > 0;)
            {
                Spisok();
                string strokaVvoda = Console.ReadLine();
                strokaVvoda =ProverkaNaChislo(strokaVvoda);
                vibor = Convert.ToInt32(strokaVvoda);
 
                if (vibor == 1)
                {
                    Console.WriteLine("Введите Фамилию Имя Отчество:");
                    string FIO = Console.ReadLine();
                    sotrudnikAdd = FIOAdd(FIO);
                    sotrudniki += sotrudnikAdd;
                }
 
                if (vibor == 2)
                {
                    result = FIOsotrudnika(sotrudniki);
                    Console.WriteLine(result);
                    Console.WriteLine("Введите ФИО сотрудника, данного которого Вы желаете изменить");
                    string PoiskFamilii = Console.ReadLine();
                    Console.WriteLine("Введите ФИО сотрудника с изменёнными данными");
                    string IzmenenieFamilii = Console.ReadLine();
                    redactFIO = RedactFIO(PoiskFamilii, IzmenenieFamilii);
                    sotrudniki = redactFIO;
                }
 
                if (vibor >= 3 && vibor <= 5 || vibor >= 7 && vibor <= 8)
                {
                    viborOtprav = vibor - 2;
                    result = FIOsotrudnika(sotrudniki);
                    Console.WriteLine(result.Replace("_", " "));
                    Console.WriteLine(ViborRedaktirDannih(viborOtprav).Split("|")[1] + ViborRedaktirDannih(viborOtprav).Split("|")[2]);
                    Console.WriteLine(ViborRedaktirDannih(0));
                    int numbSotrud = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine(ViborRedaktirDannih(viborOtprav).Split("|")[3]);
                    string vvodDan = Console.ReadLine();
                    polSotrudAdd = PolSotrudnika(numbSotrud, vvodDan, sotrudniki,vibor);
                    sotrudniki = polSotrudAdd;
                }
 
                if (vibor == 10)
                {
                    result = FIOsotrudnika(sotrudniki);
                    Console.WriteLine(result);
                }
                if (vibor == 11)
                {
                    result = PolnayaInformaciya(sotrudniki);
                    Console.WriteLine(result.Replace("_"," ").Replace("-"," "));
                }
            }
        }
    }
}
Добавлено через 1 минуту
на счет переменной на уровне класса - жаль что только узнал как это делается, под неё теперь проще всё переписать чем исправлять)
0
215 / 149 / 48
Регистрация: 28.12.2016
Сообщений: 716
30.10.2019, 16:22
Лучший ответ Сообщение было отмечено Сергей 0106 как решение

Решение

Сергей 0106, очень простой пример через JSON

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
using System;
using System.Collections.Generic;
using System.IO;
using Newtonsoft.Json;
 
namespace ConsoleAppSimple
{
    class Program
    {
        private const string FILENAME = "List.json";
        static void Main(string[] args)
        {
            while (true)
            {
                Console.WriteLine("Выберите действие:");
 
                Console.WriteLine("1 - Добавить сотрудника");
                Console.WriteLine("2 - Показать список сотрудников");
                Console.WriteLine("3 - Выход");
 
                ConsoleKeyInfo r = Console.ReadKey();
                Console.WriteLine("");
                switch (r.KeyChar)
                {
                    case '1':
                        Add();
                        break;
                    case '2':
                        View();
                        break;
                    case '3': return;
                }
            }
        }
 
        private static void Add()
        {
            Workers workers;
            if (File.Exists(FILENAME) == false)
                workers = new Workers{Worker = new List<Worker>()};
            else
                workers = JsonConvert.DeserializeObject<Workers>(File.ReadAllText(FILENAME));
         
 
            var worker = new Worker();
            Console.WriteLine("Имя");
            worker.Name = Console.ReadLine();
            Console.WriteLine("Фамилия");
            worker.SubName = Console.ReadLine();
            Console.WriteLine("Возраст");
            int age;
            while (int.TryParse(Console.ReadLine(), out age) == false)
                Console.WriteLine("Не корректные данные. Введите еще раз.");
 
            worker.Age = age;
 
            workers.Worker.Add(worker);
          var json = JsonConvert.SerializeObject(workers);
            File.WriteAllText(FILENAME,json);
        }
 
        private static void View()
        {
            if (File.Exists(FILENAME) == false)
            {
                Console.WriteLine("Список не существует");
                return;
            }
 
            var json = File.ReadAllText(FILENAME);
 
 
            Workers workers = JsonConvert.DeserializeObject<Workers>(json);
 
 
            for (int i = 0; i < workers.Worker.Count; i++)
            {
                Console.WriteLine($"Сотрудник {i+1}");
                Console.WriteLine($"Имя: {workers.Worker[i].Name}");
                Console.WriteLine($"Фамилия: {workers.Worker[i].SubName}");
                Console.WriteLine($"Возраст: {workers.Worker[i].Age}");
                Console.WriteLine("");
            }
 
            Console.ReadKey();
        }
    }
    internal class Workers
    {
        public List<Worker> Worker { get; set; }
    }
    internal class Worker
    {
        public string Name { get; set; }
        public string SubName { get; set; }
        public int Age { get; set; }
    }
}
Миниатюры
Как из метода отправить переменную в другой метод и продолжить выполнение метода?  
0
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 70
30.10.2019, 16:31  [ТС]
Defences, Мне половина из того что вы написали не понятна))) Буду как археолог разбираться что почём) Спасибо огромное!

Добавлено через 1 минуту
а допустим в этот код возможно добавить редактирование определенных данных отдельного пользователя?
0
215 / 149 / 48
Регистрация: 28.12.2016
Сообщений: 716
30.10.2019, 16:47
Сергей 0106, да, только я делал способ хранения данных json, вам по хорошему сделать через БД. Ну для примера сойдет, редактирование можно сделат ьслед образом.
Выводится список, вы выбираете нужного сотрудника по индексу
правим и серелизуем и сохраняем


Для работы нужно скачать пакет Json
https://www.newtonsoft.com/json
0
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 70
30.10.2019, 16:51  [ТС]
я понимаю что лучше было бы через xml или sql разные, но до них мне пока далеко)
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
30.10.2019, 17:36
Сергей 0106,
Цитата Сообщение от Сергей 0106 Посмотреть сообщение
Мне половина из того что вы написали не понятна
а писать неправильный код изначально - это вообще плохо, потому что потом по-другому не будешь уметь, и рано или поздно затухнешь.
можно такой вариант развивать:
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp116
{
    class Program
    {
        // Список структур, хранящий в себе данных о сотрдуниках
        static List<SEmployeeInfo> ListDataEmployee = new List<SEmployeeInfo>();
 
        static void Main(string[] args)
        {
            string Exit = "";
            do
            {
                WorkWithData();
 
                CWHead("Желаете продолжить? (Y/N)");
 
                Console.Clear();
            }
            while (Exit != "N");
 
            CWHead("Программа завершила работу");
 
            Console.ReadKey();
        }
 
        // Вывод основной информации
        static void CWHead(string text)
        {
            Console.WriteLine(text);
        }
 
        // Вывод доп. информации
        static void CW(string text)
        {
            Console.Write(text);
        }
 
        // Пункты основного меню
        static void SetMainMenu ()
        {
            CWHead("\tМЕНЮ");
            CWHead("1 - Добавить информацию о сотруднике");
            CWHead("2 - Редактировать информацию о сотруднике");
        }
 
        // Пундкты подменю
        static void SetSubMainMenu()
        {
            CWHead("\tПОДМЕНЮ");
            CWHead("1 - ФИО сотрудника");
            CWHead("2 - Дата рождения сотрудника");
            CWHead("3 - Пол сотрудника");
            CWHead("4 - Номер телефона сотрудника");
            CWHead("5 - Зарплата сотрудника");
            CWHead("6 - Начало трудовой деятельности");
            CWHead("7 - Конец трудовой деятельности");
            CWHead("8 - Отработанные часы");
            CWHead("9 - Премии");
            CWHead("10 - Штрафы");
            CWHead("11 - Налоги");
        }
 
        // Добавление персональный данных о сотруднике
        static void AddInfoAboutEmployee()
        {
            // Объявляем объект, в который будем записывать все поля по порядку
            SEmployeeInfo sEmployee = new SEmployeeInfo();
 
            CW("Введите номер сотрудника: ");
            sEmployee.NumberEmployee = Convert.ToInt32(Console.ReadLine());
 
            CW("Введите фамилию сотрудника: ");
            sEmployee.FIO = Console.ReadLine();
 
            // Добавляем в выходной список
            ListDataEmployee.Add(sEmployee);
 
            // Проходимся по списки и выводим инфо 
            foreach (var X in ListDataEmployee)
            {
                Console.WriteLine(X.ToString());
            }
        }
 
        // Работа с данными
        static void WorkWithData()
        {
            // Вызов меню
            SetMainMenu();
 
            CW($"Выберите меню: ");
 
            if (Int32.TryParse(Console.ReadLine(), out int CorrectMenu))
            {
                switch (CorrectMenu)
                {
                    // Добавление данных
                    case (int)Menu.ADD:
                        AddInfoAboutEmployee();
                        break;
 
                    // Редактирование данных
                    case (int)Menu.EDIT:
                        CWHead("На данный пункт меню не настроено никаких действий");
                        break;
 
                    default:
                        CWHead("Выбран некорректный пункт меню");
                        break;
                }
            }
        }        
    }
 
    // Детальная информация о сотруднике
    public struct SEmployeeInfo
    {
        // Номер сотрудника 
        public int NumberEmployee { get; set; }  
 
        // ФИО сотрудника
        public string FIO { get; set; }
        
        // Дата рождения 
        public DateTime Birthday { get; set; }
        // Пол
        public char Gender { get; set; } 
    
        // Номер телефона
        public string PersonalPhone { get; set; }
 
        // Зарплата
        public decimal Salary { get; set; }
 
        // Начало трудовой деятельности
        public DateTime DateOfEmployment { get; set; }
 
        // Конец трудовой деятельности
        public DateTime DateOfDismissal { get; set; }
 
        // Отработанные часы
        public int SpentHours { get; set; }
 
        // Премии
        public decimal Premium { get; set; }
 
        // Штрафы
        public decimal Fine { get; set; }
 
        // Налоги
        public decimal Tax { get; set; }
 
        // Перегружаем ToString() для вывода информации в требуемом виде
        public override string ToString()
        {
            return $"Номер сотрудника: {NumberEmployee}, ФИО сотрудника: {FIO}";
        }
    }
 
    // Перечисление меню
    public enum Menu : int
    {
        ADD = 1, 
 
        EDIT = 2
    }
 
    // Перечисление подменю
    public enum SubMenu : int
    {
 
    }
}
1
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 70
30.10.2019, 17:56  [ТС]
AndreyVorobey,
Вот это будет проще переварить)))
Сейчас на курсы хожу по программированию, и с каждой новой информацией перерабатываю то что уже делал на новый лад, на одном не зацикливаюсь а стараюсь детально разобраться что и на что способно.
Огромное спасибо за помощь!
0
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 70
31.10.2019, 01:08  [ТС]
AndreyVorobey, Не могу понять как найти нужного сотрудника и изменить его данные, подскажите пожалуйста?
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp116
{
    class Program
    {
        // Список структур, хранящий в себе данных о сотрдуниках
        static List<SEmployeeInfo> ListDataEmployee = new List<SEmployeeInfo>();
 
        static void Main(string[] args)
        {
            string Exit = "";
            do
            {
                WorkWithData();
 
                CWHead("Желаете продолжить? (Y/N)");
 
                Console.Clear();
            }
            while (Exit != "N");
 
            CWHead("Программа завершила работу");
 
            Console.ReadKey();
        }
 
        // Вывод основной информации
        static void CWHead(string text)
        {
            Console.WriteLine(text);
        }
 
        // Вывод доп. информации
        static void CW(string text)
        {
            Console.Write(text);
        }
 
        // Пункты основного меню
        static void SetMainMenu ()
        {
            CWHead("\tМЕНЮ");
            CWHead("1 - Добавить информацию о сотруднике");
            CWHead("2 - Редактировать информацию о сотруднике");
        }
 
        // Пундкты подменю
        static void SetSubMainMenu()
        {
            CWHead("\tПОДМЕНЮ");
            CWHead("1 - ФИО сотрудника");
            CWHead("2 - Дата рождения сотрудника");
            CWHead("3 - Пол сотрудника");
            CWHead("4 - Номер телефона сотрудника");
            CWHead("5 - Зарплата сотрудника");
            CWHead("6 - Начало трудовой деятельности");
            CWHead("7 - Конец трудовой деятельности");
            CWHead("8 - Отработанные часы");
            CWHead("9 - Премии");
            CWHead("10 - Штрафы");
            CWHead("11 - Налоги");
        }
 
        // Добавление персональный данных о сотруднике
        static void AddInfoAboutEmployee()
        {
            // Объявляем объект, в который будем записывать все поля по порядку
            SEmployeeInfo sEmployee = new SEmployeeInfo();
 
            CW("Введите номер сотрудника: ");
            sEmployee.NumberEmployee = Convert.ToInt32(Console.ReadLine());
 
            CW("Введите фамилию сотрудника: ");
            sEmployee.FIO = Console.ReadLine();
 
            // Добавляем в выходной список
            ListDataEmployee.Add(sEmployee);
 
            // Проходимся по списки и выводим инфо 
            foreach (var X in ListDataEmployee)
            {
                Console.WriteLine(X.ToString());
            }
        }
 
        // Работа с данными
        static void WorkWithData()
        {
            // Вызов меню
            SetMainMenu();
 
            CW($"Выберите меню: ");
 
            if (Int32.TryParse(Console.ReadLine(), out int CorrectMenu))
            {
                switch (CorrectMenu)
                {
                    // Добавление данных
                    case (int)Menu.ADD:
                        AddInfoAboutEmployee();
                        break;
 
                    // Редактирование данных
                    case (int)Menu.EDIT:
                        CWHead("На данный пункт меню не настроено никаких действий");
                        break;
 
                    default:
                        CWHead("Выбран некорректный пункт меню");
                        break;
                }
            }
        }        
    }
 
    // Детальная информация о сотруднике
    public struct SEmployeeInfo
    {
        // Номер сотрудника 
        public int NumberEmployee { get; set; }  
 
        // ФИО сотрудника
        public string FIO { get; set; }
        
        // Дата рождения 
        public DateTime Birthday { get; set; }
        // Пол
        public char Gender { get; set; } 
    
        // Номер телефона
        public string PersonalPhone { get; set; }
 
        // Зарплата
        public decimal Salary { get; set; }
 
        // Начало трудовой деятельности
        public DateTime DateOfEmployment { get; set; }
 
        // Конец трудовой деятельности
        public DateTime DateOfDismissal { get; set; }
 
        // Отработанные часы
        public int SpentHours { get; set; }
 
        // Премии
        public decimal Premium { get; set; }
 
        // Штрафы
        public decimal Fine { get; set; }
 
        // Налоги
        public decimal Tax { get; set; }
 
        // Перегружаем ToString() для вывода информации в требуемом виде
        public override string ToString()
        {
            return $"Номер сотрудника: {NumberEmployee}, ФИО сотрудника: {FIO}";
        }
    }
 
    // Перечисление меню
    public enum Menu : int
    {
        ADD = 1, 
 
        EDIT = 2
    }
 
    // Перечисление подменю
    public enum SubMenu : int
    {
 
    }
}
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
31.10.2019, 10:23
Сергей 0106, были изменения по коду, так что надо скопировать весь проект:
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp116
{
    class Program
    {
        // Список структур, хранящий в себе данных о сотрдуниках
        static List<EmployeeInfo> ListDataEmployee = new List<EmployeeInfo>();
 
        static void Main(string[] args)
        {
            string Exit = "";
            do
            {
                WorkWithData();
 
                CW("Желаете продолжить? (Y/N): ");
 
                Exit = Console.ReadLine();
 
                //Console.Clear();
            }
            while (Exit != "N");
 
            CWHead("Программа завершила работу");
 
            Console.ReadKey();
        }
 
        // Вывод основной информации
        static void CWHead(string text)
        {
            Console.WriteLine(text);
        }
 
        // Вывод доп. информации
        static void CW(string text)
        {
            Console.Write(text);
        }
 
        // Возвращаем строку, где хранится список сотрудников
        static string SetDataFromList()
        {
            StringBuilder StringWithData = new StringBuilder();
 
            // Проходимся по списки и выводим инфо 
            foreach (var X in ListDataEmployee)
            {
                StringWithData.Append("\r\n" + X.ToString());
            }
 
            return $"\tСписок сотрудников:{StringWithData}";
        }
        // Пункты основного меню
        static void SetMainMenu()
        {
            CWHead("\tМЕНЮ");
            CWHead("1 - Добавить информацию о сотруднике");
            CWHead("2 - Редактировать информацию о сотруднике");
        }
 
        // Пундкты подменю
        static void SetSubMainMenu()
        {
            CWHead("\tПОДМЕНЮ");
            CWHead("1 - Номер сотрудника");
            CWHead("2 - ФИО сотрудника");
            CWHead("3 - Дата рождения сотрудника");
            CWHead("4 - Пол сотрудника");
            CWHead("5 - Номер телефона сотрудника");
            CWHead("6 - Зарплата сотрудника");
            CWHead("7 - Начало трудовой деятельности");
            CWHead("8 - Конец трудовой деятельности");
            CWHead("9 - Отработанные часы");
            CWHead("10 - Премии");
            CWHead("11 - Штрафы");
            CWHead("12 - Налоги");
        }
 
        // Добавление персональный данных о сотруднике
        static void AddInfoAboutEmployee()
        {
            // Объявляем объект, в который будем записывать все поля по порядку
            EmployeeInfo sEmployee = new EmployeeInfo();
 
            CW("Введите номер сотрудника: ");
            sEmployee.NumberEmployee = Convert.ToInt32(Console.ReadLine());
 
            CW("Введите фамилию сотрудника: ");
            sEmployee.FIO = Console.ReadLine();
 
            // Добавляем в выходной список
            ListDataEmployee.Add(sEmployee);
 
            CWHead(SetDataFromList());
        }
 
        // Редактирование персональный данных о сотруднике
        static void EditInfoAboutEmployee(int NumberEmployee)
        {
            // Находим строку с выбранным номером сотрудника, которую будем изменять
            int EditRow = ListDataEmployee.FindIndex(item => item.NumberEmployee == NumberEmployee);
 
            CWHead($"\tВведите новые данные.");
            for (int i = 0; i < ListDataEmployee.Count; i++)
            {
                if (ListDataEmployee[i].NumberEmployee == NumberEmployee)
                {
                    EmployeeInfo NewEmployeeInfo = ListDataEmployee[EditRow];
 
                    CW("ФИО сотрудника: ");
                    NewEmployeeInfo.FIO = Console.ReadLine();
 
                    ListDataEmployee[EditRow] = NewEmployeeInfo;
                }
            }
 
            CWHead("Данные изменены.");
 
            CWHead(SetDataFromList());
        }
 
        // Работа с данными
        static void WorkWithData()
        {
            // Вызов меню
            SetMainMenu();
 
            CW($"Выберите меню: ");
 
            if (Int32.TryParse(Console.ReadLine(), out int CorrectMenu))
            {
                switch (CorrectMenu)
                {
                    // Добавление данных
                    case (int)Menu.ADD:
                        AddInfoAboutEmployee();
                        break;
 
                    // Редактирование данных
                    case (int)Menu.EDIT:
                        CW("Выберите номер сотрудника, данные которого хотите изменить: ");
                        EditInfoAboutEmployee(Convert.ToInt32(Console.ReadLine()));
                        break;
 
                    default:
                        CWHead("Выбран некорректный пункт меню");
                        break;
                }
            }
        }
    }
 
    // Детальная информация о сотруднике
    public class EmployeeInfo
    {
        // Номер сотрудника 
        public int NumberEmployee { get; set; }
 
        // ФИО сотрудника
        public string FIO { get; set; }
 
        // Дата рождения 
        public DateTime Birthday { get; set; }
        // Пол
        public char Gender { get; set; }
 
        // Номер телефона
        public string PersonalPhone { get; set; }
 
        // Зарплата
        public decimal Salary { get; set; }
 
        // Начало трудовой деятельности
        public DateTime DateOfEmployment { get; set; }
 
        // Конец трудовой деятельности
        public DateTime DateOfDismissal { get; set; }
 
        // Отработанные часы
        public int SpentHours { get; set; }
 
        // Премии
        public decimal Premium { get; set; }
 
        // Штрафы
        public decimal Fine { get; set; }
 
        // Налоги
        public decimal Tax { get; set; }
 
        // Перегружаем ToString() для вывода информации в требуемом виде
        public override string ToString()
        {
            return $"Номер сотрудника: {NumberEmployee}, ФИО сотрудника: {FIO}";
        }
    }
 
    // Перечисление меню
    public enum Menu : int
    {
        ADD = 1,
        EDIT = 2
    }
 
    // Перечисление подменю
    public enum SubMenu : int
    {
        NUMBEREMPLOYEE = 1,
        FIO,
        BIRTHDAY,
        GENDER,
        PERSONALPHONE,
        SALARY,
        DATEOFEMPLOYMENT,
        DATEOFDISMISSAL,
        SPENTHOURS,
        PREMIUM,
        FINE,
        TAX
    }
}
1
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 70
31.10.2019, 13:22  [ТС]
Вот весь код
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp116
{
    class Program
    {
        static List<SEmployeeInfo> ListDataEmployee = new List<SEmployeeInfo>();
        static int CategoriesMenu = 1;
        static void Main(string[] args)
        {
            do
            {
                WorkWithData();
            }
            while (CategoriesMenu > 0);
        }
        static void CWHead(string text)
        {
            Console.WriteLine(text);
        }
        static void CW(string text)
        {
            Console.Write(text);
        }
        static void Menu()
        {
            CWHead("Меню");
            CWHead("1 - Добавить сотрудника");
            CWHead("2 - Изменить данные сотрудника");
            CWHead("3 - Показать всех сотрудников");
            CWHead("0 - Выход");
        }
        static void SubMenu()
        {
            CWHead("1 - Пол сотрудника");
            CWHead("2 - Дата рождения сотрудника");
            CWHead("3 - Номер телефона сотрудника");
            CWHead("4 - Зарплата сотрудника");
            CWHead("5 - Начало трудовой деятельности");
            CWHead("6 - Окончание трудовой деятельности");
            CWHead("7 - Отработанные часы");
            CWHead("8 - Штрафы");
            CWHead("9 - Налоги");
            CWHead("10 - Премии");
        }
        static void WorkWithData()
        {
            Menu();
            if (Int32.TryParse(Console.ReadLine(), out int CorrectMenu))
            {
                switch(CorrectMenu)
                {
                    case 1:
                        AddInfoAboutEmployee();
                        break;
                    case 2:
                        break;
                    case 3:
                        ShowAllEmployee();
                        break;
                }
            }
        }
        /*static void FullName()
        {
            ShowAllEmployee();
            CWHead("Введите номер сотрудника:");
            int NumbE
        }*/
        static void AddInfoAboutEmployee()
        {
            // Объявляем объект, в который будем записывать все поля по порядку
            SEmployeeInfo sEmployee = new SEmployeeInfo();
 
            CW("Введите номер сотрудника: ");
            sEmployee.NumberEmployee = Convert.ToInt32(Console.ReadLine());
 
            CW("Введите фамилию сотрудника: ");
            sEmployee.FIO = Console.ReadLine();
 
            CW("Введите дату рождения: ");
            string strBirthday = Console.ReadLine();
            sEmployee.Birthday = DateTime.Parse(strBirthday);
 
            CW("Введите пол сотрудника: ");
            sEmployee.Gender = Convert.ToChar(Console.ReadLine());
 
            CW("Введите номер телефона: ");
            sEmployee.PersonalPhone = Console.ReadLine();
 
            CW("Введите зарплату сотрудника: ");
            sEmployee.Salary = Convert.ToDecimal(Console.ReadLine());
 
            CW("Введите дату начала трудовой деятельности: ");
            string strDateOfEmployment = Console.ReadLine();
            sEmployee.DateOfEmployment = DateTime.Parse(strDateOfEmployment);
 
            CW("Введите дату окончания трудовой деятельности: ");
            string strDateOfDismissal = Console.ReadLine();
            sEmployee.DateOfDismissal = DateTime.Parse(strDateOfDismissal);
 
            CW("Введите отработанные часы: ");
            sEmployee.SpentHours = Convert.ToInt32(Console.ReadLine());
 
            // Добавляем в выходной список
            ListDataEmployee.Add(sEmployee);
 
            // Проходимся по списку и выводим инфо 
            foreach (var X in ListDataEmployee)
            {
                Console.WriteLine(X.ToString());
            }
        }
        /*static void EditDataEmployee()
        {
            SubMenu();
            if(Int32.TryParse(Console.ReadLine(), out int CorrectMenu))
            {
                switch(CorrectMenu)
                {
                    case 1:
                        
                        - Пол сотрудника");
                    CWHead("2 - Дата рождения сотрудника");
                    CWHead("3 - Номер телефона сотрудника");
                    CWHead("4 - Зарплата сотрудника");
                    CWHead("5 - Начало трудовой деятельности");
                    CWHead("6 - Окончание трудовой деятельности");
                    CWHead("7 - Отработанные часы");
                    CWHead("8 - Штрафы");
                    CWHead("9 - Налоги");
                    CWHead("10 - Премии");
                }
            }
        }*/
       
        static void ShowAllEmployee()
        {
            foreach (var X in ListDataEmployee)
            {
                Console.WriteLine(X.ToString());
            }
        }
        public struct SEmployeeInfo
        {
            // Номер сотрудника 
            public int NumberEmployee { get; set; }
 
            // ФИО сотрудника
            public string FIO { get; set; }
 
            // Дата рождения 
            public DateTime Birthday { get; set; }
            // Пол
            public char Gender { get; set; }
 
            // Номер телефона
            public string PersonalPhone { get; set; }
 
            // Зарплата
            public decimal Salary { get; set; }
 
            // Начало трудовой деятельности
            public DateTime DateOfEmployment { get; set; }
 
            // Конец трудовой деятельности
            public DateTime DateOfDismissal { get; set; }
 
            // Отработанные часы
            public int SpentHours { get; set; }
 
            // Премии
            public decimal Premium { get; set; }
 
            // Штрафы
            public decimal Fine { get; set; }
 
            // Налоги
            public decimal Tax { get; set; }
 
            // Перегружаем ToString() для вывода информации в требуемом виде
            public override string ToString()
            {
                return $"Номер сотрудника: {NumberEmployee}," +
                    $" ФИО сотрудника: {FIO}," +
                    $" Дата рождения:  {Birthday.ToShortDateString()}," +
                    $" Пол: {Gender}," +
                    $" Номер телефона {PersonalPhone}," +
                    $" Зарплата: {Salary}," +
                    $" Дата начало работы: {DateOfEmployment.ToShortDateString()}," +
                    $" Дата окончания работы: {DateOfDismissal.ToShortDateString()}";
            }
        }
    }
}
Добавлено через 37 минут
Тут уже с прописанными методами, осталось разобраться как редактировать данные определенного сотрудника
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApp116
{
    class Program
    {
        static List<SEmployeeInfo> ListDataEmployee = new List<SEmployeeInfo>();
        static int CategoriesMenu = 1;
        static void Main(string[] args)
        {
            do
            {
                WorkWithData();
            }
            while (CategoriesMenu > 0);
        }
        static void CWHead(string text)
        {
            Console.WriteLine(text);
        }
        static void CW(string text)
        {
            Console.Write(text);
        }
        static void Menu()
        {
            CWHead("Меню");
            CWHead("1 - Добавить сотрудника");
            CWHead("2 - Изменить данные сотрудника");
            CWHead("3 - Показать всех сотрудников");
            CWHead("0 - Выход");
        }
        static void SubMenu()
        {
            CWHead("1 - Номер сотрудника");
            CWHead("2 - ФИО сотрудника");
            CWHead("3 - Пол сотрудника");
            CWHead("4 - Дата рождения сотрудника");
            CWHead("5 - Номер телефона сотрудника");
            CWHead("6 - Зарплата сотрудника");
            CWHead("7 - Начало трудовой деятельности");
            CWHead("8 - Окончание трудовой деятельности");
            CWHead("9 - Отработанные часы");
            CWHead("10 - Штрафы");
            CWHead("11 - Налоги");
            CWHead("12 - Премии");
        }
        static void WorkWithData()
        {
            Menu();
            if (Int32.TryParse(Console.ReadLine(), out int CorrectMenu))
            {
                switch(CorrectMenu)
                {
                    case 1:
                        AddInfoAboutEmployee();
                        break;
                    case 2:
                        EditDataEmployee();
                        break;
                    case 3:
                        ShowAllEmployee();
                        break;
                    case 0:
                        CategoriesMenu = 0;
                        break;
                }
            }
        }
       
        static void AddInfoAboutEmployee()
        {
            // Объявляем объект, в который будем записывать все поля по порядку
            SEmployeeInfo sEmployee = new SEmployeeInfo();
 
            CW("Введите номер сотрудника: ");
            sEmployee.NumberEmployee = Convert.ToInt32(Console.ReadLine());
 
            CW("Введите фамилию сотрудника: ");
            sEmployee.FIO = Console.ReadLine();
 
            CW("Введите дату рождения: ");
            string strBirthday = Console.ReadLine();
            sEmployee.Birthday = DateTime.Parse(strBirthday);
 
            CW("Введите пол сотрудника: ");
            sEmployee.Gender = Convert.ToChar(Console.ReadLine());
 
            CW("Введите номер телефона: ");
            sEmployee.PersonalPhone = Console.ReadLine();
 
            CW("Введите зарплату сотрудника: ");
            sEmployee.Salary = Convert.ToDecimal(Console.ReadLine());
 
            CW("Введите дату начала трудовой деятельности: ");
            string strDateOfEmployment = Console.ReadLine();
            sEmployee.DateOfEmployment = DateTime.Parse(strDateOfEmployment);
 
            CW("Введите дату окончания трудовой деятельности: ");
            string strDateOfDismissal = Console.ReadLine();
            sEmployee.DateOfDismissal = DateTime.Parse(strDateOfDismissal);
 
            CW("Введите отработанные часы: ");
            sEmployee.SpentHours = Convert.ToInt32(Console.ReadLine());
 
            // Добавляем в выходной список
            ListDataEmployee.Add(sEmployee);
 
            // Проходимся по списку и выводим инфо 
            foreach (var X in ListDataEmployee)
            {
                Console.WriteLine(X.ToString());
            }
        }
        static void EditDataEmployee()
        {
            SubMenu();
            ShowAllEmployee();
            CWHead("Введите номер сотрудника:");
            if (Int32.TryParse(Console.ReadLine(), out int CorrectMenu))
            {
                switch(CorrectMenu)
                {
                    case 1:
                        EditNumberEmployee();
                        break;
                    case 2:
                        EditFIO();
                        break;
                    case 3:
                        EditGender();
                        break;
                    case 4:
                        EditBirthday();
                        break;
                    case 5:
                        EditPersonalPhone();
                        break;
                    case 6:
                        EditSalary();
                        break;
                    case 7:
                        EditDateOfEmployment();
                        break;
                    case 8:
                        EditDateOfDismissal();
                        break;
                    case 9:
                        EditSpentHours();
                        break;
                    case 10:
                        EditTax();
                        break;
                }
            }
        }
       
        static void ShowAllEmployee()
        {
            foreach (var X in ListDataEmployee)
            {
                Console.WriteLine(X.ToString());
            }
        }
        static void EditNumberEmployee()
        {
        }
        static void EditFIO()
        {
        }
        static void EditBirthday()
        { 
        }
        static void EditGender()
        {
        }
        static void EditPersonalPhone()
        {
        }
        static void EditSalary()
        {
        }
        static void EditDateOfEmployment()
        {
        }
        static void EditDateOfDismissal()
        {
        }
        static void EditSpentHours()
        {
        }
        static void EditTax()
        {
        }
        public struct SEmployeeInfo
        {
            // Номер сотрудника 
            public int NumberEmployee { get; set; }
 
            // ФИО сотрудника
            public string FIO { get; set; }
 
            // Дата рождения 
            public DateTime Birthday { get; set; }
            // Пол
            public char Gender { get; set; }
 
            // Номер телефона
            public string PersonalPhone { get; set; }
 
            // Зарплата
            public decimal Salary { get; set; }
 
            // Начало трудовой деятельности
            public DateTime DateOfEmployment { get; set; }
 
            // Конец трудовой деятельности
            public DateTime DateOfDismissal { get; set; }
 
            // Отработанные часы
            public int SpentHours { get; set; }
 
            // Премии
            public decimal Premium { get; set; }
 
            // Штрафы
            public decimal Fine { get; set; }
 
            // Налоги
            public decimal Tax { get; set; }
 
            // Перегружаем ToString() для вывода информации в требуемом виде
            public override string ToString()
            {
                return $"Номер сотрудника: {NumberEmployee}," +
                    $" ФИО сотрудника: {FIO}," +
                    $" Дата рождения:  {Birthday.ToShortDateString()}," +
                    $" Пол: {Gender}," +
                    $" Номер телефона {PersonalPhone}," +
                    $" Зарплата: {Salary}," +
                    $" Дата начало работы: {DateOfEmployment.ToShortDateString()}," +
                    $" Дата окончания работы: {DateOfDismissal.ToShortDateString()}";
            }
        }
    }
}
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
31.10.2019, 14:45
Сергей 0106, в последнем моем письме был функционал редактирования определенного сотрудника. Внимательно смотрим, метод EditInfoAboutEmployee, он же вызывается, если выбрать меню 2 - Редактировать информацию о сотруднике.
какие трудности возникли? пример на одном поле, нужно добавить остальные.
1
0 / 0 / 0
Регистрация: 20.10.2019
Сообщений: 70
31.10.2019, 19:07  [ТС]
AndreyVorobey,
Спасибо за помощь! весь день искал, даже начал лист в массив переводить(нашел такой совет в интернете).
А есть возможность автоматически присваивать номер в списке сотруднику? Вот так:
1 - Номер сотрудника: 32344 ФИО сотрудника: Иванов и т.д.

Добавлено через 29 минут
AndreyVorobey,
ещё несколько вопросов

1)int EditRow = ListDataEmployee.FindIndex(item => item.NumberEmployee == NumberEmployee); что такое item и почему такой порядок?
2)EmployeeInfo NewEmployeeInfo = ListDataEmployee[EditRow]; тут мы создаем новый лист или как?
3) Чем отличается это:
C#
1
2
3
4
5
6
7
8
9
10
11
12
static string SetDataFromList()
        {
            StringBuilder StringWithData = new StringBuilder();
 
            // Проходимся по списки и выводим инфо 
            foreach (var X in ListDataEmployee)
            {
                StringWithData.Append("\r\n" + X.ToString());
            }
 
            return $"\tСписок сотрудников:{StringWithData}";
        }
От этого:
C#
1
2
3
4
5
6
7
static void ShowAllEmployee()
        {
            foreach (var X in ListDataEmployee)
            {
                Console.WriteLine(X.ToString());
            }
        }
Спасибо еще раз за помощь! Столько нужной информации Вы даете, сколько не дают несколько часов поиска в интернете
0
2810 / 1679 / 885
Регистрация: 14.04.2015
Сообщений: 5,723
01.11.2019, 09:18
Лучший ответ Сообщение было отмечено Сергей 0106 как решение

Решение

Сергей 0106,
Цитата Сообщение от Сергей 0106 Посмотреть сообщение
начал лист в массив переводить(нашел такой совет в интернете)
следуя всяким советам нужно понимать, что там может быть написан полный бред, следовательно, нужно разбирать основные непонятные моменты самостоятельно и параллельно. в данном случаи почитать про массивы и списки, и понять, в чем между ними разница.
1)
Цитата Сообщение от Сергей 0106 Посмотреть сообщение
А есть возможность автоматически присваивать номер в списке сотруднику
конечно есть:
- объявить переменную-счетчик вначале метода AddInfoAboutEmployee() - int NumberEmployee = 1;
- в строке sEmployee.NumberEmployee = Convert.ToInt32(Console.ReadLine()); изменить консольный ввод на данную переменную.
- после этой строки наращивать счетчик - NumberEmployee++;
2)
Цитата Сообщение от Сергей 0106 Посмотреть сообщение
что такое item и почему такой порядок?
это локальная переменная, в которую записывается входная последовательность данных из ListDataEmployee.
насчет порядка не понял.
3)
Цитата Сообщение от Сергей 0106 Посмотреть сообщение
тут мы создаем новый лист или как?
тут мы объявляем новый экземпляр класса, в который передает объект с нужным индексом.
4)
Цитата Сообщение от Сергей 0106 Посмотреть сообщение
Чем отличается это:
в данном случае разница незначительна. Лишняя мелочь для самостоятельного обучения. Лучше почитать отличие String От StringBuilder самостоятельно.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.11.2019, 09:18
Помогаю со студенческими работами здесь

Передача метода в метод, метода как параметр
Здравствуйте друзья. Есть значит некоторый фрейм: public class Window extends JFrame implements ActionListener { ... (1) ......

Выполнение метода другой формы
Всем здрасти! Подскажите, пожалуйста, как сделать так, чтобы при клике на &quot;ок&quot; с одного окна(логин, пароль), выполнялся необходимый метод...

Выполнение метода одной формы из другой
подскажите как сделать :у меня есть 2 формы(form4-родительская форма. form7 - дочерняя)мне надо чтобы можно было использовать...

Как запихнуть в параметр метода любой другой метод method(anyMethod M) {}
Дорогие форумчанине, не давно начал решать задачки по Java и в ходе своей работы решил создать метод, который мог бы выводить на экран...

Передать переменную из одного метода в другой
Есть класс. В нем 2 метода: пусть будут private void textBox1_TextChanged(object sender, EventArgs e) и private void...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru