Здравствуйте!
Пи удалении из структуры почему, то удаляет все структуры которые были выше(
Подскажите в чем проблема
вот код
C++ |
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
| void delete_product (Products**Ps,int delete_id,Products2*Ps2) {
clrscr();
if(!*Ps)
{
cout<<"Cpicok tovarov pyct"<<endl;
cout<<endl<<"Dla perehoda v menu najmite ENTER"<<endl;
getchar();
return;
}
int id;
if (!delete_id)
{
char val[64];
int valid=1;
int pe;
cout<<endl<<"Vi hotite procmotret v nachale vse tovari(1-da)?"<<endl<<"->";
cin>>pe;
if(pe==1)
print_products(*Ps,Ps2);
do
{
cout<<endl<<"Vvedite ID ydalaemogo tovara"<<endl<<"->";
cin>>val;
for (int i=0;i<strlen(val);i++)
{
if (val[i]<'0' || val[i]>'9')
{
valid=0;
cout<<endl<<"Dla perehoda v menu najmite ENTER"<<endl;
getchar();
break;
}
valid=1;
}
if (valid==1)
sscanf(val,"%d",&id);
else
{
cout<<"\t Neverniy tip(tolko celie chicla)"<<endl;
cout<<endl<<"Dla perehoda v menu najmite ENTER"<<endl;
getchar();
return;
}
} while (valid==0);
}
else
id=delete_id;
Products*T=*Ps;
while(T)
{
if (T->P.id==id)
{
cout<<"--------------------------------------------------------------------------------";
cout<<"|"<<setw(4)<<"ID";
cout<<"|"<<setw(15)<<"Nazvanie";
cout<<"|"<<setw(4)<<"Cena";
cout<<"|"<<setw(6)<<"Valuta";
cout<<"|"<<setw(11)<<"Kolichectvo";
cout<<"|"<<setw(11)<<"Data zavoza";
cout<<endl<<"--------------------------------------------------------------------------------";
print_product(T->P);
cout<<endl<<"--------------------------------------------------------------------------------";
int per;
cout<<endl<<"Vi etot tovar hotite ydalit(1-da,2-net)?"<<endl<<"->";
cin>>per;
if(per==1)
{
if(T->P.id==id)
{
*Ps=T->next;
delete T;
cout<<endl<<"--------------------------------------------------------------------------------";
cout<<endl<<" Tovar ydalen";
cout<<endl<<"--------------------------------------------------------------------------------";
cout<<endl<<"Dla perehoda v menu najmite ENTER"<<endl;
save_struct(*Ps,0);
getchar();
return;
}
Products*T1=T->next;
while(T1)
{
if(T1->P.id>=id && id>=T1->P.id)
{
T->next=T1->next;
delete T1;
if (!delete_id)
{
cout<<endl<<"--------------------------------------------------------------------------------";
cout<<endl<<" Tovar ydalen";
cout<<endl<<"--------------------------------------------------------------------------------";
cout<<endl<<"Dla perehoda v menu najmite ENTER"<<endl;
save_struct(*Ps,0);
getchar();
return;
}
}
T=T1;
T1=T1->next;
}
}
else
{
cout<<endl<<"Dla perehoda v menu najmite ENTER";
getchar();
return;
}
}
T=T->next;
}
cout<<endl<<"Tovara c takim ID v baze nety!";
cout<<endl<<"Dla perehoda v menu najmite ENTER";
getchar();
return;
} |
|