Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МетодичкаФИН kosh.doc
Скачиваний:
29
Добавлен:
15.02.2016
Размер:
3.16 Mб
Скачать

Часть 2 Пример приложения, использующего операторswitch

Вкачестве примера программы, использующей операторswitch, соз­да­дим прило­же­ние, которое считы­вает количество месяцев и выводит соответствующее коли­чест­во лет и месяцев, например для числа 125 выдает: 10 лет 5 месяцев.

1.1.Создайте новое диалоговое приложение (команда File | New).

1.2. Спроектируйте диалоговую панель как показано на рисунке.

Рис.52

1.3.Свяжите переменные с окнами редактирования как показано ниже.

IDC_EDIT1

int mun

IDC_EDIT2

CString rez

1.6. Добавьте функцию для кнопки <Преобразовать>. Вставьте в нее опе­раторы, показанные ниже.

Основное содержание программы связано с тем, что в зависимости от по­лучившегося количества лет и оставшейся части месяцев, числа должны сопровождаться разными словами: например: 11 лет, 21 год, 2 месяца, 11 ме­сяцев.

void C…Dlg::OnBnClickedButton1()

{

UpdateData();

if (mun >=0) // Программа рассчитана на неотрицательное число месяцев

{

UINT years;

years = mun / 12; // выделяем количество лет

UINT cmun = mun; // делаем копию исходного количества месяцев

cmun %= 12; // находим оставшуюся часть месяцев

UINT last = years;

// нам нужно проанализировать последние цифры количества лет

UINT cif = years % 10; // находим последнюю цифру

if (years >= 21 && cif >= 1 && cif <= 4) last = cif;

/* для некоторых чисел нам нужно рассмотреть последнюю цифру, а для других - все чис­ло, например 11 */

switch (last)

{

case 0: rez.Empty(); break;

case 1: rez.Format("%i год", years); break;

case 2:

case 3:

case 4: rez.Format("%i года", years); break;

default: rez.Format("%i лет", years);

}

if (!mun) rez = "0 месяцев";

CString smun; // строка, содержащая количество оставшихся месяцев

switch (cmun) ;

// анализируем оставшуюся часть месяцев (их от 0 до 11)

{

case 0: smun.Empty(); break;

case 1: smun.Format("%i месяц", cmun); break;

case 2:

case 3:

case 4: smun.Format("%i месяца", cmun); break;

default: smun.Format("%i месяцев", cmun); break;

}

if (!smun.IsEmpty()) rez += " " + smun;

// объединяем количество лет и месяцев

}

else rez = "Недопустимые исходые данные";

UpdateData(false);

}

1.7. Откомпилируйте и запустите программу. Проверьте её работу для различных исходных данных.

Задание для самостоятельного выполнения

Создайте диалоговое приложение для решения системы двух линейных уравнений:

Используйте формулы:

Рис.53

Программа должна выдавать один из трех вариантов ответов:

Если тои

иначе если

то “бесконечное множество решений”,

иначе “решений нет”.

( Правда следует отметить, что во втором случае для системы типа

должен выдаваться ответ “нет решений”. )

Проверьте работу приложения для следующих наборов данных:

  1. 2 3 –5 2) 2 -2 3 3) 2 -2 3

3 -2 12 4 -4 6 4 -4 7

Определите, что должна выдавать программа в каждом из этих случаев и проверьте правильность работы программы.

Продемонстрируйте результаты своей работы преподавателю.