Разработка приложений в среде «Embarcadero RAD Studio 2010»
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Пример разработки программы

Задание: составить программу вычисления для заданных значений x, y, z арифметического выражения:

.

Панель диалога программы организовать в виде, представленном на рисунке 12.2.

Настройка формы

Пустая форма в правом верхнем углу имеет кнопки управления, которые предназначены: для свертывания формы в пиктограмму , для разворачивания формы на весь экран  и возвращения к исходному размеру  и для закрытия формы . С помощью мыши, «захватывая» одну из кромок формы или выделенную строку заголовка отрегулируйте нужные размеры формы и ее положение на экране.

Изменение заголовка формы

Новая форма имеет одинаковые имя (Name) и заголовок (Сaption) – FORM1. Имя формы менять не рекомендуется, т. к. оно входит в текст программы.

Для изменения заголовка вызовите окно инспектора объектов (F11) и щелкните кнопкой мыши на форме. В форме инспектора объектов найдите и щелкните мышью на Properties – Caption. В выделенном окне наберите «Лаб. раб. N1. Иванов А. А.» (без кавычек).

Размещение строки ввода (TEdit)

При необходимости ввести из формы в программу или вывести на форму информацию, которая вмещается в одну строку, используют окно однострочного редактора текста, представляемого компонентом TEdit.

В данной программе с помощью однострочного редактора будут вводиться переменные x, y, z типа float.

Выберите в меню компонентов Standard пиктограмму , щелкните мышью в том месте формы, где вы хотите ее поставить. Вставьте три компонента TEdit в форму. Захватывая их “мышью” отрегулируйте размеры окон и их положение. Обратите внимание на то, что в тексте программы появились три новых однотипных переменных Edit1, Edit2, Edit3. В каждой из этих переменных в поле «Text» будет содержаться строка символов и отображаться в соответствующем окне Edit.

Так как численные значения переменных x, y, z имеют действительный тип для преобразования строковой записи числа, находящегося в переменной Edit1->Text, в действительное используется стандартная функция StrToFloat. Например, x = StrToFloat(Edit1->Text), где x – переменная вещественного
типа.

В случае если исходные данные имеют целочисленный тип, например int, то используется стандартная функция StrToInt. Например, y =StrToInt(Edit1->Text), где где y – переменная вещественного типа.

При этом в записи числа не должно быть пробелов, а действительное число пишется с десятичной запятой.

С помощью инспектора объектов установите шрифт и размер символов отражаемых в строке Edit (свойство Font).


Пример выполнения программы

Задание: создать программу для определения вектора , где А – квадратная матрица размерностью NxN, а Y , B – одномерные массивы размерностью N. Элементы вектора Y определяются по формуле .

Значения N вводить в компонент TEdit, А и B – в компонент TStringGrid. Результат, после нажатия кнопки типа TButton, вывести в компонент TStringGrid.

Панель диалога приведена на рисунке 12.3.

Широкая строка типа wstring

Данный тип введен для обеспечения совместимости с компонентами, основанными на OLE-технологии. От типа s tring отличается только тем, что для представления каждого символа используется не один, а два байта.

13.2 Компонент TListBox

Компонент TListBox представляет собой список, элементы которого выбираются при помощи клавиатуры или мыши. Список элементов задается свойством Items, через методы Add, Delete и Insert которого используются для добавления, удаления и вставки строк соответственно. Объект Items (TString) хранит строки, находящиеся в списке. Для определения номера выделенного элемента используется свойство ItemIndex.

 

13.3 Компонент TComboBox

Комбинированный список TComboBox представляет собой комбинацию списка TListBox и однострочного редактора TЕdit, поэтому практически все свойства заимствованы у этих компонентов.

Для работы с окном редактирования используется свойство Text, как в TEdit, а для работы со списком выбора – свойство Items как в TListBox. Существует пять модификаций компонента, определяемых его свойством Style. В модификации csSimple список всегда раскрыт, в остальных он раскрывается после нажатия кнопки справа от редактора.

13.4 Компонент TBitBtn

Компонент TBitBtn расположен на странице Additonal палитры компонентов и представляет собой разновидность стандартной кнопки TB u tton. Его отличительная особенность – наличие растрового изображения на поверхности кнопки, которое определяется свойством G lyph. Кроме того, имеется свойство Kind, которое задает одну из 11 стандартных разновидностей кнопок. Нажатие любой из них, кроме bkCustom и bkHelp закрывает модальное окно и возвращает в программу результат mr*** (например bkOk возвращает mrOk). Кнопка bkClose закрывает главное окно и завершает работу программы.

Обработка событий

Обо всех происходящих в системе событиях, таких как создание формы, нажатие кнопки мыши или клавиатуры и т. д., ядро Windows информирует окна путем посылки соответствующих сообщений. Среда Си++ Builder позволяет принимать и обрабатывать большинство таких сообщений. Каждый компонент содержит обработчики сообщений на странице Events инспектора объектов.

Таблица 13.1 – Наиболее распространенные события у компонентов

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

Продолжение таблицы 13.1

OnActivate Форма получает это событие при активации
OnKeyPress Возникает при нажатии кнопки на клавиатуре. Параметр Key имеет тип Char и содержит ASCII-код нажатой клавиши (клавиша Enter клавиатуры имеет код 13, клавиша Esc 27 и т. д.). Обычно это событие используется в том случае, когда необходима реакция на нажатие одной из клавиш
OnKeyDown Возникает при нажатии клавиши на клавиатуре. Обработчик этого события получает информацию о нажатой клавише и состоянии клавиш Shift, Alt и Ctlr, а также о нажатой кнопке мыши. Информация о клавише передается параметром Key, который имеет тип Word
OnKeyUp Является парным событием для OnKeyDown и возникает при отпускании ранее нажатой клавиши
OnClick Возникает при нажатии кнопки мыши в области компонента
OnDblClick Возникает при двойном нажатии кнопки мыши в области компонента

Для создания обработчика события необходимо раскрыть список компонентов в верхней части окна инспектора объектов и выбрать необходимый компонент. Затем, на странице Events, нажатием левой клавиши мыши, выбрать обработчик и дважды щелкнуть по его правой (белой) части. В ответ C ++ Builder активизирует окно текста программы и покажет заготовку процедуры обработки выбранного события.

Каждый компонент имеет свой набор обработчиков событий, однако некоторые из них присущи большинству компонентов. Наиболее часто применяемые события представлены в таблице 13.1.

Пример разработки программы с использованием строк

Задание: написать программу подсчета числа слов в произвольной строке. В качестве разделителя может быть любое число пробелов. Для ввода строк и работы с ними использовать TComboBox. Ввод строки заканчивать нажатием клавиши Enter. Для выхода из программы использовать кнопку Close.

Панель диалога будет иметь вид, представленный на рисунке 13.1.

Текст программы приведен ниже.

 

TComboBox
TBitBtn
TListBox

Рисунок 13.1 – Внешний вид приложения

# include < dstring . h >

void __fastcall TForm1::FormActivate(TObject *Sender)

{  ComboBox1->SetFocus();  // Передача фокуса ComboBox1

}

void __fastcall TForm1::ComboBox1KeyPress(TObject *Sender, char &Key)

{ if ( Key ==13)

 { // Если нажата клавиша Enter , то...

// Строка из окна редактирования

ListBox 1-> Items -> Add ( ComboBox 1-> Text );

ComboBox1->Items->Add(ComboBox1->Text);

ComboBox 1-> Text ="";// Очистка окна редактирования

 }

}

void __fastcall TForm1::ListBox1Click(TObject *Sender)

{ int n =0;         // Содержит число слов

int ind =0;

int nst = ListBox 1-> ItemIndex ;//Определение номера выбранной строки

// Занесение выбранной строки в переменную st

AnsiString st=ListBox1->Items->Strings[nst];

 for (int i=1; i<=st.Length(); i++)

{// Просмотр всех символов строки st

switch ( ind )

{ case 0: if ( st [ i ]!=32)

   { // Если встретился символ после пробела

   ind =1;

   n ++;// Число слов увеличивается на единицу

   break ;

   }

case 1: if ( st [ i ]==32) ind =0;//Если встретился пробел //после символов

  break ;

}

}

// Вывод числа слов в Label 3

Label 2-> Caption ="Число слов в выделенной строке: "+ IntToStr ( n ); 

}

Контрольные вопросы

1. Чем отличаются строка типа string и AnsiString  в Си++Builder?

2. Каков состав проекта для разработки приложений?

3. Как размещаются компоненты на форме?

4. Какие настройки необходимо выполнить при работе с формой?

5. Какие действия необходимо выполнить для использования компонента TListBox?

6. Какие действия необходимо выполнить для использования компонента TComboBox?

7. Какие действия необходимо выполнить для использования компонента TBitBtn?

8. Что такое обработчик событий, как его использовать?


14 Разработка приложений
с использованием диалогов для выбора
файлов и главного меню




Пример программы работы с файлами

Задание: написать программу, вводящую в файл или читающую из файла ведомость абитуриентов, сдавших вступительные экзамены. Каждая запись должна содержать фамилию, а также оценки по математике, русскому языку, информатике.

Работа с программой

После запуска программы на выполнение на экране появится диалоговое окно программы (рисунок 14.3), содержащую главное меню и панель с кнопками быстрого доступа к функциям, а также таблицу для ввода данных.

Кнопка «Новый» создает новую таблицу-ведомостью. Открыть ранее созданный позволяет нажатие кнопки «Открыть». Кнопка «Добавить» добавляет строку в таблицу, а «Удалить» удаляет выбранную. Кнопка «Сохранить» позволяет сохранить данные в файл.

Рисунок 14.3 – Внешний вид программы

 

# 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::N15Click(TObject *Sender)

{  Application->Terminate();}

void __fastcall TForm1::FileSaveUpdate(TObject *Sender)

{  TAction* pa = dynamic_cast<TAction*>(Sender);

  if (pa) pa->Enabled=(StringGrid1->Visible);

}

void __fastcall TForm1::FileNewUpdate(TObject *Sender)

{// функция, управляющая доступностью контролирующих элементов

TAction * pa = dynamic _ cast < TAction *>( Sender );

if (pa) pa->Enabled=true;

}

void __fastcall TForm1::FileNewExecute(TObject *Sender)

{ // новый файл

 StringGrid1->Visible=true;

 StringGrid1->RowCount=1;

 StringGrid1->ColWidths[0]=30;StringGrid1->ColWidths[1]=250;

 StringGrid1->ColWidths[2]=80; StringGrid1->ColWidths[3]=80;

 StringGrid1->ColWidths[4]=80; StringGrid1->ColWidths[5]=80;

 StringGrid1->Cells[0][0]="№";

StringGrid1->Cells[1][0]="ФИО";

 StringGrid1->Cells[2][0]="Математика";

     StringGrid1->Cells[3][0]="Информатика";

 StringGrid1->Cells[4][0]="Русский";

StringGrid1->Cells[5][0]="Ср. балл";

 AppendExecute(Sender);

 StringGrid1->FixedRows=1;

}

void __fastcall TForm1::AppendExecute(TObject *Sender)

{// Добавляет новую строку

StringGrid 1-> RowCount ++;

StringGrid1->Cells[0][StringGrid1->RowCount-1]=IntToStr(StringGrid1->RowCount-1);

 for (int i=1; i<=5; i++)

StringGrid1->Cells[i][StringGrid1->RowCount-1]="";

}

void __fastcall TForm1::DeleteUpdate(TObject *Sender)

{// функция, управляющая доступностью кнопки "удалить строку"

Delete->Enabled=(StringGrid1->RowCount>2)*(StringGrid1->Visible);

}

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

void __fastcall TForm1::AppendUpdate(TObject *Sender)

{// функция, управляющая доступностью кнопки "добавить строку"

Append->Enabled=(StringGrid1->Visible);}

void __fastcall TForm1::DeleteExecute(TObject *Sender)

{// Удаление строки и перенос выше всех других строк

int k=StringGrid1->Row;

 if (k>0)

 {  for (int i=k+1; i<StringGrid1->RowCount; i++)

for (int j=0; j<StringGrid1->ColCount; j++)

   if (j==0) StringGrid1->Cells[0][i]=IntToStr(i);

   else

                        StringGrid1->Cells[j][i-1]=StringGrid1->Cells[j][i];

StringGrid1->RowCount--;

  }

}

void __fastcall TForm1::OpenFileExecute(TObject *Sender)

{ // Чтение из файла

 int myfile, row, col, lenStr;

 char *pszBuffer;

 if (OpenDialog1->Execute())

 {try

{ myfile = FileOpen(OpenDialog1->FileName, fmOpenRead);

Form 1-> FileNewExecute ( Sender );

 // Читаем из файла количество колонок и строк таблицы

FileRead(myfile,&col,sizeof(StringGrid1->ColCount));

FileRead(myfile,&row,sizeof(StringGrid1->RowCount));

StringGrid1->ColCount=col; StringGrid1->RowCount=row;

 // теперь содержимое таблицы

for (int i=0; i<col; i++)

for (int j=0; j<row; j++)

{ // Читаем длину записанной чтроки

FileRead(myfile, &lenStr, sizeof(lenStr));

pszBuffer = new char[lenStr+1];//содаем буфер для чтения

// читаем саму строку

FileRead(myfile,pszBuffer, lenStr);

 StringGrid1->Cells[i][j]=AnsiString(pszBuffer,lenStr);

delete [] pszBuffer ; // удаляем буфер для чтения

}

}

catch (...)

{

Application -> MessageBox ("Ошибка чтения файла...","Ошибка файла", IDOK );

}

 }

}

void __fastcall TForm1::FileSaveExecute(TObject *Sender)

{// Запись в файл

 if (SaveDialog1->Execute())

 { int iLength;

 int myfile=FileCreate(SaveDialog1->FileName);

// Записываем в выходной файл количество колонок и строк таблицы

FileWrite(myfile, (char*)&(StringGrid1->ColCount), sizeof(StringGrid1->ColCount));

 FileWrite(myfile, (char*)&(StringGrid1->RowCount), sizeof(StringGrid1->RowCount));

 // теперь содержимое таблицы

 for (int x=0;x<StringGrid1->ColCount;x++)

for (int y=0;y<StringGrid1->RowCount;y++)

{// Записываем длину строки

  iLength = StringGrid1->Cells[x][y].Length();

  FileWrite(myfile, (char*)&iLength, sizeof(iLength));

              AnsiString temp = StringGrid1->Cells[x][y];

//Копируем текст ячейки во временную переменную

  FileWrite(myfile,temp.c_str(),

  StringGrid1->Cells[x][y].Length());

}

 FileClose(myfile);

 }

}

void __fastcall TForm1::HelpAboutExecute(TObject *Sender)

{ ShowMessage ("Типовая программа ЛР №8 ( C ) 2006 Яхонтов С.А.");

}

Контрольные вопросы

1. Какие действия необходимо выполнить для использования компонента TOpenDialog?

2. Какие действия необходимо выполнить для использования компонента TSaveDialog?

3. Какие действия необходимо выполнить для использования компонента T Main Menu?


15 Разработка приложений
с использованием средств для отображения графической информации

15.1 Построение графика с помощью компонента TChart

Обычно результаты расчетов представляются в виде графиков и диаграмм. Система C ++ Builder имеет мощный пакет стандартных программ вывода на экран и редактирования графической информации, который реализуется с помощью визуально отображаемого на форме компонента TChart (рисунок 15.1).

Построение графика (диаграммы) производится после вычисления таблицы значений функции y = f(x) на интервале [Xmin, Xmax] с заданным шагом. Полученная таблица передается в специальный двумерный массив Seriesk (k – номер графика, например, Series1) компонента TСhart с помощью метода Add.

Компонент T Chart осуществляет всю работу по отображению графиков, переданных в объект Seriesk: строит и размечает оси, рисует координатную сетку, подписывает название осей и самого графика, отображает переданную таблицу в виде всевозможных графиков или диаграмм. При необходимости, с помощью встроенного редактора EditingChart компоненту TСhart передаются данные о толщине, стиле и цвете линий, параметрах шрифта подписей, шагах разметки координатной сетки и другие настройки.

 В процессе работы программы изменение параметров возможно через обращение к соответствующим свойствам компонента TChart. Так, например, свойство Chart1->BottomAxis содержит значение максимального предела нижней оси графика и при его изменении во время работы программы автоматически изменяется изображение графика (см. нижеприведенную программу).



Пример разработки программы

Задание: составить программу, отображающую графики функций sin ( x ) и cos ( x ) на интервале [Xmin, Xmax]. Предусмотреть возможность изменения разметки координатных осей, а также шага построения таблицы.

Настройка формы

Панель диалога программы организуется в виде, представленном на рисунке 15.1.

Для ввода исходных данных используются окна редактирования TEdit. Компонент TChart вводится в форму путем нажатия пиктограммы « » в палитре компонентов на странице
TeeChart Std.

 

     Рисунок 15.1 – Использование компонента TChart

Работа с компонентом TChart

Для изменения параметров компонента TChart необходимо дважды щелкнуть по нему мышью в окне формы. Появится окно редактирования EditingChat1 (рисунок 15.2).

Для создания нового объекта Series1 щелкнуть по кнопке Add на странице Series. В появившемся диалоговом окне TeeChart Gallery выбрать пиктограмму с надписью Line (график выводится в виде линий). Если нет необходимости представления графика в трехмерном виде, отключить независимый переключатель 3D.

После нажатия на кнопку OK появится новая серия с название Series1. Для изменения названия нажать кнопку Title. В появившемся однострочном редакторе набрать имя отображаемой функции – «sin(x)». Аналогичным образом создать объект Series2 для функции cos(x).

 

 

 

Рисунок 15.2 – Окно редактирования EditingChat1

Для изменения надписи над графиком на странице Titles в многострочном редакторе набрать: «Графики функций».

Для разметки осей необходимо выбрать страницу Axis и научиться устанавливать параметры настройки осей.

Нажимая различные кнопки меню, познакомиться с другими возможностями EditingChat.

Заключение

В учебном пособии рассмотрены основы разработки алгоритмов и программ с использованием языка программирования Си/Си++. Уделено внимание разработке программ с использованием ветвлений, циклов, работе с комбинированными типами данных: массивами и структурами.  Рассмотрены вопросы работы с указателями, динамическими переменными и структурами данных.  Особое внимание уделено вопросам конструирования функций пользователя,  работе со строками и  файлами.

Рассмотрены вопросы разработки приложений с использованием инструментальной среды программирования Embarcadero RAD Studio 2010 C ++ Builder .  Описаны приемы работы со стандартными копонентами, составляющими основу интерфейса любого приложения Windows , а также компоненты работы со строками, диалогов для выбора файлов и меню, использования графических приметивов и организации работы с простейшими базами данных.

Учебное пособие позволяет изучить основы программмирования на языке Си++ и получить опыт использования Embarcadero RAD Studio 2010 C ++ Builder при разработке приложений для операционной системы Windows.

 



СПИСОК ЛИТЕРАТУРЫ

1. Архангельский, А. Я. Программирование в С++ Builder 6 и 2006 / А. Я. Архангельский, М. А. Тагин – М. : ООО «Бином-Пресс», 2007 г. – 1184 с. : ил.

2. Алгоритмический язык программирования СИ/СИ++: метод. указания к лабораторным работам по дисциплине "Алгоритмические языки высокого уровня"/ сост. А. Г. Мурлин, Н. В. Ефанова, Е. А. Иванова, Д. А. Дзюбло, О. М. Гончар. – Краснодар: КубГАУ, 2006. – 121 с.

3. Громов, Ю. Ю. Программирование на языке Си [Электронный ресурс] : учеб. пособие / Ю. Ю. Громов, С. И. Татаренко. – Тамбов, 1994. – Режим доступа: http://citforum.ru/program-ming/c/dir.shtml.

4. Гурский, Н. Н. Разработка приложений в визуальных средах. [Электронный ресурс] : учеб. электронное издание / Н. Н. Гурский. – Минск : Белорусский национальный технический университет, 2010. – 144 с. Режим доступа: http://rep.bntu.by/
bitstream/handle/data/2019/%20%20%20%20%20%20%20%20%20%20%20%20%20%20.pdf?sequence=1#2.

5. Денисова, Э. В. Программирование на языке Си [Электронный ресурс] : учеб. пособие / Э. В. Денисова, С. В. Раков. – СПб : СПб ГИТМО (ТУ), 2003. – 74 с. Режим доступа:

http://window.edu.ru/resource/978/23978/files/rakov_all.pdf.

6. Иванов, К. В. Элементы языка Си (версия BORLAND C/Си++) [Электронный ресурс] : учеб.-метод. пособие / К. В. Иванов, Ю. М. Стенин. – Казань : Казанский университет, 2009. – 49 с. Режим доступа: http://kpfu.ru/docs/F1932494285/
Elementy.yazyka.SI..Avtory.Ivanov.K.V._.Stenin.Ju.M..pdf.

7. Носов, В. И. Основы теории алгоритмов и анализа их сложности [Электронный ресурс] : курс лекций / В. И. Носов. – М. : МГУ им. Ломоносова 1992. – 140 с. – Режим доступа: http://intsys. msu.ru/staff/vnosov/theoralg.htm.

8. Объектно-ориентированное программирование на С++ : Учебное пособие / А. А. Андрианова, Л. Н. Исмагилов, Т. М. Мухтарова. – Казань : Казанский (Приволжского) федерального университет, 2010. – 230 с.

9. Объектно-ориентированное программирование на языке С++: метод. указания к лабораторным работам по дисциплине "Высокоуровневые методы информатики и программирования"/ сост. А. Г. Мурлин, Е. А. Иванова, Н. В. Ефанова, О. М. Гончар. – Краснодар: КубГАУ, 2008. – 91 с.

10. Павловская Т. А. C/C++. Программирование на языке высокого уровня / Т. А. Павловская. – СПб. : Питер, 2002. – 464 с.

11. Подбельский, В. В. Курс программирования на языке Си [Электронный ресурс] : учебник / В. В. Подбельский, С. С. Фомин. – Электрон. дан. – М. : ДМК Пресс, 2012. – 384 с. – Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=4148.

12. Подбельский В. В. Язык С++ [Текст] : учеб. пособие / В. В. Подбельский. – 5-е изд. – М. : Финансы и статистика, 2003. –560 с.

13.  Прата, С. Язык программирования C++ : лекции и упражнения / С. Прата; пер. с англ. – М. : Издательский дом «Вильямс», 2012. – 1248 с.

14.  Программирование в среде Microsoft Visual Studio .NET: метод. указания к лабораторным работам для студентов второго курса специальности 08080165 «Прикладная информатика (по областям)» всех форм обучения/ сост. Е.А. Иванова, Н.В. Ефанова, Д. А. Р. Г. Симонян. – Краснодар: КубГАУ, 2008. – 153 с.

15. Программирование в объектно-ориентированных средах: метод. указания к лабораторным работам для студентов первого курса специальности 230201.65 – «Информационные системы и технологии» всех форм обучения/ сост. А. Г. Мурлин, Е. А. Иванова, Н. В. Ефанова. – Краснодар: КубГАУ, 2009. – 92 с.

16. Разработка бизнес-приложений: метод. указания к лабораторным работам для студентов четвертого курса специальности 230201.65 "Информационные системы и технологии" всех форм обучения/ сост. Т. П. Барановская, Е.А. Иванова, Н.В. Ефанова. – Краснодар: КубГАУ, 2012. – 87 с.

17. Разработка приложений на языках высокого уровня: метод. указания к лабораторным работам для студентов первого курса специальности 351400 "Прикладная информатика (по областям)" всех форм обучения/ сост. А. Г. Мурлин, Н. В. Ефанова, С. А. Яхонтов, Е. А. Иванова. – Краснодар: КубГАУ, 2004. – 177 с.

18. Разработка приложений на языке С++: метод. указания к лабораторным работам по дисциплине "Разработка приложений на языках высокого уровня"/ сост. А. Г. Мурлин, Е. А. Иванова, Н. В. Ефанова, С. А. Яхонтов. – Краснодар: КубГАУ, 2007. – 116 с.

19. Страуструп, Б. Язык программирования Си++ / Б. Страуструп; пер. с англ. – М. : Радио и связь, 1991. – 352 с.

20.  Технология разработки приложений на языке С++: метод. указания к лабораторным работам по дисциплине "Разработка приложений на языках высокого уровня"/ сост. А. Г. Мурлин, Е. А. Иванова, Н. В. Ефанова, С. А. Яхонтов. – Краснодар: КубГАУ, 2010. – 147 с.

21. Федоренко Ю. П. Алгоритмы и программы на C++Builder / Ю. П. Федоренко. – М. : ДМК Пресс, 2010. – 544 с. : ил.

22.  Хвостов, А. А. Разработка программного обеспечения системы мониторинга производства на языке С++ с использованием математической модели технологического процесса [Электронный ресурс] : учеб. пособие / А. А. Хвостов, В. К. Битюков, С. Г. Тихомиров [и др.]. – Электрон. дан. – Воронеж : ВГУИТ (Воронежский государственный университет инженерных технологий), 2014. – 117 с. – Режим доступа: http://e.lanbook.com/books/
element.php?pl1_id=72901.

23.  Элджер Дж. С++: библиотека программиста /  Дж. Элджер. – СПб. : ЗАО Изд-во «Питер», 1999. – 320 с. : ил.

 

 






ОГЛАВЛЕНИЕ

Введение. 3

1 Алгоритм. Элементы структурного программирования. 4

1.1 Понятие алгоритма. 4

1.2 Основные требования к алгоритмам.. 7

1.3 Элементы структурного программирования. 10

2 Лексические основы языка Си/Си++. 12

2.1 Лексемы Си/Си++. 12

2.2 Типы данных. 14

2.2.1 Объявление переменной. 14

2.2.2 Категории типов данных. 15

2.2.3 Целый тип данных. 15

2.2.4 Данные с плавающей точкой (вещественные типы) 17

2.4 Знаки операций. 19

2.4.1 Разновидности выражений в Си/Си++. 19

2.4.2 Разновидности операций в Си++. 19

2.4.3 Простое присваивание. 22

2.4.4 Составное присваивание. 22

2.4.5 Приоритеты операций и порядок вычислений. 23

2.5 Структура и компоненты программы на языке Си++.. 24

2.6 Организация ввода-вывода. 25

2.6.1 Ввод-вывод в стиле в стиле Си. 25

2.6.2 Ввод, вывод данных в стиле Си++. 28

2.7 Математические функции. 31

3 Программирование алгоритмов линейной структуры.. 34

4 Алгоритмы и программы ветвящейся структуры.
Условный оператор if. Переключатель switch. 38

4.1 Алгоритмы и программы ветвящейся структуры.. 38

4.2 Условный оператор if 39

4.3 Логические операции. 40

4.4 Примеры составления алгоритмов и программ
с использованием условного оператора if 41

4.5 Переключатель switch. 43

5 Алгоритмы и программы циклической структуры.. 46

5.1 Понятие цикла. Разновидности циклов. 46

5.2 Цикл с параметром в Си/Си++. 47

5.3 Оператор while. 49

5.4 Оператор do while. 50

5.5 Оператор continue. 50

Контрольные вопросы.. 51

6 Регулярные типы данных. Массивы.. 52

6.1 Понятие регулярного типа. 52

6.2 Алгоритмы сортировки массивов. 56

6.3 Постановка задачи сортировки и методы ее решения. 56

6.4 Алгоритм прямого упорядочения
(Алгоритм сортировки выбором элемента) 58

6.5 Алгоритм попарного сравнения соседних элементов («пузырьковая» сортировка) 60

6.6 Алгоритм сортировки выбором элемента. 61

6.7 Методы доступа к элементам массивов,
использование указателей. 61

6.8 Организация многомерных массивов.
Указатели на многомерные массивы.. 63

7 Функции в Си/Си ++. 66

7.1 Описание и определение функции. 66

7.2 Вызов функции. 69

7.3 Передача параметров в функцию.. 70

7.4 Описание прототипа функции. 72

7.5 Функция с переменным количеством параметров. 73

7.6 Понятие сигнатуры функции. 73

7.7 Подставляемые (встраиваемые) функции. 74

7.8 Передача параметров в главную функцию.. 74

7.9 Рекурсивные вызовы функции. 75

7.10 Примеры составления функций. 76

8 Программирование с использованем
строковых типов данных. 80

8.1 Особенности ввода с клавиатуры строковых данных. 81

8.2 Операции со строками. 82

8.3 Функции работы со строками. 83

8.3.1 Функции модуля stdlib.h. 84

8.3.2 Функции модуля string.h. 84

8.3.3 Функции модуля ctype.h. 86

8.4 Пример использования строк. 87

9 Указатели. 91

9.1 Понятие указателя. 91

9.2 Инициализация указателей. 93

9.3 Операции с указателями. 96

9.4 Ссылки. 99

9.5 Динамические массивы.. 99

9.6 Функции и массивы.. 101

9.7 Указатели на функции. 104

10 Структуры, как тип данных. 107

10.1 Понятие структурированного типа. 107

10.2 Динамические структуры данных. 109

10.2.1 Односвязные списки. 109

10.2.2 Динамическая структура «Стек». 117

10.2.3 Очередь. 120

11 Файлы в Си/Си++. 125

11.1 Файловый ввод/вывод с помощью потоков. 125

11.2 Дополнительные функции файлового ввода/вывода. 127

11.3 Режимы файлов. 130

11.4 Двоичные файлы.. 131

11.5 Произвольный доступ к файлам.. 132

12 Разработка приложений в среде
«Embarcadero RAD Studio 2010». 135

12.1 Интегрированная среда разработки программ
Си++Builder 135

12.2 Структура программ Си++Builder 137

12.3 Пример разработки программы.. 137

12.3.1 Настройка формы.. 137

12.3.2 Изменение заголовка формы.. 137

12.3.3 Размещение строки ввода (TEdit) 138

12.3.4 Размещение надписей (TLabel) 138

12.3.5 Размещение многострочного окна вывода (TMemo) 139

12.3.6 Написание кода обработки события
показа формы (FormShow) 140

12.3.7 Написание кода обработки события
нажатия кнопки (ButtonClick) 140

12.3.8 Запуск и работа с программой. 140

12.3.9 Сетка строк – компонент TStringGrid. 142

12.4 Пример выполнения программы.. 142

12.4.1 Настройка компонента TStringGrid. 143

13 Программирование с использованием
компонентов работы со строками. 146

13.1 Типы данных для работы со строками. 146

13.1.1 Длинная строка типа string и AnsiString. 146

13.1.2 Широкая строка типа wstring. 146

13.2 Компонент TListBox. 146

13.3 Компонент TComboBox. 147

13.4 Компонент TBitBtn. 147

13.5. Обработка событий. 147

13.6 Пример разработки программы
с использованием строк. 148

14 Разработка приложений с использованием диалогов
для выбора файлов и главного меню.. 151

14.1 Компоненты TOpenDialog и TSaveDialog. 151

14.2 Использование компонента TMainMenu. 151

14.3 Пример программы работы с файлами. 152

14.3.1 Настройка компонентов TOpenDialog и
TSaveDialog. 152

14.3.2 Работа с программой. 153

15 Разработка приложений с использованием средств
для отображения графической информации. 158

15.1 Построение графика с помощью компонента TChart 158

15.2 Пример разработки программы.. 158

15.2.1 Настройка формы.. 159

15.2.2 Работа с компонентом TChart 159

15.2.3 Написание кода обработки события
открытия формы.. 160

15.2.4 Запись кода обработки событий нажатия на кнопки. 160

16 Разработка приложений с использованием доступа
к таблицам баз данных. 163

16.1 Основы реляционных баз данных. 163

16.2 Создание таблиц при помощи Microsoft Office Access. 165

16.3 Разработка приложения для работы с таблицей данных. 166

16.4. Обработка информации однотабличной базы данных. 171

Заключение. 178

СПИСОК ЛИТЕРАТУРЫ... 179


 

Учебное издание

Мурлин Алексей Георгиевич,

Мурлина Владислава Анатольевна,

Ефанова Наталья Владимировна и др.

 

 

Программирование на языке Си++

Учебное пособие

 

 

Компьютерная верстка – А. Г. Мурлин

 

В авторской редакции

 

 

Подписано в печать 31.05.2016    Формат 60 × 84 1/16.

Усл. печ. л. – 10,8. Уч.-изд. л. – 8,4.

Тираж 100 экз. Заказ №  

 

 

Типография Кубанского государственного аграрного университета.

350044, г. Краснодар, ул. Калинина, 13



















Разработка приложений в среде «Embarcadero RAD Studio 2010»

12.1 Интегрированная среда разработки программ Си++Builder

Среда Си++ Builder визуально реализуется в виде нескольких одновременно раскрытых на экране монитора окон. Количество, расположение, размер и вид окон может меняться программистом в зависимости от его текущих нужд, что значительно повышает производительность работы.

Внешний вид среды Си++ Builder после запуска представлен
рисунке 12.1.

Рисунок 6.1 – Внешний вид среды Си++Builder, где 1- главное окно; 2 – основное меню; 3 – пиктограммы основного меню; 4 – окно дерева объектов; 5 - окно инспектора объектов; 6 – окно текста программы; 7- окно пустой формы; 8 – палитра компонентов
Рисунок 6.1 – Внешний вид среды Си++Builder, где 2- главное окно; 2 – основное меню; 3 – пиктограммы основного меню; 4 – окно дерева объектов; 5 - окно инспектора объектов; 6 – окно текста программы; 7- окно пустой формы; 8 – палитра компонентов

Главное окно всегда присутствует на экране и предназначено для управления процессом создания программы. Основное меню содержит все необходимые средства для управления проектом. Пиктограммы облегчают доступ к наиболее часто применяемым командам основного меню. Через меню компонентов осуществляется доступ к набору стандартных сервисных программ среды Си++ Builder, которые описывают некоторый визуальный элемент (компонент), помещенный программистом в окно формы. Каждый компонент имеет определенный набор свойств (параметров), которые можно задавать (например, цвет, заголовок окна, надпись на кнопке, размер и тип шрифта и др.).

Окно инспектора объектов (вызывается c помощью клавиши F11) предназначено для изменения свойств выбранных компонентов и состоит из двух страниц. Страница Properties (Свойства) предназначена для изменения необходимых свойств компонента, страница Events (События) – для определения реакции компонента на то или иное событие (например, нажатие определенной клавиши или щелчок «мышью» по кнопке).

Окно формы представляет собой проект Windows-окна программы. В это окно в процессе написания программы помещаются необходимые компоненты. Причем при выполнении программы помещенные компоненты будут иметь тот же вид, что и на этапе проектирования.

Окно текста программы предназначено для просмотра, написания и редактирования текста программы. В системе Си++ Builder используется язык программирования Си++. При первоначальной загрузке в окне текста программы находится текст, содержащий минимальный набор операторов для нормального функционирования пустой формы в качестве Windows-окна. При помещении некоторого компонента в окно формы текст программы автоматически дополняется описанием необходимых для его работы библиотек стандартных программ.

Программа в среде Си++ Builder составляется как описание алгоритмов, которые необходимо выполнить, если возникает определенное событие, связанное с формой (например щелчок «мыши» на кнопке – событие OnClick, создание формы – OnCreate). Для каждого обрабатываемого в форме события, с помощью страницы Events инспектора объектов в тексте программы организуется функция, между ключевыми символами {…} которой программист записывает на языке Си++ требуемый алгоритм.

Переключение между окном формы и окном текста программы осуществляется с помощью клавиши F12.

 

12.2 Структура программ Си++Builder

Программа в Си++ Builder состоит из следующих файлов:

- файла проекта (файл с расширением bpr);

- файлов описания класса формы, с расширением h

- одного или нескольких файлов исходного текста (с расширением cpp);

- файлов с описанием окон формы (с расширением dfm).

В файле проекта находится информация о модулях, составляющих данный проект.

Файл исходного текста – программный модуль предназначенный для размещения текстов программ. В этом файле
программист размещает текст программы, написанный на
языке Си++.




Пример разработки программы

Задание: составить программу вычисления для заданных значений x, y, z арифметического выражения:

.

Панель диалога программы организовать в виде, представленном на рисунке 12.2.

Настройка формы

Пустая форма в правом верхнем углу имеет кнопки управления, которые предназначены: для свертывания формы в пиктограмму , для разворачивания формы на весь экран  и возвращения к исходному размеру  и для закрытия формы . С помощью мыши, «захватывая» одну из кромок формы или выделенную строку заголовка отрегулируйте нужные размеры формы и ее положение на экране.

Изменение заголовка формы

Новая форма имеет одинаковые имя (Name) и заголовок (Сaption) – FORM1. Имя формы менять не рекомендуется, т. к. оно входит в текст программы.

Для изменения заголовка вызовите окно инспектора объектов (F11) и щелкните кнопкой мыши на форме. В форме инспектора объектов найдите и щелкните мышью на Properties – Caption. В выделенном окне наберите «Лаб. раб. N1. Иванов А. А.» (без кавычек).

Дата: 2019-02-02, просмотров: 524.