Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
fronzilla
0 / 0 / 0
Регистрация: 01.06.2017
Сообщений: 3
#1

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

01.06.2017, 22:27. Просмотров 172. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

Переделка сортировки Шелла
Товарищи и друзья! Только не закидывайте меня тухлыми яйцами и не понижайте...

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

Алгоритм сортировки Шелла
http://lord-n.narod.ru/download/books/walla/programming/Spr_po_C/21/2107.htm ...

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

Сравнение алгоритмов сортировки ... алгоритм Шелла
Вопрос такой, для лабораторной работы нужно сравнить три алгоритма сортировки...


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

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

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