Отчет2 (1077262)
Текст из файла
Московский государственный технический университет им. Н.Э.Баумана
_________________________________________________________________
Лабораторная работа №1 по дисциплине ПППО
“Изучение классов ARRAY и ARRAYITERATOR”
| ИСПОЛНИТЕЛЬ: | |
| студентка группы ИУ5-61 | _____________________ |
| Забаева А. Л. | "__"_____________2008 г. |
Москва - 2008
________________________________________________________________
-
Цель работы
Целью лабораторной работы является продвинутое изучение оболочки (IDE) системы программирования BC 3.1 C++ и классов с массивами (ARRAY и ARRAYITERATOR) библиотеки CLASSLIB. В результате студенты должны изучить классы семейства ARRAY и приобрести навыки работы со стандартными классами (по материалам лекций, документации, литературе, справочной информации BC 3.1 и исходным файлам ARRAY.CPP , ARRAY.H, ARRAYS.H, ABSTARRY.CPP и ABSTARRY.H). Нужно детально изучить их состав и структуру, освоить приемы описания классов простой контейнерной структуры, а также научиться строить диаграммы классов и диаграммы объектов. В процессе ознакомления с данными классами обучающийся должен уметь описывать объекты данных классов и использовать их методы для управления объектами (модель поведения). Студенты в данной ЛР первоначально знакомятся с понятиями абстрактный класс и наследование (на примере классов OBJECT и ABSTARRAY) , а также получают навыки поиска информации о классах по исходным текстам программ и с помощью броузера классов (автоматическое построение диаграмм классов).
-
порядок выполнения.
-
Описать массивов А и В (Создание массива В с помощью указателя);
-
Ввести данные с консоли типа дата ( стандартные классы: String – описание в файле strng.h, или Date - описание в файле ldate.h, или Time -описание в файле Ltime.h ) и занести их в массив A . Минимально в массив А заносится 5 элементов.
-
Распечатать массив А с помощью метода printContentsOn;
-
Распечатать массив А с помощью цикла и метода printOn;
-
Распечатать пустой массив В с помощью метода printContentsOn;
-
Сформировать массив В как копию массива А (необходим цикл копирования);
-
Распечатать заполненный массив В с помощью метода printContentsOn;
-
Распечатать массивы А и В с помощью цикла и использования класса ARRAYITERATOR для этих массивов. Нужно описать итераторы и использовать функции/методы этого класса - printOn, restart и current.
-
Выполнить добавление одного элемента массива и снова его распечатать (Динамическое добавление 1-ого элемента в массив).
-
Выполнить удаление одного элемента массива и снова его распечатать (Выполнить удаление из В - 1-го). На основе:
-
Нового порожденного от Array класса, в котором делается доступным метод removeEntry из класса AbstractArray. Там он защищен – protected;
-
Использованием метода detach из класса AbstractArray при указании типа удаления TShouldDelete :: Delete для 2-го параметра. Для уточнения процедур удаления и добавления нужно посмотреть файлы: Abstarry.h, Abstarry.cpp, Shddel.h, Array.h.
-
-
Перечень ошибок исправленных при отладке программы
1.Проблемы с подключением библиотек классов.
2.Проблемы с вставкой элемента, решила с помощью метода-SetData
-
Диаграмма классов Array и ArrayIterator
5. Описание классов.
6. Листинги программ.
About.cpp
#include<iostream.h>
void PrintAbout()
{
cout<<"--Lab 2--"<<endl;
cout<<"Zabaeva Anna"<<endl;
cout<<"8 var"<<endl;
cout<<"UI5-61"<<endl;
}
Main.cpp
#include<iostream.h>
#include<ldate.h>
#include<array.h>
#include<shddel.h>
#include<conio.h>
class MyArray: public Array
{
public:
MyArray(int i):Array(i){};
void insertEntry(int i){AbstractArray::insertEntry(i);};
void removeEntry(int i){AbstractArray::removeEntry(i);};
void setData( int i, Object _FAR * a) {AbstractArray::setData(i, a);};
};
void PrintAbout();
void main()
{
PrintAbout();
int n;
unsigned int aiY,aiM,aiD;
do{
cout<<"Input number of array's elements"<<endl;
cin>>n;
}while (n<5);
Array A(n+2);
MyArray* B=new MyArray(n+2);
Date* ai;
for (int i=0;i<n;i++)
{
cout<<"Input "<<i<<" entry of array"<<endl;
do{
cout<<"Input month"<<endl;
cin>>aiM;
}while (aiM>12);
do{
cout<<"Input day"<<endl;
cin>>aiD;
}while(aiD>31);
do{
cout<<"Input year"<<endl;
cin>>aiY;
}while (aiY>2100);
ai=new Date(aiM,aiD,aiY);
A.add(*ai);
}
A.printContentsOn(cout<<"Print array A "<<endl);
for (i=0;i<n;i++)
{
A[i].printOn(cout<<endl);
}
cout<<endl;
B->printContentsOn(cout<<"Print array B "<<endl);
getch();
for (i=0;i<n;i++)
{
B->add(Date((Date&) A[i]));
}
cout<<endl;
B->printContentsOn(cout<<"Print array B "<<endl);
ArrayIterator ArItA(A);
ArrayIterator ArItB(*B);
ArItA.restart();
cout<<"ArrayIterator A "<<endl;
while(ArItA)
{
ArItA.current().printOn(cout<<' '<<endl);
ArItA++;
}
ArItB.restart();
cout<<endl;
cout<<"ArrayIterator B "<<endl;
while(ArItB)
{
ArItB.current().printOn(cout<<' '<<endl);
ArItB++;
}
cout<<endl;
cout<<"Insert first element"<<endl;
B->insertEntry(0);
B->setData(0,new Date(4,17,2008));
B->printContentsOn(cout);
cout<<"Remove first element"<<endl;
B->removeEntry(0);
B->printContentsOn(cout<<endl);
B->detach(0,TShouldDelete::Delete);
B->printContentsOn(cout);
cout<<"Press any key";
getch();
}
7. Пример выполнения.
6
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















