Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет мой.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.46 Mб
Скачать

Оглавление

Задача 1. Конвертер 5

Задача 2. Фунты-килограммы 7

Задача 3. Сила тока. 9

Задача 4. Сопротивление 12

Задача 5. Кафе 14

Задача 6. Любимый напиток 16

Задача 7. Электроэнергия 18

Задание 8. Осаго 21

Задание 9.Просмотр иллюстраций 25

Задача 10. Калькулятор 27

Задача 11. Калькулятор-2 31

Задача 12.Секундомер 34

Задача 13. Угадай число 36

Задание 14.Угадай число-2 38

Задание 15.Запуск Internet Explorer 40

Задание 16.Конвертор 41

Задание 17.Конвертор 2 42

Задание 18.Погода 43

Задание 19.Средняя температура 45

Задание 20. Простая база данных 48

Задание 21. Редактор текста 51

Задание 22. Приветствие 53

Задача 23. Олимпийский флаг 55

Задание 24. Диаграмма 57

Задача 26. Круговая диаграмма. 61

Задача 27. Просмотр иллюстраций. 64

Задача 28 .Часы 65

Задача 29. Пинг понг. 68

Задача 30. Полет в облаках 71

Задача 31.Баннер 73

Задача 32. Фоновый рисунок 75

Задача 33. WAV 77

Задача 34. MP3 Player 78

Задача 35.Воспроизведение MIDI 80

Задача 36.Compact Disk Player (версия 1) 82

Задача 37.Compact Disk Player (версия 2) 84

Задача 38.VideoPlayer 84

Задача 39. Анимация 87

Задача 40. Записная книжка 89

Задача 41 Магазин 90

Задача 42. Ежедневник 92

Задача 43. Сапер 94

Задача 44 Игра 15 97

Задача 45. Игра "Собери картинку" (Puzzle) 99

Задача 46 Игра "Парные картинки" 104

Задача 47. Экзаменатор 107

Задача 48. Экзаменатор-2 111

Задача 49. Календарь 113

Задача 50. Будильник 115

Задача 51. Очистка диска 119

Задача 52.Печать 120

Задачи для самостоятельного решения 123

Задача 1. Скидка 123

Задача 2.Доход по вкладу 124

Задача 3. Таблица умножения 125

Задача 4.Поездка на автомобиле 125

Задача 5.Стоимость разговора 127

Задача 6. Стеклопакет 128

Задача7. Калькулятор 129

Задача 8. Электроэнергия 131

Задача 9. Добрый день 133

Задача 10. Часы 135

Задача 11. Узоры 135

Задача 12. Курс доллара 136

Задача 13. Диаграмма 138

Задача 14. Домашние животные 140

Задача 15. Кораблик 143

Задача 16. Сапер 146

Задача 17 .Экзаменатор 152

Задача 18. База данных "Расходы" 154

Задача 1. Конвертер

Наша задача состояла в том, чтобы создать программу, которая будет рассчитывать курс из долларов в рубли (Рис.1). Демонстрирует использует компоненты TextBox и Label для ввода и отображения числовых данных. Программа спроектирована таким образом, что пользователь может ввести в поля редактирования только правильные данные (число).

Рис. 1

Вывод: Мы научились создавать программу, которая рассчитывает курс валют. Узнали несколько новых терминов.

Листинг

include<vcl.h>

#pragmahdrstop

#include "Unit1.h"

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

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

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

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

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

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

{

// код запрещенного символа заменим нулем, врезультате // символ в поле редактирования непоявится // Key - код нажатой клавиши // проверим, является ли символ допустимым

if ((Key >= '0') && (Key <= '9'))

return;

// глобальная переменная DecimalSeparator // содержит символ, используемый в качестве разделителя // при записи дробных чисел

if (Key == DecimalSeparator)

{

if ((Edit1->Text).Pos(DecimalSeparator) != 0)

Key = 0;// разделитель уже введен

return;

}

if (Key == VK_BACK)// клавиша<Backspace>

return;

if (Key == VK_RETURN)// клавиша<Enter

{

Edit2->SetFocus();

return;

}

// остальные клавший запрещен

Key = 0 ; // неотображатьсимвол

}

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

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

{

if ((Key >= '0') && (Key <= '9'))

return;

if (Key == DecimalSeparator)

{

if ((Edit2->Text).Pos(DecimalSeparator) != 0)

Key = 0 ; // разделитель уже введен

return;

}

if (Key == VK_BACK)

return;

if (Key == VK_RETURN)

Button1->SetFocus();// переходккнопкеВычислить // повторноенажатиеклавиши<Enter> // активизируетпроцессвычисленияденег

return;

Key = 0;

}

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

void __fastcall TForm1::Button1Click(TObject *Sender)

{

float usd; //доллар

float k; // курс

float rub; // рубли

if (((Edit1->Text).Length() ==0) ||

((Edit2->Text).Length() ==0))

{

MessageDlg("Haдo ввестиценуикурс",

mtInformation, TMsgDlgButtons() << mbOK, 0);

if ((Edit1->Text).Length() == 0)

Edit1->SetFocus();

else

Edit2->SetFocus();

return;

};

// вводисходныхданных

usd = StrToFloat(Edit1->Text);

k = StrToFloat(Edit2->Text);

//вычисление

rub = usd * k;

Label1->Caption = FloatToStrF(usd,ffGeneral,7,2) +

"$ = "+FloatToStrF(rub,ffGeneral,7,2) + " руб.";

}

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

//щелчокнакнопкеЗавершить

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form1->Close();

}

Задача 2. Фунты-килограммы

Программа Фунты-килограммы (Рис.2). позволяет пересчитать вес из фунтов в килограммы. Программа спроектирована таким образом, что кнопка Пересчет доступна только в том случае, если пользователь ввел исходные данные.

Рис. 2

Листинг

fastcall TForml :: TForml ( TComponent * Owner) : TForm(Owner) { /* так как поле Editl пустое (пользователь еще не ввел исходные данные), то сделаем кнопку Пересчет недоступной*/ Buttonl->Enabled = False; // нажатие клавиши в поле Editl void fastcall TForml::EditlKeyPress(TObject *Sender, char &Key) { / / код запрещенного символа заменим нулем, в результате // символ в поле редактирования не появится // Key - код нажатой клавиши // проверим, является ли символ допустимым if ((Key >= '0') && (Key <= '9') return; Базовые компоненты 11_ // глобальная переменная DecimalSeparator // содержит символ, используемый в качестве разделителя // при записи дробных чисел if (Key == DecimalSeparator) { if ((Editl->Text).Pos(DecimalSeparator) ! = 0) Key = 0 ; // разделитель уже введен return; if (Key == VK_BACK) // клавиша <Backspace> return; if (Key == VK_RETURN) // клавиша <Enter> { Buttonl->SetFocus(); return; // остальные клавиши запрещены Key = 0 ; // не отображать символ // Содержимоеполя Editl изменилось void fastcall TForml::EditlChange(TObject *Sender) { // проверим, есть ли в поле Editl исходныеданные if ( (Editl->Text).Length() == 0) Buttonl->Enabled = False; // кн. Пересчет недоступна else Buttonl->Enabled = True; // кн. Пересчет доступна Label2->Caption = ""; 12 Часть 1. Примеры и задачи // щелчок на кнопке Пересчет void fastcall TForml::ButtonlClick(TObject *Sender) { double funt; // вес в фунтах double kg; // вес в килограммах // кнопка Пересчет доступна только в том случае, // если в поле Editl есть данные.Поэтому, // наличие в поле информации можно непроверять. funt = StrToFloat(Editl->Text); kg = funt * 0.4995; Label2->Caption = FloatToStrF(funt,ffGeneral,5,2) + " ф. - это " + FloatToStrF(kg,ffGeneral,5,2) + " кг";