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

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

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

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

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

Система отдела кадров предприятия содержит следующие сведения о работниках:
-фамилия и инициалы работника;
-название занимаемой должности;
-год поступления на работу.
Написать программу, которая выполняет следующие действия:
-вводит с клавиатуры данные в массив, состоящий из десяти структур; записи должны быть размещены по алфавиту;
-выводит на дисплей фамилии работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
-если таких работников нет, вывести на дисплей соответствующее сообщение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2013, 23:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализоваить систему отдела кадров предприятия (C++):

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

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

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

База данных отдела кадров - MS Access
Помогите пожалуйста!!! Вопрос жизни и смерти! Красивой девушке грозит отчисление!! Создайте Базу данных отдела кадров в Access (БД о...

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

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

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

Добавлено через 13 минут
Такую же обнаружить не удалось, точно помню, что писал, но найти не могу.
Нашел похожую, про студентов, там ФИО, группа, успеваемость. Есть сортировка, ввод с клавиатуры и вывод по успеваемости. Много комментариев, даже с ИЗБЫТКОМ. Преподаватель у нас была странная, у неё паранойя по поводу комментариев была, вот и пришлось их добавить.
В общем, если хочешь могу дать, чуть-чуть подправишь и вуаля!
0
lemegeton
2925 / 1354 / 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;
}
0
Стоян
3 / 3 / 0
Регистрация: 29.09.2012
Сообщений: 15
10.02.2013, 00:50 #5
Вот он. Кодировку не помню, но он под Visual Studio написан, так что, если в Visual Studio будешь открывать, то всё норм.
0
Вложения
Тип файла: txt Исходный код.txt (6.5 Кб, 14 просмотров)
xtorne21st
интересующийся
304 / 275 / 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;
}
1
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++) (я начинающий программист)
0
Vourhey
Почетный модератор
6485 / 2259 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
12.02.2013, 16:53 #8
Цитата Сообщение от Lev93 Посмотреть сообщение
обычно пишут: for (int i=0; i<size; i++)
Зачем это писать, если переменная инициализирована заранее? Можно опустить.
0
xtorne21st
интересующийся
304 / 275 / 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.
0
12.02.2013, 18:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2013, 18:45
Привет! Вот еще темы с ответами:

Нумерация строк для отдела кадров - MS Access
Добрый день, прошу помощи. У меня запрос на выборку из базы данных -ФИО и реквизиты работника:учеба и предыдущая работа. В итоговой форме...

Нужно составить структуру БД отдела кадров - Oracle
Помогите нужно составить структуру БД отдела кадров. Я предлогаю структуру по документам, есть документы отдела кадров все непомню т.е....

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

Информационно-поисковая система для отдела кадров университета - Turbo Pascal
Информационно-поисковая система для отдела кадров университета. Информационно-поисковая система – это совокупность...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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