Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.06.2014, 18:56   #1
qaz123
Новичок
Джуниор
 
Регистрация: 21.06.2014
Сообщений: 1
По умолчанию Сортировка

Здравствуйте! Помогите пожалуйста написать программу:
Упорядочить таблицу (см. ниже) по неубыванию значений ключа методом сортировки с использованием структуры дерево. Включить информацию, хранимую в этой таблице, в таблицу продукции, имеющейся на складе. Таблица продукции упорядочена по возрастанию ключа. Элемент таблицы включает: шифр изделия (это ключ), наименование, количество (штук), цена (за штуку). Цену изделия брать из таблицы-прейскуранта, элемент которой содержит: шифр изделия, цена (за штуку). Эта таблица также упорядочена по возрастанию шифров изделий. Для поиска элементов в таблице использовать бинарный поиск

Таблица ниже -- это неупорядоченная таблица, которая характеризуется шифром(ключом), названием и количеством штук.

Большое спасибо! Очень буду благодарен тому, кто поможет, потому что сроки совсем поджимают.

Код:
#include <stdio.h>
#include <string.h>
 
const int  N=10000;
extern int num;
 
struct table {
    char code[9];
    char name[255];
    int numb;
};
 
void table_add(table *t, char *code, char *name, int numb);
 
void table_add(table *t, char *code, char *name, int numb) {
    int flag = 0;
    for(int i = 0; i < num && !flag; i++)
        if(!strcmp(code, t[i].code)) {
            flag++;
            t[i].numb += numb;
        }
    if(!flag) {
        strcpy(t[num].code, code);
        strcpy(t[num].name, name);
        t[num].numb = numb;
        num++;
    }
}
 
int num = 0;
int main() {
table *t = new table [N];
 
for(int i = 0; i < N; i++) {
    t[i].code[0] = '\0';
    t[i].name[0] = '\0';
    t[i].numb = 0;
}
FILE *f = fopen("work.txt","r");
int numb;
char name[255], code[9];
while(fscanf(f, "%s %s %i", code, name, &numb) != EOF && num < N)
    table_add(t, code, name, numb);
fclose(f);
f = fopen("table.txt", "w");
for(int i = 0; i < N; i++)
    if(t[i].code[0] != '\0')
        fprintf(f, "%s\t%s\t%i\n", t[i].code, t[i].name, t[i].numb);
 
delete [] t;
return 0;
}


________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(это кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 21.06.2014 в 19:35.
qaz123 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Быстрая сортировка(сортировка хаора) с++ LustHunter Помощь студентам 3 07.10.2011 19:37
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
паскаль,одномерный массив,сортировка вставка,сортировка убывания,от максимального до конца немозг Помощь студентам 11 06.02.2010 21:57
Сортировка файлов в Explorer vs сортировка в Delphi mutabor Общие вопросы Delphi 11 04.09.2009 14:32