rlab3 (1077283), страница 2
Текст из файла (страница 2)
B.flush();
B.printOn( cout << "Список B после метода flush: " );
if( B.isEmpty() ) cout << "Список B пуст\n";
else cout << "Список B полон\n";
MyList M;
for (i = 0; i <COUNT; i++)
{
T = new MyObj( i+20 );
M.add( *T );
}
M.PrintList( cout << "Печать списка MyList: " );
M.AddTail( *new MyObj( 100 ) );
M.PrintList( cout << "Печать списка MyList. AddTail: " );
(void) getch();
M.AddCurrent( 3, *new MyObj( 200 ) );
M.PrintList( cout << "Печать списка MyList. AddCurrent(3, 200): " );
(void) getch();
MyList M2;
M2 = M;
M2.PrintList( cout << "Печать списка M2 = M: " );
}
6.2. lab22.cpp
#include <iostream.h>
//Вывод справки
void Help( void )
{
cout << "\
ЛАБОРАТОРНАЯ РАБОТА №3\n\
КИРЕЕВ ИВАН ИУ5-64\n\
ВАРИАНТ 9\n\n";
}
6.3. cMyObj.h
//cMyObj.h
#include <List.h>
class MyObj : public Object
{
public:
MyObj( void ) : Object() {};
MyObj( int v ): Value(v), Object() {};
MyObj( MyObj & mo ) : Value( mo.Value ), Object() {};
MyObj( istream _FAR & in): Object() { in >> Value ;};
void Set(int v) { Value = v;};
void Set(istream _FAR & in) { in >> Value ;};
int Value;
virtual classType isA() const { return 0; };
virtual char _FAR *nameOf() const { return "Int Number";};
virtual hashValueType hashValue() const {return 0;};
virtual int isEqual( const Object _FAR & tst ) const
{
return ( ((MyObj &)tst).Value == Value);
};
virtual void printOn( ostream _FAR & out ) const { out << " Целое число = " << Value ;};
};
6.4. cMyList.h
//cMyList.h
class MyList : public List
{
public:
MyList( void ) : iTList(TempList), List() {};
~MyList( void ) { flush(); };
void PrintList( ostream _FAR & out ) { printOn( out << "\nPrintList:\n" );};
void AddTail( Object _FAR & );
void AddCurrent( int, Object _FAR & );
void operator = ( MyList & );
virtual char _FAR *nameOf() const
{
return "MyList ==>\n";
}
private:
List TempList;
ListIterator iTList;
void RList( List& );
};
void MyList::RList( List& L )
{
TempList.flush();
iTList = ListIterator( L );
iTList.restart();
do
{
TempList.add( *new MyObj( (MyObj &)iTList.current() ) );
iTList++;
} while( iTList );
}
void MyList::AddTail( Object _FAR & o )
{
RList( *this );
flush();
add( o );
iTList = ListIterator( TempList );
iTList.restart();
do
{
add( *new MyObj( (MyObj &)iTList.current() ) );
iTList++;
} while( iTList );
TempList.flush();
}
void MyList::AddCurrent( int pos, Object _FAR & o )
{
RList( *this );
flush();
iTList = ListIterator( TempList );
iTList.restart();
int all = TempList.getItemsInContainer();
for( int i = 1; i <= all - pos + 1; i++ )
{
add( *new MyObj( (MyObj &)iTList.current() ) );
iTList++;
if (!iTList) break;
}
add( o );
if (!iTList) return;
do
{
add( *new MyObj( (MyObj &)iTList.current() ) );
iTList++;
} while( iTList );
TempList.flush();
}
void MyList::operator = ( MyList & L )
{
RList( L );
flush();
iTList = ListIterator( TempList );
iTList.restart();
do
{
add( *new MyObj( (MyObj &)iTList.current() ) );
iTList++;
} while( iTList );
TempList.flush();
// return *this;
}
7. Результаты работы программы.
C:\DOCUME~1\AD2E~1>C:\A_WORKER\out\LAB3.EXE
ЛАБОРАТОРНАЯ РАБОТА ╣3
КИРЕЕВ ИВАН ИУ5-64
ВАРИАНТ 9
Лист A. Автоматический ввод. Распечатка printOn(): List {
Целое число = 14,
Целое число = 13,
Целое число = 12,
Целое число = 11,
Целое число = 10 }
Добавьте 5 чисел в список A
7 6 5 4 3
Лист A. Ручной ввод. Распечатка в цикле:
Целое число = 3
Целое число = 4
Целое число = 5
Целое число = 6
Целое число = 7
Целое число = 14
Целое число = 13
Целое число = 12
Целое число = 11
Целое число = 10
Пустой массив B: List {
}
Список B после копирования: List {
Целое число = 3,
Целое число = 4,
Целое число = 5,
Целое число = 6,
Целое число = 7,
Целое число = 14,
Целое число = 13,
Целое число = 12,
Целое число = 11,
Целое число = 10 }
Введите еще две цифры для добавления 2 1
Массив A после добавления: List {
Целое число = 1,
Целое число = 2,
Целое число = 3,
Целое число = 4,
Целое число = 5,
Целое число = 6,
Целое число = 7,
Целое число = 14,
Целое число = 13,
Целое число = 12,
Целое число = 11,
Целое число = 10 }
Массив A после удаления: List {
Целое число = 1,
Целое число = 2,
Целое число = 3,
Целое число = 4,
Целое число = 6,
Целое число = 7,
Целое число = 14,
Целое число = 13,
Целое число = 12,
Целое число = 11,
Целое число = 10 }
Список B полон
Список B после метода flush: List {
}
Список B пуст
Печать списка MyList:
PrintList:
MyList ==>
{
Целое число = 24,
Целое число = 23,
Целое число = 22,
Целое число = 21,
Целое число = 20 }
Печать списка MyList. AddTail:
PrintList:
MyList ==>
{
Целое число = 24,
Целое число = 23,
Целое число = 22,
Целое число = 21,
Целое число = 20,
Целое число = 100 }
Печать списка MyList. AddCurrent(3, 200):
PrintList:
MyList ==>
{
Целое число = 24,
Целое число = 23,
Целое число = 200,
Целое число = 22,
Целое число = 21,
Целое число = 20,
Целое число = 100 }















