Автор: Пользователь скрыл имя, 16 Сентября 2011 в 02:13, лабораторная работа
Цель: Научиться работать с математическими функциями в Visual C++.
Задание: написать программу «Калькулятор».
Лабораторная работа №1
«Калькулятор»
Цель:
Научиться работать
с математическими функциями
в Visual C++.
Задание:
написать программу
«Калькулятор».
Текст
программы:
void CCalc_MFCDlg::OnButton0()
{
// Ввод цифры 0
UpdateData(TRUE);
edit+="0";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButton1()
{
// Ввод цифры 1
UpdateData(TRUE);
edit+="1";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButton2()
{
// Ввод цифры 2
UpdateData(TRUE);
edit+="2";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButton3()
{
// Ввод цифры 3
UpdateData(TRUE);
edit+="3";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButton4()
{
// Ввод цифры 4
UpdateData(TRUE);
edit+="4";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButton5()
{
// Ввод цифры 5
UpdateData(TRUE);
edit+="5";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButton6()
{
// Ввод цифры 6
UpdateData(TRUE);
edit+="6";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButton7()
{
// Ввод цифры 7
UpdateData(TRUE);
edit+="7";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButton8()
{
// Ввод цифры 8
UpdateData(TRUE);
edit+="8";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButton9()
{
// Ввод цифры 9
UpdateData(TRUE);
edit+="9";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonZpt()
{
// Ввод запятой
UpdateData(TRUE);
if (!(edit.Find(".")>=0))
edit+=".";
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonDev()
{
// Деление
UpdateData(TRUE);
if (edit!=""|edit!="devision by zero")
{
if(input_arr[0]==
{
input_arr[0]
input_arr[1]
}
else
{
float arg;
arg=atof(
arg=main_
}
trace_out();
if (edit!="devision by zero")
{
edit="";
}
}
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonPls()
{
// Сложение
UpdateData(TRUE);
if (edit!=""|edit!="devision by zero")
{
if(input_arr[0]==
{
input_arr[0]
input_arr[1]
}
else
{
main_core(4, atof(edit));
}
trace_out();
if (edit!="devision by zero")
{
edit="";
}
}
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonMlt()
{
// Умножение
UpdateData(TRUE);
if (edit!=""|edit!="devision by zero")
{
if(input_arr[0]==
{
input_arr[0]
input_arr[1]
}
else
{
main_core(2, atof(edit));
}
trace_out();
if (edit!="devision by zero")
{
edit="";
}
}
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonMin()
{
// Вычитание
UpdateData(TRUE);
if (edit!=""|edit!="devision by zero")
{
if(input_arr[0]==
{
input_arr[0]
input_arr[1]
}
else
{
main_core(3, atof(edit));
}
trace_out();
if (edit!="devision by zero")
{
edit="";
}
}
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonMod()
{
// Деление по модулю
UpdateData(TRUE);
if (edit!=""|edit!="devision by zero")
{
if(input_arr[0]==
{
input_arr[0]
input_arr[1]
}
else
{
main_core(5, atof(edit));
}
trace_out();
if (edit!="devision by zero")
{
edit="";
}
}
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonC()
{
// Обнуление
UpdateData(TRUE);
for(int j=0;j<4;j++)
{
input_arr[j]=0;
}
edit="";
UpdateData(FALSE);
}
CString CCalc_MFCDlg::trace_out()
{
// вспомогательная debugging функция (трассировка основного массива input_arr[])
trace="";
CString preout;
for(int i=0;i<4;i++)
{
preout.Format("%f"
trace+=preout;
}
return " ";
}
void CCalc_MFCDlg::OnButtonSqr()
{
// Извлечение корня
UpdateData(TRUE);
CString sqr;
double sqrd;
if(atof(edit)>=0)
{
sqrd=sqrt(atof(
cut(sqrd);
}
else
{
edit="argument must be >0";
}
UpdateData(FALSE);
}
void CCalc_MFCDlg::OnButtonObr()
{
// Фунция 1/х
UpdateData(TRUE);
if(atof(edit)!=0)
{