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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> линейный однонаправленный список 
:(
    Опции темы
PriestOfLuna
Дата 27.6.2010, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



программа с линейным однонаправленным списком. здесь создаю этот самый список. Пишет ошибку что last инициализируется более одного раза. И в той же строчке (последней) декларейшн синтакс эррор. Помогите плиз 
shop *listHead=new(shop); //zaglavnoe zveno
shop *last=listHead; //poslednee zveno
(*last).next=NULL;
PM MAIL   Вверх
borisbn
Дата 27.6.2010, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



В этих строчках ошибки не видно. Выкладывай весь код и не забывай пользоваться кнопкой Код


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
PriestOfLuna
Дата 27.6.2010, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <iomanip.h>
 struct shop
 {
  int number;
  char adress[40];
  char type[20];
  shop *next;

  int add();
  void del();
  void search();
  void output();
  void outall();
 };

 shop *listHead=new(shop);  //zaglavnoe zveno
 shop *last=listHead;          //poslednee zveno
 (*last).next=NULL;
 shop *current;                 //tekushee zveno
 int key;

 int shop::add()
 {
  while(1==1)
  {
   last=new(shop);
   last=(*last).next;

   cout<<"number:";
   cin>>(*last).number;

   cout<<"adress:";
   gets((*last).adress);

   cout<<"type:";
   gets((*last).type);

   cout<<"\n";

   (*last).next=NULL;

   cout<<"to add more, press \'a\'";
   switch(getch())
   {
    case'a': break;
    default: return 0;
   }
  }
 }

 void shop::search()
 {
  key=0;
  int flag=0;
  current=listHead;
  if((*current).next==NULL)
   cout<<"List is empty\n";

  else
  {
   cout<<"Enter a key number:";
   cin>>key;

   while((*current).next!=NULL)
   {
     if((*current).number==key)
      {(*current).output();
      flag=1;
      }
   }
   if(flag==0)
    cout<<"Shop not found\n";
  }
 }
 void shop::del()
 {
  shop *previous;
  key=0;

  cout<<"Enter a key number:";
  cin>>key;
  current=(*listHead).next;
  while(current!=NULL)
  {
   if((*(*current).next).number==key)
    {
     previous=current;
     current=(*current).next;
     (*previous).next=(*current).next;
     delete(current);
    }
   current=(*current).next;
  }

 }

 void shop::output()
 {
  cout<<"\nnumber:"<<number;

  cout<<"\ntype:"<<type;

  cout<<"\nadress:"<<adress;
 }

 void shop::outall()
 {
  if((*listHead).next==NULL)
    cout<<"List is empty";
  else
  {
   cout<<"ЪДДДДДДВДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДї\n"; // писалось в borland c++ под DOS, так модно там делается таблица =)
   cout<<"іnumberі    type    і       adress       і\n";
   cout<<"АДДДДДДБДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДЩ\n";
  current=(*listHead).next;
  while(current!=NULL)
  {
   cout<<"і"<<setw(6)<<(*current).number<<"і"<<setw(12)<<(*current).type;
   cout<<"і"<<setw(20)<<(*current).adress<<"і\n";
   cout<<"АДДДДДДБДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДЩ\n";
   current=(*current).next;
  }
  }
 }

 int main()
{shop obj;
clrscr();

while(1==1)
{
clrscr();
cout<<"    1. Add a new element"<<'\n';
cout<<"    2. Delete element"<<'\n';
cout<<"    3. Search"<<'\n';
cout<<"    4. Print all"<<'\n';
cout<<"    q. Exit"<<'\n';

switch(getch())
  {
 case '1': obj.add(); break;
 case '2': obj.del(); break;
 case '3': obj.search(); break;
 case '4': obj.output(); break;
 case 'q': return 0;
  }
 }

}

PM MAIL   Вверх
W4FhLF
Дата 27.6.2010, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Вот это в main убери:

Код

(*last).next=NULL;



--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
PriestOfLuna
Дата 27.6.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спасибо! правда почти все методы не работают но это фигня, исправим  smile 
Да, если можно, объясните, почему глобально нельзя присвоить

Это сообщение отредактировал(а) PriestOfLuna - 27.6.2010, 13:01
PM MAIL   Вверх
borisbn
Дата 27.6.2010, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

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



Цитата

(*last).next=NULL; 

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

Вот
Цитата

shop *last=listHead;

это - не просто присвоение, а объявление переменной и инициализация, которые можно делать где угодно.
 

Это сообщение отредактировал(а) borisbn - 27.6.2010, 13:15


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

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

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

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

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


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

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


 




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


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

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