Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/40: Рейтинг темы: голосов - 40, средняя оценка - 4.98
1 / 1 / 0
Регистрация: 09.02.2013
Сообщений: 51

Реализоваить систему отдела кадров предприятия

09.02.2013, 23:43. Показов 7655. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Система отдела кадров предприятия содержит следующие сведения о работниках:
-фамилия и инициалы работника;
-название занимаемой должности;
-год поступления на работу.
Написать программу, которая выполняет следующие действия:
-вводит с клавиатуры данные в массив, состоящий из десяти структур; записи должны быть размещены по алфавиту;
-выводит на дисплей фамилии работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
-если таких работников нет, вывести на дисплей соответствующее сообщение.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.02.2013, 23:43
Ответы с готовыми решениями:

Разработка интерфейса программы автоматизации учета кадров предприятия
Разработка интерфейса программы автоматизации облика кадров предприятия с использованием принципов ООП

Спроектировать базу данных для Отдела кадров
Здравствуйте кто это может сделать в Visual? Личная карточка сотрудника Код сотрудника ___________ Номер паспорта___________ ...

Написать рекомендательную систему отдела кадров
Напишите рекомендательную систему отдела кадров некоторой компании, которая реализует следующую логику: Предлагает пользователю выбрать...

8
55 / 56 / 37
Регистрация: 06.02.2013
Сообщений: 257
Записей в блоге: 1
09.02.2013, 23:48
Цитата Сообщение от Lev93 Посмотреть сообщение
Система отдела кадров предприятия содержит следующие сведения о работниках:
-фамилия и инициалы работника;
-название занимаемой должности;
-год поступления на работу.
Написать программу, которая выполняет следующие действия:
-вводит с клавиатуры данные в массив, состоящий из десяти структур; записи должны быть размещены по алфавиту;
-выводит на дисплей фамилии работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
-если таких работников нет, вывести на дисплей соответствующее сообщение.
блин, тут писать много....
0
3 / 3 / 1
Регистрация: 29.09.2012
Сообщений: 15
10.02.2013, 00:43
Сейчас поищу, писал на прошлом курсе на контрольную работу.

Добавлено через 13 минут
Такую же обнаружить не удалось, точно помню, что писал, но найти не могу.
Нашел похожую, про студентов, там ФИО, группа, успеваемость. Есть сортировка, ввод с клавиатуры и вывод по успеваемости. Много комментариев, даже с ИЗБЫТКОМ. Преподаватель у нас была странная, у неё паранойя по поводу комментариев была, вот и пришлось их добавить.
В общем, если хочешь могу дать, чуть-чуть подправишь и вуаля!
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
10.02.2013, 00:45
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
#include <iostream>
#include <string>
#include <sstream>
 
class Worker {
 public:
  Worker() : name(), position(), hiredYear() {}
  Worker(const std::string &name, const std::string &position, int hiredYear)
    : name(name), position(position), hiredYear(hiredYear) {}
  const std::string &getName() const { return name; }
  const std::string &getPosition() const { return position; }
  const int getHiredYear() const { return hiredYear; }
 private:
  std::string name;
  std::string position;
  int hiredYear;
};
 
std::ostream &operator<<(std::ostream &stream, const Worker &worker) {
  return stream << "Worker{" <<
    "name='" << worker.getName() << "'," <<
    "position='" << worker.getPosition() << "'," <<
    "hiredYear=" << worker.getHiredYear() << "}";
}
 
bool operator<(const Worker &a, const Worker &b) {
  return a.getName() < b.getName();
}
 
int insertWorker(Worker *workers, int workersSize, const Worker &newWorker) {
  int insertionPoint = 0;
  while (insertionPoint < workersSize && workers[insertionPoint] < newWorker) {
    ++insertionPoint;
  }
  for (int j = workersSize; j > insertionPoint; --j) {
    workers[j] = workers[j - 1];
  }
  workers[insertionPoint] = newWorker;
  return workersSize + 1;
}
 
Worker readWorker(std::istream &in, std::ostream &out) {
  std::string name, position;
  std::string sbuffer;
  int hiredYear;
  out << "New Worker:" << std::endl;
  out << "Name: ";
  std::getline(in, name);
  out << "Position: ";
  std::getline(in, position);
  out << "Hired year: ";
  std::getline(in, sbuffer);
  std::stringstream sstream(sbuffer);
  sstream >> hiredYear;
  return Worker(name, position, hiredYear);
}
 
