|
ЗАДАЧА1: разработать программу использующую структурный тип данных. Детская игрушка характеризуется ценой и нижней границей возраста ребенка. Сведения о каждой игрушке представляют собой запись с тремя полями: одно поле строкового типа (название), одно поле действительного типа (цена) и одно - целое (нижняя граница возраста ребенка). Обеспечить ввод и вывод информации об одной игрушке.
РЕШЕНИЕ:
Создайте новое приложение. Сохраните ваш проект. Модулю Unit1.cpp дайте имя UStruct1.cpp. Имя проекта задайте вместо Project1 как StructType1. Перенесите на форму по три компонента Label, Edit и два компонента Button. Форма программы приведена на рис. 1.
Рис. 1. Форма программы
Настройте значения имен компонентов в соответствии с таблицей 1.
Таблица 1. Значение имен компонентов.
Компонент | Свойство | Значение |
Edit1 | Name | EName |
Edit2 | Name | ECost |
Edit3 | Name | EAge |
Button1 | Name | BEnter |
Button2 | Name | BShow |
Настройте значения свойств компонентов в соответствии с таблицей 2.
Таблица 2. Значение свойств компонентов.
Компонент | Свойство | Значение | Комментарий |
Form1 | Caption | Детская игрушка |
|
Label1 | Caption | Название |
|
Label2 | Caption | Цена |
|
Label3 | Caption | Минимальный возраст |
|
EName | Text |
| Отсутствие текста |
ECost | Text |
| Отсутствие текста |
EAge | Text |
| Отсутствие текста |
BEnter | Caption | Ввести инфо об игрушке |
|
BShow | Caption | Показать инфо об игрушке |
|
BShow | Enabled | false | Кнопка «недоступна» |
Настройте значения событий компонентов в соответствии с таблицей 3.
Таблица 3. Значение событий компонентов.
Компонент | Событие | Комментарий |
BEnter | OnClick | щелчок на кнопке «Ввести инфо об игрушке» |
BShow | OnClick | щелчок на кнопке «Показать инфо об игрушке» |
Программный код файла реализации UStruct1.cpp выглядит следующим образом:
#include <vcl.h>
#pragma hdrstop
#include "UStruct1.h"
//----------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
//область определения глобальных переменных
TForm1 *Form1; //объявление переменной для формы
struct TToy //объявление структурного типа для детской игрушки
{
AnsiString Name; //название игрушки
float Cost; //цена игрушки
int Age; //нижняя граница возраста ребенка
};
TToy A1; //объявление переменной А1 структурного типа
//----------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------------------------------------------------
//нажатие на кнопке «Ввести инфо об игрушке»
void __fastcall TForm1::BEnterClick(TObject *Sender)
{
A1.Name=EName->Text;
A1.Cost=StrToFloat(ECost->Text);
A1.Age=StrToInt(EAge->Text);
BShow->Enabled=true;
}
//----------------------------------------------------------------------
//нажатие на кнопке «Показать инфо об игрушке»
void __fastcall TForm1::BShowClick(TObject *Sender)
{
ShowMessage("Наименование игрушки: "+A1.Name+"\nцена игрушки:
"+A1.Cost+"\nнижний порог возраста ребенка:"+A1.Age);
}
//----------------------------------------------------------------------
ЗАДАЧА2: Дополнительно к предыдущей задаче обеспечить ввод 3х игрушек. Определить игрушку с максимальной ценой. Определить игрушки для детей старше трех лет.
РЕШЕНИЕ:
Создайте новое приложение или переделайте приложение из задачи №1. Сохраните ваш проект. Модулю Unit1.cpp дайте имя UStruct2.cpp. Имя проекта задайте вместо Project1 как StructType2. Перенесите на форму по три компонента Label, Edit и девять компонентов Button. Форма программы приведена на рис. 2.
Рис. 2. Форма программы
Настройте значения имен компонентов в соответствии с таблицей 4.
Таблица 4. Значение имен компонентов.
Компонент | Свойство | Значение |
Edit1 | Name | EName |
Edit2 | Name | ECost |
Edit3 | Name | EAge |
Button1 | Name | Benter1 |
Button2 | Name | BShow1 |
Button3 | Name | Benter2 |
Button4 | Name | BShow2 |
Button5 | Name | Benter3 |
Button6 | Name | BShow3 |
Button7 | Name | BShowAll |
Button8 | Name | BAge |
Button9 | Name | BMax |
Настройте значения свойств компонентов в соответствии с таблицей 5.
Таблица 5. Значение свойств компонентов.
Компонент | Свойство | Значение | Комментарий |
Form1 | Caption | Структурный тип данных |
|
Label1 | Caption | Название |
|
Label2 | Caption | Цена |
|
Label3 | Caption | Минимальный возраст |
|
EName | Text |
| Отсутствие текста |
EName | TabOrder | Порядок фокусировки | |
ECost | Text |
| Отсутствие текста |
ECost | TabOrder | Порядок фокусировки | |
EAge | Text |
| Отсутствие текста |
EAge | TabOrder | Порядок фокусировки | |
Benter1 | Caption | Ввести инфо об |
|
BShow1 | Caption | Показать инфо об Игрушке 1 |
|
BShow1 | Enabled | false | Кнопка «недоступна» |
Benter2 | Caption | Ввести инфо об |
|
BShow2 | Caption | Показать инфо об Игрушке 2 |
|
BShow2 | Enabled | false | Кнопка «недоступна» |
Benter3 | Caption | Ввести инфо об |
|
BShow3 | Caption | Показать инфо об Игрушке 3 |
|
BShow3 | Enabled | false | Кнопка «недоступна» |
BShowAll | Caption | Показать информацию по всем игрушкам |
|
BShowAll | Enabled | false | Кнопка «недоступна» |
BAge | Caption | Все игрушки для детей старше 3х лет |
|
BAge | Enabled | false | Кнопка «недоступна» |
BMax | Caption | Игрушка с максимальной ценой |
|
BMax | Enabled | false | Кнопка «недоступна» |
Настройте значения событий компонентов в соответствии с таблицей 6.
Таблица 6. Значение событий компонентов.
Компонент | Событие | Комментарий |
Benter1 | OnClick | щелчок на кнопке «Ввести инфо об игрушке 1» |
BShow1 | OnClick | щелчок на кнопке «Показать инфо об игрушке 1» |
Benter2 | OnClick | щелчок на кнопке «Ввести инфо об игрушке 2» |
BShow2 | OnClick | щелчок на кнопке «Показать инфо об игрушке 2» |
Benter3 | OnClick | щелчок на кнопке «Ввести инфо об игрушке 3» |
BShow3 | OnClick | щелчок на кнопке «Показать инфо об игрушке 3» |
BShowAll | OnClick | щелчок на кнопке «Показать информацию по всем игрушкам» |
BAge | OnClick | щелчок на кнопке «Все игрушки для детей старше 3х лет» |
BMax | OnClick | щелчок на кнопке «Игрушка с максимальной ценой» |
Программный код файла реализации UStruct2.cpp выглядит следующим образом:
//Игрушка характерезуется: названием, ценой, нижней границей возраста
//Обеспечить ввод и вывод информации о 3х игрушках
//определить игрушку с максимальной ценой
//определить игрушки для детей страше 3х лет
#include <vcl.h>
#pragma hdrstop
#include " UStruct2.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
struct TToy
{
AnsiString Name;
float Cost;
int Age;
};
TToy A1,A2,A3;
//----------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//----------------------------------------------------------------------
void __fastcall TForm1::BEnter1Click(TObject *Sender)
{
//Проверяется все ли поля заполнены
if(EName->Text!="" && ECost->Text!="" && EAge->Text!="")
{
A1.Name=EName->Text;
A1.Cost=StrToFloat(ECost->Text);
A1.Age=StrToInt(EAge->Text);
EName->Text="";
ECost->Text="";
EAge->Clear();
EName->SetFocus();
BShow1->Enabled=true;
if(BShow2->Enabled==true && BShow3->Enabled==true)
{
BMax->Enabled=true;
BAge->Enabled=true;
BShowAll->Enabled=true;
}
}
else
ShowMessage("Заполнены не все поля!\nПроверьте правильность ввода информации.");
}
void __fastcall TForm1::BShow1Click(TObject *Sender)
{
ShowMessage("Наименование игрушки 1: "+A1.Name+"\nцена игрушки: "+
A1.Cost+"\nнижний порог возраста ребенка:"+A1.Age);
}
//----------------------------------------------------------------------
void __fastcall TForm1::BEnter2Click(TObject *Sender)
{
if(EName->Text!="" && ECost->Text!="" && EAge->Text!="")
{
A2.Name=EName->Text;
A2.Cost=StrToFloat(ECost->Text);
A2.Age=StrToInt(EAge->Text);
EName->Text="";
ECost->Text="";
EAge->Clear();
EName->SetFocus();
BShow2->Enabled=true;
if(BShow1->Enabled==true && BShow3->Enabled==true)
{
BMax->Enabled=true;
BAge->Enabled=true;
BShowAll->Enabled=true;
}
}
else
ShowMessage("Заполнены не все поля!\nПроверьте правильность ввода информации.");
}
//----------------------------------------------------------------------
void __fastcall TForm1::BShow2Click(TObject *Sender)
{
ShowMessage("Наименование игрушки 2: "+A2.Name+"\nцена игрушки: "+
A2.Cost+"\nнижний порог возраста ребенка:"+A2.Age);
}
void __fastcall TForm1::BEnter3Click(TObject *Sender)
{
if(EName->Text!="" && ECost->Text!="" && EAge->Text!="")
{
A3.Name=EName->Text;
A3.Cost=StrToFloat(ECost->Text);
A3.Age=StrToInt(EAge->Text);
EName->Text="";
ECost->Text="";
EAge->Clear();
EName->SetFocus();
BShow3->Enabled=true;
if(BShow1->Enabled==true && BShow2->Enabled==true)
{
BMax->Enabled=true;
BAge->Enabled=true;
BShowAll->Enabled=true;
}
}
else
ShowMessage("Заполнены не все поля!\nПроверьте правильность ввода информации.");
}
void __fastcall TForm1::BShow3Click(TObject *Sender)
{
ShowMessage("Наименование игрушки 3: "+A3.Name+"\nцена игрушки: "+
A3.Cost+"\nнижний порог возраста ребенка:"+A3.Age);
}
//----------------------------------------------------------------------
void __fastcall TForm1::BShowAllClick(TObject *Sender)
{
ShowMessage("Данные по трем игрушкам\nИгрушка №1: "+
A1.Name+" | "+A1.Cost+" | "+A1.Age+
"\nИгрушка №2: "+A2.Name+" | "+A2.Cost+" | "+A2.Age+
"\nИгрушка №3: "+A3.Name+" | "+A3.Cost+" | "+A3.Age);
}
//----------------------------------------------------------------------
void __fastcall TForm1::BAgeClick(TObject *Sender)
{
AnsiString MsgAge="";
if(A1.Age>3)
MsgAge+="\n"+A1.Name;
if(A2.Age>3)
MsgAge+="\n"+A2.Name;
if(A3.Age>3)
MsgAge+="\n"+A3.Name;
if(MsgAge=="")
ShowMessage("Нет игрушек для детей старше 3х лет.");
else
ShowMessage("Список игрушек для детей старше 3х лет:"+MsgAge);
}
void __fastcall TForm1::BMaxClick(TObject *Sender)
{
AnsiString MsgMax;
float MaxCost;
MaxCost=A1.Cost;
MsgMax=A1.Name;
if(A2.Cost>MaxCost)
{
MaxCost=A2.Cost;
MsgMax=A2.Name;
}
if(A3.Cost>MaxCost)
{
MaxCost=A3.Cost;
MsgMax=A3.Name;
}
ShowMessage("Игрушка с максимальной ценой: "+MsgMax);
}
Приложение 1.
Диаграмма состояний для задачи 2.
Дата добавления: 2015-08-28; просмотров: 36 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
«Самостоятельные варианты заданий в MS Excel». | | | Проводится набор в группу |