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

Метод сортировки Шелла

01.06.2017, 22:27. Показов 1106. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите дописать программу в case 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
#include <math.h>
#include <clocale>
#include <string.h> 
 
using namespace std;
 
struct Kompania
{
    char Zak[30];
    char Vid[30];
    int Prodol;
    double Stoim;
    char Otv[30];
};
 
int main()
{
    int i, j, n, m = 0, min, minStoim;
    char Zak[30];
    setlocale(LC_ALL, "rus");
    Kompania *mKompania = new Kompania[30], stmp;
    int p = 1;
    while (p != 0)
    {
        cout << "Меню:\n1. Ввод новых работ\n2. Чтение из файла\n3. Запись в файл\n4. Вывод списка на экран\n5. Поиск по полю Заказчик\n6. Сортировка по полю Стоимость работ\n0. Выход\n";
        cin >> p;
        switch (p)
        {
        case 1: {
            cout << "Ввод в базу под № " << m + 1 << endl;
            cout << "Введите нового заказчика : ";
            cin >> mKompania[m].Zak;
            cout << "Вид строительных работ : ";
            cin >> mKompania[m].Vid;
            cout << "Продолжительность работ : ";
            cin >> mKompania[m].Prodol;
            cout << "Стоимость работ : ";
            cin >> mKompania[m].Stoim;
            cout << "Введите ответсвенного : ";
            cin >> mKompania[m].Otv;
            m++;
        }; break;
        case 2: {
            m = 0;
            ifstream file("D:\gfh1.txt", ios::in);
            while (!file.eof()) {
                file >> mKompania[m].Zak;
                file >> mKompania[m].Vid;
                file >> mKompania[m].Prodol;
                file >> mKompania[m].Stoim;
                file >> mKompania[m].Otv;
                m++;
            }
            file.close();
            if (m == 1) m = 0;
        }; break;
        case 3: {
            ofstream file("D:\gfh1.txt", ios::out);
            for (i = 0; i < m; i++)
            {
                file << " " << mKompania[i].Zak;
                file << " " << mKompania[i].Vid;
                file << " " << mKompania[i].Prodol;
                file << " " << mKompania[i].Stoim;
                file << " " << mKompania[i].Otv;
            }
            file.close();
        }; break;
        case 4: {
            cout << "Заказчик \tВид строительных работ \tПродолжительность работ \tСтоимость работ \tОтветсвенный" << endl;
            cout << "=============================================================" << endl;
            for (i = 0; i < m; i++)
                cout << mKompania[i].Zak << "\t" << mKompania[i].Vid << "\t" << mKompania[i].Prodol << "\t" << mKompania[i].Stoim << "\t" << mKompania[i].Otv << endl;
            if (m == 0) cout << "База данных пуста!" << endl;
        }; break;
        case 5: {
            n = 0;
            cout << "Введите Заказчика для поиска : ";
            cin >> Zak;
            for (i = 0; i < m; i++)
            {
                if (strcmp(mKompania[i].Zak, Zak) == 0)
                {
                    cout << mKompania[i].Zak << "\t" << mKompania[i].Vid << "\t" << mKompania[i].Prodol << "\t" << mKompania[i].Stoim << "\t" << mKompania[i].Otv << endl;
                    n++;
                }
            }
            if (n == 0) cout << "Заказчики не найдены!" << endl;
        };  break;
        case 6: {
            for (int i = 0; i < m - 1; i++)
            {
                min = i; minStoim = mAvtopark[i].God;
                for (int j = i + 1; j < m; j++)
                    if (mAvtopark[j].God < minGod)
                    {
                        min = j; minGod = mAvtopark[j].God;
                    }
                if (mAvtopark[i].God>minGod)
                {
                    stmp = mAvtopark[i];
                    mAvtopark[i] = mAvtopark[min];
                    mAvtopark[min] = stmp;
                }
            }
        };  break;
        default: break;
        }
    }
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.06.2017, 22:27
Ответы с готовыми решениями:

Метод сортировки Шелла
Написать программу которая реализует метод сортировки Шелла. Сгенерировать три массива 100, 1.000 и 10.000 элементов типа integer...

Сравнение методов сортировки массивов: метод прямого включения и Шелла
Задание: Написать учебно-демонстрационную программу, которая сравнивает методы прямого включения и Шелла сортировки массивов.Очень срочно...

Составить блок – схемы для шейкер- сортировки и сортировки Шелла
Доброго времени суток, очень нужна ваша помощь в решении данной проблемы, буду бесконечно благодарен. Составить блок – схемы для шейкер-...

1
02.06.2017, 00:41
 Комментарий модератора 
fronzilla, запрещено дублировать темы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2017, 00:41
Помогаю со студенческими работами здесь

Не сходится теория и практика метод Шелла и метод простого выбора
Здравствуйте! Помогите пожулуйста найти ошибке в коде, Я уже не знаю где ее искать. У меня метод простого выбора работает по показателям...

Алгоритм сортировки Шелла
Расписать по шагам сортровку массива с помощью алгоритма сортировки шелла:35,20,24,13,39,17,29,40,16,40,12,39,26

Алгоритм сортировки Шелла
http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/21/2107.htm здесь сказано, что существует, некая последовательность...

Переделка сортировки Шелла
Товарищи и друзья! Только не закидывайте меня тухлыми яйцами и не понижайте карму!:) Я нашел такую вещь, что здесь на форуме неправильно...

Доработка сортировки методом Шелла
Здравствуйте, форумчане! Помогите доработать программу, нужно, чтобы можно было сделать выбор, каким образом заполнить массив. У меня...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru