Автор: Пользователь скрыл имя, 16 Сентября 2011 в 02:13, лабораторная работа
Цель: Научиться работать с математическими функциями в Visual C++.
Задание: написать программу «Калькулятор».
CString obr;
double obrd;
obrd=1/atof(edit);
cut(obrd);
}
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonSgn()
{
// Изменение знака аргумента
UpdateData(TRUE);
double mind;
mind=(-1)*atof(edit);
cut(mind);
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonBs()
{
//
Удаление последнего
UpdateData(TRUE);
CString buffer_str;
buffer_str=edit;
buffer_str=buffer_str.
edit=buffer_str;
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonEnt()
{
//
Функция, обрабатывающая
UpdateData(TRUE);
if (input_arr[1]!=0)
{
if (!((input_arr[1]==1|input_arr[
{
main_core(6, atof(edit));
trace_out();
}
else
{
edit="devision by zero";
UpdateData(FALSE);
return;
}
}
else
{
UpdateData(FALSE);
return;
}
UpdateData(FALSE);
}
float CCalc_MFCDlg::main_core(int new_action, float arg)
{
//
Вспомогательная функция,
// 1 - dev, 2 - mlt, 3 - min, 4 - pls, 5 - mod, 6 - handles button "="
float temp;
switch (new_action)
{
case 1:
temp=add_core(new_
break;
case 2:
add_core(new_
break;
case 3:
add_core(new_
break;
case 4:
add_core(new_
break;
case 5:
add_core(new_
break;
case 6:
new_action=1;
add_core(new_
cut(input_arr[0]);
input_arr[0]=0;
input_arr[1]=0;
break;
}
return 0;
}
float CCalc_MFCDlg::add_core(int new_action, float arg)
{
//
Вспомогательная функция,
int prev_act;
prev_act=input_arr[1];
switch (prev_act)
{
case 1:
if (arg==0)
{
edit="
}
else
{
input_arr[0]
input_arr[1]
}
break;
case
2:
input_arr[0]*=arg;
input_arr[1]=new_
break;
case
3:
input_arr[0]-=arg;
input_arr[1]=new_
break;
case 4:
input_arr[0]+=arg;
input_arr[1]=new_
break;
case 5:
if (arg==0)
{
edit="
}
else
{
input_arr[0]
input_arr[1]
}
break;
}
return input_arr[0];
}
void CCalc_MFCDlg::cut(float input)
{
//
Вспомогательная функция,
CString buffer_str;
buffer_str.Format("%.3f"
int bf_lg=buffer_str.GetLength();
while(buffer_str.Right(
{
bf_lg=buffer_str.
buffer_str=buffer_
}
if (buffer_str.Right(1)==".")
buffer_str=buffer_
edit=buffer_str;
}
Вывод:
В
результате выполнения
данной лабораторной
работы были приобретены
навыки использования
математических функций
в Visual C++.
рис.1
окно программы «Калькулятор»
Блок-схема:
добавление цифры
в Поле ввода
Блок-схемы:
удаление последнего
символа и обнуление
Поля ввода
Блок-схемы:
извлечение корня, изменение
знака и функция 1/х
Блок-схемы:
реализация математических
операций +, -, *, /, %
Для
различия математических
действий используются
числовые коды: 1 - dev, 2 - mlt, 3 - min, 4 - pls, 5 - mod,
Лабораторная работа №2
«Ряд
простых чисел»
Цель:
Научиться работать
с рядами чисел.
Задание:
Получить ряд простых
чисел и вывести его
фрагмент задаваемого
размера.
Текст
программы:
void CSimpleDlg::OnButton1()
{
UpdateData(true);
m_3="";
UpdateData(false);
UpdateData(true);
int
counter=1;
for (int i=1;;i++)
{