Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Процедуры формы Form3 (Unit3)




Процедуры формы Form2 (Unit2)

int f; String s,t;

void __fastcall TForm2::Button1Click(TObject *Sender) //кн. «Подтвердите»

{s=DateToStr(Date()); //преобразование даты в строку

t=Edit1->Text;

f=AnsiCompareText(s,t); //сравнение пароля пользователя с датой, которая и

//является паролем

if (f==0) {Form3->Visible=True; Form3->SetFocus(); Form2->Close();}

else {Application->MessageBox("Введен неправильный пароль","Внимание", 1);

Edit1->SetFocus();} //вывод сообщения и передача фокуса полю ввода пароля

}

 

String f; int c, i;

void __fastcall TForm3::Button1Click(TObject *Sender) // кн. «Сохранить»

{ Form1->Visible=true; //визуализация формы Поле Чудес

Form1->Label1->Caption=Memo1->Text; //вывод на форму вопроса

f=Edit1->Text; c=f.Length();

for (i=1;i<=c;i++) // вывод соответствующего числа компонентов StaticText

{switch (i)

{case 1: Form1->StaticText1->Visible=true; break;

case 2: Form1->StaticText2->Visible=true; break;

case 3: Form1->StaticText3->Visible=true; break;

case 4: Form1->StaticText4->Visible=true; break;

case 5: Form1->StaticText5->Visible=true; break;

case 6: Form1->StaticText6->Visible=true; break;

case 7: Form1->StaticText7->Visible=true; break;

case 8: Form1->StaticText8->Visible=true; break;

case 9: Form1->StaticText9->Visible=true; break;

case 10: Form1->StaticText10->Visible=true; break;}

}

Form1->SetFocus(); //передача фокуса первой форме

Form3->Close(); //и закрытие текущей формы

}

void __fastcall TForm3::FormActivate(TObject *Sender)

{Memo1->SetFocus(); } //передача фокуса полю для ввода вопроса

8.1.10. Перевозка ценных предметов (Visual C++)

Нужно перевезти автомобилем до пяти предметов. Грузоподъ­ем­ность автомобиля ограничена, а суммарный вес предметов может превы­шать эту грузоподъемность. Из всех возможных вариантов перевоз­ки нуж­но выбрать вариант с наибольшей суммарной стоимостью перевози­мых предметов суммарным весом в пределах грузоподъемности ав­то­мо­биля. Задача относится к классу целочисленных опти­ми­зационных задач.

 
 

Составим форму для ввода и вывода данных (рис. 8.1.10.1).

Рис. 8.1.10.1. Вид формы приложения

 

1. Создадим папку для хранения элементов приложения.

2. Выполнить команду New/Project/MFC AppWizard (exe).

3. Введем в поле Project Name имя программы PerevozkaPredmetov и нажмем кнопку OK.

4. На первом шаге мастера выберем вариант создания диалогового приложения (Dialog based) и нажмем кнопку Next.

5. Последовательно пройдем все остальные шаги мастера (всего четыре шага) и нажмем кнопку Finish. Сформируется заготовка окна.

6. Удалим с формы текст TODO: Place dialog control here и кнопку Cancel. Кнопку OK переименуем в Выход.

7. Выполним команду Properties контекстного меню элемента PerevozkaPredmetov resources/Dialog/IDD_ PerevozkaPredmetov_Dialog и в поле Language выберем Russion.

8. В окне свойств формы зададим наименование формы Перевозка ценных предметов (свойство Caption).

9. Разместим элементы Text Box: IDC_EDIT1 - IDC_EDIT5 (колон­ка наиме­но­ваний предметов), IDC_EDIT6 - IDC_EDIT10 (колонка весов предметов), IDC_EDIT1 - IDC_EDIT15 (колонка стоимости пред­ме­тов), IDC_EDIT16 (ограничение на грузоподъемность автомобиля). Назначим для этих полей переменные m_edit1 - m_edit5 (типа String) и m_edit6- m_edit16 (типа Float).

10. Разместим ActiveX‑элементы Label (Microsoft Forms 2.0 Label) IDC_LABEL1 - IDC_LABEL1 для вывода колонки сообщений о перевозке предметов. Назначим для них объектные переменные m_label1 - m_label5 (категории Control).

11. Разместим две кнопки Очистить и Перевезти.

12. Нажмем кнопку Edit Code и откорректируем функции.

void CPerevozkaPredmetovDlg::OnButton2() //кнопка «Очистить»

{ m_label1.SetCaption(""); m_label2.SetCaption(""); m_label3.SetCaption("");

m_label4.SetCaption(""); m_label5.SetCaption("");

m_edit1=""; m_edit2=""; m_edit3=""; m_edit4=""; m_edit5="";

m_edit6=0; m_edit7=0; m_edit8=0; m_edit9=0; m_edit10=0;

m_edit11=0; m_edit12=0;m_edit13=0;m_edit14=0; m_edit15=0; m_edit16=0;

UpdateData(0); //обновление объектов формы

}

void CPerevozkaPredmetovDlg::OnButton3() //кнопка «Перевезти»

{ float tekst, maxst=0; char x1, x2, x3, x4, x5, y1, y2, y3, y4, y5; //объявления

UpdateData(1); //обновление значений назначенных объектам переменных

for (x1=0; x1<=1; x1++) //циклы перебора всех вариантов перевозок

for (x2=0; x2<=1; x2++)

for (x3=0; x3<=1; x3++)

for (x4=0; x4<=1; x4++)

for (x5=0; x5<=1; x5++)

if ((x1*m_edit6+x2*m_edit7+x3*m_edit8+x4*m_edit9 +x5*m_edit10)

<=m_edit16) //допустимый вариант перевозки

{ tekst=x1*m_edit11+x2*m_edit12+x3*m_edit13+x4*m_edit14+

x5*m_edit15; //стоимость перевозимых предметов

if (tekst>maxst) //запоминание лучшего варианта перевозки

{ maxst=tekst; y1=x1; y2=x2;y3=x3;y4=x4;y5=x5;}

} //конец циклов перебора всех вариантов перевозки предметов

//вывод лучшего варианта перевозки в поля меток

m_label1.SetCaption((y1*m_edit6*m_edit11> 0)? "перевозить": "");

m_label2.SetCaption((y2*m_edit7*m_edit12> 0)? "перевозить": "");

m_label3.SetCaption((y3*m_edit8*m_edit13> 0)? "перевозить": "");

m_label4.SetCaption((y4*m_edit9*m_edit14> 0)? "перевозить": "");

m_label5.SetCaption((y5*m_edit10*m_edit15>0)? "перевозить": "");

}

BOOL CPerevozkaPredmetovDlg::OnInitDialog() //инициализация формы

{... //неизменяемая часть функции

OnButton2(); //вызов функции обработки кнопки «Очистить»

return TRUE;

}




Поделиться с друзьями:


Дата добавления: 2014-12-08; Просмотров: 576; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.021 сек.