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

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

Восстановить пароль Регистрация
 
Lev93
1 / 1 / 0
Регистрация: 09.02.2013
Сообщений: 51
09.02.2013, 23:43     Реализоваить систему отдела кадров предприятия #1
Система отдела кадров предприятия содержит следующие сведения о работниках:
-фамилия и инициалы работника;
-название занимаемой должности;
-год поступления на работу.
Написать программу, которая выполняет следующие действия:
-вводит с клавиатуры данные в массив, состоящий из десяти структур; записи должны быть размещены по алфавиту;
-выводит на дисплей фамилии работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
-если таких работников нет, вывести на дисплей соответствующее сообщение.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Константин_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
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
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 Кб, 13 просмотров)
xtorne21st
интересующийся
300 / 271 / 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
Почетный модератор
6468 / 2243 / 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++
Задержка кадров анимации gif C++
C++ Разработка интерфейса программы автоматизации учета кадров предприятия

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

Или воспользуйтесь поиском по форуму:
xtorne21st
интересующийся
300 / 271 / 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     Реализоваить систему отдела кадров предприятия
Ответ Создать тему
Опции темы

Текущее время: 18:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru