Главная страница
Навигация по странице:


  • Краткие теоретические сведения.

  • Внимание! При записи числовых значений в окошках Edit не должно

  • Label1 –> Caption = IntToStr(x+y);

  • –> Clear();

  • Работа с компонентом Memo. Задача

  • методичка с++. Лабораторные работы по программированию в среде С Builder 0


    Скачать 1.64 Mb.
    НазваниеЛабораторные работы по программированию в среде С Builder 0
    Дата09.11.2020
    Размер1.64 Mb.
    Формат файлаpdf
    Имя файламетодичка с++.pdf
    ТипМетодическое пособие
    #149239
    страница5 из 7
    1   2   3   4   5   6   7
    void __fastcall <ИмяФормы>::<ИмяКомпонента><ИмяОбработчикаСобытия>(<Параметры>)

    46
    Например, заголовок
    void __fastcall TForm1::Button2Click(TObject *Sender)
    означает, что ниже приводится код для случая, когда пользователь
    нажмет кнопку с именем Button2 на форме с именем Form1.
    Если обработчик события уже был ранее добавлен, то двойной
    щелчок перемещает указатель мыши в текст функции обработчика-
    события.
    XII. Для изменения значения свойства на этапе выполнения про-
    граммы необходимо в соответствующем обработчике события записать
    строку вида:
    <ИмяВизуальногоКомпонента>

    > <ИмяСвойства> = <НовоеЗначениеСвойства>;
    Упражнение 4. Программное изменение свойств визуальных компо-
    нентов
    1. Создать новый проект.
    2. Добавить на форму кнопки с подписью «Изменить цвет формы на голубой»,
    «Увеличить размер шрифта для надписи», «Изменить надпись», «Переместить надпись в правый нижний угол формы». Кнопки расположить в правом верх- нем углу формы, выровняв их по правому краю. Надпись первой кнопки долж- на быть выполнена жирным красным цветом, надпись второй – жирным синим цветом, надпись третьей – жирным курсивом зеленого цвета. Имена кнопок –
    MyBtn1, MyBtn2, MyBtn3. Всплывающая подсказка для первой кнопки – «На- жми и форма станет синей», второй – «Нажми и размер шрифта у надписи уве- личится на 5 пт», третьей – «нажми, и надпись окажется внизу справа». Всплы- вающие подсказки должны отображаться при запуске проекта.
    3. Имя формы установить в MyForm, подпись (заголовок окна) – в «Про- граммное изменение свойств визуальных компонентов».
    4. Добавить на форму метку (Label), расположить в верхней части формы левее кнопок. Установить свойство Caption в «Надпись не меняли». Шрифт отрегулировать по своему усмотрению.
    5. Добавить на форму однострочный текстовый редактор (Edit), установить его имя в MyEdit, отрегулировать свойства компонента так, чтобы в окошке редактора при запуске программы никаких символов бы не отображалось, а при вводе чего-либо отображались бы символы «@».

    47 6. Рядом с компонентом Edit расположить еще один компонент Label. Свой- ства компонента Name и Font отрегулировать по своему усмотрению. Свой- ство Caption очистить.
    7. Перейти в обработчик события Click для кнопки МуBtn1 (выделить на форме кнопку, открыть вкладку Events окна Object Inspector и выполнить двойной щелчок по полю, справа от подписи «OnClick»).
    8. В позиции курсора набрать следующий код
    MyForm

    > Color = clBlue;
    9. Запустить проект, сохранив его с именем Upr2, а форму и модуль – с именем UnitUpr2.
    10. В окне приложения убедиться в правильности установки свойств компо- нентов.
    11. Пощелкать по кнопкам на форме в произвольном порядке. Пронаблюдать эффект.
    12. Закрыть проект и перейти к коду обработчика события OnClick кнопки
    MyBtn2.
    13. В позиции курсора набрать следующий код:
    Label1

    > Font

    > Size = MyForm

    > Label1

    > Font

    > Size + 5;
    Label1

    > Caption = “Размер шрифта изменился…”
    14. Запустить проект. Убедиться в работоспособности кнопки MyBtn2.
    15. В обработчике события OnClick для кнопки MyBtn3 указать следующий код:
    Label1

    > Left = Width - Label1

    > Width-10;
    Label1

    > Top = Height - Label1

    > Height-10;
    16. Применяя программные строки, указанные в п. 15 упражнения, ответить на вопрос: какие координаты будет иметь левый верхний угол метки, если ее ширина и высота – 150 и 20 пт соответственно, а размер формы - 500х500?
    17. Запустить проект, в произвольном порядке нажимать кнопки, наблюдая эффект, причем кнопки MyBtn2 и MyBtn3 – несколько раз.
    18. Самостоятельно сделать так, чтобы:

    при нажатии на кнопку MyBtn1 цвет формы менялся бы на желтый, а ее размеры стали бы 800

    800;

    при нажатии на кнопку MyBtn2 цвет ее шрифта поменялся бы на черный, а ее всплывающая подсказка стала бы «Лучше много раз не нажимать».

    48 19. Сделать так, чтобы при вводе чего-либо в окошко однострочного тексто- вого редактора (компонент Edit) в рядом находящейся метке (Label) отобра- жался бы суммарный результат ввода. Для этого:
    19.1. Перейти в обработчик события OnChange компонента Edit
    19.2. Ввести в позиции курсора следующую последовательность симво- лов:
    <ИмяМетки>

    > Caption = MyEdit

    > Text;
    19.3. Запустить проект, пронаблюдать изменение окошка редактора и рядом стоящей метки при наборе каких-либо символов.
    20. Сохранить проект, закрыть его.
    Краткие теоретические сведения.
    XIII. Компоненты, часто используемые для ввода/вывода данных
    Если необходимо ввести из формы в программу или вывести на
    форму информацию, которая вмещается в одну строку, используют
    окно однострочного редактора текста, представляемого компонентой
    Edit. Как уже известно, то, что пользователь указал в окошке ре-
    дактора, хранится в свойстве Text. Тип свойства Text – строковый
    (AnsiString).
    Компонента Label используется для вывода надписей, выводимый
    пользователю текст содержится в свойстве Caption, тип свойства –
    строковый (AnsiString).
    Если в качестве результатов работы программы необходимо вы-
    вести не одну строку, а несколько, рекомендуется использовать
    многострочный редактор текста, представленый компонентой Memo
    (вкладка Standart).
    XIV. Функции преобразования типов
    Особенностью работы языка С++ является типизированность дан-
    ных. Так, вычисления (сложение, вычитание, умножение, деление,
    расчет тригонометрических функций и т. д.) могут производится
    только с числовыми типами данных (double – для вещественных чи-
    сел, int – для целых чисел и проч.). В то же время вывод информа-
    ции на экран и ввод ее с экрана осуществляется через символьные
    (строковые) типы данных, с которыми вышеперечисленные операции
    недопустимы. Поэтому необходимы функции преобразования типов.
    Наиболее часто используемые из них представлены в табл. 10.
    Пример:
    На форме имеются компоненты Edit1 и Edit2, причем в обе
    пользователь вводит только целые числа. Необходимо сложить зна-

    49
    Таблица 10
    Название функции
    Назначение
    StrToFloat(Str)
    Преобразует строку Str в вещественное число
    StrToInt(Str)
    Преобразует строку Str в целое число.
    FloatToStr (W)
    Преобразует вещественное число W в строку
    символов
    IntToStr (W)
    Преобразует целое число W в строку символов
    чения, указанные в их окошках и вывести результат на форму. Дей-
    ствия пользователя:
    1. Как правило, пользователь создает две новые переменных (на-
    пример, х и у) нужного типа (в данном случае – целого (int)) и
    записывает в них (присваивает им) преобразованные значения свой-
    ства Text соответствующего компонента. Код на языке С++ выглядит
    следующим образом:
    int x,y;
    //объявление переменных
    х = StrToInt(Edit1–>Text);
    //преобразование из строки в целое для Edit1
    y = StrToint(Edit2–>Text);
    //преобразование из строки в целое для Edit2
    Внимание! При записи числовых значений в окошках Edit не должно
    быть пробелов, а разделителем целой и дробной частей обычно яв-
    ляется запятая!
    2. Для вывода итога вычисления на форму добавляется компонент
    Label, в свойство Caption которого необходимо записать результат
    суммирования. Поскольку результат суммирования – целое, а свой-
    ство Captiоn имеет строковый тип, следует предварительно выпол-
    нить преобразование «из целого в строку». Вышеприведенный код на
    языке С++ расширяется в этом случае следующей строкой:
    Label1 –> Caption = IntToStr(x+y);
    Упражнение 5. Простейший калькулятор
    1. Создать новый проект, в форме разместить два компонента Edit, четыре компонента Label, четыре кнопки. Настроить форму, как показано на рис. 9.
    Цветовую гамму, размер шрифта и имена для компонентов Label, Edit и
    Button выбрать самостоятельно.
    2. Для кнопки с надписью «+» перейти в обработчик события Click и само- стоятельно набрать код, аналогичный приведенному в примере к теоретиче-

    50
    Рис. 9. Вид окна приложения ским сведениям, но с учетом того, что в компоненты Edit пользователь будет вводить вещественные числа.
    3. Запустить проект, предварительно сохранив его с именем MyCalc. Имя мо- дуля (формы) – Form1.
    4. Проверить правильность работы программы.
    5. Ввести в качестве любого операнда какое-либо число с пробелом (слово, число «через точку») и посмотреть на реакцию программы при нажатии на кнопку с надписью «+».
    6. Запустить приложение из любого файлового менеджера, вновь ввести не- корректное значение операнда и, нажав кнопку «+», посмотреть на реакцию программы.
    7. Добавить обработчики событий для кнопок «–», «

    », «/». Запустить при- ложение и убедиться в правильности его работы.
    8. Для метки «Результат расчета» установить выравнивание по правому краю.
    9. Изменить обработчик события Click для кнопки «+», набрав перед выво- дом результата сложения на форму строку:
    <ИмяМетки> –> Caption = ”Результат сложения: ”;
    10. Самостоятельно изменить обработчики событий для других кнопок ана- логичным образом.
    11. Запусить проект, проверить правильность его работы.
    Краткие теоретические сведения.
    XV. Компонент Memo
    Это многострочный редактор текста, который удобно использо-
    вать также для вывода результатов работы программы, если это не-
    обходимо сделать в несколько строк. Свойства компонента пред-
    ставлены в табл. 11.

    51
    Таблица 11
    Название
    свойства
    Смысл
    1
    2
    ImeMode
    возможность использования редакторов способа ввода
    (Input Method Editor, IME). Такие редакторы позво-
    ляют приспособить стандартную раскладку клавиатуры
    для символьных языков для ввода нестандартных сим-
    волов (иероглифов и т. д.). Редакторы IMЕ представ-
    ляют собой специально устанавливаемое в операцион-
    ной системе программное обеспечение (ПО). Имя тако-
    го редактора задается в свойстве ImeName. Режим ра-
    боты редактора определяется свойством ImeMode.
    ImeName
    Lines
    Содержит информацию, выводимую в компоненте. Ин-
    формация представлена в виде массива строк.
    Для очистки массива строк используется метод
    <ИмяКомпонента> –> Clear();
    Для добавления новой строки используется метод
    <ИмяКомпонента> –>Lines–>Add(Str);
    ScrollBars Определяет наличие полос прокрутки внутри компо-
    нента.
    Возможные значения:
    ssBoth
    Отображаются и вертикальная, и горизон-
    тальная
    ssHorizont
    al
    Отображается только горизонтальная
    ssNone
    Не отображается ни вертикальная, ни гори-
    зонтальная
    ssVertical Отображается только вертикальная
    WantReturns В режиме ввода, определяет, допустимо ли при нажа-
    тии Enter добавлять новую строку.
    Возможные значения:
    True Значение по умолчанию. Разрешено добавление новой
    строки текста при нажатии клавиши Enter, когда
    курсор находится внутри компонента
    Fals
    e
    Нажатие клавиши Enter, когда курсор находится
    внутри компонента приводит к возникновению события
    Change
    WantTabs
    Определяет режим функционирования клавиши Tab, когда
    пользователь вводит текст в элементе управления.
    Возможные значения:

    52
    Таблиц 11 (продолжение)
    1
    2
    1
    True Клавиша Tab функционирует стандартным образом при
    вводе текста (сдвигает позицию курсора на значение
    табуляции вправо)
    Fals
    e
    Значение по умолчанию. Клавиша Tab функционирует в
    качестве средства перемещения фокуса на форме с
    одного элемента управления на другой.
    Упражнение 6. Работа с компонентом Memo.
    Задача: Составить программу вычисления арифметического выражения для заданных значений x, y, z :
    Окно программы должно иметь вид, представленный на рис. 10.
    Рис. 10. Вид окна приложения
    Ход решения:
    1. Создать новый проект с именем MyMemo.
    2. Оформить окно формы, заменив заголовок Form1 на нужный текст (свой- ство Caption).
    3. Поместить на форму компоненты Label, задав соответствующие значения в свойстве Caption, установить для них шрифты жирного начертания.
    4. Поместить на форму компоненты для ввода исходных данных (Edit), вы- ровнять их по верхнему краю; их самих и соответствующие им метки – по середине.

    53 5. Поместить на форму компонент Memo; запретить редактирование его строк, разрешить появление обеих полос прокрутки.
    6. Поместить на форму кнопку (Button), оформить ее внешний вид.
    7. Перейти в код модуля, и после строки #include набрать строку
    #include
    Цель набранной строки – подключение модуля встроенных математиче- ских функций.
    8. Перейти в обработчик события Click для кнопки, в котором указать сле- дующий код:
    double x, y, z, a, b ,c, rez;
    //х, у, z – исходные данные
    //а, b, с – вспомогательные переменные;
    //rez – результат вычисления*/
    //Ниже должно быть три строки, обеспечивающие считывание исходных данных и пре-
    образование из типа-строка в тип-вещественное число. Написать самостоятельно.
    Имена переменных – см. выше.



    a = pow(tan(x+y),2);
    //расчет квадрата тангенса суммы
    b = exp(y-z);
    //расчет экспоненты
    c = sqrt(cos(x*x)+sin(z*z));
    //расчет квадратного корня
    rez = a-b*c;
    //общий итог
    //вывод результата:
    Memo1->Lines->Add("При х="+FloatToStr(x)+";y="+FloatToStr(y)+";z="+FloatToStr(z));
    Memo1->Lines->Add("Результат = "+FloatToStr(rez));
    9. Запустить проект и проверить его работоспособность.
    10. Перейти в обработчик события Create для формы. Указать в нем следую- щий код:
    Edit1->Text = "3,4";
    Edit2->Text = "7,4e-2";
    Edit3->Text = "1,943e2";
    Memo1->Clear();
    Memo1->Lines->Add("Лабораторная работа № 1");
    11. Запустить проект, отследить появившиеся изменения.

    54
    Содержание отчета:
    1. Титульный лист
    2. Цель работы
    3. Краткие теоретические сведения (список используемых операторов, их цель, синтаксис, формат и проч.)
    4. Коды модулей С++
    5. Копии форм и сведения о свойствах компонентов.
    6. Копии экрана с примерами работы программ
    7. Схемы алгоритмов программ.
    8. Выводы по работе.
    Контрольные вопросы
    1. Перечислите этапы создания приложения с оконным интерфейсом.
    2. Что такое форма?
    3. Что такое модуль?
    4. Каким образом и с какой целью можно открыть окно Project Manager?
    5. Каким образом и с какой целью можно открыть окно Object Inspector?
    6. Каким образом и с какой целью можно переключаться между модулем и формой?
    7. Укажите файловых состав приложения с оконным интерфейсом. Что из- менилось в этом составе по сравнению с консольным приложением?
    8. Какая классификация компонентов, использующихся для разработки приложений с оконным интерфейсом Вам известна?
    9. Предложите способ, согласно которому, не знающий пользователь смог бы определить, какой из компонентов является визуальным, а какой – нет.
    10. Как разместить нужный компонент на форме?
    11. Как выделить группу компонентов на форме? Для каких целей это может понадобиться?
    12. Как удалить элемент(ы) интерфейса с формы?
    13. Каким образом можно выровнять компоненты интерфейса на форме?
    14. Что такое свойства элементов интерфейса?
    15. Каким образом можно установить один и тот же размер компонентов ин- терфейса на форме?
    16. Какие вкладки и с какой целью содержит окно Object Inspector?
    17. В каких режимах допустимо изменение свойств компонентов?

    55 18. Как в режиме проектирования формы можно изменить свойства компо- нентов?
    19. Как в окне Object Inspector отличить простое свойство от сложного?
    20. Как вводить значения свойств компонентов в окне Object Inspector?
    21. Перечислите и поясните важнейшие свойства визуальных компонентов.
    22. Перечислите и поясните специфические свойства компонента Label.
    23. Перечислите и поясните специфические свойства компонента Edit.
    24. Перечислите и поясните специфические свойства компонента Button.
    25. Поясните термин «событие»
    26. Где можно просмотреть список событий, на которые может реагировать тот или иной компонент?
    27. Объясните, в какие моменты времени возникают события Click,
    DBLClick, Change.
    28. Какие действия необходимо выполнить, чтобы перейти в режим про- граммирования обработчика нужного события?
    29. Каким образом можно менять/устанавливать свойства компонентов в процессе выполнения программы?
    30. Какие компоненты используются для организации ввода/вывода данных, необходимых для реализации линейного вычислительного процесса? Пере- числите и объясните их свойства и события.
    31. Что такое тип данных?
    32. Что такое преобразование типов данных?
    33. Какие функции преобразования типов данных Вам известны? Приведите их синтаксис и принцип использования.
    34. Какой компонент может использоваться для многострочного вво- да/вывода текста? Перечислите и поясните его свойства и события.

    56
    1   2   3   4   5   6   7


    написать администратору сайта