Использование структур, страница 2

temp=temp->next;

i=1;

}

if(temp->kod==zn)

{

if(i==0) temp2=temp;

}

return;

}

void rab()

{

cout<<"\nvvedite kod: ";

cin>>(*temp).kod;

cout<<"\nvvedite vid: ";

cin>>(*temp).vid;

cout<<"\nvvedite kolichestvo: ";

cin>>(*temp).kol;

cout<<"\nvvedite cenu: ";

cin>>(*temp).cena;

cout<<"\nvvedite proizvoditelya: ";

cin>>(*temp).proiz;

}

void screen()

{

if(prov()==0) return;

cout<<"kod\tvid\tkolichestvo\tcena\tproizvoditel\n";

temp=perv;

while(temp->next!=NULL)

{

cout<< (*temp).kod<<"\t"

<< (*temp).vid<<"\t" << (*temp).kol<<"\t\t"

<< (*temp).cena<<"\t" << (*temp).proiz<<"\n";

temp=temp->next;

}

cout<< (*temp).kod<<"\t"

<< (*temp).vid<<"\t" << (*temp).kol<<"\t\t"

<< (*temp).cena<<"\t" << (*temp).proiz<<"\n";

return;

}

void add()

{

clrscr();

int a;

tec=(sm*)calloc(1,sizeof(sm));

tec->vid=(char*)calloc(100,sizeof(char));

tec->proiz=(char*)calloc(100,sizeof(char));

temp=tec;

rab();

tec=temp;

if (k==0)

{

perv=tec;

posl=perv;

k++;

}

else

{

temp=tec;

tec=posl;

posl=temp;

tec->next=posl;

k++;

}

posl->next=NULL;

cout<<"\ndobavit' eshe? da-1, net-any cifra\n=>";

cin>>a;

if(a==1) add();

screen();

return;

}

void rename()

{

clrscr();

if(prov()==0) return;

int a;

screen();

cout<<"\nvvedite N redaktiruemoy stroki\n=>";

cin>>zn;

poisk();

rab();

cout<<"\notredaktirovat' eshe? da-1, net-any cifra\n=>";

cin>>a;

if(a==1) rename();

screen();

return;

}

void dell()

{

if(prov()==0) return;

int a, b;

screen();

cout<<"\nvvedite N udalyaemoy stroki\n=>";

cin>>zn;

poisk();

if(temp2->next==temp->next)

{

temp=temp->next;

perv=temp;

}

else

temp2->next=temp->next;

k--;

cout<<"\nudalit' eshe? da-1, net-any cifra\n=>";

cin>>a;

if(a==1) dell();

screen();

return;

}

void obmen()

{

if(prov()==0) return;

sm *temp4,*temp5;

int a,b;

s=0;

temp5=(sm*)calloc(1,sizeof(sm));

temp5->vid=(char*)calloc(100,sizeof(char));

temp5->proiz=(char*)calloc(100,sizeof(char));

temp4=(sm*)calloc(1,sizeof(sm));

temp4->vid=(char*)calloc(100,sizeof(char));

temp4->proiz=(char*)calloc(100,sizeof(char));

temp3=(sm*)calloc(1,sizeof(sm));

temp3->vid=(char*)calloc(100,sizeof(char));

temp3->proiz=(char*)calloc(100,sizeof(char));

screen();

cout<<"\nvvedite N 1-y stroki\n=>";

cin>>zn;

poisk();

temp3=temp;

temp4=temp2;

screen();

cout<<"\nvvedite N 2-y stroki\n=>";

cin>>zn;

poisk();

if((temp3->next==temp))

{

temp3->next=temp->next;

temp->next=temp3;

temp4->next=temp;

s=1;

}

if((s==0) &&(temp->next==temp3))

{

temp->next=temp3->next;

temp3->next=temp;

temp4->next=temp3;

s=2;

}

if(s==0)

{

temp5=temp3->next;

temp3->next=temp->next;

temp->next=temp5;

temp2->next=temp3;

temp4->next=temp;

}

screen();

cout<<"\neshe obmen? da-1, net-any cifra\n=>";

cin>>a;

if(a==1) obmen();

screen();

return;

}

Меню:

Результат проверки заполнения базы:

Ввод данных:

Вывод базы на экран:

Редактирование выбранной записи:

Результат редактирования:

:

Обмен 2-х выбранных строк местами:

Результат обмена:

Удаление выбранной строки:

Результат удаления:

Литература:

Не использовалась