- •Розділ 1. Проектування програмного забезпечення
- •1.1 Опис предметної області
- •1.2 Постановка задачі
- •1.2.1 Специфікація
- •1.3 Моделі програмного продукту.
- •1.3.2. Діаграма класів
- •Розділ 2.Опис програмного середовища
- •2.2Керівництво програміста
- •2.3 Керівництво користувача
- •Розділ 3. Охорона праці та техніка безпеки
- •3.1 Загальна техніка безпеки
- •3.2 Вимоги щодо організації робочого місця
- •3.3 Вимоги з пожежної безпеки
- •3.4 Охорона навколишнього середовища
- •Висновки
- •Перелік джерел
- •Додаток а
- •1 Реалізація класів. Header-файл
- •Додаток б Реалізація класів. Cpp-файл
3.3 Вимоги з пожежної безпеки
Для забезпечення електробезпеки та пожежної безпеки у приміщеннях і на робочих місцях з ПК повинні дотримуватися вимоги «Правил улаштування електроустановок», «Правил технічної експлуатації електроустановок споживачів» та «Правил технічної безпеки при експлуатації електроустановок споживачів». Приміщення з ПК обладнуються засобами пожежогасіння. У приміщеннях і на робочих місцях з ПК повинні дотримуватися правила пожежної та електробезпеки. До роботи на ПК повинні допускатися особи, які пройшли інструктаж і перевірку знань правил та інструкцій з охорони праці, пожежної безпеки та електробезпеки.
3.4 Охорона навколишнього середовища
При роботі з комп’ютером важливо знати , що комп’ютер виготовлений з неорганічних матеріалів , які при потраплянні в навколишнє середовище не розкладаються , тому дуже важливо неробочі або старі комплектуючі здавати в спеціальні пункти по їх утилізації або переробці.
Висновки
Метою практики було розробити арифметичний калькулятор.
В результаті виконання навчальної практики був реалізований
клас комплекс, що дозволяє працювати з комплексними числами.
Програма дозволяє проводити наступні операції з
комплексними числами:
1. складання двох комплексних чисел;
2. віднімання двох комплексних чисел;
3. множення двох комплексних чисел;
4. поділ двох комплексних чисел;
Пояснювальна записка складається з трьох розділів: теоретичні основи, опис програмного продукту, охорона праці.
Перелік джерел
А. Я. Архангельський, C++ Builder 6. Справочное пособие. Книга 2. Классы и компоненты. – СПб Бином, 2002. – 528 с.
А. Я. Архангельський, Программирование в C++ Builder 6. – СПб Бином, 2003. – 1151 с.
Б. Страуструп. Язык программирования C++. Третье издание./Пер. с англ. – СПб.; М.: «Невский Диалект» – «Издательство Бином», 1999 г. – 991 с.
Библиотека компонент EhLib 6. Руководство разработчика – EhLibTeam. Редакция: 1.62, СПб 2013 – 160 с.
Новые возможности EhLib 6.2 – EhLibTeam. Редакция: 1.62, 2013 – 12 с.
С. Глушаков, С. Смирнов, А. Коваль. Практикум по С++ – Харьков: Харьковский институт информационных технологий.
Додаток а
1 Реалізація класів. Header-файл
#ifndef MATH_H
#include <math.h>
#else
#define MATH_H
#endif
#ifndef IOS_H
#include <iostream.h>
#else
#define IOS_H
#endif
#include <vcl\dstring.h>
const double pi = 3.1415926535897932384626433832795;
bool COMPLEX_FORMAT=false;
class complex{
private:
double x,y;
public:
complex(double re=0,double im=0){x=re; y=im;}
complex exp(complex);
complex pow(complex,complex);
complex sqrt(complex);
complex log(complex);
complex sinh(complex);
complex cosh(complex);
complex sin(complex);
complex cos(complex);
complex tan(complex);
void print(complex);
complex input(void);
double real(complex z) {return z.x;}
double image(complex z){return z.y;}
double mod(complex z) {return sqrt(z.x*z.x+z.y*z.y);}
friend double arg(complex z) {return (z.x||z.y)?atan2(z.y,z.x):0;}
complex StrToCompl(AnsString);
AnsiString ComplToStr(complex);
complex operator~(complex);
complex operator+(complex,complex);
complex operator-(complex,complex);
complex operator-(complex);
complex operator*(complex,complex);
complex operator/(complex,complex);
complex operator^(complex,complex);
bool operator==(complex,complex);
bool operator!=(complex,complex);};
complex operator~(complex z)
{return complex(z.x,-z.y);}
complex operator+(complex z1,complex z2)
{return complex(z1.x+z2.x,z1.y+z2.y);}
complex operator-(complex z1,complex z2)
{return complex(z1.x-z2.x,z1.y-z2.y);}
complex operator-(complex z)
{return complex(-z.x,-z.y);}
complex operator*(complex z1,complex z2)
{return complex(z1.x*z2.x-z1.y*z2.y,z1.x*z2.y+z2.x*z1.y);}
complex operator/(complex z1,complex z2)
{return complex((z1.x*z2.x+z1.y*z2.y)/(z2.x*z2.x+z2.y*z2.y),
(z1.y*z2.x-z2.y*z1.x)/(z2.x*z2.x+z2.y*z2.y));}
complex operator^(complex z1,complex z2)
{return exp((log(mod(z1))+complex(0,1)*arg(z1))*z2);}
bool operator==(complex z1,complex z2)
{return z1.x==z2.x&&z1.y==z1.y;}
bool operator!=(complex z1,complex z2)
{return z1.x!=z2.x||z1.y!=z1.y;}
double mod(double x){return fabs(x);}
double mod(int x){return abs(x);}
complex exp(complex z)
{return complex(exp(z.x)*cos(z.y),exp(z.x)*sin(z.y));}
complex pow(complex z1,complex z2)
{return exp((log(mod(z1))+complex(0,1)*arg(z1))*z2);}
complex sqrt(complex z)
{return pow(z,0.5);}
complex log(complex z)
{return complex(log(mod(z)),arg(z));}
complex cosh(complex z)
{return (exp(z)+exp(-z))/2;}
complex sinh(complex z)
{return (exp(z)-exp(-z))/2;}
complex cos(complex z)
{ complex i=complex(0,1); return cosh(i*z);}
complex sin(complex z)
{ complex i=complex(0,1); return -i*sinh(i*z);}
complex tan(complex z) {return(sin(z)/cos(z));
complex input(void){
char s[80],sx[40],sy[40],*ps;
double xs,ys;
cin>>s;
*sx=0;*sy=0;
ps=s; if(*ps=='(') strcpy(s,++ps);
ps=s; while(*ps) ps++; ps--; if(*ps==')')*ps=0;
ps=s; while(*ps!=','&&*ps) ps++;
if(*ps==','){*ps=0; ps++; strcpy(sy,ps);}
strcpy(sx,s); xs=atof(sx);
*sy ? ys=atof(sy): ys=0; complex z=complex(xs,ys);
return z;}
void print(complex z) { z.y ? cout <<"("<<z.x<<","<<z.y<<")" : cout<<z.x;}
complex StrToCompl(AnsiString s){
char *cs,*ps,*es;
char sx[40],sy[40];
const char lp='(',rp=')';
double xs,ys;
cs=s.c_str();
if(!strcmp(cs,"INF")) return complex(1e308,0);
if(!strcmp(cs,"-INF")) return complex(-1e308,0);
*sx=0;*sy=0; ps=cs; while(*ps)ps++; ps--; es=ps; ps=cs;
if(*ps==lp&&*es!=rp||*ps!=lp&&*es==rp) return complex(0,0);
else if(*ps==lp&&*es==rp) {*es=0; ps++; strcpy(cs,ps);}
ps=cs;
while(*ps) ps++; ps--; es=ps;
if(*ps=='i'){
if(ps==cs)return complex(0,1);
*ps=0;ps--;
while(*ps!='+'&&*ps!='-'&&ps!=cs)ps--;
if(ps==cs){strcpy(sy,cs); strcpy(sx,"0");}
else if(*ps=='+'||*ps=='-'){
strcpy(sy,ps); *ps=0; strcpy(sx,cs); }
if(!strcmp(sy,"+")||!strcmp(sy,"-")) strcat(sy,"1");
xs=atof(sx); ys=atof(sy);}
else{
ps=cs; while(*ps!=';'&&*ps!=','&&*ps) ps++;
if(*ps==';'||*ps==','){*ps=0; ps++; strcpy(sy,ps);}
strcpy(sx,cs); xs=atof(sx); ys=*sy ? atof(sy):0;}
complex z=complex(xs,ys); return z;}
AnsiString
AnsiString ComplToStr(complex z){
AnsiString *s = new AnsiString[80];
AnsiString *rs = new AnsiString[40];
AnsiString *is = new AnsiString[40];
double re,im; const AnsiString lp='(',rp=')',c=';',ci='i';
re=real(z); im=image(z);
if(fabs(re)<1e-308) re=0; if(fabs(im)<1e-308) im=0;
*rs=FloatToStr(re); *is=FloatToStr(im);
if(COMPLEX_FORMAT) {
if(!re&&!im) *s="0";
if(re) *s=*rs;
if(im==1&&re) *s+="+i";
else if(im==1) *s="i";
else if(im>0&&re) *s+=("+"+*is+"i");
else if(im>0) *s+=(*is+"i");
if(im==-1) *s+="-i";
else if(im<0) *s+=(*is+"i");}
else { if(im) *s=lp+*rs; else *s = *rs;
if(im) *s += (c+*is+rp);}
delete[] is; delete[] rs;
return*s;}
