Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Добрый день! / 17 сообщений из 17, страница 1 из 1
23.03.2013, 16:06
    #38195940
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
Картотека:
Адрес
Номер
Тип

Для представления картотеки в ОП ПЭВМ воспользоваться структурой данных – ЛОС (линейный однонапр список). В программе предусмотреть:
- поиск элемента ЛоС по ключу;
- вставку элемента в ЛоС;
- удаление элемента из ЛоС;
- вывод картотеки на принтер.

Код: plaintext
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.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<iomanip.h>
#define n 3
class los
{int b;
int numb;
char adres[20];
char tip[20];
los *next;
public:
static los*p;
void input();
void output();
void search();
void del();
void add();
};
los*los::p;
void los::input()
{los *r;
p=new los;
cout<<"\n Key 1: ";
cin>>p->b;
cout<<"\n № magazina 1: ";
cin>>p->numb;
cout<<"\n Adres 1: ";
gets(p->adres);
cout<<"\n Tip magazina 1: ";
gets(p->tip);
p->next = NULL;
r=p;
for(int i=0; i<n-1; i++)
{clrscr();
r = r->next;
r=new los;
cout<<"\n Key "<<(i+2)<<": ";
cin>>r->b;
cout<<"\n № magazina "<<(i+2)<<": ";
cin>>r->numb;
cout<<"\n Adres "<<(i+2)<<": ";
gets(r->adres);
cout<<"\n Tip magazina "<<(i+2)<<": ";
gets(r->tip);
r->next=NULL;
getch();
}
void los::output()
{clrscr();
lds *r;
r=p;
cout<<"\n"<<"ЪДДДДДВДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДДї";
cout<<"\n"<<"і"<<setw(5)<<"Key"<<"і"<<setw(10)<<"Numb"<<"і"<<setw(15)<<"Adres"<<"і"<<setw(10)<<"Tip"<<"і";
cout<<"\n"<<"ГДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДДґ";
while(r!=NULL)
{cout<<"\n"<<"і"<<setw(5)<<r->b<<"і"<<setw(10)<<r->numb<<"і"<<setw(15)<<r->adres<<"і"<<setw(10)<<r->tip<<"і";
r=r->next;}
cout<<"\n"<<"АДДДДДБДДДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДДЩ";
getch();
}
void los::search()
 {clrscr();
  los *r;
  int key;
  cout<<"\n Vvedite kluch dlya poiska: ";
  cin>>key;
  r=p;

 while(r != NULL && r->b != key)
  r=r->next;
if(r->b==key)
{cout<<"\n"<<"ЪДДДДДВДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДВДДДДДДДДДДДї";
cout<<"\n"<<"і"<<setw(5)<<"Key"<<"і"<<setw(10)<<"Numb"<<"і"<<setw(15)<<"Adres"<<"і"<<setw(10)<<"Tip"<<"і";
cout<<"\n"<<"ГДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДДґ";
  cout<<"\n"<<"і"<<setw(5)<<r->b<<"і"<<setw(10)<<r->numb<<"і"<<setw(10)<<r->adres<<"і"<<setw(10)<<r->tip<<"і";
  cout<<"\n"<<"АДДДДДБДДДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДБДДДДДДДДДДДЩ";
  }
else
 cout<<"\n Nichego ne najdeno.";
getch();
}
void los::del()

  
getch();
}
void lds::add()
{clrscr();
los *r;
los *ptr;
ptr=new los;
int key;
cout<<"\n Vvedite kluch elementa posle kotorogo dobavit' novij: ";
cin>>key;
r=p;
while(r != NULL && r->b != key)
r = r->next;
if(r->b == key)
   {if(r->next != NULL)
       {cout<<"\n Dobavlenie: ";
	cout<<"\n Vvedite kluch novogo magazina: ";
	cin>>ptr->b;
	cout<<"\n Vvedite number novogo magazina: ";
	cin>>ptr->numb;
	cout<<"\n Vvedite adres  novogo magazina: ";
	gets(ptr->adres);
	cout<<"\n Vvedite tip novogo magazina: ";
	gets(ptr->tip);
	ptr->next = r->next;
	r->next = ptr;
       }
    else
       {cout<<"\n Dobavlenie: ";
	cout<<"\n Vvedite kluch novogo magazina: ";
	cin>>ptr->b;
	cout<<"\n Vvedite number novogo magazina: ";
	cin>>ptr->numb;
	cout<<"\n Vvedite adres  novogo magazina: ";
	gets(ptr->adres);
	cout<<"\n Vvedite tip novogo magazina: ";
	gets(ptr->tip);
	ptr->next=NULL;
	r->next=ptr;
       }
   }
getch();
}
void menu()
{clrscr();
cout<<"\n 1-Vvod dannih";
cout<<"\n 2-Vivod dannih";
cout<<"\n 3-Poisk dannih po kluchu";
cout<<"\n 4-Udalenie dannih po kluchu";
cout<<"\n 5-Vstavka dannih posle elementa";
cout<<"\n ESC-vihod iz programmi";
}
void main()
{clrscr();
 char punkt;
 while(punkt!=27)
 {menu();
  punkt=getch();
  clrscr();
  switch(punkt)
  {case '1':input();getch;break;
   case '2':output();getch;break;
   case '3':search();getch();break;
   case '4':del();getch();break;
   case '5':add();getch();break;
  }
 }
}


Вот собственно код.Не могу сделать удаление и почему то менюшка не выводится.Помогите пожалкйста!
...
Рейтинг: 0 / 0
23.03.2013, 16:47
    #38195960
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
менюшку я исправил.но прога че то не добавляет удаляет и не ищет.забиваешь 3 магазина,а выводит только первый.
...
Рейтинг: 0 / 0
23.03.2013, 20:21
    #38196040
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
1. Вставляй комменты для себя и на будущее для другого. Все в куче, ничего не понять.
2. Зачем там статическая переменная?
3. Ты список забываешь связать походу. После r=new los; делай p->next = r;

Ну это на вскидку. Почитай еще раз про списки.
...
Рейтинг: 0 / 0
23.03.2013, 20:24
    #38196042
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
Походу после каждого добавления метод input все равно будет занулять список так как статическая переменная.
Убери ее и пропиши ее (уже не статикой) в методе main.
потом передавай ее в твои методы добавления или поиска.
...
Рейтинг: 0 / 0
23.03.2013, 20:34
    #38196047
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
а можно для чайника объяснить?
...
Рейтинг: 0 / 0
23.03.2013, 20:37
    #38196049
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
fuzzа можно для чайника объяснить?
Можно. Ща придумаю чего нибудь
...
Рейтинг: 0 / 0
23.03.2013, 20:39
    #38196051
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
мил человек поможешь разобраться?! уже третий день голову ломаю!
...
Рейтинг: 0 / 0
23.03.2013, 20:44
    #38196053
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
А функция input у тебя по условию должна постоянно к старым добавлять или только два как в примере?
...
Рейтинг: 0 / 0
23.03.2013, 20:46
    #38196055
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
fuzzуже третий день голову ломаю!
А чего её ломать-то? У тебя же есть представление как твоя (она ведь твоя, да?) программа
должна работать. Берёшь в руки отладчик и проходишь её пошагово, пока реальное поведение
не начнёт отличаться от того, которое ты ожидаешь. Сморишь почему.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.03.2013, 20:47
    #38196056
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
ну это я взял define 3
...
Рейтинг: 0 / 0
23.03.2013, 20:56
    #38196065
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
я конечно все понимаю,что клянчить нехорошо,НО я обратился сюда,потому что уже прошел эту процедуру и не нашел решение.
...
Рейтинг: 0 / 0
23.03.2013, 21:01
    #38196069
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
Разбирайся что я тут написал, тоже без комментов почти
...
Рейтинг: 0 / 0
23.03.2013, 21:06
    #38196073
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
большое спасибо!буду сейчас разбираться.если что буду спрашивать?а читать снизу вверх или сверху вниз?)))
...
Рейтинг: 0 / 0
23.03.2013, 21:08
    #38196074
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
Сначала левый блок. А потом сверху вниз.
Читай лучше списки в инете. И рисуй на бумаге как выделяется память и кто в какой момент на эту память ссылается.
...
Рейтинг: 0 / 0
23.03.2013, 21:09
    #38196076
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
а это обязательно делать в main?
...
Рейтинг: 0 / 0
23.03.2013, 21:11
    #38196078
aleks-sam
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
fuzzа это обязательно делать в main?
Нет. Можно в отдельный класс-фабрику, можно в глобальные переменные.
Можно по другому сделать вообще.
Лучше в инете почитать
...
Рейтинг: 0 / 0
23.03.2013, 21:11
    #38196080
fuzz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Добрый день!
ок спасибо!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Добрый день! / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]