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

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

21.11.2013, 20:24. Показов 3828. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru