Автор работы: Пользователь скрыл имя, 19 Апреля 2011 в 15:49, курсовая работа
Разработать класс «калькулятор», выполняющий указанные в варианте операции. Программа должна выполнять ввод данных, проверку правильности введенных данных, выдачу сообщений в случае ошибок.
Протокол работы калькулятора записать в файл. Предусмотреть возможность просмотра файла из программы.
Вид данных: квадратные уравнения (в действительных или комплексных числах)
Операции: вычисление корней в форме, заданной пользователем.
}
if(f.getia()==f.getib()=
{
D2r=pow(f.getrb(),2)-4*f.
if(D2r>=0)
{
rx0=(-f.
rx1=(-f.
ix0=ix1=0;
}
else
{
rx0=rx1=-f.
ix0=-pow(-
ix1=-ix0;
}
}
else
{
D2r=pow(f.getrb(),
D2i=2*f.getib()-4*
float dr,di;
dr=pow(pow(pow(
di=pow(pow(pow(
rx0=((-f.getrb()-
rx1=((-f.getrb()+
ix0=((-f.getib()-
ix0=((-f.getib()+
}
}
cinterface.h
#include <stdio.h>
#include “csolve.h”
class cinterface
{
public:
cinterface();
void crkvyr(ckvur &f);
void solur(kvyr f,csolve x);
void rlog();
};
cinterface.cpp
#include <stdio.h>
#include “csolve.h”
cinterface::cinterface()
{
}
void cinterface::crkvyr(kvyr &f)
{
FILE *p;
int c=0;
p=fopen("c:\\log.txt","
float ar=0;
float ai=0;
float br=0;
float bi=0;
float cr=0;
float
ci=0;
printf("\nВвод коэффициентов a, b, c квадратного уравнения :ax^2+bx+c=0\nвы можете по отдельности ввести вещественное или мнимое число");
while(1)
{
printf("\nвведите вещественную часть числа a: ");
scanf("%f",&ar);
printf("\nвведите мнимую часть числа a: ");
scanf("%f",&ai);
printf("\nвведите вещественную часть числа b: ");
scanf("%f",&br);
printf("\nвведите мнимую часть числа b: ");
scanf("%f",&bi);
printf("\nвведите вещественную часть числа c: ");
scanf("%f",&cr);
printf("\nвведите мнимую часть числа c: ");
scanf("%f",&ci);
printf("\
printf(" \nвведите 1 чтобы
продолжить. нажмите 0 или любую клавишу
чтобы повторить ввод коэффициентов: ");
scanf("%d",&c);
if(c==1)
{
fprintf(p,"
f.fillk(ar,
break;
}
}
fclose(p);
}
void cinterface::solur(kvyr f,csolve x)
{
FILE*p;
p=fopen("c:\\log.txt","
float r0,i0,r1,i1;
x.solve(f);
r0=x.getrx0();
i0=x.getix0();
r1=x.getrx1();
i1=x.getix1();
printf("\nрешение
данного уравнения:\nx1=%.3f+i(
fprintf(p,"Sрешаемое
уравнение имеет вид:(%.3f+i(%.
fclose(p);
}
void cinterface::rlog()
{
FILE *p;
float
rar,rai,rbr,rbi,rcr,rci,rx0r,
char c;
int k;
p=fopen("c:\\log.txt","
while(!feof(p))
{
c=fgetc(p);
if(c=='E')
{
fseek(p,-1,
fscanf(p,"%.
printf("
}
else
{
if(c=='S')
{
fseek(
fscanf
printf
}
else
printf
}
}
fclose(p);
}
main.cpp
#include “interface.h”
#include <stdio.h>
void main()
{
kvyr f;
csolve g;
cinterface h;
int cont;
while(1)
{
h.crkvyr(f);
h.solur(f,g);
printf("\n нажмите 1-показать лог-файл; 0 или любая другая клавиша-продолжить работу:");
scanf("%d",&cont);
if(cont==1)
h.rlog();
printf("\n нажмите 1-прекратить работу; 0 или любая другая клавиша-продолжить решение квадратных уравнений:");
scanf("%d",&cont);
if(cont==1)
break;
}
}