powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Добрый день!
17 сообщений из 17, страница 1 из 1
Добрый день!
    #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
Добрый день!
    #38195960
fuzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
менюшку я исправил.но прога че то не добавляет удаляет и не ищет.забиваешь 3 магазина,а выводит только первый.
...
Рейтинг: 0 / 0
Добрый день!
    #38196040
Фотография aleks-sam
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Вставляй комменты для себя и на будущее для другого. Все в куче, ничего не понять.
2. Зачем там статическая переменная?
3. Ты список забываешь связать походу. После r=new los; делай p->next = r;

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


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