0 / 0 / 0
Регистрация: 12.07.2020
Сообщений: 3
1

Разработать конвертор формата данных, изменяющий порядок списков сотрудников

13.07.2020, 10:41. Показов 1769. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На одном из предприятий установлена пропускная система, которая ежедневно фиксирует порядок прихода сотрудников, используя персональные магнитные карты.

Директора предприятия заинтересовал список сотрудников, регулярно опаздывающих на работу в последнее время, в целях последующего возможного их сокращения. Для этого он сделал распечатку фамилий сотрудников за последние K дней. Распечатка представляла собой K строк текста, в каждой из которых были записаны сотрудники, упорядоченные по времени прихода. Но такое представление директору показалось неудобным, т.к. его интересовали опоздавшие сотрудники.

Вы собираетесь устроиться программистом на данное предприятие и Вам в качестве проверочного теста предложено разработать конвертор формата данных, изменяющий порядок списков сотрудников.

Успехов в реализации данной программы!

Входные данные
Первая строка входного файла INPUT.TXT содержит натуральное число K (K ≤ 10) – число дней. Далее идут K строк, в каждой из которых задана последовательность фамилий сотрудников, разделенных ровно одним пробелом, в порядке их прихода на работу в один из K дней. Общее число сотрудников на предприятии не превышает 100, гарантируется, что каждый день на работу приходит хотя бы один сотрудник. Фамилия сотрудника – последовательность символов английского алфавита, длиной от 1 до 100 символов.

Выходные данные
В выходной файл OUTPUT.TXT выведите ровно K строк в формате, удобном для отслеживания опаздывающих сотрудников.

Что не так с решением?
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
#include<iostream>
#include<string>
using namespace std;
int main(){
    int k;
    cin>>k;
    string a[10],b[100];
    int cnt1=0, cnt2=0;
    for(int i=0; i<k+1;i++){
        getline(cin, a[i]); 
    }
       for(int i=0; i<k+1;i++){
        for(int x=0; x<a[i].size()+1; x++){
            if(a[i][x]==32 || x==a[i].size()){
                cnt1++;
                cnt2=0;}
                else{
                    b[cnt1][cnt2]=a[i][x];
                cnt2++;}}
         for(int x=cnt1; x>-1; x--){
            cout<<b[x]<<" ";
         }
         cout<<endl;
         cnt1=0;
         cnt2=0;
         for(int x=0; x<100; x++){
             b[x]="";
        }
        }
        return 0;
        }
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.07.2020, 10:41
Ответы с готовыми решениями:

Написать программу, изменяющий порядок следования байтов в файле на противоположный
1.Написать программу, изменяющий порядок следования байтов в файле на противоположный. Имя файла...

Порядок соединения списков (append)
Требуется соединить три списка l1, l2 и l3. В какой последовательности применять предикат append к...

Копирование данных двумерного массива состоящего из списков в список списков.
Для нахождения МСТ (минимального остового дерева) написал функцию, которая принимает масив - гарф....

Порядок соединения списков (не могу разобраться)
Есть вот такое задание Требуется соединить три списка l1, l2 и l3. В какой последовательности...

1
Мозгоправ
1744 / 1038 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
14.07.2020, 03:47 2
Лучший ответ Сообщение было отмечено gibus2004 как решение

Решение

gibus2004, на сколько я понял условие задачи, нужно просто выводить фамилии в обратном порядке (последние пришедшие - первыми), поскольку никакой информации о том, что сотрудник опоздал, нет.

Простое решение:
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
#include <iostream>
#include <sstream>
#include <string>
 
using namespace std;
 
int main() {
    int k;
    string in_str, out_str, name;
    cin >> k;
    cin.ignore();
    for (int i = 0; i < k; ++i) {
        getline(cin, in_str);
        out_str.clear();
        stringstream ss(in_str);
        bool first = true;
        while (ss >> name) {
            if (first) {
                out_str = name;
                first = false;
            }
            else
                out_str.insert(0, name + " ");
        }
        cout << out_str << endl;
    }
}
Цитата Сообщение от gibus2004 Посмотреть сообщение
Что не так с решением?
Жуть.
1
14.07.2020, 03:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.07.2020, 03:47
Помогаю со студенческими работами здесь

Самостоятельно разработать базу данных, предназначенную для удобного хранения данных вашей личной фонотеки. Разработать классификаторы и красивые форм
Самостоятельно разработать базу данных, предназначенную для удобного хранения данных вашей личной...

Разработать программу для учета сотрудников с использованием средств ООП
Всем привет от новичка. Мне отправили 2 тестовых задания по вакансии стажер-программист C#. 1-е я...

Разработать веб-приложение (ASP.NET MVC) для расчета з/п сотрудников
Здравствуйте!!! Eсть вопрос. Если можно помогите!!! Вопрос В программе должны быть реализованы...

Разработать функцию, получающую список списков
,а на выходе выдает список всевозможных комбинаций списка полученного из взятия с каждого списка...

Разработать программу создания и корректировки файла, содержащего сведения о датах рождения сотрудников
И снова я прошу :help: с решением задачи, спасибо. В Турбо-Паскале разработать программу...

Разработать программу создания и корректировки файла, содержащего сведения о датах рождения сотрудников
помогите пожалуйста!!!!!!!!Разработать программу создания и корректировки файла, содержащего ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru