Реферат: Система обработки научных данных

Міністерство освіти інауки УкраїниФАКУЛЬТЕТ ІНФОРМАТИКИ

КАФЕДРА ІНФОРМАЦІЙНИХ УПРАВЛЯЮЧИХСИСТЕМ ТА ТЕХНОЛОГІЙ

Реєстраційний №________

Дата ___________________

КУРСОВА РОБОТА

Тема:

Системаобробки наукових даних

Рекомендована до захисту

“____” __________ 2009р.

Робота захищена

“____” __________ 2009р.

з оцінкою

_____________________

Підписи членів комісії


Зміст

ВступТеоріяПрактична частинаВисновкиЛітература

Вступ

Основою задачею даної роботи є створення відносно простоїсистеми обробки наукових даних. В якості мови розробки було вибрано BC BILDER 5.0, який дозволяє створення програмних продуктів зі складнимпрограмним інтерфейсом.

Borland C++ Builder — запропоноване недавно компанією Borland засіб швидкої розробки програм, щодозволяє створювати програми мовою C++, використовуючи при цьому середовищерозробки і бібліотеку компонентів Delphi. Надалі в теоретичній частині будерозглядатися середовище розробки C++ Builder і основні прийоми, застосовуваніпри проектуванні користувацького інтерфейсу для обробки візитних карток.

C++ Builder являє собою SDI-додаток, головне вікно якогомістить інструментальну панель, що набудовується, (ліворуч) і палітрукомпонентів (праворуч). Крім цього, за замовчуванням при запуску C++ Builderз'являються вікно інспектора об'єктів (ліворуч) і форма нового програми(праворуч). Під вікном форми програми знаходиться вікно редактора коду.


Теоретична частина

Застосування BORLANDC++ BUILDERдлястворення інтерфейсних програм програм

Коротко охарактеризуємо основні особливості даногосередовища.

Borland C++ Builder — выпущенное недавно компанией Borlandсредство быстрой азработки приложений, позволяющее создавать приложения наязыке C++, используя при этом среду разработки и библиотеку компонентов Delphi.В настоящей статье рассматривается среда разработки C++ Builder и основныеприемы, применяемые при проектировании пользовательского интерфейса.

Среда разработкиC++ Builder

C++ Builder представляет собой SDI-приложение, главное окнокоторого содержит настраиваемую инструментальную панель (слева) и палитрукомпонентов (справа). Помимо этого, по умолчанию при запуске C++ Builderпоявляются окно инспектора объектов (слева) и форма нового приложения (справа).Под окном формы приложения находится окно редактора кода.

/>

Рис.1. Среда разработки C++ Builder

Формы являются основой приложений C++ Builder.Создание пользовательского интерфейса приложения заключается в добавлении вокно формы элементов объектов C++ Builder, называемых компонентами. КомпонентыC++ Builder располагаются на палитре компонентов, выполненной в видемногостраничного блокнота. Важная особенность C++ Builder состоит в том, что онпозволяет создавать собственные компоненты и настраивать палитру компонентов, атакже создавать различные версии палитры компонентов для разных проектов.

Компоненты C++ Builder

Компоненты разделяются на видимые (визуальные) и невидимые(невизуальные). Визуальные компоненты появляются во время выполнения точно также, как и во время проектирования. Примерами являются кнопки и редактируемыеполя. Невизуальные компоненты появляются во время проектирования какпиктограммы на форме. Они никогда не видны во время выполнения, но обладаютопределенной функциональностью (например, обеспечивают доступ к данным,вызывают стандартные диалоги Windows 95 и др.)

/>

Рис. 2. Пример использования видимых и невидимых компонентов

Для добавления компонента в форму можно выбратьмышью нужный компонент в палитре и щелкнуть левой клавишей мыши в нужном местепроектируемой формы. Компонент появится на форме, и далее его можно перемещать,менять размеры и другие характеристики.

Каждый компонент C++ Builder имеет три разновидностихарактеристик: свойства, события и методы.

Если выбрать компонент из палитры и добавить его кформе, инспектор объектов автоматически покажет свойства и события, которыемогут быть использованы с тим компонентом. В верхней части инспектора объектовимеется выпадающий список, позволяющий выбирать нужный объект из имеющихся наформе.

/>

Рис.3. Инспектор объектов

Свойствакомпонентов

Свойства являются атрибутами компонента, определяющими еговнешний вид и поведение. Многие свойства компонента в колонке свойств имеютзначение, устанав иваемое по умолчанию (например, высота кнопок). Свойствакомпонента отображаются а странице свойств (Properties). Инспектор объектовотображает опубликованные (published) свойства компонентов. Помимоpublished-свойств, компоненты могут и чаще всего имеют общие (public), опубликованныесвойства, которые доступны только во время выполнения приложения. Инспекторобъектов используется для установки свойств во время проектирования. Списоксвойств располагается на странице свойств инспектора объектов. Можно определитьсвойства во время проектирования или написать код для видоизменения свойствкомпонента во время выполнения приложения.

При определении свойств компонента во времяпроектирования нужно выбрать компонент на форме, открыть страницу свойств винспекторе объектов, выбрать определяемое свойство и изменить его с помощьюредактора свойств (это может быть п остое поле для ввода текста или числа,выпадающий список, раскрывающийся список, диалоговая панель и т.д.).

События

Страница событий (Events) инспектора объектов показываетсписок событий, распознаваемых компонентом (программирование для операционныхсистем с графическим пользовательским интерфейсом, в частности, для Windows 95или Windows NT пре полагает описание реакции приложения на те или иные события,а сама операционная система занимается постоянным опросом компьютера с цельювыявления наступления какого-либо события). Каждый компонент имеет свойсобственный набор обработчиков событий. В C++ Builder следует писать функции,называемые обработчиками событий, и связывать события с этими функциями.Создавая обработчик того или и ого события, вы поручаете программе выполнитьнаписанную функцию, если это событие произойдет.

Для того, чтобыдобавить обработчик событий, нужно выбрать на форме с помощью мыши компонент,которому необходим обработчик событий, затем открыть страницу событийинспектора объектов и дважды щелкнуть левой клавишей мыши на колонке з аченийрядом с событием, чтобы заставить C++ Builder сгенерировать прототипобработчика событий и показать его в редакторе кода. При этом автоматическигенерируется текст пустой функции, и редактор открывается в том месте, гдеследует вводить код. Курсор позиционируется внутри операторных скобок {… }.Далее нужно ввести код, который должен выполняться при наступлении события.Обработчик событий может иметь параметры, которые указываются после именифункции в круглых скобках.

/>

Рис.4. Прототип обработчика событий.

Методы

Метод является функцией, которая связана с компонентом, икоторая объявляется как часть объекта. Создавая обработчики событий, можновызывать методы, используя следующую нотацию: ->, например:

Edit1->Show();

 Отметим, что при создании формы связанные с ней модуль изаголовочный файл с расширением *.h генерируются обязательно, тогда как присоздании нового модуля он не обязан быть связан с формой (например, если в немсодержатся процедуры расчетов). Имена формы и модуля можно изменить, причемжелательно сделать это сразу после создания, пока на них не появилось многоссылок в других формах и модулях.

Менеджерпроектов

Файлы, образующие приложение — формы и модули — собраны впроект. Менеджер проектов показывает списки файлов и модулей приложения ипозволяет осуществ ять навигацию между ними. Можно вызвать менеджер проектов,выбрав пункт меню View/Project Manager. По умолчанию вновь созданный проект получает имяProject1.cpp.

/>

Рис.5. Менеджер проектов

По умолчанию проект первоначально содержит файлы дляодной формы и исходного кода одного модуля. Однако большинство проектовсодержат несколько форм и модулей. Чтобы добавить модуль или форму к проекту,нужно щелкнуть правой кнопкой мыши и выбрать пункт New Form из контекстногоменю. Можно также добавлять существующие формы и модули к проекту, используякнопку Add контекстного меню менеджера проектов и выбирая модуль или форму,которую нужно добавить. Формы и модули можно удалить в любой момент в течениеразработки проекта. Однако, из-за того, что форма связаны всегда с модулем,нельзя удалить одно без удаления другого, за исключением случая, когда модульне имеет связи с формой. Удалить модуль из проекта можно, используя кнопкуRemove менеджера проектов.

Если выбрать кнопку Options в менеджере проектов,откроется диалоговая панель опций проекта, в которой можно выбрать главнуюформу приложения, определить, какие формы будут создаваться динамически, каковыпараметры компиляции модулей (в том числе созданных в Delphi 2.0, так как C++Builder может включать их в проекты) и компоновки.

/>

Рис. 6. Установка опций проекта

Важным элементом среды разработки C++ Builderявляется контекстное меню, появ яющееся при нажатии на правую клавишу мыши ипредлагающее быстрый доступ к наиболее часто используемым командам.

Разумеется, C++ Builder обладает встроенной системойконтекстно-зависимой помощи, доступной для любого элемента интерфейса и являющейсяобширным источником справочной информации о C++ Builder.


Созданиеприложений в С++ Builder

Первым шагом в разработке приложения C++ Builder являетсясоздание проекта. Файлы проекта содержат сгенерированный автоматически исходныйтекст, который становится частью приложения, когда оно скомпилировано иподготовлено к выполнению. Чтобы создать новый проект, нужно выбрать пункт менюFile/New Application.

 C++ Builder создает файл проекта сименем по умолчанию Project1.cpp, а также make-файл с именем по умолчаниюProject1.mak. При внесении изменений в проект, таких, как добавление новойформы, C++ Builder обновляет файл проекта.

/>

Рис.7 Файл проекта

Проект или приложение обычно имеют несколько форм.Добавление формы к проекту создает следующие дополнительные файлы:

·          Файлформы с расширением.DFM, содержащий информацию о ресурсах окон для конструированияформы

·          Файлмодуля с расширением.CPP, содержащий код на C++.

·          Заголовочныйфайл с расширением .H, содержащий описание класса формы.

Когда вы добавляете новую форму, файл проекта автоматическиобновляется.

Для того чтобы добавить одну или более форм кпроекту, выберите пункт меню File/NewForm. Появится пустая форма, котораябудет добавлена к проекту. Можно воспользоваться пунктом меню File/New, выбратьстраницу Forms и выбрать подходящий шаблон из репозитория объектов.

/>

Рис.8 Шаблоны форм

Для того, чтобы просто откомпилировать текущийпроект, из меню Compile нужно выбрать пункт меню Compile. Для того, чтобыоткомпилировать проект и создать исполняемый файл для текущего проекта, из менюRun нужно выбрать пункт меню Run. Компоновка проекта является инкрементной(перекомпилируются только изменившиеся модули).

 Если при выполнении приложениявозникает ошибка времени выполнения, C++ Builder делает паузу в выполнениипрограммы и показывает редактор кода с курсором, установленным на операторе,являющемся источником ошибки. Прежде чем делать необходимую коррекцию, следуетперезапустить приложение, выбирая пункт меню Run из контекстного меню или изменю Run, закрыть приложение и лишь затем вносить изменения в проект. В этомслучае уменьшится вероятность потери ресурсов Windows.

Пример: созданиепростейшего приложения

Теперь попробуем создать простейшее приложение, позволяющеевводить текст в редактируемое поле и добавлять этот текст к списку при нажатиимышью на кнопку. Выберем пункт меню File/New Application для создания проекта исохраним его главную форму под именем samp1.cpp, а сам проект под именемsamp.mak. Поместим на форму компоненты Button, Edit и ListBox со страницыStandard палитры компонент.

/>

Рис. 9. Размещение компонентов на форме

После этого выберем на форме компонент Edit и удалимтекущее значение свойства Text. Затем установим свойство Caption для Button1равным «Добавить».

 Чтобы добавить обработчик событияOnClick для кнопки Добавить, нужно выбрать эту кнопку на форме, открытьстраницу событий в инспекторе объектов и дважды щелкнуть мышью на колонкесправа от события OnClick. В соответствующей строке ввода появится имя функции.C++ Builder сгенерирует прототип обработчика событий и покажет его в редакторекода. После этого следует ввести следующий код в операторные скобки {… }тела функции:

void __fastcallTForm1::Button1Click(TObject *Sender)

{

if(!(Edit1->Text == ""))

{

ListBox1->Items->Add(Edit1->Text);

Edit1->Text ="";

}

}

Для компиляции приложения в меню Run выберем пункт Run.Теперь можно что-нибудь ввести в редактируемое поле, нажать мышью на кнопкуДобавить и убедиться, что вводимые строки добавляются к списку.

/>

Рис.10. Так выглядит готовое приложение.

Теперь модифицируем приложение, добавив кнопки Удалитьи Выход. Для этого добавим еще две кнопки, изменим их свойство Caption исоздадим обработчики событий, связанных с нажатием на эти кнопки:

/>

Рис. 11. Модифицированное приложение

Для кнопки Удалить:

void __fastcallTForm1::Button2Click(TObject *Sender)

{

if(!(ListBox1->ItemIndex == -1))

ListBox1->Items->Delete(ListBox1->ItemIndex);

}

Для кнопки Выход:

Close();

Сохраним и скомпилируем приложение, а затем протестируем его.

Итак, мы познакомились со средой разработки BorlandC++ Builder и создали простое приложение. В следующих статьях этого цикла будутописаны приемы манипуляции компонентами на форме и более подробно рассмотреныособенности поведения различных компонентов в приложении


Практична частина

Лістінги програм

#include<iostream.h>

#include<graphics.h>

#include<conio.h>

#include<stdio.h>

#include<ctype.h>

#include<string.h>

#include<math.h>

#include<process.h>

#include<complex.h>

#include<conio.h>

#include<stdlib.h>

#include<iomanip.h>

#define MAX 50

#define ARRAYMAX 10

void initialize();

void menu1();

void menu2();

void data();

void graphch();

void corre();

void mean();

void median();

void graph();

void makegraph(float p[]);

void pie();

void mode();

void variance();

int input();

void correlation();

void regress();

void curvefit();

int midx = getmaxx()/2;

int midy = getmaxy()/2;

int choice1,choice2,choice3,choice4,choice5,choice6,choice7,choice8;

inta[100],b[100],c[100],d[100],e[100],f[100],g[100];

float men,medin,mod,cxy,vx,vy;

inta1,b1,c1,d1,e1,f1,g1,h1,i1,j1,k1,l1,m1,n1,o1,p1,q1;

long doublez1=0,z2=0,z3=0,z4=0,z5=0,z6=0,z7=0,z8=0,byx=0,bxy=0,mx=0,my=0;

static int zzz;

s =0;

float s2 =0.0;

s3 =0;

s1 =0;

float sum =0.0;

float mean,variance,v1,v2,v3;

data();

clrscr();

switch(choice5)

{

 case 1:

 {

 cout<<" Enter the total no of individualobservations";

 cin>>n;

 for(int i=0;i<n;i++)

 {

 cout<<" X"<<i+1<<" =";

 cin>>a[i];

 s = s+ a[i];

 }

 mean = s/n;

 for(i=0;i<n;i++)

 {

 sum = sum+ pow((a[i]-mean),2);

 }

 clrscr();

cout<<«The values of individualobservations are »;

for(i=0;i<n;i++)

cout<<a[i]<<" ";

cout<<endl;

 variance = sum/n;

 break;

 }

 case 2:

{

 cout<<«Enter the no of data»;

 cin>>nn;

 cout<< «Enter the class intervalsize»;

 cin>>ci;

 cout<<«Enter the upper most level»;

 cin>>up;

 cout<<" Enter the lowermost level";

 cin>>lo;

 cout<<«Enter the frequency inorder\n»;

 for(int i=0;i<nn;i++)

 { b[i] = ((up + ci) + up)/2;

 up = up + ci;

 cout<<"Freq"<<i+1<<" =";

 cin>>c[i];

 }

 for(i=0;i<nn;i++)

 {

 d[i] = b[i] — b[nn/2];

 e[i] = d[i]/ci;

 }

 for(i=0;i<nn;i++)

 cout<<e[i]<<" ";

 cout<<endl;

 float sum2,sum3,sum4;

 sum2 = 0.0;

 sum3 =0.0;

 sum4 = 0.0;

 for(i=0;i<nn;i++)

 {

 sum2 = sum2 +(c[i]*e[i]);

 sum3 = sum3 +(c[i]*pow(e[i],2));

 sum4 = sum4+ c[i];

 }

 cout<<«The sum of f * u =»<<sum2<<endl;

 cout<<" The sum of f*u2 ="<<sum3<<endl;

 cout<<" The sum of f ="<<sum4<<endl;

 v1 = sum3/sum4;

 cout<<" The value of 1 ="<<v1<<endl;

 v2 = sum2/sum4;

 cout<<" The value of 2 ="<<v2<<endl;

 v3 = pow(v2,2);

 variance = (pow(ci,2)*(v1 -v3));

 int u= up;

cout<<«Class\t»<<setw(12)<<«Mid»<<setw(10)<<«Frequency\n»;

cout<<«interval\t»<<setw(12)<<«value»<<endl;

for( int k=0;k<nn;k++)

{

cout<<u<<" — "<<u+ci<<"\t"<<setw(12)<<b[k]<<setw(10)<<c[k]<<endl;

u = u+ci;

}

 break;

 }

 case 3:

{ cout<<«Enter the total no ofdata»;

 cin>>nn;

 char s[20],s4[20];

 cout<<" X denotes ";

 cin>>s;

 cout<<" Frequency denotes ";

 cin>>s4;

 for(int i=0;i<nn;i++)

 {

 cout<<«X»<<i+1<<"=";

 cin>>a[i];

 cout<<«Freq»<<i+1<<"=";

 cin>>b[i];

 s3 = s3+b[i];

}

cout<<«The sum of f =»<<s3<<endl;

for(i=0;i<nn;i++)

{

s1 =s1+ (a[i]*b[i]);

}

cout<<«The sum of f*x =»<<s1<<endl;

mean = s1/s3;

for(i=0;i<nn;i++)

{

c[i] = pow((a[i]-mean),2);

s2 = s2 +(c[i]*b[i]);

}

cout<<«Mean =»<<mean<<endl;

cout<<«The sum of deviations =»<<s2<<endl;

variance = s2/s3;

 cout<<setw(15)<<s<<setw(20)<<s4<<endl<<endl;

for(i=0;i<nn;i++)

{

 cout<<setw(15)<<a[i]<<setw(20)<<b[i]<<endl;

 }

break;

}

default:

{cout<<" Sorry wrong choice";

 getch();

 data();

 }

}

cout<<" Variance ="<<variance;

getch();

int z=1;

while(z==1||z==2)

{

cout<<"\n\n\n\n\nPress 1 to return toprevios menu";

cout<<"\nPress 2 to exit";

cin>>z;

if(z==1)

menu2();

else if(z==2)

exit(0);

else cout<<«Wrong choice»;

}

}

char s[20],s1[20];

int input()

{

int n;

gotoxy(2,6);

cout<<«Enter the total no of data»;

cin>>n;

cout<<«Enter the variable x and yvalues\n»;

cout<<" X denotes ";

cin>>s;

cout<<" Y denotes ";

cin>>s1;

for(int i=0;i<n;i++)

{

 cout<<" X"<<i+1<<"=";

 cin>>f[i];

 cout<<" Y"<<i+1<<"=";

 cin>>g[i];

}

return(n);

}

void correlation()

{

int n;

 corre();

 initialize();

 switch(choice4)

 {

 case 1:

 {

 n =input();

 clrscr();

 cleardevice();

 initialize();

 settextstyle(7,HORIZ_DIR,0);

 outtextxy(50,30,«SCATTER DIAGRAM»);

 line(50,400,600,400);

 line(50,400,50,50);

 outtextxy(556,410,s);

 settextstyle(7, VERT_DIR,0);

 outtextxy(30,375,s1);

 settextstyle(7, HORIZ_DIR,0);

 for(int i=0;i<n;i++)

 { int x1 = f[i]+ 50;

 int y1 = 400- g[i];

 setfillstyle(SOLID_FILL,14);

         setcolor(14);

         circle(x1,y1,1);

         floodfill(x1,y1,14);

          }

 break;

 }

 case 2:

 {// clrscr();

 // cleardevice();

 float sum2,sum3,sum4,sum5,sum6;

 n = input();

 sum2 = 0.0;

 sum3 =0.0;

 sum4 =0.0;

 sum5 =0.0;

 sum6 =0.0;

 clrscr();

 cleardevice();

 for(int i=0;i<n;i++)

 { sum2 = sum2 + f[i];

 sum3 = sum3 + g[i];

 }

         cout<<setw(15)<<" X"<<setw(20)<<" Y "<<endl<<endl;

for(i=0;i<n;i++)

{

 cout<<setw(15)<<f[i]<<setw(20)<<g[i]<<endl;

 }

 cout<<" The sum of X ="<<sum2<<endl;

 cout<<«The sum of Y =»<<sum3<<endl;

 float mex = sum2/n;

 float mey = sum3/n;

 cout<<" The mean of X ="<<mex<<endl;

 cout<<«The mean of Y =»<<mey<<endl;

 for(i=0;i<n;i++)

 {

          sum4 = sum4 +((f[i] -mex)*(g[i]-mey));

          sum5 = sum5 + pow((f[i]-mex),2);

          sum6 = sum6+ pow((g[i]-mey),2);

 }

 cout<<" The sum of products of deviationfrom mean of X and Y = "<<sum4<<endl;

 cout<<«The sum of squares of deviationfrom mean of X = „<<sum5<<endl;

 cout<<“ The sum fo squares of deviationfrom mean of Y = „<<sum6<<endl;

 float cov = sum4/n;

 float varx = sqrt(sum5/n);

 float vary = sqrt(sum6/n);

 float coeff = ((cov/varx)/vary);

 cout<<“ THE COEFFICIENT OF CORRELATION =»<<coeff<<endl<<endl;

 if(coeff<=1 && coeff>= -1)

 {

          if(coeff == -1)

          cout<<" There is perfectnegative correlation between X and Y\n";

          else if(coeff ==1)

          cout<<«There is perfectpositive correlation between X and Y\n»;

          else if(coeff ==0)

          cout<<" There is no correlationbetween X and Y\n";

          else if (coeff<0)

          cout<<" There is negativecorrelation between X and Y\n";

          else if (coeff>0)

          cout<<«There is positivecorrelation between X and Y\n»;

 }

 else

 cout<<«There seems to be a mistake inthe data provided since the value of coefficient of correlation does not liebetween -1 and 1»;

 break;

 }

 default:

 { outtextxy(30,midy +100," Sorry, you haveentered the wrong choice");

          getch();

          cleardevice();

          corre();

 break;

 }

 }

 getch();

cleardevice();

 int z=1;

while(z==1||z==2)

{

cout<<"\n\n\n\n\nPress 1 to return toprevios menu";

cout<<"\nPress 2 to exit";

cin>>z;

if(z==1)

menu1();

else if(z==2)

exit(0);

else cout<<«Wrong choice»;

}

}

void regress()

{ int n;

float cxy;

 initialize();

 settextstyle(5, HORIZ_DIR, 0);

 setusercharsize(1, 1, 1, 1);

 outtextxy(10,midy,«What type of data do youwant to enter»);

 outtextxy(20,midy+30,«1.Discrete data of x andy values\n»);

 outtextxy(20,midy+60,«2.Data of allsummations\n»);

 cin>>choice7;

 // return (choice5);

 closegraph();

 switch(choice7)

 {

 case 1:

 {

 cout<<" Enter the total no ofdata";

 cin>>n;

 for(int i=0;i<n;i++)

 {cout<<«X»<<i+1<<" ";

 cin>>a[i];

 cout<<«Y»<<i+1<<"";

 cin>>b[i];

 }

 clrscr();

 for(i=0;i<n;i++)

 {

 z1 +=a[i];

 z2 +=b[i];

 }

 mx = z1/n;

 my = z2/n;

 for( i=0;i<n;i++)

 {

          z3 += ((a[i]-mx)*(b[i]-my));

          z4 += pow((a[i]-mx),2);

          z5 += pow((b[i]-my),2);

          }

         cxy = z3/n;

         vx = z4/n;

         vy = z5/n;

         byx = cxy/vx;

         bxy = cxy/vy;

         cout<<setw(5)<<«X»<<setw(5)<<"Y"<<endl;

         for(i=0;i<n;i++)

         {

          cout<<setw(5)<<a[i]<<setw(5)<<b[i]<<endl;

          }

          cout<<«The Line Of Regressionof Y on X is \n»;

          cout<<"\t Y — "<<my<<" = "<<byx<<"( X-"<<mx<<" )";

          cout<<endl;

          cout<<«The Line Of Regressionof X on Y is \n»;

          cout<<"\t X — "<<mx<<" = "<<bxy<<"( Y-"<<my<<" )";

          cout<<endl;

          cout<<"\n\nWould you like toestimate values of y or x based on the above equations\n";

          cout<<«1. to estimate Y press1\n»;

          cout<<«2. To estimate X press2\n»;

          cout<<«3. Exit and return toprevious menu press 3\n»;

          cout<<«enter choice?»;

          cin>>choice8;

          clrscr();

          float ex,ey;

          if(choice8 == 1)

          { char ch = 'y';

          while(ch=='y')

          {

          cout<<" enter the value ofX";

          cin>>ex;

          ey = (byx*(ex- mx)) + my;

          cout<<" The estimated value ofY = "<<ey<<endl;

          cout<<" do you want tocontinue";

          cin>>ch;

          }

          }

          else if(choice8 == 2)

          { char ch = 'y';

          while(ch=='y')

          {

          cout<<" enter the value ofY";

          cin>>ey;

          ey = (bxy*(ey- my)) + mx;

          cout<<" The estimated value ofX = "<<ey<<endl;

          cout<<" do you want tocontinue";

          cin>>ch;

          }

          }

          else

          break;

          break;

         }

          case 2:

          {

          cout<<«Enter the total no ofdata »;

          cin>>n;

          cout<<" Enter the value of sumof x ";

          cin>>z1;

          cout<<" Enter the value of sumof y ";

          cin>>z2;

          cout<<«Enter the value of sumof products of x znd y »;

          cin>>z3;

          cout<<" Enter the value of sumof squares of x ";

          cin>>z4;

          cout<<«Enter the values of sumof squares of y »;

          cin>>z5;

          byx = (n*z3-z1*z2)/(n*z4 — pow(z1,2));

          bxy = (n*z3-z1*z2)/(n*z5 — pow(z2,2));

          mx = z1/n;

          my = z2/n;

          clrscr();

          cout<<«The sum of x =»<<z1<<endl;

          cout<<" The sum of y ="<<z2<<endl;

          cout<<" The sum of product of xand y = "<<z3<<endl;

          cout<<" The sum of squares of x= "<<z4<<endl;

          cout<<" The sum of squares of y= "<<z5<<endl;

          cout<<"\n\nThe Line Of Regressionof Y on X is \n";

          cout<<"\t Y — "<<my<<" = "<<byx<<"( X-"<<mx<<" )";

          cout<<endl;

          cout<<«The Line Of Regressionof X on Y is \n»;

          cout<<"\t X — "<<mx<<" = "<<bxy<<"( Y-"<<my<<" )";

          cout<<endl;

          cout<<"\n\nWould you like toestimate values of y or x based on the above equations\n";

          cout<<«1. to estimate Y press1\n»;

          cout<<«2. To estimate X press2\n»;

          cout<<«3. Exit and return toprevious menu press 3\n»;

          cout<<«enter choice?»;

          cin>>choice8;

          clrscr();

          float ex,ey;

          if(choice8 == 1)

          { char ch = 'y';

          while(ch=='y')

          {

          cout<<" enter the value ofX";

          cin>>ex;

          ey = (byx*(ex- mx)) + my;

          cout<<" The estimated value ofY = "<<ey<<endl;

          cout<<" do you want tocontinue";

          cin>>ch;

          }

          }

          else if(choice8 == 2)

          { char ch = 'y';

          while(ch=='y')

          {

          cout<<" enter the value ofY";

          cin>>ey;

          ey = (bxy*(ey- my)) + mx;

          cout<<" The estimated value ofX = "<<ey<<endl;

          cout<<" do you want tocontinue";

          cin>>ch;

          }

          }

          else

          break;

          break;

          }

          default:

          {

          cout<<" Sorry wrongchoice";

          clrscr();

          getch();

          regress();

          break;

          }

}

int z=1;

while(z==1||z==2)

{

cout<<"\n\n\n\n\nPress 1 to return toprevios menu";

cout<<"\nPress 2 to exit";

cin>>z;

if(z==1)

menu1();

else if(z==2)

exit(0);

else cout<<«Wrong choice»;

}

}

void curvefit()

{ int n;

cout<<" Enter the total no of points";

cin>>n;

cout<<«Enter the values of x and ycoordinates of the points\n»;

float a[100],b[100];

for( int i=0;i<n;i++)

{

cout<<" X"<<i+1<<"= ";

cin>>a[i];

cout<<" Y"<<i+1<<"= ";

cin>>b[i];

}

long float aa,bb;

cout<<"\nENTER THE TYPE EQUATION YOU WISHTO CURVE FIT";

cout<<"\nFOR LINEAR FORM, y = ax +b,INPUT 2";

cout<<"\nFOR QUADRATIC FORM, y= ax^2 + bx+ c,INPUT 3";

cout<<" \nENTER TYPE ?";

cin>>choice6;

switch(choice6)

 {

 case 2:

 {

 for(i=0;i<n;i++)

 {

         z1 += a[i];

         z2 += b[i];

         z3 += a[i]*b[i];

         z4 += pow(a[i],2);

         z5 += pow(b[i],2);

         }

         float mex = z1/n;

         float mey = z2/n;

         float cyx = ((z3/n) — mex*mey);

         float vx = ((z4/n) — pow(mex,2));

         float vy = ((z5/n) — pow(mey,2));

         aa = cyx/vx;

         bb = mey — mex*aa;

         cout<<"\n\n\n a ="<<aa<<"\t b ="<<bb<<endl;

         getch();

         clrscr();

         initialize();

          settextstyle(7,HORIZ_DIR,0);

          outtextxy(50,30,«BEST CURVE FITDIAGRAM»);

          line(50,400,600,400);

          line(50,400,50,50);

          outtextxy(556,410,«x»);

 settextstyle(7, VERT_DIR,0);

 outtextxy(10,375,«y»);

 settextstyle(7, HORIZ_DIR,0);

         for(i=0;i<n;i++)

         { int x1 = a[i]+50;

         int y1 = 400 — b[i];

         setfillstyle(SOLID_FILL,14);

         setcolor(14);

         circle(x1,y1,2);

          floodfill(x1,y1,14);

         }

         setcolor(WHITE);

         int x2,y2;

 line(50,400,600,400);

 line(50,50,50,400);

         moveto(50,400);

 float y;

 for( int i=0;i<198;i++)

          {

          y = bb + aa*i;

          x2 = i+50;

          y2 = 400-y;

          lineto(x2,y2);

                   }

 break;

 }

 case 3:

 {

 for(i=0;i<n;i++)

 {

         z1 += a[i];

         z2 += b[i];

         z3 += a[i]*b[i];

         z4 += pow(a[i],2)*b[i];

         z5 += pow(a[i],2);

         z6 += pow(a[i],3);

         z7 += pow(a[i],4);

         }

 long double dx1 = z4*((n*z5)-pow(z1,2));

 long double dx2 = z6*((n*z3)-(z1*z2));

         long double dx3 = z5*((z3*z1)- (z5 *z2));

         long double dx = dx1 — dx2 + dx3;

         long double d1 = z7*((n* z5)- pow(z1,2));

         long double d2 = z6 *((n*z6)- (z1*z5));

         long double d3 = z5*((z6*z1) — pow(z5,2));

         long double d = d1-d2 +d3;

         long double dy1 = z7*((n*z3) — (z1*z2));

         long double dy2 = z6*((n*z6) — (z1*z5));

         long double dy3 = z5*((z6*z1)- pow(z5,2));

         long double dy = dy1-dy2+dy3;

         long double dz1 = z7*((z2*z5) — (z1*z3));

         long double dz2 = z6*((z2*z6)- (z1*z3));

         long double dz3 = z4*((z6*z1)- pow(z5,2));

         long double dz = dz1-dz2+dz3;

         long double aa = dx/d;

         long double bb = dy/d;

         long double cc = dz/d;

         cout<<"\n\n\n a ="<<aa<<"\t b = "<<bb<<"\t c ="<<cc<<endl;

          getch();

         clrscr();

          initialize();

          settextstyle(7,HORIZ_DIR,0);

          outtextxy(50,30,«BEST CURVE FITDIAGRAM»);

          line(50,400,600,400);

          line(50,400,50,50);

          outtextxy(556,410,«x»);

 settextstyle(7, VERT_DIR,0);

 outtextxy(10,375,«y»);

 settextstyle(7, HORIZ_DIR,0);

         for(i=0;i<n;i++)

         { int x1 = a[i]+50;

         int y1 = 400 — b[i];

         setfillstyle(SOLID_FILL,14);

         setcolor(14);

         circle(x1,y1,1);

          floodfill(x1,y1,14);

         }

         setcolor(WHITE);

         int x2,y2;

 line(50,400,600,400);

 line(50,50,50,400);

         moveto(50,400);

 float y;

 for( int i=0;i<198;i++)

          {

          y = (aa*pow(i,2)) +(bb*i) + cc;

          x2 = i+50;

          y2 = 400-y;

          lineto(x2,y2);

                   }

                   break;

          }

         default:

         {cout<<«Sorry wrongchoice»;

          getch();

          clrscr();

         break;

         }

 // getch();

 // closegraph();

 }

 getch();

 closegraph();

//cleardevice();

clrscr();

int z=1;

while(z==1||z==2)

{

cout<<"\n\n\n\n\nPress 1 to return toprevios menu";

cout<<"\nPress 2 to exit";

cin>>z;

if(z==1)

menu1();

else if(z==2)

exit(0);

else cout<<«Wrong choice»;

}

getch();

}


Робота з програмою

Робота з програмою починається із стану вибору операції

/>(The main menu)

Наступний крок вибору операції з даними

(Screen 2 General statistics menu)

/>


Висновки

Була розроблена комп’ютерна програма для простої обробкиданих з можливістю її графічної інтерпретації При розробці програмивикористовувався пакет BORLAND C++ Bilder та бібліотека BGI.

Відмітимо лише в порівнянні з іншими подібними програмними продуктами– дана програма має простий командний інтерфейс (це в значний мірі спростилоетап розробки даної програми).


Література

1. Касаткин А.И., Вальвачев А.Н.Профессиональное прогрпммирование на языке Си. Мн., 1992. 240 С.

2. Нейбауэр А. Моя перваяпрограмма на С/С++. П., 1995. 368 С.

3. Бруно Бабэ. Просто и ясно оBorland C++. М., 1996. 400 С.

4. Шамас Н.К. Основы С++ иобьектно-ориентированного программирования. К., 1996. 448 С.

5. Справочник по классам BorlandC++ 4.0. К., 1994. 256 С.

еще рефераты
Еще работы по информатике, программированию