Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Курсовые работы / курсовая / Уфимский Государственный Авиационный Технический Университет.doc
Скачиваний:
57
Добавлен:
02.05.2014
Размер:
191.49 Кб
Скачать

5.Описание работы программы.

В диалоге программы имеется одно поле EDIT, в которое пользователь может ввести количество элементов создаваемого массива.

При нажатии на кнопку «Сгенерировать и отсортировать массив», программа создает массив из случайных чисел, и сортирует его методом выборки.

Сгенерированный и отсортированный массив выводятся в поля Label2 и Label3 соответственно.

Построенные графики массивов выводятся в графические поля Image1 и Image2.

При нажатии на кнопку «сохранить массив», оба массива сохраняются в текстовый файл, выбираемый пользователем, с помощью визуально невидимого компонента Memo1. Сгенерированный и отсортированный массивы копируются в текстовое поле Memo1, и сохраняются в текстовый файл с помощью метода SaveToFile().

6.Вывод.

В ходе выполнения курсовой работы была изучена среда разработки Borland C++ Builder. C++ Builder — это среда быстрой разработки, в которой в качестве языка программирования используется язык C++ Builder.

В результате работы была разработана программа для реализации алгоритма сортировки выбором. Результат был представлен графически в виде двух наборов вертикальных линий: первый – до сортировки, второй – после. Результат записан в файл. О-сложность данного алгоритма– О().

7.Список используемой литературы.

  1. Громов Ю.Ю.,Татаренко С.И. Программирование на языке СИ:

Учебное пособие. -Тамбов,1995.- 169 с.

  1. Г. Шилдт «Самоучитель С++» - СПб.:БХВ-Петербург. 2001. –

670с.

  1. Культин Н.Б. С/С++ в задачах и примерах. – СПб.: БХВ-

Петербург, 2001. – 288с.

  1. Культин Н.Б. Самоучитель С++ Builder. – СПб.: БХВ-Петербург, 2005. – 320 с. :ил.

Приложение.

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

int a[50]; //max kol-vo elementov v massive

int x; //kol-vo elementov v massive

int k; //schetchik

int c; //schetchik2

int min; //minimum

int buf; //bufer

int j;

x=StrToInt(Edit1->Text);

randomize();

Memo1->Clear();

Label2->Caption="";

Label3->Caption="";

Image1->Canvas->Brush->Color=clWhite;

Image1->Canvas->Rectangle(0,0,600,300);

Image1->Canvas->Brush->Color=clBlack;

Image2->Canvas->Brush->Color=clWhite;

Image2->Canvas->Rectangle(0,0,600,300);

Image2->Canvas->Brush->Color=clBlack;

for (k=0;k<x;k++)

{

a[k]=random(100)-50;

Label2->Caption= Label2->Caption+IntToStr(a[k])+" ";

Image1->Canvas->MoveTo(10+(k+1)*20,55);

Image1->Canvas->LineTo(10+(k+1)*20,55-a[k]);

Image1->Canvas->Brush->Style=bsClear;

Image1->Canvas->Font->Color=clGreen;

Image2->Canvas->Brush->Style=bsClear;

Image2->Canvas->Font->Color=clGreen;

Image1->Canvas->TextOutA(5+(k+1)*20,57,k+1);

}

for (c=0;c<x-1;c++)

{

min=c;

for (j=c+1; j<x; j++)

if (a[j]<a[min]) min=j;

buf=a[c];

a[c]=a[min];

a[min]=buf;

}

for (k=0; k<x; k++)

Label3->Caption=Label3->Caption+a[k]+" ";

Memo1->Lines->Add("Неотсортированный массив:");

Memo1->Lines->Add(Label2->Caption);

Memo1->Lines->Add("Отсортированный массив:");

Memo1->Lines->Add(Label3->Caption);

Image1->Canvas->TextOutA(3,5,"Y");

Image1->Canvas->TextOutA(500,57,"X");

Image1->Canvas->MoveTo(0,55);

Image1->Canvas->LineTo(500,55);

Image1->Canvas->MoveTo(10,5);

Image1->Canvas->LineTo(10,105);

Image2->Canvas->TextOutA(3,5,"Y");

Image2->Canvas->TextOutA(500,57,"X");

Image2->Canvas->MoveTo(0,55);

Image2->Canvas->LineTo(500,55);

Image2->Canvas->MoveTo(10,5);

Image2->Canvas->LineTo(10,105);

for (k=0; k<x; k++)

{

Image2->Canvas->MoveTo(10+(k+1)*20,55);

Image2->Canvas->LineTo(10+(k+1)*20,55-a[k]);

Image2->Canvas->Brush->Style=bsClear;

Image2->Canvas->Font->Color=clGreen;

Image2->Canvas->TextOutA(5+(k+1)*20,57,k+1);

}

}

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

void __fastcall TForm1::Button2Click(TObject *Sender)

{

if (SaveDialog1->Execute())

{

Memo1->Lines->SaveToFile(SaveDialog1->FileName);

}

}

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

21

Соседние файлы в папке курсовая