Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
80
Добавлен:
10.12.2013
Размер:
2.9 Кб
Скачать
//Fun.cpp
#include "Class.h"
int MAX=10;
//------------------------------------------------------------------------
void Rus(char *Str)
{
unsigned char c;
for(int i=0;Str[i]!='\0';i++)
  {
  c=Str[i];
  if(c>127)
    {
    if(c<240)c-=64;
    else     c-=16;
    }
  cout<<c;
  }
}
//------------------------------------------------------------------------
Set::Set()
{	
	beg=new char [max_s=MAX];
	len=0;
}
//------------------------------------------------------------------------
Set::Set(int t)
{	
	max_s=t;
	beg=new char [max_s];
	len=0;
}
//------------------------------------------------------------------------
Set::~Set()
{	delete[] beg;	}
//------------------------------------------------------------------------
void Set::Insert (char* str)
{
	if(strlen(str)>max_s) Rus(" Неверное кол-во сиволов \n");
	else
	{
		len=strlen(str);
		for(int i=0;i<len;i++)
		{			
			if(!ToBe(beg[i])) beg[i]=str[i];
			else
			{
				Rus(" Вы дважды ввели один элемент, он заменится на $ ");
				beg[i]='$';
				cout<<endl;
			}
		}
	}
}
//------------------------------------------------------------------------
void Set::Print()
{
	if(!len) Rus("Пустое множество \n");
	else
	Rus(" Множество : ");cout<<endl;
	for(int i=0;i<len;i++)
		cout<<*(beg+i)<<endl;
}
//------------------------------------------------------------------------
bool Set::ToBe(char c)
{
	char* t=this->beg;
	for(int i=0;i<len;i++)
		if(t[i]==c) return true;
	return false;
}
//------------------------------------------------------------------------
Set& Set::operator=(const Set& Obj)
{
	if(this==&Obj) return *this;
	delete[] beg;
	len=Obj.len;
	beg=new char [len];
	strcpy(beg,Obj.beg);
	return *this;
}
//------------------------------------------------------------------------
bool Set::operator>(Set& Obj)
{
	int Len=0;
	if(len<Obj.len) return false;
	for(int i=0;i<len;i++)
	{
		if(ToBe(Obj.beg[i])) Len++;
	}
	if (Len==Obj.len) return true;
	return false;
}
//------------------------------------------------------------------------
char ToRus(unsigned char c)
{
	if(c>127)
    {
		if(c<240)c-=64;
		else     c-=16;
	}
	return c;
}
//------------------------------------------------------------------------
void operator -(Set& Obj, char c)
{
	c=ToRus(c);

	if(!Obj.ToBe(c))
		Rus(" Такого элемента нет ! \n");
	else
	{
		int i,j=0;
		Obj.len-=1;
		char* t=new char[Obj.len];
		for(i=0;i<Obj.len+1;i++)
		{
			if(Obj.beg[i]!=c)
			{
				t[j]=Obj.beg[i];
				j++;
			}
		}
		delete[] Obj.beg;
		Obj.beg=t;
	}
}
//------------------------------------------------------------------------
bool Set::operator != (Set& Obj)
{
	if(len!=Obj.len) return true;
	if(strcmp(beg,Obj.beg)) return false;
	return true;
}
//------------------------------------------------------------------------






Соседние файлы в папке Lab_5v3
  • #
    10.12.2013606 б80Class.h
  • #
    10.12.20132.9 Кб80Fun.cpp
  • #
    10.12.20134.38 Кб80lab5.dsp
  • #
    10.12.20131.4 Кб80lab5.plg
  • #
    10.12.2013533 б80Lab_5v3.dsw
  • #
    10.12.201374.75 Кб82Lab_5v3.ncb
  • #
    10.12.201348.64 Кб81Lab_5v3.opt