#include <vcl.h>
#pragma hdrstop
#include <tchar.h>
#include <iostream.h>
#include <windows.h>
//---------------------------------------------------------------------------
using namespace std;
class Node
{
public:
int number;
char fam;
Node* next;
};
void russia(const char*);
#pragma argsused
int _tmain(int argc, _TCHAR* argv[])
{
Node* head = NULL;
Node* lastPtr = NULL;
short action = -1;
while (1)
{
russia("1. Добавить Элемент\n");
russia("2. Просмотр Списка\n");
russia("3. Поиск Элемента\n");
russia("4. Удалить Элемент\n");
russia("5. Удалить Элемент По Выбору\n");
russia("0. Выход\n\n");
russia("Ваш Выбор: ");
cin>>action;
if (action == 0)
{
system("CLS");
break;
}
if (action == 1)
{
system("CLS");
Node* ptr = new Node;
int numb = -1;
char numb2;
russia("Введите Число: ");
cin>>numb;
ptr->number = numb;
russia("Введите Строку: ");
cin>>numb2;
ptr->fam = numb2;
ptr->next = NULL;
if (head == 0)
{
head = ptr;
lastPtr = ptr;
system("CLS");
continue;
}
lastPtr->next = ptr;
lastPtr = ptr;
system("CLS");
continue;
}
if (action == 2)
{
Node* ptr = NULL;
system("CLS");
if (head == NULL)
{
russia("\t!!! СПИСОК ПУСТ !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
russia("* * * * * СПИСОК * * * * *\n\n");
ptr = head;
while (1)
{
cout<<ptr->number<<" ";
cout<<ptr->fam;
if (ptr->next == 0)
break;
ptr = ptr->next;
}
cout<<"\n\n";
system("PAUSE");
system("CLS");
continue;
}
if (action == 3)
{
Node* ptr = NULL;
int key = -1;
system("CLS");
if (head == NULL)
{
russia("\t!!! СПИСОК ПУСТ !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
russia("Введите Элемент Для Поиска: ");
cin>>key;
ptr = head;
while (1)
{
if (key == ptr->number)
{
russia("\n\t!!! ЭЛЕМЕНТ НАЙДЕН !!!\n");
break;
}
if (ptr->next == NULL)
{
russia("\n\t!!! ЭЛЕМЕНТ НЕ НАЙДЕН !!!\n");
break;
}
ptr = ptr->next;
}
system("PAUSE");
system("CLS");
continue;
}
if (action == 4)
{
system("CLS");
Node* ptrDelete = NULL;
if (head == NULL)
{
russia("\t!!! СПИСОК ПУСТ !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
if (head->next == NULL)
{
head = NULL;
delete head;
continue;
}
ptrDelete = head;
head = ptrDelete->next;
delete ptrDelete;
continue;
}
if (action == 5)
{
system("CLS");
Node* ptrPrev = NULL;
Node* ptrDelete = NULL;
int key = -1;
if (head == NULL)
{
russia("\t!!! СПИСОК ПУСТ !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
russia("Введите Элемент Для Удаления: ");
cin>>key;
ptrDelete = head;
if (ptrDelete->number == key)
{
head = ptrDelete->next;
delete ptrDelete;
system("CLS");
continue;
}
while (1)
{
if (key == ptrDelete->number)
{
ptrPrev->next = ptrDelete->next;
delete ptrDelete;
break;
}
if (ptrDelete->next == 0)
{
russia("\n\t!!! ЭЛЕМЕНТ НЕ НАЙДЕН !!!\n");
system("PAUSE");
break;
}
ptrPrev = ptrDelete;
ptrDelete = ptrDelete->next;
}
system("CLS");
continue;
}
if (action > 5)
{
system("CLS");
russia("\t!!! НЕВЕРНЫЙ ВЫБОР. ПОВТОРИТЕ ВВОД !!!\n\n");
system("PAUSE");
system("CLS");
continue;
}
}
return 0;
}
void russia(const char* rus)
{
char word[100];
CharToOem(rus, word);
cout<<word;
}
//---------------------------------------------------------------------------
подскажите что не так?