Sin* GetSin(){return _pSin;}
Slovo* GetSlovoId();
Sin* GetSinId();
char* GetHours();
virtual int SaveToFile(FILE* fp);
virtual int LoadFromFile(FILE* fp);
protected:
Slovo *_pSlovo; // слово
Sin *_pSin; //синоним
char time[15]; //
};
class FileHelper
{
public:
static int WriteString(FILE*,char*);
static int ReadString(FILE* fp,char* str);
static int WriteInt(FILE*,int);
static int ReadInt(FILE*,int*);
static int SaveList(FILE*,class LIST*);
static int LoadSlovoList(FILE*, Slovo**);
static int LoadSinList(FILE*, Sin**);
static int LoadLinkList(FILE*, Link**);
};
Slovo *pSlovos = NULL;
Sin *pSins = NULL;
Link *pLink=NULL;
void WordInsert();
void Display();
int SaveToFile();
int LoadFromFile();
void main()
{
int M;
do{
printf("\nМеню программы");
printf("\n/*1-добавление слов/синонимов в базу данных /*");
printf("\n/*2-вывод на экран всех слов/синонимов /*");
printf("\n/*3-сохранение в файл сведений о словах/синонимах /*");
printf("\n/*4-загрузка из файла сведений о словах/синонимах /*");
printf("\n*0-выход из программы");
printf("\nВведите команду:");
scanf("%d",&M);
switch(M)
{
case 1: WordInsert();
break;
case 2: Display();
getchar();
break;
case 3: SaveToFile();
break;
case 4: LoadFromFile();
break;
case 0: break;
}
}while (M!=0);
}
LIST::LIST()
{
_pNext=NULL;
_pPrev=NULL;
_nId=NULL;
}
LIST::~LIST()
{
}
LIST* LIST::AddTail(LIST *pNewItem)
{
if(!pNewItem)
return NULL;
LIST*Cur=this;
while(Cur->_pNext)
Cur=Cur->_pNext;
pNewItem->_pNext=NULL;
if(Cur->_pNext)
{
Cur->_pNext->_pPrev=pNewItem;
pNewItem->_pNext=Cur->_pNext;
}
Cur->_pNext=pNewItem;
pNewItem->_pPrev=Cur;
return pNewItem;
}
void LIST::DeleteLIST()
{
LIST *pElement=GetHead();
while(pElement->_pNext)
{
pElement=pElement->_pNext;
delete(pElement->_pPrev);
}
delete pElement;
}
LIST* LIST::GetHead()
{
LIST *pElement=this;
while(pElement->_pPrev)
{
pElement=pElement->_pPrev;
delete(pElement->_pPrev);
}
return pElement;
}
int LIST::GetItemCount()
{
LIST *pElement=GetHead();
int nCount=1;
while(pElement=pElement->_pNext)
++nCount;
return nCount;
}
void LIST::RemoveItem()
{
if(_pNext)
_pNext->_pPrev=_pPrev;
if(_pPrev)
_pPrev->_pNext=_pNext;
delete this;
}
void Slovo::SetWord(const char* r)
{
int len=strlen(r);
if(len>30)
len=30;
strncpy(Word,r,len);
Word[len]=0;
}
char* Slovo::GetWord() const
{return (char*)Word;}
void Slovo::SetTrans1(const char* t1)
{
int len=strlen(t1);
if(len>20)
len=20;
strncpy(Trans1,t1,len);
Trans1[len]=0;
}
char* Slovo::GetTrans1() const
{return (char*)Trans1;}
void Slovo::SetTrans2(const char* t2)
{
int len=strlen(t2);
if(len>20)
len=20;
strncpy(Trans2,t2,len);
Trans2[len]=0;
}
char* Slovo::GetTrans2() const
{return (char*)Trans2;}
void Slovo::SetPart(const char* p)
{
int len=strlen(p);
if(len>20)
len=20;
strncpy(Part,p,len);
Part[len]=0;
}
char* Slovo::GetPart() const
{return (char*)Part;}
void Sin::SetSword(const char* e)
{
int len=strlen(e);
if(len>30)
len=30;
strncpy(Sword,e,len);
Sword[len]=0;
}
char* Sin::GetSword() const
{return (char*)Sword;}
void Sin::SetTrans1(const char* et1)
{
int len=strlen(et1);
if(len>20)
len=20;
strncpy(Trans1,et1,len);
Trans1[len]=0;
}
char* Sin::GetTrans1() const
{return (char*)Trans1;}
void Sin::SetTrans2(const char* et2)
{
int len=strlen(et2);
if(len>20)
len=20;
strncpy(Trans2,et2,len);
Trans2[len]=0;
}
char* Sin::GetTrans2() const
{return (char*)Trans2;}
void Sin::SetPart(const char* ep)
{
int len=strlen(ep);
if(len>20)
len=20;
strncpy(Part,ep,len);
Part[len]=0;
}
char* Sin::GetPart() const
{return (char*)Part;}
void Sin::Setother(const char* o)
{
int len=strlen(o);
if(len>15)
len=15;
strncpy(other,o,len);
other[len]=0;
}
char* Sin::Getother() const
{return (char*)other;}
void Link::SetHours(char* w)
{
int len=strlen(w);
if(len>15)
len=15;
strncpy(time,w,len);
time[len]=0;
}
char* Link::GetHours()
{return (char*)time;}
void WordInsert()
{
int r;
do
{
printf("\n\n/*ПОДМЕНЮ ПРОГРАММЫ:*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*");
printf("\n/*1-ввод данных о слове /*");
printf("\n/*2-перевод слова /*");
printf("\n/*3-удаление /*текущего*/ слова/синонима /*");
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.