Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в Б-дереве, Запрос к БД на "С" 
:(
    Опции темы
suse
Дата 4.6.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Есть программа, имитирующая запрос к базе данных на "С":
Код

#include <iostream.h>
#include "conio.h"
#include "stdlib.h"
#include "stdio.h"
struct Node
{    
    int id_zakazchika;
    char modname[15];
    char data[10];
    int edcomp[50];
    int kol_comp;
    Node *left;
    Node *right;
};

Node *search_insert(Node *,Node *);
void print_tree(Node *root,int l); 
void clearmem(Node *);

int main()
{
FILE *file;
Node b,*p;
int obcena=0;
clrscr;
file=fopen("r1table.txt", "r");

Node *root=NULL;
if (file==NULL) puts("Error Open File!");
while (!feof(file)) 
    {
    fscanf (file, "%d %s %s %d %d\n", &b.id_zakazchika, &b.modname, &b.data, &b.edcomp, &b.kol_comp);
    p=&b;
    root=search_insert(root,&b); 
    obcena=obcena+b.kol_comp;
    }

fclose (file);

print_tree(root,0);
clearmem(root);
printf("\n");
printf("Obshaa cena zakazov:\n");
printf("%8i",obcena);
getch();
return 0;
}


Node *search_insert(Node *root,Node *b)
{
if (root==NULL) 
 {
     root=new Node;
     *root=*b;
     root->left=NULL;
     root->right=NULL;
     return root;
 };

Node *pv=root,*prev=NULL;
int found=0;
while((pv!=NULL)&&(!found))
    {
    prev=pv;
    if (pv->id_zakazchika>b->id_zakazchika)
            pv=pv->left;
    else pv=pv->right;
    }

Node *pnew=new Node;
pnew->id_zakazchika=b->id_zakazchika;
*pnew=*b;
pnew->left=NULL;
pnew->right=NULL;

if(b->id_zakazchika<prev->id_zakazchika)
    prev->left=pnew;
    else prev->right=pnew;
return root;
}

void print_tree(Node *p,int level)
{
if (p)
    {
   print_tree(p->left,level+1);
    printf("%d %s %s %d %d\n", p->id_zakazchika, p->modname, p->data, p->edcomp, p->kol_comp);
   print_tree(p->right,level+1);
    }
}

void clearmem(Node *p)
{
if (p->left!=NULL) clearmem(p->left);
if (p->right!=NULL) clearmem(p->right);
delete p;
}


И текстовой файл r1table.txt в котором все это происходит:
10605    Intel Standart    10.03.2009    150
10606    AMD Standart    09.03.2009    300
10603    AMD Premium    02.03.2009    20
10601    AMD Standart    10.03.2009    50
10602    Intel Standart    11.03.2009    15
10608    AMD Standart    08.03.2009    45
10604    AMD Standart    03.03.2009    60
10606    AMD Standart    09.03.2009    300
10607    Intel Premium    08.03.2009    175

Помогите понять в чем дело. Выдает ошибку:
Compiling:
Warning OSN.CPP 47: 'p' is assigned a value that is never used in function main()

Компилятор: Borland C/C++ 4.5
PM MAIL   Вверх
Static
Дата 4.6.2009, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 6.11.2008

Репутация: нет
Всего: 2



это не ошибка. Это предупреждение, что в функции main() вы не используете объявленную переменную
--------------------
Я не настолько безнадежен, как кажется...
PM MAIL   Вверх
suse
Дата 4.6.2009, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Используется же p!
PM MAIL   Вверх
azesmcar
Дата 4.6.2009, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(suse @  4.6.2009,  16:30 Найти цитируемый пост)
Node b,*p;
int obcena=0;
clrscr;
file=fopen("r1table.txt", "r");
Node *root=NULL;
if (file==NULL) puts("Error Open File!");
while (!feof(file)) 
    {
    fscanf (file, "%d %s %s %d %d\n", &b.id_zakazchika, &b.modname, &b.data, &b.edcomp, &b.kol_comp);
    p=&b;
    root=search_insert(root,&b); 
    obcena=obcena+b.kol_comp;
    }

где же онa используется? если ее убрать ничего не изменится.
возможно имеется ввиду ее использование в функции
Код

void print_tree(Node *p,int level)

но обявленная в main переменная p и аргумент функции - разные вещи.

Это сообщение отредактировал(а) azesmcar - 4.6.2009, 17:14
PM   Вверх
suse
Дата 4.6.2009, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Хорошо. Соглашусь! Но программа не хочет работать. 
PM MAIL   Вверх
azesmcar
Дата 4.6.2009, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(suse @  4.6.2009,  17:17 Найти цитируемый пост)
Хорошо. Соглашусь! 

да нет, что вы..не надо, право не стоит.

Цитата(suse @  4.6.2009,  17:17 Найти цитируемый пост)
программа не хочет работать. 

я тоже не хочу smile 6 часов вечера, завтра пятница. кто же сейчас работать хочет?

а поподробнее можно?

Это сообщение отредактировал(а) azesmcar - 4.6.2009, 17:20
PM   Вверх
suse
Дата 4.6.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Компилится, но не запускается!
PM MAIL   Вверх
suse
Дата 4.6.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 26.6.2008

Репутация: нет
Всего: нет



Пишет Linking osn.exe:
Linker Warning: No module definition file specified: using defaults

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.