Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lev93
1 / 1 / 0
Регистрация: 09.02.2013
Сообщений: 51
#1

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

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

Система отдела кадров предприятия содержит следующие сведения о работниках:
-фамилия и инициалы работника;
-название занимаемой должности;
-год поступления на работу.
Написать программу, которая выполняет следующие действия:
-вводит с клавиатуры данные в массив, состоящий из десяти структур; записи должны быть размещены по алфавиту;
-выводит на дисплей фамилии работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
-если таких работников нет, вывести на дисплей соответствующее сообщение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2013, 23:43     Реализоваить систему отдела кадров предприятия
Посмотрите здесь:
C++ Разработка интерфейса программы автоматизации учета кадров предприятия
Описать структуру: Отдел кадров C++
Задержка кадров анимации gif C++
sdl остановка цикла отрисовки кадров C++
Создать таблицу с записями о сотрудниках отдела C++
C++ Списки. Смоделировать работу отдела выдачи мебельной фабрики
C++ Расчет зп сотрудников предприятия
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Константин_2012
53 / 54 / 17
Регистрация: 06.02.2013
Сообщений: 255
Записей в блоге: 1
09.02.2013, 23:48     Реализоваить систему отдела кадров предприятия #2
Цитата Сообщение от Lev93 Посмотреть сообщение
Система отдела кадров предприятия содержит следующие сведения о работниках:
-фамилия и инициалы работника;
-название занимаемой должности;
-год поступления на работу.
Написать программу, которая выполняет следующие действия:
-вводит с клавиатуры данные в массив, состоящий из десяти структур; записи должны быть размещены по алфавиту;
-выводит на дисплей фамилии работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
-если таких работников нет, вывести на дисплей соответствующее сообщение.
блин, тут писать много....
Стоян
3 / 3 / 0
Регистрация: 29.09.2012
Сообщений: 15
10.02.2013, 00:43     Реализоваить систему отдела кадров предприятия #3
Сейчас поищу, писал на прошлом курсе на контрольную работу.

Добавлено через 13 минут
Такую же обнаружить не удалось, точно помню, что писал, но найти не могу.
Нашел похожую, про студентов, там ФИО, группа, успеваемость. Есть сортировка, ввод с клавиатуры и вывод по успеваемости. Много комментариев, даже с ИЗБЫТКОМ. Преподаватель у нас была странная, у неё паранойя по поводу комментариев была, вот и пришлось их добавить.
В общем, если хочешь могу дать, чуть-чуть подправишь и вуаля!
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
10.02.2013, 00:45     Реализоваить систему отдела кадров предприятия #4
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;
}
Стоян
3 / 3 / 0
Регистрация: 29.09.2012
Сообщений: 15
10.02.2013, 00:50     Реализоваить систему отдела кадров предприятия #5
Вот он. Кодировку не помню, но он под Visual Studio написан, так что, если в Visual Studio будешь открывать, то всё норм.
Вложения
Тип файла: txt Исходный код.txt (6.5 Кб, 14 просмотров)
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
12.02.2013, 02:21     Реализоваить систему отдела кадров предприятия #6
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;
}
Lev93
1 / 1 / 0
Регистрация: 09.02.2013
Сообщений: 51
12.02.2013, 16:51  [ТС]     Реализоваить систему отдела кадров предприятия #7
а можно как нибудь попроще? а то некоторые выражения мне непонятны, такие как
for ( ; list + SIZE != ptr; ++ptr)

Добавлено через 2 минуты
обычно пишут: for (int i=0; i<size; i++) (я начинающий программист)
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
12.02.2013, 16:53     Реализоваить систему отдела кадров предприятия #8
Цитата Сообщение от Lev93 Посмотреть сообщение
обычно пишут: for (int i=0; i<size; i++)
Зачем это писать, если переменная инициализирована заранее? Можно опустить.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2013, 18:45     Реализоваить систему отдела кадров предприятия
Еще ссылки по теме:
C++ Для 10 сотрудников отдела: выполнить сортировку по убыванию номеров телефонов
C++ Программа диагностики рентабельности предприятия
Ведомость поставок товаров предприятия C++
C++ Помогите исправить ошибку. Вывести на печать фамилию и возраст работников 3 отдела.
C++ Расчет закупки сырья промышленного предприятия

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

Или воспользуйтесь поиском по форуму:
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
12.02.2013, 18:45     Реализоваить систему отдела кадров предприятия #9
Цитата Сообщение от Lev93 Посмотреть сообщение
for ( ; list + SIZE != ptr; ++ptr)
эта стандартная фича при работе с указателями. Условие внутри цикла означает, что ptr (он же указатель на структуру) принадлежит массиву list и не должен превышать размер SIZE. Грубо говоря выражение list + SIZE подобно 0+SIZE. У нас SIZE = 10; поэтому ptr не должне превышать 10. Операнд list, как я уже говорил свидетельствует о том что ptr ссылается на массив list.
Yandex
Объявления
12.02.2013, 18:45     Реализоваить систему отдела кадров предприятия
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru