Форум программистов, компьютерный форум, киберфорум
Visual C++: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 12.01.2016
Сообщений: 9

Укажите на ошибки

04.11.2016, 23:19. Показов 927. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Различные цеха завода выпускают продукцию нескольких наименований. Сведения о выпущенной продукции включают:
• наименование;
• количество;
• номер цеха.
Для заданного цеха выведите количество выпущенных изделий по указанному наименованию в порядке убывания их количества.
ПРОБЛЕМА ВОТ В ЧЕМ,РАБОТАЕТ ПРИ ВВОДЕ ТОЛЬКО ДВУХ ЦЕХОВ.
Заголовочный файл hesh.h
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
#include <string.h>
#include <string>
typedef int TKey;
struct TInf{
    char inf;//Наименование
    char number;//Номер цеха
    int chislo[50];
    TKey key;//Ключ
};
struct TSel{
    TInf inf;//Поле информации
    TSel *a;//Поле ключа
};
 
class THesh{//Класс для работы с таблицей
public:
    THesh(int, char*);//Конструктор (создание  таблицы)
    void add(TInf);//Добавление элемента
    bool read(TKey, TInf*);//Чтение элемента
    ~THesh();//Дестрктор
private:
    int m;//Количество записей в таблице
    TSel **h;//Указатель на массив указателей 
    char *filename;//Имя файла для вывода таблицы
    int i;
};
Файлы исходного кода
hesh.cpp (первый код)
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
#include "hesh.h"
#include <stdio.h>
#include <iostream>
 
THesh::THesh(int k, char *fn)
{
    filename = fn;
    m = k;
    h = new TSel*[m];//Создание массива из m указателей и его очистка
    for (int i = 0; i < m; i++)
        h[i] = NULL;
}
 
void THesh::add(TInf inf)
{
    TSel *p = new TSel;
    i = inf.key%m;//Хеш-функция
    p->a = h[i];
    p->inf = inf;
    h[i] = p;
    std::cout << "added" << std::endl;
}
 
 
bool THesh::read(TKey key, TInf *inf)
{
    i = key%m;
    TSel *p = h[i], *p1;
    bool bl = false;
    if (p != NULL)
    {
        do{
            bl = (int(p->inf.number) == key);
            
            p1 = p;
            p = p->a;
        } while ((!bl) && (p != NULL));
        if (bl) *inf = p1->inf;
    }
    return bl;
}
 
THesh:: ~THesh(){
    TSel *p;
    FILE *fl;
    
    if ((fl = fopen(filename, "wb")) == NULL){
        std::cout << "file no created";
    }
 
    for (int i = 0; i < m; i++){
        while (h[i] != NULL){
            p = h[i];
            fwrite(&h[i], sizeof(TSel), 1, fl);
            h[i] = h[i]->a;
            delete p;
        }
    }
    fclose(fl);
    delete h;
}
main.cpp(второй код)
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
#include <iomanip>
#include <iostream>
#include <conio.h>
#include <math.h>
#include "hesh.h"
using namespace std;
 
 
struct ChisloIzdeliy{
    int chislo;
    string nomer;
};
 
void bubbleSort(ChisloIzdeliy *arr, int size)
{
    int  i, j;
    ChisloIzdeliy tmp;
    for (i = 0; i < size - 1; ++i) // i - Номер прохода
    {
        for (j = 0; j < size - 1; ++j) // Внутренний цикл прохода
        {
            if (arr[j + 1].chislo < arr[j].chislo)
            {
                tmp = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = tmp;
            }
        }
    }
}
int main()
{
    THesh *h1;
    struct produkziya
    {
        char naimenovanie[50];
        int kolichestvo;
        ChisloIzdeliy chisloIzdeliy[50];
        int nomer_zecha;
    } zavod[100];
    int a=0, i, j, n, s, nomer;
    std::cout << "Vvedite kolichestvo cehov: ";
    std::cin >> n;
    h1 = new THesh(n, "jhk");
    TInf ob;
    for (int i = 1; i <= n; i++)
    {
        std::cout << "Vvedite nomer ceha: ";
        std::cin >> zavod[i].nomer_zecha;
        ob.number = zavod[i].nomer_zecha;
        
        cout << "Skolko naimenovanii vipyskaet ceh nomer" << zavod[i].nomer_zecha<<": ";
        std::cin >> s;
        zavod[i].kolichestvo = s;
        ob.inf = zavod[i].kolichestvo;
 
        for (int j = 1; j <= s; j++)
        {
            cout << "Nazvaniye naimenovaniya" << endl;
            cin >> zavod[i].chisloIzdeliy[j].nomer;
            cout << "Skolko izdeliy u naimenovaniya " << zavod[i].chisloIzdeliy[j].nomer << endl;
            
            cin >> a;
            zavod[i].chisloIzdeliy[j].chislo = a;
            ob.chislo[j] = a;
        }
        bubbleSort(zavod[i].chisloIzdeliy, s + 1);
        string s = "tovar " + std::to_string(i);
        strcpy(zavod[i].naimenovanie, s.c_str());
        h1->add(ob);
    }
    
    std::cout << "Kakoy vivesti ceh?\n";
    std::cin >> nomer;
    using std::setw;
    cout << endl;
    //std::cout << setw(15) << "naimenovanie" << setw(15) << "kolichestvo" << std::endl;
    TInf *op = new TInf;
    if (h1->read(nomer, op))
    {
        cout << "Est takoy ceh" << endl;
        cout << "Kolichestvo naimenovanii etoro ceha" << zavod[nomer].kolichestvo << endl;
        
        for (int i = zavod[nomer].kolichestvo; i >= 1; i--)
            cout << "chislo izdeliy naimenovaniya: " << (zavod[nomer].chisloIzdeliy[i].nomer)<< ": " << zavod[nomer].chisloIzdeliy[i].chislo << endl;
    }
    else cout << "net takogo";
    h1->~THesh();
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.11.2016, 23:19
Ответы с готовыми решениями:

укажите на ошибки
посмотрите на правтльность написания, всё ли получилось? если что-то не так подскажите пожалуйста... сайт не посещается, что сделать? ...

укажите на ошибки
Ресурс www.faunafood.ru (мой второй сайт) сделан на джумле, вроде все учтено по оптимизации. Но нет народу, НЕТ с поисковиков сегодня было...

Укажите на ошибки
Нужно было сделать сеть для вымешленной компании. Вот накидал в packet tracer. Компания расположена в 3 городах. Укажите на ошибки,...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.11.2016, 23:19
Помогаю со студенческими работами здесь

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

Укажите на ошибки
Здравствуйте, подскажите пожлста, продвигаю сайт, в гугле вышел по 1 запросу на 6 строчку, в яше уже упал на 70, подскажите что поправить,...

Укажите ошибки в
Что сдесь не правельно www.smartphon.su . Походу я должен прогонять по однму слову &quot;смартфон&quot;, а не по его видам9смартфона,...

Укажите на ошибки
На страничке http://aquapage.narod.ru/photo_lombardoi_1.html три картинки: кнопка возврат, фото с рыбкой и фото с травой. Не могу сделать...

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru