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

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

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

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

01.06.2017, 22:27. Просмотров 151. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2017, 22:27
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Метод сортировки Шелла (C++):

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

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

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

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

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

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

1
MrGluck
02.06.2017, 00:41     Метод сортировки Шелла
  #2
 Комментарий модератора 
fronzilla, запрещено дублировать темы
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2017, 00:41
Привет! Вот еще темы с ответами:

Сравнение алгоритмов сортировки ... алгоритм Шелла - C++
Вопрос такой, для лабораторной работы нужно сравнить три алгоритма сортировки чисел ... так вот измеряю время работы : double start...

Метод медиан из трех элементов VS улучшенный быстрый метод сортировки(метод Бентли-Макилроя) - C++
Здравствуйте! Дали весьма интересное задание. Сравнить два вышеуказанных метода сортировки для массива из 10000 элементов, результаты...

Ребят доработайте код программы (программа сортировки чисел методом Шелла) - C++
Нужна помощь Есть программа сортировки чисел методом шелла ее надо дописать чтоб она спрашивала 1 - введите сами 2 – рандом Если...

Написать программу для сортировки массива способами шелла вставки слияния и пузырьком - C++
Написать программу для сортировки массива способами шелла вставки слияния и пузырьком в одной программе со всеми операторами и объяснением...


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

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

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