int main(int argc, char **argv) {
  int maxWorkers = 10;
  int numberOfWorkers = 0;
  Worker *workers = new Worker[maxWorkers];
 
  for (int i = 0; i < maxWorkers; ++i) {
    Worker worker = readWorker(std::cin, std::cout);
    insertWorker(workers, numberOfWorkers++, worker);
  }
 
  for (int i = 0; i < numberOfWorkers; ++i) {
    std::cout << workers[i] << std::endl;
  }
 
  delete [] workers;
  std::cin.get();
  return 0;
}
0
3 / 3 / 1
Регистрация: 29.09.2012
Сообщений: 15
10.02.2013, 00:50
Вот он. Кодировку не помню, но он под Visual Studio написан, так что, если в Visual Studio будешь открывать, то всё норм.
Вложения
Тип файла: txt Исходный код.txt (6.5 Кб, 165 просмотров)
0
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
12.02.2013, 02:21
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
#include <iostream>
#include <cstdlib>
#include <string>
 
#define SIZE 10
 
struct Worker {
    std::string name;
    std::string surname;
    int year;
} list[SIZE];
 
void add_worker()
{
    Worker* ptr = list;
 
    for ( ;  ptr->year != 0; ++ptr)
        if (ptr == list + SIZE-1) {
            std::cout << "List is full.\n";
            return;
        }
 
    std::cout << "\nPut new name: ";
    std::cin >> ptr->name;
    std::cout << "Put new surname: ";
    std::cin >> ptr->surname;
    std::cout << "Put, how many years hi worked: ";
    std::cin >> ptr->year;
    std::cout << std::endl;
 
    int comp(const void *, const void *);
    qsort(list, SIZE, sizeof(Worker), comp);
}
 
int comp(const void* i, const void* j)
{
    Worker* left = &(*(Worker*)i);
    Worker* right = &(*(Worker*)j);
    return left->surname > right->surname;
}
 
void show_list()
{
    int comp;
    Worker* ptr = list;
 
    std::cout << "Put comp year: ";
    std::cin >> comp;
 
    for ( ; list + SIZE != ptr; ++ptr) {
        if (ptr->year > comp) {
            std::cout << "\nName: " << ptr->name << "\nSurname: " 
                << ptr->surname << "Woked " << ptr->year << " years\n";
        }
    }
}
 
int main()
{
    char answer[10];
    int dig;
 
    for ( ;; ) {
        std::cout << "\n1) Add to list.\n";
        std::cout << "2) Show workers.\n";
        std::cout << "3) Exit program.\n";
        std::cin >> answer;
        dig = atoi(answer);
        switch (dig) {
            case 1:
                add_worker();
                break;
            case 2:
                show_list();
                break;
            case 3:
                exit(0);
                break;
            default:
                std::cout << "Wrong answer, try again.\n";
                break;
        }
    }
 
    return 0;
}
1
1 / 1 / 0
Регистрация: 09.02.2013
Сообщений: 51
12.02.2013, 16:51  [ТС]
а можно как нибудь попроще? а то некоторые выражения мне непонятны, такие как
for ( ; list + SIZE != ptr; ++ptr)

Добавлено через 2 минуты
обычно пишут: for (int i=0; i<size; i++) (я начинающий программист)
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
12.02.2013, 16:53
Цитата Сообщение от Lev93 Посмотреть сообщение
обычно пишут: for (int i=0; i<size; i++)
Зачем это писать, если переменная инициализирована заранее? Можно опустить.
0
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
12.02.2013, 18:45
Цитата Сообщение от Lev93 Посмотреть сообщение
for ( ; list + SIZE != ptr; ++ptr)
эта стандартная фича при работе с указателями. Условие внутри цикла означает, что ptr (он же указатель на структуру) принадлежит массиву list и не должен превышать размер SIZE. Грубо говоря выражение list + SIZE подобно 0+SIZE. У нас SIZE = 10; поэтому ptr не должне превышать 10. Операнд list, как я уже говорил свидетельствует о том что ptr ссылается на массив list.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2013, 18:45
Помогаю со студенческими работами здесь

БД отдела кадров
Здравствуйте! Помогите пожалуйста с базой данных, есть несколько таблиц Сотрудники, Должность, Отделы, .. надо создать несколько...

Приказы Отдела Кадров
Внедряю модуль который добавляет приказы для ОК в ЗУП 2.5. При заполнении док. -ов на основании столкнулся с проблемой. Документ -...

Учет отдела кадров
Привет задали в универе сделать базу данных учета отдела кадров, а я в этом не особо шарю Помогите придумать 6 таблиц и что туда должно...

БД для отдела кадров на Оракле
можно ли на Оракле создать БД для отдела кадров???и соединить ее с Delphi?

база данных отдела кадров
Здравствуйте. Необходимо создать базу данных отдела кадров ВУЗа. подробности во вложенном файле.


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера 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