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

Вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение введенное с клавиатуры

21.11.2013, 20:24. Показов 3808. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток!
Есть код(С++), реализующий:
-ввод с клавиатуры данных в массив состоящий из 10-ти структур типа Worker( с полями:1)ФИО 2)Должность 3)Год поступления на работу), причем записи должны быть размещены по алфавиту.
Вывод на дисплей фамилий работников,чей стаж работы в организации превышает значение введенное с клавиатуры. Если таких работников нет, то вывести на экран соответствующее значение.

Помогите, пожалуйста, сделать тоже самое, только на C#

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
#include <iostream>
#include <algorithm>
#include <string>
#include <ctime>
#include <functional>
#include <set>
#include <iterator>
 
class Worker {
    std::string _name;
    std::string _post;
    int _year;
public:
    Worker() : _name(""), _post(""), _year(0) {}
    Worker(const std::string & name, const std::string & post, int year) : _name(name),
    _post(post), _year(year) {}
    ~Worker() {}
    int year() const { return _year; }
    bool operator < (const Worker & w) const { return _name < w._name; }
    bool operator == (const Worker & w) const { return _name == w._name; }
    friend std::ostream & operator << (std::ostream & ost, const Worker & w) {
        ost << "\nName:\t" << w._name << "\nPost:\t" << w._post << "\nYear:\t" << w._year;
        return ost;
    }
};
 
class FindByStage : public std::unary_function<Worker, bool> {
    int _cur_year;
    int _min_stage;
public:
    FindByStage(int stage) : _min_stage(stage) {
        time_t tt = time(NULL);
        struct tm *pts;
        pts = localtime(&tt);
        _cur_year = pts->tm_year + 1900;
    }
    bool operator () (const Worker & w) {
        return _cur_year - w.year() > _min_stage;
    }
};
 
int main(){
    int num_workers;
    std::multiset<Worker> workers;
    std::string name, post;
    int year;
 
    std::cout << "Number of workers: ";
    std::cin >> num_workers;
    std::cin.get();
    while ( num_workers-- ){
        std::cout << "Name: ";
        std::getline(std::cin, name);
        std::cout << "Post: ";
        std::getline(std::cin, post);
        std::cout << "Year of employment: ";
        std::cin >> year;
        std::cin.get();
        workers.insert(Worker(name, post, year));
    }
 
    std::cout << "Minimum stage: ";
    std::cin >> year;
    FindByStage fbs(year);
    size_t cnt = std::count_if(workers.begin(), workers.end(), fbs);
    if ( ! cnt ) {
        std::cerr << "No workers with stage greater then " << year << std::endl;
        return 1;
    }
    std::cout << "Found " << cnt << " workers:" << std::endl;
    for ( std::multiset<Worker>::const_iterator i = workers.begin(); i != workers.end(); ++i )
        if ( fbs(*i) )
            std::cout << *i << std::endl;
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.11.2013, 20:24
Ответы с готовыми решениями:

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

Структура Worker: найти работников, чей стаж работы в организации превышает введенное значение
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;conio.h&gt; using namespace std; struct WORKER ...

Массивы структур. Найти работников, чей стаж работы в организации превышает заданное значение
Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из 5 структур; вывод на дисплей...

6
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
21.11.2013, 20:29
SkyL1ne_tm, там все просто, думаю через часик сделаю...

Добавлено через 1 минуту
Получилось быстрее чем я думал:
Вот код на c#:
C#
1
 
Добавлено через 2 минуты
Другое дело =)
Скажи лучше что программа должна делать?
0
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
21.11.2013, 20:30  [ТС]
Дмитрий3241

случайно отправил не дописав до конца
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
21.11.2013, 22: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
27
28
29
30
31
32
33
34
35
using System;
using System.Linq;
class Program
{
    
    static void Main(string[] args)
    {
        Console.WriteLine("Введите данные для 10-ти работников\n");
        Worker[] data = new Worker[10];
        for (int i = 0; i < 10; i++)
            data[i].Set();
        Console.WriteLine();
        Console.Write("Введите требуемый стаж :");
        int l = int.Parse(Console.ReadLine());
        Worker result = data.Where(a => a.LengthOfWork >= l).OrderBy(a => a.LengthOfWork).First();
        Console.WriteLine("Имя работника : {0}", result.Name);
        Console.ReadKey();
    }
}
struct Worker
{
    public string Name;
    public string Post;
    public int LengthOfWork;
    public Worker Set()
    {
        Console.Write("Введите имя :");
        Name = Console.ReadLine();
        Console.Write("Введите должность :");
        Post = Console.ReadLine();
        Console.Write("Введите стаж (только цифры) :");
        LengthOfWork = int.Parse(Console.ReadLine());
        return this;
    }
}
0
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
21.11.2013, 22:52  [ТС]
rattrapper, можно как-то обойтись без System.Linq?
0
foo();
 Аватар для rattrapper
886 / 587 / 222
Регистрация: 03.07.2013
Сообщений: 1,549
Записей в блоге: 2
21.11.2013, 22:55
все можно
C#
1
2
3
4
5
6
7
Worker result = new Worker() { LengthOfWork = int.MinValue };
for (int i = 0; i < 10; i++)
    if (data[i].LengthOfWork >= l &&
        data[i].LengthOfWork >= result.LengthOfWork)
        result = data[i];
Console.WriteLine("Имя работника : {0}", result.Name);
Console.ReadKey();
0
2 / 2 / 0
Регистрация: 06.07.2013
Сообщений: 97
22.11.2013, 00:51  [ТС]
Цитата Сообщение от rattrapper Посмотреть сообщение
все можно
C#
1
{ LengthOfWork = int.MinValue };
что это за конструкция?

Добавлено через 1 час 33 минуты
C#
1
Worker result = new Worker() { LengthOfWork = int.MinValue };
ругается на эту строку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.11.2013, 00:51
Помогаю со студенческими работами здесь

Найти работников чей стаж работы превышает заданное значение
Описать структуру с именем WORKER, содержащую следующие ноля: - фамилия и инициалы работника; - название занимаемой должности; - год...

Структура WORKER, определить фамилии работников чей стаж превышает заданное значение
1. Описать структуру с именем WORKER, содержащую следующие поля: SALARY – оклад; YEAR – год поступления на работу. NAME – фамилия и...

В структуре данных вывести на экран чей стаж работы превышает введенный на консоли
В структуре данных вывести на экран чей стаж работы превышает введенный на консоли. То есть я ввожу дату когда он поступил на работу и надо...

Вывести список работников, стаж работы которых превышает заданное число лет
Работник: ФИО, должность, стаж, Зарплата. Вывести: а) список работников, стаж работы которых превышает заданное число лет б) список...

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
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