Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_ПОА_2012.doc
Скачиваний:
2
Добавлен:
03.05.2019
Размер:
8.49 Mб
Скачать

Тестирование и использование приложения.

  1. Запустите приложение на выполнение, нажав быстрые кнопки Сохранить все и Запуск.

  2. Для тестирования приложения с параметрами массива, заданными по умолчанию (рис.3.5), щелкните на кнопке НАЧАТЬ, а затем – в главном меню на разделе сортировки и подразделе рекурсивными функциями. Проанализируйте полученные результаты, выведенные на страницы массивы, таблицы, графики многостраничной панели. Убедитесь в выполнении команд файл/сохранить все графики и файл/открыть все графики.

  3. По коду обработчика щелчка на кнопке НАЧАТЬ установите исключительные ситуации, обрабатываемые приложением. Смоделируйте эти ситуации.

  4. Убедитесь в действенности контекстных всплывающих меню.

  5. Увеличивая размер исходного массива, получите сообщение о переполнении стека: ……‘Stack overflow’…… . Для выхода из режима выполнения введите команду Запуск/Сброс программы. Затем увеличьте размер стека до максимально возможного последовательностью действий Проект/Опции/Компоновщик/Макс.размер_стека. После указания максимально возможного размера стека в поле Макс. размер стека можно будет сортировать всеми методами массивы размерами до 1000. Убедитесь в этом. Проанализируйте полученные результаты.

  6. Разработайте алгоритмы сортировок с помощью циклов (кроме быстрой сортировки) и напишите код для подраздела циклами с последующей отладкой и получением графически представляемых зависимостей, увеличив не менее чем на порядок размер сортируемых массивов и диапазон значений элементов массивов. Объясните полученные результаты.

  7. Для завершения работы щелкните на разделе меню выход и выйдите из среды Builder.

Заголовочный файл

//---------------------------------------------------------------------------

#ifndef LR_3H

#define LR_3H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include "CSPIN.h"

#include <ComCtrls.hpp>

#include <Menus.hpp>

#include <Buttons.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include <Chart.hpp>

#include <TeEngine.hpp>

#include <TeeProcs.hpp>

#include <Series.hpp>

#include <Dialogs.hpp>

#include <ExtDlgs.hpp>

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

TMainMenu *MainMenu1;

TMenuItem *file;

TMenuItem *N2;

TMenuItem *N3;

TMenuItem *sort;

TMenuItem *rec;

TMenuItem *rep;

TMenuItem *help;

TMenuItem *exit;

TGroupBox *GroupBox1;

TGroupBox *GroupBox2;

TLabel *Label1;

TLabel *Label2;

TLabel *Label3;

TPageControl *PageControl1;

TTabSheet *TabSheet1;

TTabSheet *TabSheet2;

TCSpinEdit *CSpinEdit1;

TCSpinEdit *CSpinEdit2;

TCSpinEdit *CSpinEdit3;

TCSpinEdit *CSpinEdit4;

TCSpinEdit *CSpinEdit5;

TLabel *Label4;

TLabel *Label5;

TLabel *Label6;

TCSpinEdit *CSpinEdit6;

TPanel *Panel1;

TBitBtn *BitBtn1;

TMemo *Memo1;

TStringGrid *StringGrid1;

TStringGrid *StringGrid2;

TProgressBar *ProgressBar1;

TCSpinEdit *CSpinEdit7;

TTabSheet *TabSheet3;

TTabSheet *TabSheet4;

TTabSheet *TabSheet5;

TTabSheet *TabSheet6;

TTabSheet *TabSheet7;

TChart *Chart5;

TLineSeries *Series9;

TLineSeries *Series10;

TChart *Chart4;

TLineSeries *Series7;

TLineSeries *Series8;

TChart *Chart3;

TLineSeries *Series5;

TLineSeries *Series6;

TChart *Chart1;

TLineSeries *Series1;

TLineSeries *Series2;

TChart *Chart2;

TLineSeries *Series3;

TLineSeries *Series4;

TImage *Image1;

TImage *Image2;

TImage *Image3;

TImage *Image4;

TImage *Image5;

TPopupMenu *PopupMenu1;

TPopupMenu *PopupMenu2;

TPopupMenu *PopupMenu3;

TPopupMenu *PopupMenu4;

TPopupMenu *PopupMenu5;

TMenuItem *N1;

TMenuItem *N4;

TMenuItem *N5;

TMenuItem *N6;

TMenuItem *N7;

TMenuItem *N8;

TMenuItem *N9;

TMenuItem *N10;

TMenuItem *N11;

TMenuItem *N12;

TLabel *Label7;

TLabel *Label8;

TLabel *Label9;

TGroupBox *GroupBox3;

void __fastcall exitClick(TObject *Sender);

void __fastcall BitBtn1Click(TObject *Sender);

void __fastcall recClick(TObject *Sender);

void __fastcall N2Click(TObject *Sender);

void __fastcall N3Click(TObject *Sender);

void __fastcall N1Click(TObject *Sender);

void __fastcall N4Click(TObject *Sender);

void __fastcall N5Click(TObject *Sender);

void __fastcall N6Click(TObject *Sender);

void __fastcall N7Click(TObject *Sender);

void __fastcall N8Click(TObject *Sender);

void __fastcall N9Click(TObject *Sender);

void __fastcall N10Click(TObject *Sender);

void __fastcall N11Click(TObject *Sender);

void __fastcall N12Click(TObject *Sender);

void __fastcall helpClick(TObject *Sender);

private: // User declarations

public: // User declarations

__fastcall TForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

class array{

public:

array(int); //конструктор 1 (с параметром)

array(array&); //конструктор 2 (копии)

void swap(int&,int&); //обмен элементов в сортируемом массиве

void SwapSort(int,int,int); //сортировка обменами

void SelectSort(int,int,int,int); //сортировка выбором

void InsertSort(int,int,int,array&); //сортировка вставками

void BubbleSort(int,int,int,int); //сортировка пузырьком

void QuickSort(int,int,int); //быстрая сортировка

void out_mass_a()const; //вывод исходного и отсортированного массивов

int get_sr()const{return sr;} //получить сравнения

int get_obm()const{return obm;}//получить обмены

~array(){delete[]a;} //деструктор

private:

int*a, //указатель для исходного сортируемого массива

sr, //сравнения

obm, //обмены

n; //размер исходного сортируемого массива

};

#endif

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]